.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:9;background:var(--surface);padding:8px 12px}
header{height:64px;display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-8);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:var(--space-3);align-items:center;text-decoration:none}.brand svg{color:var(--accent)}.brand b{letter-spacing:.07em;font-size:var(--text-lg)}.brand span{font:var(--text-xs) var(--mono);color:var(--muted);letter-spacing:.06em}
header nav{display:flex;gap:var(--space-5);align-items:center}header nav a{text-decoration:none;font-size:var(--text-sm);color:var(--muted)}header nav a:hover{color:var(--ink)}#theme{width:44px;border:1px solid var(--line);border-radius:50%;height:44px}
.heading{display:flex;justify-content:space-between;align-items:center;padding:var(--space-8);gap:var(--space-6)}
.eyebrow{font:var(--text-xs) var(--mono);letter-spacing:.08em;color:var(--accent)}
h1{font:600 var(--text-2xl)/1.4 var(--font-display);margin:var(--space-2) 0}h1 span{font:400 var(--text-lg) var(--font-body);color:var(--muted);margin-left:var(--space-4)}
.heading p{color:var(--muted)}
.edition{border:1px solid var(--line);padding:var(--space-3) var(--space-5);display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm);position:relative;padding-left:var(--space-8);min-width:220px}.edition small{font:var(--text-xs) var(--mono);color:var(--muted)}
.status-dot{position:absolute;left:14px;top:20px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
.topnav{display:flex;align-items:center;justify-content:space-between;margin:0 var(--space-8);border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:var(--space-3)}
.topnav>div{display:flex;gap:var(--space-6);overflow-x:auto;scrollbar-width:none}.topnav button{padding:var(--space-3) 0;border-bottom:2px solid transparent;white-space:nowrap;color:var(--muted)}.topnav button.active{border-color:var(--accent);color:var(--ink);font-weight:600}.topnav .count{font:var(--text-xs) var(--mono);color:var(--muted);white-space:nowrap}

.workspace{display:grid;grid-template-columns:200px minmax(0,1fr) 340px;margin:0 var(--space-8);border-left:1px solid var(--line);border-right:1px solid var(--line);align-items:start}
.workspace.chain{grid-template-columns:minmax(0,1fr) 360px}
.directory{padding:var(--space-5) var(--space-3)}.rail-heading{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--space-3);padding:0 var(--space-2)}.rail-heading small{font-family:var(--mono)}
.station{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);border-left:2px solid transparent;margin-bottom:2px}.station small{font:var(--text-xs) var(--mono);color:var(--muted)}.station strong{display:block;font-size:var(--text-sm);font-weight:600}.station span{display:block;font-size:var(--text-xs);color:var(--muted);line-height:1.5}
.station:hover{background:var(--soft)}.station.active{border-color:var(--accent);background:var(--soft)}.station.active small{color:var(--accent)}
.rail-note{margin-top:var(--space-6);padding:var(--space-4) var(--space-3);border-top:1px solid var(--line)}.rail-note p{font:500 var(--text-base)/1.6 var(--font-display);margin:var(--space-2) 0}.rail-note small{color:var(--muted);font-size:var(--text-xs);line-height:1.6;display:block}
.visual{border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface);min-width:0}.chain .visual{border-left:0}
#sceneWrap,#sceneWrap2{height:600px;position:relative;overflow:hidden;background:var(--scene)}#sceneWrap2{height:620px}
#canvasHost,#canvasHost2{position:absolute;inset:0}#canvasHost canvas,#canvasHost2 canvas{display:block;width:100%;height:100%;touch-action:none}
.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lbl{position:absolute;left:0;top:0;font-size:12px;line-height:1.35;white-space:nowrap;padding:3px 8px;border-radius:3px;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--line);color:var(--ink);transition:opacity .25s;will-change:transform;max-width:260px}
.lbl.o{border-color:#d07a2e;color:#9b5216}.lbl.b{border-color:#3d77b0;color:#2c5c8c}.lbl.p{border-color:#8a5aa6;color:#6c4285}.lbl.r{border-color:#b5473a;color:#963327}.lbl.g{border-color:#3f8f5c;color:#2b6f43}.lbl.small{font-size:11px;color:var(--muted)}
[data-theme=dark] .lbl.o{color:#f0a868}[data-theme=dark] .lbl.b{color:#8fb9e6}[data-theme=dark] .lbl.p{color:#c7a0de}[data-theme=dark] .lbl.r{color:#f2917c}[data-theme=dark] .lbl.g{color:#8fd1a6}
.lbl.layer{font:600 12px var(--font-body);background:transparent;border:0;color:var(--muted)}
.lbl.chip{pointer-events:auto;cursor:pointer;font-weight:600;font-size:11.5px}.lbl.chip.on{background:var(--accent);color:var(--surface);border-color:var(--accent)}
.scene-heading{position:absolute;top:var(--space-5);left:var(--space-6);pointer-events:none;max-width:60%}.scene-heading small{font:var(--text-xs) var(--mono);color:var(--accent)}.scene-heading h2{font:600 var(--text-xl)/1.4 var(--font-display)}
.scene-tools{position:absolute;right:var(--space-4);top:var(--space-4);display:flex;flex-direction:column;gap:4px}.scene-tools button{width:40px;min-height:40px;background:var(--surface);border:1px solid var(--line);border-radius:3px}.scene-tools button[aria-pressed=false]#labelToggle{opacity:.5}
.scene-bottom{position:absolute;left:var(--space-5);right:var(--space-5);bottom:var(--space-4);display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);color:var(--muted);pointer-events:none}.scene-bottom div{display:flex;gap:6px;pointer-events:auto}.scene-bottom button{background:var(--surface);border:1px solid var(--line);padding:0 var(--space-4);border-radius:3px;color:var(--ink)}
button.primary{background:var(--accent)!important;color:var(--surface)!important;border-color:var(--accent)!important;font-weight:600}
.scene-key{position:absolute;left:var(--space-5);bottom:var(--space-4);display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:var(--text-xs);color:var(--muted);pointer-events:none}.dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;background:var(--scene);text-align:center;padding:var(--space-6)}
.stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 var(--space-5);gap:var(--space-3);border-top:1px solid var(--line)}.stepper button{text-align:left;border-top:2px solid transparent;padding:var(--space-3) 0;font-size:var(--text-xs);color:var(--muted);line-height:1.5}.stepper button small{display:block;font-family:var(--mono)}.stepper button.active{border-color:var(--accent);color:var(--ink);font-weight:600}
.stage-note{display:flex;gap:var(--space-4);padding:var(--space-4) var(--space-5) var(--space-6);border-top:1px solid var(--line);min-height:96px}.stage-note span{font:var(--text-xs) var(--mono);color:var(--accent);white-space:nowrap;padding-top:3px}.stage-note p{font-size:var(--text-base);line-height:1.8}
.panel{padding:var(--space-6) var(--space-5);min-width:0;position:sticky;top:0;max-height:100vh;overflow:auto}.panel-top small{font:var(--text-xs) var(--mono);color:var(--accent)}.panel-top h2{font:600 var(--text-xl)/1.45 var(--font-display);margin:var(--space-2) 0}.panel-top p{color:var(--muted);font-size:var(--text-sm)}
.tabs{display:flex;gap:var(--space-5);border-bottom:1px solid var(--line);margin:var(--space-5) 0 var(--space-4)}.tabs button{padding:var(--space-2) 0;border-bottom:2px solid transparent;color:var(--muted)}.tabs button.active{border-color:var(--accent);color:var(--ink);font-weight:600}
#panelBody p,#cpanel p{margin-bottom:var(--space-3);line-height:1.85}
.src{padding-left:1.1em;margin:0 0 var(--space-3)}.src li{margin-bottom:6px;font-size:var(--text-sm)}.src a{color:var(--accent)}
.fine{font-size:var(--text-xs);color:var(--muted);line-height:1.7}.fine a{color:var(--accent)}
.viewbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line);gap:var(--space-3);flex-wrap:wrap}
.segmented{display:flex;border:1px solid var(--line);border-radius:3px;overflow:hidden;flex-wrap:wrap}.segmented button{padding:0 var(--space-3);font-size:var(--text-xs);min-height:36px;border-right:1px solid var(--line)}.segmented button:last-child{border-right:0}.segmented button.active{background:var(--accent);color:var(--surface);font-weight:600}
.bars{margin:var(--space-5) 0}.bar{display:grid;grid-template-columns:88px 1fr 20px;gap:var(--space-2);align-items:center;font-size:var(--text-xs);margin-bottom:6px}.bar i{display:block;height:8px;background:var(--soft);position:relative;border-radius:2px}.bar i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--accent);border-radius:2px}.bar b{font-family:var(--mono);text-align:right}
.ph{font-size:var(--text-sm);margin:var(--space-5) 0 var(--space-2);color:var(--accent);font-weight:600}
.facts{padding-left:1.1em;margin:0}.facts li{margin-bottom:6px;line-height:1.7}
.scoretable{padding:var(--space-6) var(--space-5);border-top:1px solid var(--line)}.scoretable h3{margin-bottom:var(--space-2)}
.t{width:100%;border-collapse:collapse;font-size:var(--text-sm);margin-top:var(--space-3)}.t th,.t td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}.t th{font-size:var(--text-xs);color:var(--muted);font-weight:500}.t td:not(:first-child),.t th:not(:first-child){font-variant-numeric:tabular-nums}
#scoreTable .t td:not(:first-child),#scoreTable .t th:not(:first-child){text-align:center}
.t .hl{background:var(--soft);font-weight:600}.t tr.on td{background:color-mix(in srgb,var(--accent) 10%,transparent)}.lnk{min-height:0;padding:0;text-decoration:underline;text-underline-offset:3px;text-align:left}

