:root{--bg: #0a0d12;--bar: #0e1218;--rail: #0c1015;--panel: #131922;--panel2: #1a222e;--line: #1f2733;--line2: #232b36;--line3: #2a3442;--text: #e9ecf1;--text2: #9aa5b4;--muted: #5f6b7a;--faint: #3d4754;--amber: #ffad33;--amber-dim: rgba(255, 173, 51, .12);--amber-line: rgba(255, 173, 51, .4);--green: #46c08a;--green-line: rgba(70, 192, 138, .3);--red: #e85d5d;--red-line: rgba(232, 93, 93, .35);--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--disp: "Space Grotesk", var(--sans)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:#000;overflow:hidden}body{font-family:var(--sans);color:var(--text);font-size:13px;user-select:none;-webkit-user-select:none}.viewport{height:100%;display:flex;align-items:center;justify-content:center;background:#000}.stage{width:1280px;height:720px;background:var(--bg);position:relative;overflow:hidden;flex:none;transform-origin:center center}.disp{font-family:var(--disp);font-weight:700;letter-spacing:-.01em}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.label{font:600 10px var(--mono);letter-spacing:.16em;color:var(--muted);text-transform:uppercase}.label-sm{font:600 9px var(--mono);letter-spacing:.14em;color:var(--muted);text-transform:uppercase}.t-amber{color:var(--amber)}.t-green{color:var(--green)}.t-red{color:var(--red)}.t-dim{color:var(--muted)}.t-dim2{color:var(--text2)}.t-faint{color:var(--faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--amber);color:var(--bg);font:600 12px var(--sans);letter-spacing:.05em;padding:12px 18px;border-radius:7px;border:none;cursor:pointer;text-transform:uppercase;transition:background .12s}.btn:hover{background:#ffbc57}.btn.big{font-size:13px;padding:14px 20px}.btn.disabled,.btn:disabled{background:var(--panel);color:var(--faint);cursor:default}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;color:var(--text);font:500 12px var(--sans);letter-spacing:.05em;padding:11px 17px;border-radius:7px;border:1px solid var(--line3);cursor:pointer;text-transform:uppercase;transition:border-color .12s,color .12s}.btn-ghost:hover{border-color:#3a4656}.btn-ghost.dim{color:var(--text2)}.btn-ghost.disabled,.btn-ghost:disabled{color:var(--faint);border-color:var(--line);cursor:default}.btn-danger{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--red);font:500 12px var(--sans);letter-spacing:.05em;padding:11px 17px;border-radius:7px;border:1px solid var(--red-line);cursor:pointer;text-transform:uppercase}.btn-danger:hover{background:#e85d5d14}.chip{font:600 10px var(--mono);border:1px solid var(--line3);border-radius:5px;padding:5px 11px;color:var(--text);cursor:pointer;background:transparent;letter-spacing:.04em}.chip:hover{border-color:#3a4656}.chip.amber{color:var(--amber);border-color:var(--amber-line)}.chip.amber:hover{background:var(--amber-dim)}.chip.solid{background:var(--amber);color:var(--bg);border-color:var(--amber)}.chip.dead{color:var(--faint);border-color:var(--line);cursor:default}.seg{display:flex;background:var(--panel);border:1px solid var(--line2);border-radius:7px;padding:3px;gap:2px}.seg>button{padding:7px 14px;border-radius:5px;font:500 11px var(--sans);color:var(--muted);background:transparent;border:none;cursor:pointer;letter-spacing:.03em;text-transform:uppercase}.seg>button.on{font-weight:600;color:var(--amber);background:var(--amber-dim)}.seg>button:hover:not(.on){color:var(--text2)}.meter{flex:1;height:5px;border-radius:3px;background:var(--line);overflow:hidden;display:block;min-width:30px}.meter>span{display:block;height:100%;border-radius:3px;transition:width .4s}.px{background:repeating-linear-gradient(45deg,#1a222e 0,#1a222e 8px,#141b25 8px,#141b25 16px);border:1px dashed #2b3646;border-radius:5px;display:flex;align-items:center;justify-content:center;color:var(--muted);font:500 9px/1.6 var(--mono);text-align:center;flex:none;overflow:hidden}.px.hostile{background:repeating-linear-gradient(45deg,#241a1c 0,#241a1c 8px,#1b1315 8px,#1b1315 16px);border-color:#4a3236;color:#8a6a6e}.panel{background:var(--panel);border:1px solid var(--line2);border-radius:9px}.panel.sel{background:#ffad3314;border-color:var(--amber-line)}.panel.hoverable{cursor:pointer;transition:border-color .12s}.panel.hoverable:hover{border-color:#3a4656}.panel.sel.hoverable:hover{border-color:var(--amber)}.hud{height:52px;flex:none;display:flex;align-items:center;gap:20px;padding:0 20px;background:var(--bar);border-bottom:1px solid var(--line)}.hud .vdiv{width:1px;height:24px;background:var(--line)}.hud-stat{display:flex;align-items:center;gap:7px;font:500 11px var(--mono);white-space:nowrap}.hud-stat .meter{width:52px;flex:none;height:4px}.rail{width:188px;flex:none;background:var(--rail);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 10px;gap:2px}.rail-item{padding:9px 12px;border-radius:6px;color:var(--text2);display:flex;align-items:center;gap:9px;font:500 13px var(--sans);cursor:pointer;background:transparent;border:none;text-align:left;width:100%}.rail-item:hover{color:var(--text)}.rail-item.on{background:var(--amber-dim);color:var(--amber);font-weight:600}.rail-item .ico{font-size:8px;width:10px}.rail-head{font:600 9px var(--mono);letter-spacing:.14em;color:var(--muted);padding:16px 12px 6px;text-transform:uppercase}.rail-item.boxed{border:1px solid var(--line2);justify-content:center;font-weight:600;letter-spacing:.04em}.rail-item.boxed:hover{border-color:#3a4656}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#040609c7;display:flex;align-items:center;justify-content:center;z-index:40}.modal{background:var(--bar);border:1px solid var(--line3);border-radius:12px;box-shadow:0 24px 80px #0009;overflow:hidden}.trow{display:grid;align-items:center;border-top:1px solid #161d27;padding:7px 0;font-size:12px}.trow.hot{background:#ffad330f;border-left:2px solid var(--amber)}.scroll-y{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line3) transparent}.scroll-y::-webkit-scrollbar{width:8px}.scroll-y::-webkit-scrollbar-thumb{background:var(--line3);border-radius:4px}.scroll-y::-webkit-scrollbar-track{background:transparent}.starfield{background:radial-gradient(1px 1px at 60px 90px,#2a3442 50%,transparent 51%),radial-gradient(1px 1px at 200px 300px,#2a3442 50%,transparent 51%),radial-gradient(1px 1px at 420px 150px,#242e3b 50%,transparent 51%),radial-gradient(1px 1px at 550px 420px,#2a3442 50%,transparent 51%),radial-gradient(1px 1px at 330px 520px,#242e3b 50%,transparent 51%),radial-gradient(1px 1px at 680px 250px,#2a3442 50%,transparent 51%),radial-gradient(1.5px 1.5px at 120px 480px,#33405180 50%,transparent 51%),radial-gradient(1px 1px at 740px 520px,#242e3b 50%,transparent 51%),var(--bg)}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.gap4{gap:4px}.gap6{gap:6px}.gap8{gap:8px}.gap10{gap:10px}.gap12{gap:12px}.gap14{gap:14px}.gap16{gap:16px}.gap18{gap:18px}.gap20{gap:20px}.gap22{gap:22px}.gap28{gap:28px}.f1{flex:1;min-width:0}.spread{justify-content:space-between}.center{align-items:center;justify-content:center}.baseline{align-items:baseline}.minh0{min-height:0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.pulse{animation:pulse 1.6s ease-in-out infinite}@keyframes fadeup{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fadeup{animation:fadeup .25s ease-out}:root[data-rm="1"] .stage,:root[data-rm="1"] .stage *{animation-duration:1ms!important;transition-duration:1ms!important}:root[data-ps="0"] .stage img,:root[data-ps="0"] .stage canvas{image-rendering:pixelated!important}:root[data-ps="1"] .stage img,:root[data-ps="1"] .stage canvas{image-rendering:auto!important}:root[data-cb=deuteranopia],:root[data-cb=protanopia]{--green: #4a9ede;--green-line: rgba(74, 158, 222, .32);--red: #e8853d;--red-line: rgba(232, 133, 61, .36)}:root[data-cb=tritanopia]{--green: #1fb57a;--green-line: rgba(31, 181, 122, .32);--red: #e8455e;--red-line: rgba(232, 69, 94, .36)}:root{--tscale: 1}:root[data-ts="90"]{--tscale: .9}:root[data-ts="110"]{--tscale: 1.1}body{font-size:calc(13px * var(--tscale))}.label{font-size:calc(10px * var(--tscale))}.label-sm{font-size:calc(9px * var(--tscale))}.scrim{animation:scrimIn .2s ease-out}@keyframes scrimIn{0%{background:#04060900}to{background:#040609c7}}.screen-enter{animation:screenIn .22s ease-out}@keyframes screenIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.btn,.btn-ghost,.btn-danger,.chip,.seg>button,.rail-item{transition:background .12s,border-color .12s,color .12s,transform .08s,filter .12s}.btn:active,.btn-ghost:active,.btn-danger:active,.chip:active{transform:scale(.965)}.btn:hover{filter:brightness(1.05)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px,2px)}40%{transform:translate(6px,-3px)}60%{transform:translate(-4px,2px)}80%{transform:translate(3px,-1px)}}.shake{animation:shake .4s ease-out}@keyframes hitflash{0%{opacity:.5}to{opacity:0}}.hitflash{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--red);pointer-events:none;animation:hitflash .4s ease-out forwards;z-index:5}@keyframes crflash{0%{filter:brightness(1)}30%{filter:brightness(1.9)}to{filter:brightness(1)}}.crflash{animation:crflash .6s ease-out}@keyframes laneMarch{to{stroke-dashoffset:-18}}.lane-active{animation:laneMarch .9s linear infinite}@keyframes frontPulse{0%,to{opacity:1}50%{opacity:.45}}.front-line{animation:frontPulse 2.4s ease-in-out infinite}@keyframes nodePulse{0%,to{box-shadow:0 0 0 4px #e9ecf11f,0 0 0 5px #ffad3399}50%{box-shadow:0 0 0 6px #e9ecf10f,0 0 0 8px #ffad3340}}.node-selected{animation:nodePulse 1.6s ease-in-out infinite}.choice-locked{border-color:var(--amber)!important;background:#ffad3314!important}.choice-dimmed{opacity:.28;filter:saturate(.5)}@keyframes resolveDots{0%{content:""}33%{content:"·"}66%{content:"· ·"}to{content:"· · ·"}}.resolving-dots:after{display:inline-block;width:3em;text-align:left;content:"· · ·";animation:resolveDots .9s steps(3) infinite}.menu-stagger>*{opacity:0;animation:fadeup .3s ease-out forwards}.menu-stagger>*:nth-child(1){animation-delay:.05s}.menu-stagger>*:nth-child(2){animation-delay:.12s}.menu-stagger>*:nth-child(3){animation-delay:.19s}.menu-stagger>*:nth-child(4){animation-delay:.26s}
