@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Space+Mono:wght@400;700&display=swap');
:root{color-scheme:dark;--bg:#0c0e0d;--panel:#151816;--panel2:#1b201d;--line:#323934;--gold:#e6c38d;--gold2:#ba9260;--text:#f0f1eb;--muted:#9da59d;--mono:'Space Mono',monospace;--display:'Manrope',system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);font:400 13px/1.6 'DM Sans',system-ui,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
button{color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
a{color:inherit;text-decoration:none}
button[disabled]{opacity:.35;cursor:not-allowed}
[hidden]{display:none!important}
.shell{min-height:100vh}
.topbar{height:70px;padding:0 clamp(16px,2.5vw,48px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;background:#101310}
.brand{display:flex;align-items:center;gap:11px;font:800 18px/.95 var(--display);letter-spacing:-.07em;white-space:nowrap}
.brand .asterisk{color:var(--gold);font-size:37px;font-weight:400}
.brand>span:last-child>span{color:var(--gold)}
.brand small{display:block;font:700 8px var(--mono);letter-spacing:.09em;color:#9dada0;margin-top:6px}
.top-center{display:flex;align-items:center;gap:23px;color:#a7aba0;font:700 9px var(--mono);letter-spacing:.075em}
.pill{display:flex;align-items:center;gap:8px;color:#e5ceb4;border:1px solid #655842;padding:8px 11px}
.pill i,.frame-top i{width:6px;height:6px;background:#bcdb9c;border-radius:50%;box-shadow:0 0 8px #afd98a;display:inline-block}
.top-right{display:flex;gap:20px;white-space:nowrap;font-size:11px;font-weight:700}
.top-right a{border-bottom:1px solid #7c7867;padding:4px 0}
.top-right a span{color:var(--gold)}
.intro{display:flex;align-items:end;justify-content:space-between;padding:43px clamp(16px,2.5vw,48px) 38px;gap:40px;background:radial-gradient(60% 130% at 80% 45%,#24231b 0%,#101310 61%);border-bottom:1px solid var(--line)}
.eyebrow,.micro,.label{font:700 9px var(--mono);color:var(--gold2);letter-spacing:.14em}
.intro h1{font:700 clamp(34px,4.2vw,72px)/1.09 var(--display);letter-spacing:-.045em;word-spacing:.13em;margin:12px 0 11px}
.intro h1 em{font-style:normal;font-family:Georgia,serif;font-weight:400;letter-spacing:-.09em;color:var(--gold)}
.intro h1>span{color:var(--gold2)}
.intro p{font-size:12px;color:#bac1b8;max-width:720px;margin:0}
.intro-right{display:grid;gap:4px;min-width:215px;text-align:right}
.intro-right strong{font:700 14px var(--display);letter-spacing:.06em;margin:3px 0 6px}
.intro-right .sub{font:700 8px var(--mono);color:#98a094}
.workspace{display:grid;grid-template-columns:minmax(250px,286px) minmax(540px,1fr) minmax(268px,310px);align-items:stretch;min-height:720px}
.library,.inspector{background:var(--panel);padding:26px 19px 26px}
.library{border-right:1px solid var(--line)}
.inspector{border-left:1px solid var(--line)}
.panel-head{margin-bottom:21px}
.panel-head h2{font:700 28px/1.15 var(--display);letter-spacing:-.068em;margin:11px 0}
.panel-head h2 em{font:400 34px Georgia,serif;color:var(--gold)}
.panel-head p,.mode-panel>p,.export-area p{font-size:11px;color:#9aa39c;line-height:1.7;margin:0}
.story-select{display:grid;gap:8px}
.story{display:flex;align-items:center;gap:11px;width:100%;padding:14px 10px;background:#1a201b;border:1px solid #374239;text-align:left;transition:background .2s,border-color .2s}
.story.active{background:#34352a;border-color:var(--gold2)}
.story:hover{border-color:#d0b482}
.story-num{width:31px;height:31px;flex:none;border-radius:50%;display:grid;place-items:center;background:#2c3029;color:var(--gold);font:700 10px var(--mono)}
.story strong{font:700 11px var(--display);letter-spacing:.04em;display:block;margin-bottom:3px}
.story small{font-size:10px;color:#b2b5aa}
.story i{font-style:normal;color:var(--gold);margin-left:auto}
.shot-heading{display:flex;align-items:center;justify-content:space-between;margin:32px 0 12px}
.shot-heading>span:last-child{font:700 9px var(--mono);color:#b6beb0}
.shots{display:grid;gap:1px;position:relative;max-height:470px;overflow-y:auto}
.shot{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:7px;width:100%;text-align:left;padding:11px 8px;border:1px solid transparent;background:#1e2420;color:#c2c8bc;min-height:61px}
.shot:hover{background:#30362d}
.shot.active{background:#34392e;border-color:#988567;color:#fff9ef}
.shot-index{font:700 10px var(--mono);color:var(--gold);border-right:1px solid #626758;padding-right:11px}
.shot-title{font:700 10px var(--display);letter-spacing:.045em;display:block}
.shot-sub{font:500 9px var(--mono);color:#9eaca0;display:block;margin-top:4px}
.shot-arrow{font-size:14px;color:var(--gold)}
.shot-actions{display:flex;gap:7px;margin-top:12px}
.soft-button,.icon-button{border:1px solid #5e665b;background:#273028;padding:12px;color:#e0e9da;font-size:11px;font-weight:700}
.soft-button{flex:1;text-align:left}
.icon-button{width:42px;font-size:19px;text-align:center;padding:6px}
.soft-button:hover,.icon-button:hover{border-color:var(--gold2)}
.panel-hint{padding:20px 0;margin-top:14px;border-top:1px solid var(--line);font-size:10px;color:#8c9a8d}
.panel-hint>span{color:var(--gold);font-weight:700}
.center{min-width:0;background:#0f120f;padding:23px clamp(16px,2.2vw,36px) 42px}
.section-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}
.render-readout{font:700 9px var(--mono);color:#a1c29a;white-space:nowrap;letter-spacing:.05em}
.viewport{height:clamp(360px,48vw,640px);max-height:61vh;min-height:350px;position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 45%,#283026,#0d100d 72%);border:1px solid #696350}
.viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;touch-action:none;cursor:default}
.frame-outline{position:absolute;inset:22px;z-index:1;pointer-events:none;border:1px solid #ffffff1a;box-shadow:inset 0 0 110px #070e0c3d}
.frame-outline:before,.frame-outline:after{content:'';position:absolute;border-color:#e4c897b5;border-style:solid;width:19px;height:19px}
.frame-outline:before{left:-1px;top:-1px;border-width:1px 0 0 1px}
.frame-outline:after{right:-1px;bottom:-1px;border-width:0 1px 1px 0}
.frame-top,.frame-bottom{position:absolute;z-index:2;left:41px;right:41px;display:flex;align-items:center;justify-content:space-between;gap:12px;font:700 9px var(--mono);letter-spacing:.08em;color:#e6d4b1;pointer-events:none}
.frame-top{top:38px}
.frame-top>span:last-child{display:flex;align-items:center;gap:8px}
.frame-bottom{bottom:36px}
.frame-bottom>span:nth-child(2){opacity:.55;font-size:8px}
.frame-text{position:absolute;z-index:1;left:8%;top:50%;transform:translateY(-50%);pointer-events:none;max-width:310px;text-shadow:0 2px 22px #050705aa}
.frame-text>.index{font:700 9px var(--mono);color:#e8cc9f;letter-spacing:.15em}
.frame-text h2{font:700 clamp(66px,9vw,145px)/1 var(--display);letter-spacing:-.11em;margin:7px 0}
.frame-text h2 span{font-size:.19em;vertical-align:top;margin-left:2px;letter-spacing:0;color:var(--gold)}
.frame-text p{font:600 11px/1.8 var(--display);letter-spacing:.21em;color:#dfdfcf}
.viewport-error{position:absolute;inset:0;display:grid;place-items:center;padding:24px;z-index:6;background:#262621}
.transport{border:1px solid #46483e;border-top:0;padding:13px 19px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#1a1f1a}
.transport-left,.transport-right{display:flex;align-items:center;gap:11px}
.transport-left{white-space:nowrap}
.transport-button{border:0;background:none;color:#aab0a4;font-size:20px;width:30px;height:35px}
.transport-button:hover{color:#fff}
.play-button{width:42px;height:42px;background:var(--gold);color:#21231d;border:0;display:grid;place-items:center;font-size:14px}
.play-button:hover{background:#ffdd9f}
.clock{font:700 11px var(--mono);color:#f4eee0}
.clock.muted,.slash{color:#848e82}
.transport-right label{font:700 9px var(--mono);color:#a5b39b}
.transport-right select{background:#303930;border:1px solid #5b6559;color:#f1ece0;padding:6px 9px;font:700 11px var(--mono)}
.loop-label{display:flex;align-items:center;gap:6px;white-space:nowrap}
.loop-label input{accent-color:var(--gold)}
.timeline-panel{background:#181d19;border:1px solid #46483e;border-top:0;padding:22px 24px 19px}
.timeline-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.timeline-title>span:last-child{font:700 10px var(--mono);color:var(--gold)}
.marker-track{position:relative;height:35px;margin:0 5px}
.marker{position:absolute;top:8px;transform:translateX(-50%);z-index:2;display:block;border:1px solid #c59f72;background:#39332b;width:12px;height:12px;rotate:45deg;transform-origin:center;cursor:pointer}
.marker:hover,.marker.active{background:var(--gold);box-shadow:0 0 0 4px #f4c27c33}
.marker>span{display:none}
.scrub{width:100%;accent-color:var(--gold);margin:3px 0;cursor:pointer;display:block}
.ruler{display:flex;justify-content:space-between;color:#939c90;font:700 9px var(--mono);padding:8px 0}
.timeline-footer{display:flex;justify-content:space-between;gap:12px;font:700 8px var(--mono);color:#878e81;border-top:1px solid #39423a;margin-top:14px;padding-top:13px}
.mode-panel{border:1px solid #46483e;margin-top:18px;background:#1b211c;padding:23px}
.mode-header{display:flex;align-items:center;justify-content:space-between;gap:20px}
.mode-header h3{font:700 22px var(--display);letter-spacing:-.05em;margin:7px 0}
.mode-toggle{display:flex;gap:0;border:1px solid #55634d}
.mode-toggle button{border:0;padding:10px 13px;background:transparent;font:700 10px var(--mono);white-space:nowrap}
.mode-toggle button.active{background:var(--gold);color:#1e241a}
.mode-panel>p{max-width:640px;margin-top:9px}
.scroll-demo{margin-top:22px;border:1px solid #675b45;background:#111610;padding:12px}
.scroll-demo-head{display:flex;justify-content:space-between;color:var(--gold);font:700 9px var(--mono);letter-spacing:.1em;padding:4px 8px 12px}
.scroll-area{height:230px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:var(--gold2) #243027;scrollbar-width:thin}
.chapter{min-height:260px;border-bottom:1px solid #52604e;padding:39px 25px;background:radial-gradient(circle at 80% 20%,#403f2b,#1a241c 65%)}
.chapter:nth-child(even){background:linear-gradient(130deg,#26302b,#141b17)}
.chapter>span{font:700 9px var(--mono);color:#d6c9a5}
.chapter h4{font:700 38px/1 var(--display);letter-spacing:-.07em;margin:15px 0}
.chapter p{font-size:11px;color:#c3cabc;max-width:340px}
.inspect-group{border-top:1px solid #343d35;padding:16px 0}
.inspect-group>.micro{display:block;margin-bottom:12px}
.inspector input:not([type=checkbox]),.inspector select{background:#202722;color:#f0eee4;border:1px solid #536051;min-width:0;min-height:36px;padding:8px;font:600 12px var(--display);width:100%}
.inspector input:focus,.inspector select:focus{border-color:var(--gold)}
.group-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.group-title>span:last-child{font:700 9px var(--mono);color:#777f73}
.fields{display:grid;gap:7px}
.fields.triple{grid-template-columns:repeat(3,minmax(0,1fr))}
.fields.double{grid-template-columns:repeat(2,minmax(0,1fr))}
.fields label{color:#b3bba9;font:700 9px var(--mono);letter-spacing:.04em}
.fields input,.fields select{display:block;margin-top:6px}
.export-area{border-top:1px solid #534a3e;padding-top:22px;margin-top:16px}
.export-area p{margin:12px 0}
.export-area button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 13px;font:800 10px var(--mono);letter-spacing:.045em}
.preview-button{background:#d0a976;color:#182019;border:1px solid #eacb99;margin-bottom:9px}.preview-button:hover{background:#f0c990}
.export-button{background:var(--gold);color:#1a2018;border:1px solid var(--gold)}
.import-button{background:#30352d;color:#e9ddc9;border:1px solid #625d4a;margin-top:9px}
.reset-button{background:transparent;color:#97a298;border:0;margin-top:6px!important;padding-left:0!important}
.message{margin-top:14px;font:500 11px/1.5 var(--mono);color:#acb7a5}
.message.warn{color:#f4bc8a}
footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:22px clamp(16px,2.5vw,48px);border-top:1px solid var(--line);color:#888f88;font:700 9px var(--mono)}
footer a{color:var(--gold)}
@media(max-width:1370px){.workspace{grid-template-columns:225px minmax(480px,1fr) 263px}.library,.inspector{padding:20px 13px}.intro{padding:32px 20px}.frame-text h2{font-size:8vw}.center{padding:20px 18px}.story{padding:10px 6px}}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(240px,1fr) minmax(280px,1fr)}.library{grid-column:1;grid-row:2;border-top:1px solid var(--line)}.inspector{grid-column:2;grid-row:2;border-top:1px solid var(--line)}.center{grid-column:1 / -1;grid-row:1}.viewport{height:560px;max-height:none}.intro-right{display:none}.center .frame-text h2{font-size:125px}}
@media(max-width:690px){.topbar{padding:0 13px;gap:8px;height:63px}.top-center{display:none}.top-right{gap:10px;font-size:10px}.brand{font-size:15px}.brand .asterisk{font-size:29px}.intro{padding:28px 16px}.intro h1{font-size:38px}.workspace{display:flex;flex-direction:column}.center{order:0;padding:16px 11px 22px}.library{order:1;border-top:1px solid var(--line);border-right:0}.inspector{order:2;border-left:0}.viewport{height:410px;min-height:340px}.frame-outline{inset:12px}.frame-top,.frame-bottom{left:25px;right:25px;font-size:8px}.frame-top{top:25px}.frame-bottom{bottom:25px}.frame-bottom>span:nth-child(2){display:none}.frame-text{left:6%;top:56%;max-width:190px}.center .frame-text h2{font-size:76px}.frame-text p{font-size:8px}.transport{padding:9px;gap:8px}.transport-left,.transport-right{gap:5px}.transport-right label:first-child{display:none}.timeline-panel{padding:18px 13px}.timeline-footer{font-size:7px}.mode-panel{padding:16px}.mode-header{display:block}.mode-toggle{display:inline-flex;margin-top:10px}.library,.inspector{padding:24px 19px}.shots{max-height:none}.shot-actions{max-width:420px}.panel-head h2{font-size:31px}}
@media(max-width:390px){.top-right a:last-child{display:none}.viewport{height:340px;min-height:310px}.center .frame-text h2{font-size:60px}.frame-top,.frame-bottom{font-size:7px}.transport-right{flex-direction:column;align-items:end;gap:4px}.transport-left{gap:3px}.clock{font-size:10px}.play-button{width:37px;height:37px}.ruler{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