.market{padding:var(--space-10) var(--space-8);max-width:1440px;margin:auto}
.market-head{max-width:880px}.market-head h2{font:600 var(--text-xl)/1.5 var(--font-display);margin:var(--space-2) 0 var(--space-3)}.market-head p{color:var(--muted);line-height:1.85}.market-head a{color:var(--accent)}
.calcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);margin:var(--space-8) 0}
.calc{border:1px solid var(--line);background:var(--surface);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.calc h3{font:600 var(--text-lg) var(--font-display)}
.formula{font:var(--text-xs) var(--mono);color:var(--accent);background:var(--soft);padding:6px 8px}
.calc label{display:flex;flex-direction:column;font-size:var(--text-sm);gap:4px}.calc output{font:600 var(--text-sm) var(--mono);color:var(--ink);align-self:flex-end;margin-top:-22px}
input[type=range]{width:100%;accent-color:var(--accent);min-height:32px}
.result{border-top:1px solid var(--line);padding-top:var(--space-3)}.result b{font:600 var(--text-xl) var(--font-display);color:var(--accent)}.result span{margin-left:6px;color:var(--muted)}.result small{display:block;color:var(--muted);font-size:var(--text-xs);margin-top:4px;line-height:1.6}
.vbi{border:1px solid var(--line);background:var(--surface);padding:var(--space-6);margin:0 0 var(--space-8)}.vbi td:nth-child(2){white-space:nowrap}.vbi-head h3{font:600 var(--text-xl) var(--font-display);margin:var(--space-2) 0}.vbi-head p{color:var(--muted);max-width:80ch;line-height:1.7;font-size:var(--text-sm)}.vbi-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--space-6);margin-top:var(--space-5)}.vbi h4{font:600 var(--text-base) var(--font-display);margin:var(--space-5) 0 var(--space-2)}.flow{list-style:none;padding:0;margin:0;counter-reset:f}.flow li{counter-increment:f;display:grid;grid-template-columns:28px 92px minmax(0,1fr);gap:var(--space-2);padding:6px 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}.flow li::before{content:counter(f,decimal-leading-zero);font:500 var(--text-xs) var(--mono);color:var(--accent);padding-top:2px}.flow span{color:var(--muted)}.vrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-3);font-size:var(--text-sm);padding:3px 0}.vrow em{font-style:normal;font-family:var(--mono);color:var(--ink)}.vrow i{font-style:normal;font-family:var(--mono);color:var(--accent);min-width:56px;text-align:right}
.tables{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-8)}.tables h3{font:600 var(--text-lg) var(--font-display);margin-bottom:var(--space-2)}.mt{margin-top:var(--space-8)}
.cons{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.con{border-bottom:1px solid var(--line);padding-bottom:var(--space-3)}.con-h{display:flex;justify-content:space-between;gap:var(--space-3)}.con-h em{font-style:normal;font-size:var(--text-xs);font-family:var(--mono)}.lv5{color:var(--danger)}.lv4{color:#b06a2a}.lv3,.lv2{color:var(--muted)}.lv1{color:var(--accent)}
.meter{display:block;height:6px;background:var(--soft);margin:6px 0;position:relative;border-radius:2px}.meter::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:linear-gradient(90deg,var(--accent),#c07a3a,var(--danger));border-radius:2px}
.con p{font-size:var(--text-sm);color:var(--ink);line-height:1.7}.con small{font-size:var(--text-xs);color:var(--muted)}
.cat{list-style:none;padding:0;margin:var(--space-4) 0 0;border-left:1px solid var(--line)}.cat li{padding:0 0 var(--space-4) var(--space-5);position:relative}.cat li::before{content:"";position:absolute;left:-5px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--accent)}.cat time{font:var(--text-xs) var(--mono);color:var(--accent);display:block}.cat strong{display:block;font-weight:600}.cat span{font-size:var(--text-xs);color:var(--muted)}

.research-layout{display:grid;grid-template-columns:230px minmax(0,860px);gap:var(--space-12);justify-content:center;padding:var(--space-10) var(--space-8)}
#researchNav{align-self:start;position:sticky;top:var(--space-5);display:flex;flex-direction:column;gap:2px;border-right:1px solid var(--line);padding-right:var(--space-4);max-height:90vh;overflow:auto}#researchNav a{text-decoration:none;font-size:var(--text-xs);color:var(--muted);padding:6px 0;line-height:1.5}#researchNav a:hover{color:var(--ink)}
.prose{font-size:var(--text-base);line-height:1.9;min-width:0}.prose h1{font-size:var(--text-xl)}.prose h2{font:600 var(--text-xl)/1.5 var(--font-display);margin:var(--space-10) 0 var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--line);scroll-margin-top:16px}.prose h3{margin:var(--space-6) 0 var(--space-2);font-weight:600}.prose p,.prose ul,.prose ol{margin:0 0 var(--space-4)}.prose a{color:var(--accent)}.prose blockquote{margin:0 0 var(--space-5);padding:var(--space-3) var(--space-5);border-left:3px solid var(--accent);background:var(--soft);font-size:var(--text-sm)}.prose hr{border:0;border-top:1px solid var(--line);margin:var(--space-6) 0}
.tw{overflow-x:auto;margin:0 0 var(--space-5)}.prose table{border-collapse:collapse;font-size:var(--text-sm);min-width:620px;width:100%}.prose th,.prose td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top;line-height:1.65}.prose th{font-weight:600;background:var(--soft)}
footer{display:flex;justify-content:space-between;padding:var(--space-5) var(--space-8);border-top:1px solid var(--line);font:var(--text-xs)/1.7 var(--mono);gap:var(--space-5);color:var(--muted);margin-top:var(--space-8)}

