:root{--bg:#07111e;--panel:#0c1a2b;--line:#213a57;--text:#f3f8ff;--muted:#91a6bd;--cyan:#74e7de;--blue:#79adff;--coral:#ff806f;--shadow:0 24px 70px #02081299}*{box-sizing:border-box}body{color:var(--text);background:radial-gradient(circle at 75% 15%,#15365b 0,#07111e 43%,#050b14 100%);min-height:100vh;margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.shell{min-height:100vh}.topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#081524b8;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;height:68px;padding:0 32px;display:flex}.brand{align-items:center;gap:9px;font-size:16px;font-weight:720;display:flex}.brand-mark{color:var(--cyan);font-size:20px}.meta,.subtle{color:var(--muted);font-size:12px}.meta i{vertical-align:middle;background:#607890;border-radius:50%;width:3px;height:3px;margin:0 9px;display:inline-block}.workspace{grid-template-columns:340px minmax(0,1fr);min-height:calc(100vh - 68px);display:grid}.control-panel{background:linear-gradient(#0b1a2bbc,#091522e8);border-right:1px solid #ffffff12;flex-direction:column;gap:14px;padding:28px 24px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--cyan);margin:0;font-size:10px;font-weight:750}.control-panel h1,.access-card h1{letter-spacing:-.045em;margin:0;font-size:27px;line-height:1.08}.subtle{margin:0 0 7px}label{text-transform:uppercase;letter-spacing:.09em;color:#afc0d2;gap:6px;font-size:11px;font-weight:700;display:grid}select,textarea,input{font:inherit;color:var(--text);border:1px solid var(--line);background:#081525;border-radius:9px;outline:none;padding:10px 11px}select:focus,textarea:focus,input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #74e7de18}select{height:40px}textarea{resize:vertical;min-height:80px;line-height:1.45}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{color:#b8cadc;text-align:left;background:#ffffff08;border:1px solid #ffffff12;padding:6px 8px;font-size:10px}.chip:hover{color:#fff;border-color:#74e7de88}.generate,.access-card form button{background:linear-gradient(135deg,var(--cyan),#8badff);color:#04202a;cursor:pointer;font-weight:800;font:inherit;border:0;border-radius:10px;padding:12px}.generate:disabled{opacity:.6;cursor:wait}.status{color:var(--muted);align-items:center;gap:8px;margin-top:3px;font-size:11px;display:flex}.dot,.pulse-dot{background:var(--cyan);border-radius:50%;flex:none;width:7px;height:7px}.pulse-dot{animation:.8s infinite blink}@keyframes blink{50%{opacity:.25;transform:scale(.65)}}.error{color:#ff9b8d}.retry{background:#ff806f12;border:1px solid #ff806f36;border-radius:8px;padding:9px;font-size:11px}.stage-wrap{background:radial-gradient(at 50% 20%,#132e4e,#07101d 70%);min-height:600px;position:relative;overflow:hidden}.scene-canvas{position:absolute;inset:0}.scene-canvas canvas{width:100%;height:100%;display:block}.empty{text-align:center;color:var(--muted);pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.empty span{color:#5f9ca7;font-size:28px}.empty p{max-width:230px;font-size:13px}.scene-badge{letter-spacing:.08em;color:var(--cyan);background:#07111ebf;border:1px solid #74e7de55;border-radius:999px;padding:7px 9px;font-size:10px;position:absolute;top:20px;right:22px}.caption-card{max-width:480px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#081525e6;border:1px solid #fff2;border-radius:14px;padding:18px 19px;position:absolute;bottom:22px;left:22px}.caption-card h2{letter-spacing:-.03em;margin:7px 0 15px;font-size:20px;line-height:1.18}.ai-decision{color:#b8c8d6;border-top:1px solid #ffffff12;grid-template-columns:110px 1fr;gap:5px 10px;padding-top:12px;font-size:11px;display:grid}.ai-decision strong{color:var(--cyan);font-weight:700}.ai-decision p{margin:0}.caption-card small{color:#7890a8;margin-top:13px;font-size:10px;display:block}.code-details{background:#081525;border:1px solid #ffffff13;border-radius:10px;margin:0 24px 24px;padding:14px 16px}.code-details summary{cursor:pointer;color:var(--muted);font-size:12px}.code-details pre{white-space:pre-wrap;color:#b9d1dd;max-height:260px;font-size:11px;line-height:1.5;overflow:auto}.access-card{width:min(560px,100% - 40px);box-shadow:var(--shadow);background:#091827dd;border:1px solid #ffffff1b;border-radius:20px;margin:12vh auto;padding:36px}.access-card h1{margin:10px 0 14px;font-size:38px}.access-card>p:not(.eyebrow){color:var(--muted);max-width:440px}.access-card form{gap:8px;margin-top:24px;display:flex}.access-card input{flex:1;min-width:0}.access-card form button{white-space:nowrap}@media (max-width:800px){.topbar{padding:0 18px}.meta{display:none}.workspace{grid-template-columns:1fr}.control-panel{border-bottom:1px solid #ffffff12;border-right:0}.stage-wrap{min-height:520px}.caption-card{bottom:16px;left:16px;right:16px}.control-panel h1{font-size:24px}}@media (max-width:480px){.access-card{padding:24px}.access-card form{flex-direction:column}.access-card h1{font-size:30px}.ai-decision{grid-template-columns:1fr}.caption-card h2{font-size:18px}}.generation-trace{z-index:2;gap:6px;display:flex;position:absolute;top:20px;left:22px}.generation-trace span{letter-spacing:.05em;color:#91a6bd;background:#07111ebf;border:1px solid #ffffff1a;border-radius:999px;padding:7px 9px;font-size:10px}.generation-trace .trace-active{color:#74e7de;background:#74e7de14;border-color:#74e7de66}.scene-badge{z-index:2}@media (max-width:600px){.generation-trace{flex-wrap:wrap;max-width:calc(100% - 28px);top:14px;left:14px}.generation-trace span{padding:5px 7px;font-size:9px}}.csv-upload input{padding:7px;font-size:11px}.csv-upload span{text-transform:none;letter-spacing:0;color:var(--muted);font-size:10px;font-weight:500}.upload-ready{color:var(--muted);background:#74e7de0d;border:1px solid #74e7de44;border-radius:9px;gap:4px;padding:9px 10px;font-size:11px;display:grid}.upload-ready strong{color:var(--cyan);font-size:11px}.upload-ready button{color:#b8cadc;cursor:pointer;font:inherit;background:0 0;border:0;justify-self:start;padding:0;text-decoration:underline}.scene-help{z-index:2;color:#a7bacb;letter-spacing:.04em;pointer-events:none;background:#07111ebf;border:1px solid #ffffff19;border-radius:999px;padding:7px 9px;font-size:10px;position:absolute;bottom:24px;right:22px}.scene-canvas{touch-action:none}@media (max-width:600px){.scene-help{font-size:9px;bottom:14px;right:14px}}
