*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-size:14px}
[hidden]{display:none!important}
:root{--amber:#f0a36b;--amber-dim:rgba(240,163,107,.17);--panel:rgba(12,15,23,.86)}
#ui{grid-template-columns:minmax(0,1fr) minmax(0,390px)}
.brand h1{font-size:clamp(22px,2.7vw,36px);letter-spacing:.02em}
.back{display:block;width:fit-content;color:var(--mute);text-decoration:none;font-size:11px;margin-bottom:18px;pointer-events:auto}
.back:hover{color:var(--fg)}
.eyebrow{font-size:10px;letter-spacing:.14em}
.route{display:inline-block;margin-top:14px;padding:7px 10px;border:1px solid var(--line);border-left:2px solid var(--amber);color:#c1c5ce;font-size:11px;background:#0a0e16b8}
.panel{gap:12px}
.panel p{font-size:12.5px;line-height:1.8}
.stage-no .en{max-width:205px;font-size:9px;line-height:1.6}
.sim-label{margin-left:auto;color:var(--mute);letter-spacing:.06em;font-size:9px}
#steps{grid-template-columns:repeat(var(--stage-count,16),minmax(92px,1fr))}
.step.on{border-color:rgba(240,163,107,.7);background:rgba(240,163,107,.08)}
.step.done::after{background:rgba(240,163,107,.42)}
.btn:hover{border-color:rgba(240,163,107,.55)}
.stack-key{display:flex;gap:7px;flex-wrap:wrap;padding-top:3px}
.stack-key span{font:9px var(--f-mono);color:#adb6c8;display:flex;align-items:center;gap:4px}
.stack-key span::before{content:"";width:7px;height:7px;background:var(--layer);border-radius:1px;flex:none}
.sources{border-top:1px solid var(--line);padding-top:10px;font-size:10.5px;color:var(--mute)}
.sources summary{cursor:pointer;color:#d2a888}
.sources p{font-size:10.5px;margin-top:9px;line-height:1.75;color:var(--mute)}
.sources a{display:block;color:#f0b68f;text-underline-offset:3px;margin-top:8px;line-height:1.5}
#sLive dd{font-size:11px}
@media(max-width:900px){.brand h1{max-width:390px}.brand p{max-width:310px;line-height:1.7}}
@media(max-width:760px){#ui{grid-template-columns:minmax(0,1fr)}.back{margin-bottom:7px}.route{display:none}.brand h1{font-size:22px}.eyebrow{font-size:8px}.panel{max-height:34vh;gap:7px;padding:10px 12px}.panel p{font-size:11px;line-height:1.55}.stack-key{display:none}.panel h2{font-size:17px}.live{padding:8px}.live-h{font-size:9px}.brand p{display:none}#sLive{font-size:10px}.sources{display:none}}
@media(max-height:550px) and (min-width:761px){.panel{max-height:calc(100vh - 170px)}.brand .route,.brand p{display:none}.back{margin-bottom:7px}}