@media(max-width:1190px){.workspace{grid-template-columns:170px minmax(0,1fr) 300px;margin:0 var(--space-4)}.workspace.chain{grid-template-columns:minmax(0,1fr) 300px}.topnav{margin:0 var(--space-4)}header,.heading{padding-left:var(--space-5);padding-right:var(--space-5)}h1 span{display:block;margin:var(--space-1) 0 0}.calcs{grid-template-columns:1fr 1fr}}
@media(max-width:960px){.vbi-grid{grid-template-columns:1fr}.workspace,.workspace.chain{grid-template-columns:minmax(0,1fr)}.directory{padding:var(--space-3);border-bottom:1px solid var(--line)}#stationList{display:flex;overflow-x:auto;gap:4px;scrollbar-width:thin}.rail-heading,.rail-note{display:none}.station{min-width:150px;border-left:0;border-bottom:2px solid transparent}.station.active{border-color:var(--accent)}.visual{border:0}.panel{position:static;max-height:none;border-top:1px solid var(--line)}.edition{display:none}.tables{grid-template-columns:1fr}.research-layout{grid-template-columns:1fr;gap:var(--space-5)}#researchNav{position:static;border-right:0;border-bottom:1px solid var(--line);max-height:220px}}
@media(max-width:620px){.vbi{padding:var(--space-4)}.flow li{grid-template-columns:24px 1fr}.flow li span{grid-column:2}header{height:56px;padding:0 var(--space-4)}header nav a{display:none}.brand span{display:none}.heading{padding:var(--space-5) var(--space-4)}h1{font-size:1.45rem}.topnav{margin:0}.topnav>div{gap:var(--space-4);padding:0 var(--space-4)}.topnav .count{display:none}.workspace{margin:0;border:0}#sceneWrap{height:460px}#sceneWrap2{height:500px}.scene-heading{max-width:78%;left:var(--space-4)}.scene-heading h2{font-size:1.2rem}.stepper{grid-template-columns:1fr;padding:0 var(--space-4)}.stage-note{flex-direction:column;gap:4px;padding:var(--space-4)}.calcs{grid-template-columns:1fr}.market{padding:var(--space-6) var(--space-4)}.research-layout{padding:var(--space-5) var(--space-4)}footer{flex-direction:column;padding:var(--space-5) var(--space-4)}.lbl{font-size:10.5px;padding:2px 6px}.scene-bottom>span{display:none}.scene-key{bottom:var(--space-3);gap:var(--space-2)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.lbl{transition:none}}
#scoreTable{overflow-x:auto}#scoreTable .t{min-width:560px}
