*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ocean:#313590;--black:#000;--white:#fff;--near-black:#1a1a1a;--bg:#e5eaf1;--bgpanel:#fff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#d1d5db;--gray-300b:#cbd5e1;--gray-400:#94a3b8;--gray-400b:#9ca3af;--gray-500:#64748b;--gray-600:#475569;--gray-700:#374151;--green-50:#f0fdf4;--green-300:#86efac;--green-500:#22c55e;--green-700:#16a34a;--green-900:#166534;--yellow-100:#fef3c7;--yellow-500:#f59e0b;--amber-900:#92400e;--blue-50:#eff6ff;--font:"Plus Jakarta Sans", sans-serif;--spring:cubic-bezier(.34, 1.56, .64, 1);--expo-out:cubic-bezier(.16, 1, .3, 1);--smooth:cubic-bezier(.25, 1, .5, 1)}body{font-family:var(--font);-webkit-user-select:none;user-select:none;background:#fff;height:100vh;overflow:hidden}.workspace{flex-direction:row;justify-content:center;align-items:center;gap:32px;width:100%;max-width:1600px;height:100%;margin:0 auto;padding:24px 24px 36px;display:flex}.panel-left{background:var(--white);width:286px;animation:enter-up .5s var(--expo-out) both;border:4px solid #000;border-radius:16px;flex-direction:column;flex-shrink:0;gap:20px;padding:32px;display:flex;box-shadow:0 8px #000}.app-title{color:var(--black);letter-spacing:-.5px;font-size:24px;font-weight:800;line-height:1.15}.how-to-use{background:var(--gray-50);border:1.5px solid var(--gray-200);color:var(--gray-500);border-radius:12px;margin-top:auto;padding:14px 16px;font-size:13px;line-height:1.9}.how-to-use strong{color:var(--black);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px;display:block}.panel-center{width:80vh;height:90vh;animation:enter-up .5s var(--expo-out) 40ms both;background:#fff;border:4px solid #000;border-radius:36px;flex-direction:column;flex-shrink:0;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 8px #000}.stepper{border-top:2px solid var(--gray-200);flex-shrink:0;align-items:center;width:80vh;padding:18px 28px;display:flex}.step-item{align-items:center;gap:8px;display:flex}.step-num{background:var(--gray-200);width:28px;height:28px;color:var(--gray-400);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;transition:background .25s,color .25s;display:flex}.step-label{color:var(--gray-400);white-space:nowrap;font-size:12px;font-weight:600;transition:color .25s}.step-connector{background:var(--gray-200);flex:1;min-width:20px;height:1.5px;margin:0 10px;transition:background .25s}.step-item.active .step-num{color:#fff;background:#000}.step-item.active .step-label{color:#000;font-weight:700}.step-item.completed .step-num{background:var(--green-500);color:#fff}.step-item.completed~.step-connector{background:var(--green-500)}.canvas-area{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.empty-state{color:var(--gray-400);text-align:center;animation:fade-in .3s var(--smooth) both;flex-direction:column;align-items:center;gap:12px;padding:48px 32px;display:flex}.empty-state p{font-size:14px;font-weight:600;line-height:1.5}.canvas-loading{color:var(--gray-500);z-index:30;opacity:0;pointer-events:none;background:#fffc;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:600;transition:opacity .2s;display:flex;position:absolute;inset:0}.canvas-loading.visible{opacity:1;pointer-events:auto}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--gray-200);border-top-color:#000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}#phoneCanvas{cursor:grab;max-width:100%;max-height:100%;display:none}#phoneCanvas.dragging{cursor:grabbing}.canvas-float-hint{color:#fff;white-space:nowrap;pointer-events:none;background:#000000b3;border-radius:100px;padding:8px 18px;font-size:13px;font-weight:500;display:none;position:absolute;bottom:93%;left:50%;transform:translate(-50%)}.panel-right{background:var(--white);width:286px;animation:enter-up .5s var(--expo-out) 80ms both;border:4px solid #000;border-radius:16px;flex-direction:column;flex-shrink:0;padding:32px;display:flex;overflow-y:auto;box-shadow:0 8px #000}.panel-right-title{color:var(--near-black);letter-spacing:-.3px;margin-bottom:16px;font-size:16px;font-weight:800}.step-panel{flex-direction:column;flex:1;gap:14px;display:flex}.inline-layer{flex-direction:column;gap:12px;display:flex}.field-label{text-transform:uppercase;letter-spacing:.09em;color:var(--gray-500);font-size:11px;font-weight:700}.brands-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.brand-chip{border:2px solid var(--gray-300);background:var(--white);color:#000;width:100%;font-family:var(--font);cursor:pointer;text-align:center;border-radius:12px;padding:12px 8px;font-size:14px;font-weight:600;transition:all .2s}.brand-chip:hover{background:var(--gray-100);border-color:#000}.brand-chip.active{background:var(--white);color:#000;border-color:#000;font-weight:600}.series-scroll{grid-template-columns:1fr 1fr;gap:10px;display:grid}.series-chip{border:2px solid var(--gray-300);background:var(--white);color:#000;width:100%;font-family:var(--font);cursor:pointer;text-align:center;word-break:break-word;border-radius:12px;padding:12px 10px;font-size:14px;font-weight:600;transition:all .2s}.series-chip:hover{background:var(--gray-100);border-color:#000}.series-chip.active{color:var(--white);background:#000;border-color:#000}.models-list{grid-template-columns:1fr 1fr;gap:10px;display:grid}.model-item{border:2px solid var(--gray-200);background:var(--white);color:#000;width:100%;font-family:var(--font);cursor:pointer;text-align:center;word-break:break-word;border-radius:12px;padding:12px 8px;font-size:13px;font-weight:500;line-height:1.3;transition:all .2s}.model-item:hover{background:var(--gray-100);border-color:var(--gray-300b)}.model-item.active{color:var(--white);background:#000;border-color:#000;font-weight:600}.dropdown-back{color:var(--gray-500);font-family:var(--font);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 4px;font-size:12px;font-weight:600;transition:color .15s;display:flex}.dropdown-back:hover{color:#000}.dropdown-back svg{width:14px;height:14px}.model-selected-badge{background:var(--green-50);border:1.5px solid var(--green-300);color:var(--green-900);border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:none}.upload-btn{width:100%;font-family:var(--font);color:#000;background:var(--white);cursor:pointer;transition:transform .26s var(--spring), box-shadow .26s var(--spring), background .15s ease;border:3px solid #000;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:13px 18px;font-size:14px;font-weight:700;display:flex;box-shadow:3px 3px #000}.upload-btn:hover:not(:disabled){background:var(--gray-50);transform:translate(-2px,-3px);box-shadow:5px 6px #000}.upload-btn:active:not(:disabled){transition:transform 80ms,box-shadow 80ms;transform:translate(2px,2px);box-shadow:1px 1px #000}.upload-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.upload-status{color:var(--green-700);align-items:center;gap:6px;font-size:12px;font-weight:600;display:none}.wizard-toolbar{justify-content:space-between;gap:8px;display:flex}.wizard-tool-btn{border:2px solid var(--gray-200);cursor:pointer;height:48px;color:var(--gray-700);transition:background .15s ease, border-color .15s ease, transform .22s var(--spring);background:#fff;border-radius:12px;flex:1;justify-content:center;align-items:center;display:flex}.wizard-tool-btn:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-300b);transform:scale(1.08)}.wizard-tool-btn:active:not(:disabled){transition:transform 80ms;transform:scale(.88)}.wizard-tool-btn:disabled{opacity:.28;cursor:not-allowed}#slotControlsPanel{flex-direction:column;gap:8px;width:100%}.slot-controls-row{gap:8px;width:100%;display:flex}.slot-scale-btn{flex:1}.slot-aspect-btn{letter-spacing:.06em;color:var(--gray-700);background:var(--gray-50);flex:1.5;font-size:13px;font-weight:700}.slot-aspect-btn:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-300b)}.dpad-wrap{filter:drop-shadow(0 2px 6px #00000014);width:132px;height:132px;margin:4px auto;position:relative}.dpad-bg{background:var(--gray-100);clip-path:polygon(33.3% 0%,66.7% 0%,66.7% 33.3%,100% 33.3%,100% 66.7%,66.7% 66.7%,66.7% 100%,33.3% 100%,33.3% 66.7%,0% 66.7%,0% 33.3%,33.3% 33.3%);position:absolute;inset:0}.dpad-grid{grid-template-rows:repeat(3,44px);grid-template-columns:repeat(3,44px);display:grid;position:absolute;inset:0}.dpad-btn{cursor:pointer;width:44px;height:44px;color:var(--gray-700);transition:background .12s ease, color .12s ease, transform .18s var(--spring);-webkit-tap-highlight-color:transparent;border:none;border:2px solid var(--gray-200);background:0 0;border-radius:12px;outline:none;justify-content:center;align-items:center;display:flex}.dpad-up{border-radius:6px 6px 0 0}.dpad-down{border-radius:0 0 6px 6px}.dpad-left{border-radius:6px 0 0 6px}.dpad-right{border-radius:0 6px 6px 0}.dpad-center-dot{pointer-events:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.dpad-center-dot:after{content:"";background:var(--gray-300);border-radius:50%;width:7px;height:7px}.dpad-btn:hover:not(:disabled){color:var(--gray-700);background:#64748b24;transform:scale(1.12)}.dpad-btn:active:not(:disabled){color:var(--gray-700);background:#64748b40;transition:transform 80ms;transform:scale(.88)}.dpad-btn:disabled{opacity:.32;cursor:not-allowed}.indicators-row{flex-wrap:wrap;gap:8px;display:flex}.scale-pill,.rotation-pill{background:var(--gray-100);color:var(--gray-600);border-radius:100px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-flex}.layout-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.layout-btn{aspect-ratio:unset;font-size:11px;font-weight:700;font-family:var(--font);border:2px solid var(--gray-300);cursor:pointer;color:var(--gray-500);background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:6px;transition:border-color .15s,background .15s,color .15s;display:flex}.layout-btn:hover{background:var(--gray-100);color:#000;border-color:#000}.layout-btn.active{color:#fff;background:#000;border-color:#000}.slot-indicator,.slot-selector-step3{flex-direction:column;gap:8px;display:flex}.slot-dots{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.slot-dot{border:2px solid var(--gray-300);cursor:pointer;width:28px;height:28px;color:var(--gray-500);font-size:11px;font-weight:700;font-family:var(--font);background:#fff;border-radius:8px;justify-content:center;align-items:center;line-height:1;transition:all .15s;display:flex}.slot-dot:hover{background:var(--gray-100);color:#000;border-color:#000}.slot-dot.active{border-color:var(--ocean);background:var(--ocean);color:#fff}.slot-dot.has-img{border-color:var(--green-500);background:var(--green-50);color:var(--green-900)}.slot-dot.active.has-img{border-color:var(--ocean);background:var(--ocean);color:#fff}.dpi-toast{background:var(--yellow-100);border:2px solid var(--yellow-500);color:var(--amber-900);font-size:13px;font-weight:600;font-family:var(--font);z-index:10000;transition:transform .35s var(--spring), opacity .35s ease;opacity:0;pointer-events:none;white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:10px 18px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(80px);box-shadow:0 4px 16px #00000024}.dpi-toast.visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.model-name-display{background:var(--gray-50);border:1.5px solid var(--gray-200);border-radius:12px;padding:14px 16px}.model-name-display .label{text-transform:uppercase;letter-spacing:.09em;color:var(--gray-400);margin-bottom:4px;font-size:11px;font-weight:700}.model-name-display .name{color:var(--near-black);font-size:15px;font-weight:700}.download-btn{width:100%;font-family:var(--font);color:var(--blue-50);background:var(--black);cursor:pointer;letter-spacing:-.2px;transition:transform .26s var(--spring), box-shadow .26s var(--spring);border:3px solid #000;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:15px 20px;font-size:15px;font-weight:800;display:flex;box-shadow:3px 3px #000}.download-btn:hover:not(:disabled){transform:translate(-2px,-3px);box-shadow:5px 6px #000}.download-btn:active:not(:disabled){transition:transform 80ms,box-shadow 80ms;transform:translate(2px,2px);box-shadow:1px 1px #000}.download-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.wizard-nav{border-top:1px solid var(--gray-100);flex-shrink:0;gap:8px;margin-top:16px;padding-top:16px;display:flex}.wizard-nav.solo-prev{justify-content:center}.wizard-nav.solo-prev .nav-prev{min-width:140px;max-width:180px;flex:none!important}.nav-btn{font-family:var(--font);cursor:pointer;white-space:nowrap;border-radius:10px;flex:1;padding:12px 16px;font-size:14px;font-weight:700;transition:all .2s}.nav-prev{border:1.5px solid var(--gray-300);color:var(--gray-500);background:#fff}.nav-prev:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400b)}.nav-next{color:#fff;background:#000;border:2px solid #000}.nav-next:hover:not(:disabled){background:var(--near-black)}.nav-btn:disabled{opacity:.35;cursor:not-allowed}.logo-area{justify-content:center;width:100%;display:flex}@keyframes enter-up{0%{opacity:0;transform:translateY(22px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes canvas-enter{0%{opacity:0;transform:scale(.94)}55%{transform:scale(1.018)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-down{0%{opacity:0;transform:translateY(-6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pill-bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}#phoneCanvas.entering{animation:canvas-enter .4s var(--spring) both}.upload-status.animating{animation:slide-in-down .3s var(--spring) both}.pill-bump{animation:pill-bump .3s var(--spring)}#modelSelect,#btnReset{display:none}#loader-screen{z-index:999999;background:#fff;justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Plus Jakarta Sans,sans-serif;transition:opacity .5s,visibility .5s;display:flex;position:fixed;top:0;left:0}#loader-screen.loader-hidden{opacity:0;visibility:hidden;pointer-events:none}#loader-screen .loader-card{background:#fff;border:4px solid #000;border-radius:15px;flex-direction:column;align-items:center;gap:24px;padding:40px 48px;display:flex;box-shadow:0 8px #000}#loader-screen .loader-icon{animation:1.6s ease-in-out infinite loader-pulse}@keyframes loader-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}#loader-screen p{color:#000;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:13px;font-weight:800}@media (width<=1024px){body{height:auto;min-height:100vh;overflow-y:auto}.workspace{flex-direction:column;align-items:center;gap:16px;height:auto;min-height:100vh;padding:20px 16px 36px}.panel-left,.panel-right{box-sizing:border-box;border:2.61px solid #000;border-radius:15.22px;width:318.58px;max-width:calc(100vw - 32px);padding:20px 22px;box-shadow:0 5.22px #000}.panel-left{flex-shrink:0}.panel-right{flex-shrink:0;overflow-y:visible}.panel-center{box-sizing:border-box;border:2.61px solid #000;border-radius:32.64px;flex-shrink:0;width:318.58px;max-width:calc(100vw - 32px);height:537.58px;box-shadow:0 5.22px #000}.stepper{padding:12px 14px}.step-num{width:18.28px;height:18.28px;font-size:9px}.step-label{white-space:nowrap;font-size:9.5px}.step-connector{min-width:8px;margin:0 4px}.app-title{font-size:20px}.step-panel{gap:12px}.wizard-nav{margin-top:12px;padding-top:12px}}#versionBadge{color:#fff;pointer-events:none;z-index:9999;letter-spacing:.03em;background:#00000080;border-radius:4px;padding:3px 8px;font-family:monospace;font-size:11px;position:fixed;bottom:10px;right:12px}
