*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#121212;background-image:radial-gradient(ellipse at top,#1c263c,#121212);color:#fff;height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{position:fixed;top:0;left:0;right:0;background:#0f0f0ff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);z-index:1000;padding:1rem 2rem}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}.header-left{display:flex;align-items:center;gap:3rem}.logo-link{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:#fff;font-weight:700;font-size:1.25rem}.logo-icon{width:32px;height:32px}.logo-text{font-family:Leckerli One,cursive;background:linear-gradient(135deg,#1f9ced,#1a7fc7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:1.6rem;font-weight:300;line-height:1.3;padding-bottom:2px}.main-nav{display:flex;gap:2rem;align-items:center;position:relative;top:3px}.nav-link{color:#9ca3af;text-decoration:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:500!important;transition:color .2s ease;position:relative;display:inline-block;padding-bottom:2px;border-bottom:2px solid transparent}.nav-link:hover{color:#fff}.nav-link.active{color:#1f9ced;border-bottom-color:#1f9ced}.header-right{display:flex;align-items:center;gap:1.5rem}.tier-indicator{padding:.5rem 1rem;background:#ffffff0d;border-radius:20px;font-size:.875rem;color:#9ca3af;border:1px solid rgba(255,255,255,.1)}.login-btn{background:#1f9ced;color:#fff;border:none;padding:.5rem 1.5rem;border-radius:20px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s ease}.login-btn:hover{background:#1a7fc7;transform:translateY(-1px);box-shadow:0 4px 20px #1f9ced4d}.credit-badge{display:flex;align-items:center;padding:.4rem .8rem;background:#00b4d826;border:1px solid rgba(0,180,216,.3);border-radius:20px;color:#00b4d8;font-size:.85rem;font-weight:500}.account-btn{background:#00b4d833;border:1px solid rgba(0,180,216,.4);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;padding:0}.account-btn:hover{background:#00b4d84d;transform:scale(1.05)}.account-icon{font-size:1.2rem}.main-container{display:flex;flex:1;margin-top:80px;overflow:hidden;min-height:0}.sidebar{width:320px;background:linear-gradient(180deg,#191928fa,#141423fa);border-right:1px solid rgba(255,255,255,.08);padding:1.25rem;padding-bottom:100px;overflow-y:auto;display:flex;flex-direction:column;gap:0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.sidebar-section{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem;flex-shrink:0}.section-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#ffffff8c;font-weight:600;margin:.9rem 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-section:first-of-type .section-title,.sidebar-section>.section-title[style*="margin-top: 0"]{margin-top:0}.text-input{width:100%;padding:.625rem .75rem;background:#28283c80;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-family:inherit;font-size:.85rem;transition:border-color .15s ease,box-shadow .15s ease}.text-input::placeholder{color:#6b7280}.text-input:focus,.text-input:focus-visible{outline:none;border-color:#1f9ceda6;box-shadow:0 0 0 3px #1f9ced2e}.control-group{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:4px;align-items:center;margin-bottom:.4rem;padding:0}.control-group>.font-select,.control-group:has(>.font-select:only-child)>.font-select{grid-column:1 / -1;grid-row:1}.control-label{grid-column:1;grid-row:1;font-size:.78rem;color:#ffffffb8;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.25;transition:color .15s ease}.control-label:hover{color:#ffffffe6}.control-value{grid-column:2;grid-row:1;font-size:.78rem;color:#1f9ced;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-family:inherit;line-height:1.25;letter-spacing:.01em}.slider{grid-column:1 / -1;grid-row:2;width:100%;height:4px;background:#1f9ced33;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:2px;position:relative}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#1f9ced;cursor:pointer;border-radius:50%;box-shadow:0 1px 4px #0000004d}.slider::-webkit-slider-thumb:hover{background:#2ba6ed}.slider::-moz-range-thumb{width:16px;height:16px;background:#1f9ced;cursor:pointer;border-radius:50%;border:none;box-shadow:0 1px 4px #0000004d}.slider::-moz-range-thumb:hover{background:#2ba6ed}.font-select{width:100%;padding:.55rem .7rem;background:#28283c80;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-family:inherit;font-size:.85rem;transition:border-color .15s ease,box-shadow .15s ease}.font-select:focus,.font-select:focus-visible{outline:none;border-color:#1f9ceda6;box-shadow:0 0 0 3px #1f9ced2e}.color-group{display:flex;gap:1rem}.color-picker-wrapper{flex:1;display:flex;flex-direction:column;gap:.25rem;width:100%;box-sizing:border-box;overflow:hidden}.color-picker-label{font-size:.625rem;color:#fff6;text-align:center;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}.color-input-wrapper{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;min-height:40px;width:100%;box-sizing:border-box}.color-preview{width:28px;height:28px;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px #00000059;border:2px solid rgba(255,255,255,.3);flex-shrink:0;transition:transform .15s ease,border-color .15s ease}.color-preview:hover{transform:scale(1.08);border-color:#ffffff8c}.color-value-input{font-size:.875rem;color:#ffffffe6;text-align:center;font-family:SF Mono,Monaco,monospace;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;flex:1;min-width:0;max-width:80px;padding:6px 8px;font-weight:400;cursor:text;text-transform:uppercase;letter-spacing:.05em}.color-value-input:focus,.color-value-input:focus-visible{outline:none;border-color:#1f9ceda6;background:#ffffff14;box-shadow:0 0 0 3px #1f9ced2e}input[type=color]{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.process-buttons{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.process-btn{padding:.875rem;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;letter-spacing:.02em;position:relative;overflow:hidden}.process-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.process-btn:hover:before{left:100%}.process-btn-free{background:linear-gradient(135deg,#00b4d8,#0096c7);color:#fff;box-shadow:0 4px 15px #00b4d84d}.process-btn-free:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00b4d866}.process-btn-pro{background:linear-gradient(135deg,#49ad83,#3e9970);color:#fff;box-shadow:0 4px 15px #49ad834d}.process-btn-pro:hover{transform:translateY(-2px);box-shadow:0 6px 20px #49ad8366}.pro-reposition{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding:8px;border:1px dashed rgba(107,114,128,.35);border-radius:8px;background:#4f46e50a;font-size:.85rem;color:#6b7280}.pro-reposition-header{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#4f46e5}.pro-reposition-reset{background:none;border:1px solid rgba(79,70,229,.35);color:#4f46e5;padding:2px 8px;border-radius:999px;font-size:.75rem;cursor:pointer}.pro-reposition-reset:hover,.pro-reposition-reset:focus-visible{background:#4f46e51a;outline:2px solid rgba(79,70,229,.5);outline-offset:2px}.pro-reposition-frame{position:relative;width:100%;max-width:220px;aspect-ratio:4 / 3;margin:0 auto;background:repeating-linear-gradient(45deg,rgba(107,114,128,.06) 0,rgba(107,114,128,.06) 6px,transparent 6px,transparent 12px),#f8fafc;border:1px solid rgba(107,114,128,.3);border-radius:6px;touch-action:none}.pro-reposition-axis{position:absolute;background:#6b728033}.pro-reposition-axis-h{left:0;right:0;top:50%;height:1px}.pro-reposition-axis-v{top:0;bottom:0;left:50%;width:1px}.pro-reposition-puck{position:absolute;top:50%;left:50%;width:28px;height:28px;border-radius:50%;border:2px solid #4F46E5;background:#fff;color:#4f46e5;font-size:.9rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:grab;box-shadow:0 2px 6px #4f46e559;transform:translate(-50%,-50%);touch-action:none}.pro-reposition-puck:active{cursor:grabbing}.pro-reposition-puck:focus-visible{outline:3px solid rgba(79,70,229,.5);outline-offset:2px}.pro-reposition-hint{margin:0;font-size:.75rem;color:#6b7280;line-height:1.3}.view-mode-section{margin-top:.5rem;display:none}.mobile-action-buttons{display:none}.view-mode-buttons{display:flex;gap:.5rem;justify-content:center}.view-mode-btn{flex:1;padding:.5rem;background:#28283c80;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#6b7280;font-size:.75rem;cursor:pointer;transition:all .2s}.view-mode-btn.active{background:#1f9ced;color:#fff;border-color:#1f9ced}.action-buttons{display:flex;gap:1rem;padding:0 1rem;margin-top:1.5rem}.action-btn{flex:1;padding:.75rem;background:#28283c99;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#ffffffe6;font-weight:500;cursor:pointer;transition:all .3s ease;font-size:.875rem}#reset-btn{background:#9a0824;color:#fff;border-color:#9a0824}#reset-btn:hover{background:#be0a2d;border-color:#be0a2d}#reset-btn{background:#ef444426;border-color:#ef44444d;color:#ef4444}#reset-btn:hover{background:#ef444440;border-color:#ef444480;transform:translateY(-1px)}#download-btn{background:#3b82f626;border-color:#3b82f64d;color:#3b82f6}#download-btn:hover{background:#3b82f640;border-color:#3b82f680;transform:translateY(-1px)}.canvas-area{flex:1;display:flex;flex-direction:column;background:radial-gradient(ellipse at center,#1f293733,#0f0f0f4d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;min-height:0;padding:1.5rem}.upload-zones{display:flex;gap:1rem;padding:1.5rem;background:#1e1e2dcc;border-bottom:1px solid rgba(255,255,255,.05);height:min-content;justify-content:center}.upload-zone{flex:1;max-width:200px;min-height:150px;height:auto;aspect-ratio:1 / 1;background:#28283c4d;border:2px dashed rgba(255,255,255,.2);border-radius:12px;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.upload-zone-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem;text-align:center;width:100%;height:100%}.upload-zone .thumbnail-preview{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#14141ee6;z-index:0;border-radius:12px}.upload-zone .thumbnail-preview img{max-width:90%;max-height:90%;object-fit:contain;border-radius:8px;opacity:1}.upload-zone-content .upload-icon,.upload-zone-content .upload-title,.upload-zone-content .upload-subtitle{position:relative;z-index:1}.upload-zone.has-thumbnail .upload-zone-content .upload-icon,.upload-zone.has-thumbnail .upload-zone-content .upload-title,.upload-zone.has-thumbnail .upload-zone-content .upload-subtitle{display:none}#text-layer-zone{position:relative}.text-preview-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:10%;pointer-events:none;z-index:0}.text-preview-frame{width:100%;height:100%;border:1px solid rgba(255,255,255,.1);border-radius:4px;position:relative;overflow:hidden;background:#28283c1a}.text-preview-content{position:absolute;white-space:nowrap;color:#fff;font-size:12px;transform-origin:center;pointer-events:none;text-shadow:1px 1px 2px rgba(0,0,0,.8);opacity:.4}#text-layer-zone .upload-zone-content .upload-icon,#text-layer-zone .upload-zone-content .upload-title,#text-layer-zone .upload-zone-content .upload-subtitle{position:relative;z-index:1}#text-layer-zone.has-text .upload-zone-content .upload-icon,#text-layer-zone.has-text .upload-zone-content .upload-title,#text-layer-zone.has-text .upload-zone-content .upload-subtitle{display:none}#text-layer-zone.has-text .text-preview-container{z-index:1}#text-layer-zone.has-text .text-preview-content{opacity:1}.upload-zone:hover{background:#28283c80;border-color:#4ecdc4}.upload-zone.has-content{background:#4ecdc41a;border-color:#4ecdc4}.upload-icon{font-size:2rem;color:#6b7280}.upload-title{font-size:.875rem;color:#fff;font-weight:500}.upload-subtitle{font-size:.75rem;color:#6b7280}.upload-area{margin:1.5rem;padding:1rem 2rem;background:#28283c4d;border:2px dashed rgba(255,255,255,.2);border-radius:12px;text-align:center;cursor:pointer;transition:all .3s;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:1.5rem;min-height:60px;max-height:80px}.upload-area:hover{background:#28283c80;border-color:#4ecdc4}.upload-area.dragover{background:#4ecdc41a;border-color:#4ecdc4}.canvas-container{flex:1;display:flex;justify-content:center;align-items:center;padding:2rem;overflow:hidden;background:transparent;height:100%;width:100%;box-sizing:border-box}.canvas-placeholder{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem;aspect-ratio:1.414 / 1;width:90%;height:90%;max-width:min(90%,calc(90vh * 1.414));max-height:min(90%,calc(90vw / 1.414));box-sizing:border-box;border:2px dashed rgba(255,255,255,.2);border-radius:8px;color:#6b7280;text-align:center;background:#28283c33;cursor:pointer;transition:all .3s ease}.canvas-placeholder:hover{border-color:#1f9ced;background:#1f9ced1a;color:#9ca3af}.canvas-placeholder.dragover{border-color:#4ecdc4;background:#4ecdc426;color:#4ecdc4}.canvas-container:not(.is-empty) .canvas-placeholder{display:none}.canvas-container.is-empty canvas{display:none!important}.canvas-container.is-empty .canvas-placeholder{position:relative;z-index:10}.canvas-container canvas{display:block;margin:0 auto;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 4px 15px #0000001a;background:transparent;cursor:move}input[type=file]{display:none}input[type=color]{position:absolute;visibility:hidden}.main-footer{padding:1rem 0;text-align:center;color:#a1a1aa;border-top:1px solid #2a3b5a;margin-top:auto;background-color:#0a0a0a;flex-shrink:0}.main-footer .container{max-width:1200px;margin:0 auto;padding:0 20px}.main-footer .footer-content{display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap}.main-footer .coffee-link{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;border:1px solid #444;color:#666;text-decoration:none;font-size:12px;transition:all .3s}.main-footer .coffee-link:hover{border-color:#fd0;color:#fd0}@media (max-width: 768px){body{overflow-x:hidden;overflow-y:auto}.header{padding:.5rem 1rem;flex-wrap:wrap}.logo-text{font-size:1.2rem}.main-nav{display:none}.header-actions{gap:.5rem;display:flex;align-items:center}.tier-badge{padding:.5rem .75rem;font-size:.85rem;min-width:80px;text-align:center}.login-btn{padding:.5rem .75rem;font-size:.85rem;min-width:80px}.main-container{flex-direction:column;min-height:auto}.canvas-area{width:100%;height:auto;padding:.5rem;order:1}.upload-zones{gap:.5rem;margin-bottom:1rem}.upload-zone{width:31%;max-width:100px;aspect-ratio:1 / 1}.upload-zone-content .upload-icon{font-size:1.5rem}.upload-zone-content .upload-title{font-size:.65rem;line-height:1.2}.upload-zone-content .upload-subtitle{display:none}.canvas-container{width:100%;height:calc(100dvh - 140px);height:calc(100vh - 140px);margin-bottom:0;background:transparent;border:none;border-radius:0}.canvas-placeholder{aspect-ratio:1 / 1.414;max-width:calc(100% - 2rem);max-height:calc(100% - 2rem);padding:2rem}.sidebar{width:100%;height:auto;max-height:60vh;overflow-y:auto;padding:.5rem 1rem 1rem;border-right:none;border-top:1px solid #2a2a3e;order:3;overscroll-behavior-y:contain}.sidebar:before{content:"";display:block;width:40px;height:4px;background:#ffffff40;border-radius:2px;margin:4px auto 12px}.sidebar-section{margin-bottom:.5rem}.section-title{padding:.75rem;background:#1a1a2e;border-radius:8px;border-bottom:none;cursor:pointer;position:relative;margin:.75rem 0 .5rem}.section-title:after{content:"▼";position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:.8rem;transition:transform .3s}.sidebar-section.collapsed .section-title:after{transform:translateY(-50%) rotate(-90deg)}.sidebar-section.collapsed .control-group,.sidebar-section.collapsed .color-group,.sidebar-section.collapsed select,.sidebar-section.collapsed .font-select{display:none}.control-group{padding:.5rem}.control-label{font-size:.8rem}.slider{height:6px}input[type=range]{padding:10px 0}input[type=range]::-webkit-slider-thumb{width:28px;height:28px}input[type=range]::-moz-range-thumb{width:28px;height:28px}.sidebar .action-buttons{display:none}.mobile-action-buttons{display:flex;justify-content:center;gap:1rem;padding:1rem;background:#16162a;border-top:1px solid #2a2a3e;border-bottom:1px solid #2a2a3e;margin:0;order:2;width:100%}.action-buttons button{padding:.6rem 1.2rem;font-size:.9rem;flex:1;max-width:150px}.main-footer{margin-top:1rem;padding:.75rem 0}.main-footer .footer-content{flex-direction:column;gap:1rem;font-size:.8rem}.process-buttons{flex-direction:row;justify-content:center;padding:0 2rem}.process-btn{max-width:140px;font-size:.8rem;padding:.6rem .5rem}.view-mode-section{display:block!important;order:1.5;padding:1rem;background:#16162a;border-top:1px solid #2a2a3e;border-bottom:1px solid #2a2a3e;width:100%}.view-mode-section .section-title{font-size:.9rem;margin-bottom:.5rem;text-align:center}.view-mode-buttons{gap:.5rem}.view-mode-btn{font-size:.8rem;padding:.4rem}#processing-display{position:fixed;bottom:50%;transform:translateY(50%);width:90%;padding:.75rem;z-index:200}}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;gap:2rem}.loading-spinner{width:60px;height:60px;border:4px solid rgba(31,156,237,.2);border-top-color:#1f9ced;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-message{font-size:1.5rem;font-weight:500;color:#fff;text-align:center;max-width:400px;padding:0 1rem;line-height:1.4;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes mg-welcome-toast-in{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.error-container{position:fixed;top:100px;left:50%;transform:translate(-50%);background:#ef4444;color:#fff;padding:1rem 2rem;border-radius:8px;z-index:10000;display:none;max-width:90%;text-align:center;box-shadow:0 4px 20px #ef444466}.success-container{position:fixed;top:100px;left:50%;transform:translate(-50%);background:#22c55e;color:#fff;padding:1rem 2rem;border-radius:8px;z-index:10000;display:none;max-width:90%;text-align:center;box-shadow:0 4px 20px #22c55e66}@media (prefers-reduced-motion: no-preference){.action-btn,.process-btn,.login-btn,.upgrade-btn{transition:opacity .15s ease-out,transform .1s ease-out,background .15s ease-out}.action-btn:hover,.process-btn:hover,.login-btn:hover,.upgrade-btn:hover{transform:translateY(-1px)}.action-btn:active,.process-btn:active,.login-btn:active,.upgrade-btn:active{transform:translateY(0)}.sidebar-section{transition:max-height .25s ease-out,opacity .2s ease-out;overflow:hidden}.color-preview{transition:background-color .1s ease-out}input[type=range]::-webkit-slider-thumb{transition:transform .1s ease-out}input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.2)}.loading-overlay{transition:opacity .2s ease-out}.error-container,.success-container{transition:transform .2s ease-out,opacity .2s ease-out}.canvas-placeholder{transition:opacity .3s ease-out}.upload-zone-content{transition:border-color .15s ease-out,background-color .15s ease-out}}
