:root{--bg:#0f1012;--panel:#17191d;--panel-strong:#202329;--line:#343841;--line-soft:#262a31;--text:#f5f6f8;--muted:#aeb5c1;--muted-2:#7d8795;--accent:#35c486;--accent-strong:#19a86c;--blue:#6aa8ff;--amber:#f2b84b;--danger:#ff6f6f;--shadow:rgba(0,0,0,0.34);--page-glow:rgba(255,255,255,0.035);--button-bg:#23262d;--button-hover-bg:#2a2e36;--button-hover-border:#4a505c;--primary-text:#06140e;--primary-hover:#45d997;--control-bg:#111419;--control-active:#2a2f37;--upload-bg:#13161a;--upload-gradient:rgba(53,196,134,0.1);--upload-active-bg:#17241e;--upload-border:#596172;--preview-bg:#0c0d0f;--checker-bg:#9aa1ad;--checker-square:#777f8d;--badge-bg:rgba(15,16,18,0.78);--badge-border:rgba(255,255,255,0.16);--error-text:#ffc2c2;--progress-bg:#282d35}[data-theme=light]{--bg:#f3f5f7;--panel:#ffffff;--panel-strong:#f8fafc;--line:#cbd3df;--line-soft:#e0e5ed;--text:#111827;--muted:#526071;--muted-2:#778397;--accent:#0f9f68;--accent-strong:#08794e;--blue:#2563eb;--amber:#b7791f;--danger:#d83b3b;--shadow:rgba(17,24,39,0.12);--page-glow:rgba(15,159,104,0.08);--button-bg:#ffffff;--button-hover-bg:#f2f6fa;--button-hover-border:#aab6c5;--primary-text:#ffffff;--primary-hover:#0b8f5d;--control-bg:#eef2f6;--control-active:#ffffff;--upload-bg:#fbfcfd;--upload-gradient:rgba(15,159,104,0.1);--upload-active-bg:#eefbf5;--upload-border:#a3adba;--preview-bg:#e9edf3;--checker-bg:#cdd3dd;--checker-square:#aeb7c4;--badge-bg:rgba(255,255,255,0.86);--badge-border:rgba(17,24,39,0.14);--error-text:#9f2424;--progress-bg:#d8dee8}html[data-app-ready=false] body{visibility:hidden}*{box-sizing:border-box}body,html{width:100%;min-height:100%;margin:0;background:linear-gradient(180deg,var(--page-glow),transparent 28%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{border:1px solid var(--line);background:var(--button-bg);color:var(--text);border-radius:8px;min-height:42px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}button:hover:not(:disabled){border-color:var(--button-hover-border);background:var(--button-hover-bg)}button:disabled{opacity:.48;cursor:not-allowed}button[data-variant=primary]{border-color:var(--accent);background:var(--accent);color:var(--primary-text);font-weight:750}button[data-variant=primary]:hover:not(:disabled){background:var(--primary-hover)}.experience-shell{width:100%;min-height:100dvh;display:grid;grid-template-columns:minmax(420px,520px) minmax(0,1fr);grid-gap:18px;gap:18px;padding:18px}.intro-panel,.work-panel{min-width:0;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--panel) 94%,transparent);box-shadow:0 18px 50px var(--shadow)}.intro-panel{border-radius:14px;padding:26px;display:flex;flex-direction:column;gap:24px}.brand-mark{display:inline-flex;align-items:center;gap:12px;min-width:0;color:var(--accent);font-size:18px;line-height:1.1;font-weight:850}.brand-mark span{color:var(--text);max-width:18em}.intro-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.top-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 108px}.locale-switcher,.theme-switcher{flex:0 0 auto;min-height:34px;display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--line-soft);border-radius:8px;background:var(--control-bg);color:var(--muted)}.locale-switcher button,.theme-switcher button{min-height:28px;padding:0 9px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12px}.theme-switcher button{width:30px;padding:0}.locale-switcher button[data-active=true],.theme-switcher button[data-active=true]{background:var(--control-active);color:var(--text);box-shadow:0 1px 4px var(--shadow)}.intro-copy h1{margin:0;max-width:9.5em;font-size:48px;line-height:1.05;letter-spacing:0}.intro-copy p{margin:18px 0 0;color:var(--muted);font-size:16px;line-height:1.75}html[lang=en] .intro-copy p{margin-top:14px;font-size:14px;line-height:1.58}html[lang=en] .intro-panel{gap:20px}html[lang=en] .upload-card{min-height:172px;padding:22px}.upload-card{border:1px dashed var(--upload-border);border-radius:10px;min-height:188px;padding:24px;background:linear-gradient(135deg,var(--upload-gradient),transparent 52%),var(--upload-bg);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;cursor:pointer}.upload-card[data-dragging=true]{border-color:var(--accent);background:var(--upload-active-bg)}.upload-card input{display:none}.upload-card strong{font-size:18px}.upload-card span:last-child{color:var(--muted);line-height:1.45}.upload-icon{width:48px;height:48px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.trust-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.trust-grid div{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--line-soft);border-radius:8px;color:var(--muted);background:var(--panel)}.trust-grid svg{color:var(--blue);flex:0 0 auto}.action-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:auto}.work-panel{border-radius:14px;display:grid;grid-template-rows:auto minmax(360px,1fr) auto;overflow:hidden}.work-header{min-height:72px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 18px;background:var(--panel)}.work-header div{min-width:0}.work-header span{display:block;color:var(--muted-2);font-size:12px;margin-bottom:4px}.work-header strong{display:block;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-frame{position:relative;min-height:360px;overflow:hidden;background:var(--preview-bg)}.pixi-stage{position:absolute;inset:0;background-color:var(--checker-bg);background-image:linear-gradient(45deg,var(--checker-square) 25%,transparent 25%),linear-gradient(-45deg,var(--checker-square) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--checker-square) 75%),linear-gradient(-45deg,transparent 75%,var(--checker-square) 75%);background-size:28px 28px;background-position:0 0,0 14px,14px -14px,-14px 0}.preview-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;grid-gap:10px;gap:10px;text-align:center;color:var(--text);padding:24px;pointer-events:none}.preview-empty svg{color:var(--accent)}.preview-empty strong{font-size:18px}.preview-empty span{max-width:34em;color:var(--muted);font-size:14px;line-height:1.5}.processing-badge{position:absolute;top:16px;left:16px;min-height:34px;padding:0 12px;display:inline-flex;align-items:center;gap:8px;border-radius:8px;border:1px solid var(--badge-border);background:var(--badge-bg);color:var(--text);font-size:13px}.process-panel{border-top:1px solid var(--line-soft);padding:18px;background:var(--panel)}.process-panel[data-tone=error]{border-top-color:color-mix(in srgb,var(--danger) 36%,transparent)}.status-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.status-head span{display:block;color:var(--muted-2);font-size:12px;margin-bottom:3px}.status-head strong{font-size:18px}.status-head svg{color:var(--accent)}.process-panel[data-tone=error] .status-head svg{color:var(--danger)}.error-message,.status-message{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.error-message{color:var(--error-text)}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:16px}.step-item{min-width:0;min-height:82px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel-strong);padding:12px;display:grid;grid-template-columns:22px minmax(0,1fr);grid-gap:9px;gap:9px;align-items:start}.step-item[data-state=done]{border-color:color-mix(in srgb,var(--accent) 44%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.step-item[data-state=active]{border-color:color-mix(in srgb,var(--blue) 52%,transparent);background:color-mix(in srgb,var(--blue) 10%,transparent)}.step-item[data-state=error]{border-color:color-mix(in srgb,var(--danger) 52%,transparent)}.step-dot{width:22px;height:22px;border-radius:999px;border:1px solid var(--button-hover-border);display:grid;place-items:center;color:var(--muted-2)}.step-item[data-state=done] .step-dot{border-color:var(--accent);color:var(--accent)}.step-item[data-state=active] .step-dot{border-color:var(--blue);color:var(--blue)}.step-item[data-state=error] .step-dot{border-color:var(--danger);color:var(--danger)}.step-item small,.step-item strong{display:block}.step-item strong{font-size:13px;margin-bottom:5px}.step-item small{color:var(--muted-2);font-size:12px;line-height:1.35}.progress-block{margin-top:14px}.progress-label{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:8px}.progress-track{height:8px;border-radius:999px;background:var(--progress-bg);overflow:hidden}.progress-track span{display:block;height:100%;min-width:8%;border-radius:inherit;background:var(--accent);transition:width .18s ease}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1040px){.experience-shell{grid-template-columns:1fr}.intro-copy h1{max-width:14em;font-size:38px}.trust-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.experience-shell{padding:10px;gap:10px}.intro-panel{padding:18px}.intro-top{align-items:flex-start;flex-direction:column;gap:14px}.top-controls{justify-content:flex-start;flex-basis:auto}.intro-copy h1{font-size:30px}.action-row,.steps,.trust-grid{grid-template-columns:1fr}.work-header{align-items:stretch;flex-direction:column;justify-content:center;padding:14px}.work-header button{width:100%}.preview-frame{min-height:300px}}