*{margin:0;padding:0;box-sizing:border-box}html{height:100%}body{display:flex;flex-direction:column;min-height:100vh;font-family:Arial,Helvetica,sans-serif;line-height:1.6;background-color:#f4f4f4}header{position:sticky;top:0;left:0;width:100%;background-color:#333;color:#fff;padding:10px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #555;z-index:1000;flex-wrap:wrap}header .header-title h1{margin:0;font-size:1.8em}header .version{font-size:.6em;color:#ccc;font-weight:400;margin-left:5px}header .return-button{background-color:#555;color:#fff;padding:8px 15px;text-decoration:none;border-radius:5px;transition:background-color .3s ease;display:inline-flex;align-items:center}header .return-button span{margin-right:8px;font-weight:700}header .return-button:hover{background-color:#777}.description{background-color:#e2e2e2;color:#333;padding:8px 20px;text-align:center;font-style:italic}main{flex-grow:1;padding:20px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px}.options-wrapper{flex:0 0 380px;order:0;display:flex;flex-direction:column}.controls{background-color:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.1);display:grid;grid-template-columns:auto 1fr;gap:12px 15px;align-items:center;margin-bottom:10px}.controls label{font-weight:700;text-align:right;padding-right:5px}.slider-container{display:flex;align-items:center;width:100%}.controls input[type=range]{flex-grow:1;padding:0;margin:0;height:20px;cursor:pointer}.scale-value-display{margin-left:10px;font-size:.9em;color:#555;min-width:40px;text-align:right}.controls button,.controls input[type=color],.controls input[type=file],.controls input[type=number],.controls input[type=text],.controls select{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px}.controls input[type=color]{padding:2px;height:35px}.controls input[type=file]{padding:4px}#addTextButton{grid-column:1/-1;background-color:#007bff;color:#fff;border:none;cursor:pointer;transition:background-color .3s ease}#addTextButton:hover{background-color:#0056b3}#saveButton{grid-column:1/-1;padding:10px 20px;font-size:1.1em;background-color:#28a745;color:#fff;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s ease;margin-top:5px}#saveButton:disabled{background-color:#ccc;cursor:not-allowed}#saveButton:not(:disabled):hover{background-color:#218838}.options-instruction{font-size:.9em;color:#666;text-align:left;padding:0 10px}#canvasContainer{flex:1 1 auto;order:0;position:relative;display:flex;justify-content:center;align-items:center;min-height:300px;background-color:#ddd;border:1px dashed #aaa;border-radius:5px;overflow:hidden}#canvasHelpText{color:#666;font-style:italic;text-align:center;padding:20px}#memeCanvas{display:block;max-width:100%;height:auto;background-color:transparent;cursor:grab}#memeCanvas.dragging{cursor:grabbing}footer{position:sticky;bottom:0;left:0;width:100%;background-color:#333;color:#ccc;text-align:center;padding:15px 20px;border-top:2px solid #555;font-size:.9em;z-index:1000}footer a{color:#fff;text-decoration:none}footer a:hover{text-decoration:underline}footer p{margin:5px 0}.link-button{background:0 0;border:none;color:#fff;text-decoration:underline;cursor:pointer;font:inherit;padding:0}.link-button:hover{color:#eee}dialog{border:1px solid #ccc;border-radius:8px;padding:20px;box-shadow:0 4px 10px rgba(0,0,0,.2);max-width:500px;width:80%;margin:auto}dialog::backdrop{background-color:rgba(0,0,0,.5)}dialog h2{margin-top:0;margin-bottom:15px;color:#333}dialog p{margin-bottom:20px;color:#555}dialog button{padding:8px 15px;border-radius:4px;cursor:pointer;border:1px solid #ccc;background-color:#eee;float:right}dialog button:hover{background-color:#ddd}@media (max-width:768px){header{flex-direction:column;align-items:flex-start}header .header-nav{margin-top:10px}main{flex-direction:column;align-items:stretch}.options-wrapper{flex-basis:auto;order:0;margin-bottom:20px}.controls{grid-template-columns:1fr;margin-bottom:10px}.controls label{text-align:left;padding-right:0}.slider-container{width:100%}.options-instruction{text-align:center;padding:5px 10px}#canvasContainer{order:1;min-height:200px}}@media (max-width:480px){header .header-title h1{font-size:1.5em}.options-wrapper{flex-basis:auto;min-width:0}.controls{padding:15px}#saveButton{font-size:1em}footer{font-size:.8em}}