@font-face{font-family:Inter;src:url(../fonts/Inter-Variable.ttf) format("truetype-variations");font-weight:100 900;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../fonts/IBMPlexMono-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../fonts/IBMPlexMono-Medium.ttf) format("truetype");font-weight:500;font-display:swap}:root{--lc-ground: #030710;--lc-surface: #0d1322;--lc-raised: #161f34;--lc-line: #161f34;--lc-line-strong: #2f4b68;--lc-mid: #40668d;--lc-accent: #7fc8ff;--lc-accent-deep: #006ddd;--lc-graphic-mid: #1a5eaa;--lc-text: #f2faff;--lc-text-dim: #99d3ff;--lc-tint-3: #cce9ff;--lc-pass: #8cdb9b;--lc-warn: #fbb0a5;--lc-fail: #db8c8c;--font-display: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", ui-monospace, monospace;--weight-light: 300;--weight-reg: 400;--weight-med: 500;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 14px;--radius-pill: 100px;--dur-fast: .18s;--dur-normal: .45s;--dur-slow: .7s;--ease-default: cubic-bezier(.32, .72, 0, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--lc-ground);color:var(--lc-text);font-family:var(--font-display);font-weight:var(--weight-reg)}body{overflow:hidden}button,input{font:inherit}button{cursor:pointer}h1,h2{font-weight:var(--weight-light);letter-spacing:-.03em;margin:0}#app{display:flex;overflow:hidden;height:100vh;flex-direction:column;background:var(--lc-ground)}@supports (height: 100dvh){#app{height:100dvh}}.eyebrow,.section-label{font-family:var(--font-mono);font-weight:var(--weight-reg);font-size:12px;letter-spacing:0;color:var(--lc-text-dim)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:11px 26px 9px;border-bottom:1px solid var(--lc-line)}.topbar h1{margin-top:1px;font-size:clamp(24px,2.6vw,40px);line-height:.94}.topbar-right{display:flex;align-items:center;gap:12px}.badge{padding:8px 14px;border:1px solid var(--lc-accent);border-radius:var(--radius-pill);color:var(--lc-accent);font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-reg);letter-spacing:0}.ghost-btn,.danger-btn,.tab,.secondary-btn{background:transparent;border:1px solid var(--lc-line-strong);border-radius:var(--radius-md);padding:9px 13px;color:var(--lc-text);font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-reg);letter-spacing:0;transition:border-color var(--dur-fast) var(--ease-out)}.ghost-btn:hover,.tab:hover,.secondary-btn:hover{border-color:var(--lc-accent)}.danger-btn{width:100%;margin-top:14px;border-color:var(--lc-fail);color:var(--lc-fail)}.layout{display:grid;overflow:hidden;flex:1;min-height:0;gap:14px;padding:14px;grid-template-columns:minmax(220px,1fr) minmax(420px,1.6fr) minmax(240px,1fr)}.panel{background:var(--lc-surface);border:1px solid var(--lc-line);border-radius:var(--radius-2xl)}.left-panel,.right-panel{display:flex;min-height:0;flex-direction:column;gap:14px;padding:16px}.left-panel,.right-panel{overflow:hidden}@media(max-width:1050px){.layout{grid-template-columns:1fr minmax(420px,1.5fr)}.right-panel{display:grid;grid-column:1 / -1;grid-template-columns:2fr 1fr 1fr;align-items:start}}@media(max-width:760px){.topbar{padding:16px}.layout{display:flex;flex-direction:column;padding:8px}.left-panel{order:2}.game-stage{order:1}.right-panel{display:flex;order:3}.controls-card{display:none}}@media(min-width:1400px){.layout{gap:18px;padding:18px;grid-template-columns:minmax(270px,.9fr) minmax(590px,1.8fr) minmax(300px,1fr)}.left-panel,.right-panel{padding:18px}}.player-name{margin-top:4px;overflow:hidden;font-size:clamp(22px,2.2vw,32px);font-weight:var(--weight-light);letter-spacing:-.03em;text-overflow:ellipsis}.metrics-grid{display:grid;flex:none;gap:8px;grid-template-columns:1fr 1fr}.metric{padding:9px 10px;background:var(--lc-raised);border:1px solid var(--lc-line);border-radius:var(--radius-xl)}.metric span{display:block;color:var(--lc-text-dim);font-family:var(--font-mono);font-size:11px;font-weight:var(--weight-reg);letter-spacing:0}.metric strong,.timer,.delta,.comparison-row strong{font-family:var(--font-mono);font-weight:var(--weight-reg);letter-spacing:0}.metric strong{display:block;margin-top:2px;font-size:21px}.trace-section,.trace-list{display:flex;overflow:hidden;min-height:0;flex:1;flex-direction:column;gap:5px}.trace-item{display:flex;justify-content:space-between;gap:10px;padding:6px 10px;background:var(--lc-raised);border-left:2px solid var(--lc-accent);font-size:13px}.trace-value{color:var(--lc-accent);font-family:var(--font-mono);font-weight:var(--weight-reg);letter-spacing:0}.controls-card{flex:none;padding-top:12px;border-top:1px solid var(--lc-line)}.control-row{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--lc-text-dim);font-size:13px}kbd{min-width:26px;padding:2px 6px;background:var(--lc-ground);border:1px solid var(--lc-line-strong);border-radius:var(--radius-sm);color:var(--lc-text);font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-reg);letter-spacing:0;text-align:center}.game-stage{display:flex;overflow:hidden;min-height:0;flex-direction:column;padding:16px}.stage-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.timer{font-size:clamp(32px,4vw,50px)}.powerup-chip{padding:8px 14px;border:1px solid var(--lc-line-strong);border-radius:var(--radius-pill);color:var(--lc-accent);font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-reg);letter-spacing:0;transition:border-color var(--dur-normal) var(--ease-default)}.canvas-wrap{position:relative;display:grid;overflow:hidden;min-height:0;flex:1;place-items:center;background:var(--lc-ground);border:1px solid var(--lc-line);border-radius:var(--radius-2xl)}.stage-nodes{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none}#gameCanvas{position:absolute;z-index:2;display:block;inset:0;width:100%;height:100%}.overlay{position:absolute;z-index:20;display:none;padding:18px;background:var(--lc-ground);inset:0;place-items:center}.overlay.visible{display:grid}.overlay-card{width:min(560px,94%);padding:26px;background:var(--lc-surface);border:1px solid var(--lc-line-strong);border-radius:var(--radius-2xl);text-align:center}.overlay-card h2{margin-bottom:10px;font-size:clamp(28px,4vw,50px)}.overlay-card p{color:var(--lc-text-dim);line-height:1.55}.overlay-card input{width:100%;margin:14px 0;padding:14px;background:var(--lc-ground);border:1px solid var(--lc-line-strong);border-radius:var(--radius-lg);color:var(--lc-text);font-family:var(--font-mono);font-size:19px;font-weight:var(--weight-reg);letter-spacing:0;text-align:center}.overlay-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}.primary-btn{min-width:180px;padding:13px 18px;background:var(--lc-accent);border:0;border-radius:var(--radius-lg);color:var(--lc-ground);font-family:var(--font-mono);font-size:13px;font-weight:var(--weight-med);letter-spacing:0}.secondary-btn{padding:13px 18px}.choice-grid{display:grid;gap:10px;margin:18px 0;grid-template-columns:1fr 1fr;text-align:left}.choice{padding:14px;background:var(--lc-raised);border:1px solid var(--lc-line-strong);border-radius:var(--radius-xl);color:var(--lc-text);font-size:13px;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.choice:hover,.choice:focus{transform:translateY(-3px);border-color:var(--lc-accent)}.choice strong{display:block;margin-bottom:5px;color:var(--lc-accent);font-family:var(--font-mono);font-size:14px;font-weight:var(--weight-med);letter-spacing:0}.stage-body{display:flex;min-height:0;flex:1;gap:14px}.stage-rail{display:flex;min-height:0;width:128px;flex:none;flex-direction:column;gap:12px}.rail-slot{display:flex;min-height:0;flex-direction:column;gap:5px}.rail-hold{flex:none}.rail-next{flex:1}.stage-rail canvas{min-height:0;width:100%;background:var(--lc-surface);border:1px solid var(--lc-line);border-radius:var(--radius-lg)}.rail-hold canvas{height:90px}.rail-next canvas{flex:1}.leaderboard-section{display:flex;overflow:hidden;min-height:0;flex:1;flex-direction:column}.leaderboard-tabs{display:flex;flex:none;gap:6px;margin:8px 0}.tab{flex:1;padding:8px;font-size:11px}.tab.active{background:var(--lc-accent);border-color:var(--lc-accent);color:var(--lc-ground)}.leaderboard{display:flex;overflow:hidden;min-height:0;flex:1;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.leaderboard li{display:grid;flex:none;align-items:center;gap:8px;padding:7px 10px;background:var(--lc-raised);border:1px solid var(--lc-line);border-radius:var(--radius-lg);grid-template-columns:30px 1fr auto}.leaderboard .rank,.leaderboard .value{font-family:var(--font-mono);font-weight:var(--weight-reg);letter-spacing:0}.leaderboard .rank{color:var(--lc-text-dim)}.leaderboard .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard .value{color:var(--lc-accent)}.intervention-panel{padding:15px;background:var(--lc-raised);border:1px solid var(--lc-line);border-radius:var(--radius-2xl);transition:border-color var(--dur-normal) var(--ease-default)}.intervention-panel:not([data-type=none]){border-color:var(--lc-accent)}.intervention-name{margin-top:7px;color:var(--lc-accent);font-size:clamp(20px,2.3vw,30px);font-weight:var(--weight-light);letter-spacing:-.03em}.intervention-description{min-height:32px;margin-top:4px;color:var(--lc-text-dim);font-size:13px;line-height:1.45}.intervention-meter{height:6px;overflow:hidden;margin-top:13px;background:var(--lc-ground);border:1px solid var(--lc-line-strong);border-radius:var(--radius-xs)}.intervention-meter-fill{width:0;height:100%;background:var(--lc-accent);transition:width var(--dur-fast) var(--ease-out)}.intervention-status{margin-top:8px;color:var(--lc-text);font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-reg);letter-spacing:0}.baseline-card{flex:none;padding:12px 0;border-top:1px solid var(--lc-line);border-bottom:1px solid var(--lc-line)}.comparison-row{display:flex;justify-content:space-between;margin-top:9px}.comparison-row span{color:var(--lc-text-dim)}.delta{margin-top:10px;color:var(--lc-accent);font-size:28px}.status-row{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--lc-text-dim);font-size:13px}.status-led{width:7px;height:7px;flex:none;background:var(--lc-pass);border-radius:var(--radius-pill)}.ticker{display:flex;overflow:hidden;justify-content:space-around;gap:24px;padding:12px 18px;border-top:1px solid var(--lc-line);color:var(--lc-text-dim);font-family:var(--font-mono);font-size:12px;font-weight:var(--weight-reg);letter-spacing:0;white-space:nowrap}.stage-wash{position:absolute;z-index:8;background:var(--lc-accent-deep);inset:0;opacity:0;pointer-events:none}.stage-wash.flash{animation:stage-flash .72s var(--ease-out)}.stage-wash.epic{background:var(--lc-accent)}.stage-impact{animation:stage-impact .35s var(--ease-spring)}.moment-banner{position:absolute;z-index:12;top:9%;left:50%;min-width:min(520px,88%);padding:15px 24px;background:var(--lc-surface);border:1px solid var(--lc-accent);border-radius:var(--radius-xl);opacity:0;pointer-events:none;text-align:center;transform:translate(-50%,-20px) scale(.94)}.moment-banner strong{display:block;color:var(--lc-accent);font-size:clamp(24px,4.2vw,54px);font-weight:var(--weight-light);letter-spacing:-.035em;line-height:.95}.moment-banner span{display:block;margin-top:7px;color:var(--lc-text-dim);font-family:var(--font-mono);font-size:clamp(11px,1.4vw,16px);font-weight:var(--weight-reg);letter-spacing:0}.moment-banner.show{animation:moment-in 1.45s var(--ease-default) both}.moment-banner.epic{border-color:var(--lc-tint-3)}.moment-banner.epic strong{color:var(--lc-tint-3)}.moment-banner.epic.show{animation:moment-in-epic 2.1s var(--ease-default) both}.fx-layer{position:absolute;z-index:10;overflow:hidden;inset:0;pointer-events:none}.fx-layer i{position:absolute;bottom:24%;left:var(--x);width:var(--size);height:var(--size);background:var(--lc-accent);animation:particle-burst 1s var(--delay) var(--ease-out) both}.playfield-powerup{position:absolute;z-index:11;top:14px;left:14px;display:grid;align-items:center;gap:10px;max-width:calc(100% - 28px);min-width:264px;padding:10px 13px;background:var(--lc-surface);border:1px solid var(--lc-line-strong);border-radius:var(--radius-md);grid-template-columns:30px minmax(146px,auto) auto;pointer-events:none;transition:border-color var(--dur-normal) var(--ease-default),transform var(--dur-normal) var(--ease-default)}.playfield-powerup.online{border-color:var(--lc-accent);animation:powerup-float 2.2s ease-in-out infinite}.playfield-powerup.engaged{border-color:var(--lc-tint-3)}.powerup-beacon{display:grid;width:26px;height:26px;border:1px solid var(--lc-line-strong);place-items:center;transform:rotate(45deg)}.powerup-beacon span{width:10px;height:10px;background:var(--lc-line-strong)}.playfield-powerup.online .powerup-beacon{border-color:var(--lc-accent)}.playfield-powerup.online .powerup-beacon span{background:var(--lc-accent);animation:beacon-pulse .9s var(--ease-default) infinite alternate}.powerup-copy{display:grid;line-height:1.1}.powerup-copy small,.powerup-copy span{color:var(--lc-text-dim);font-family:var(--font-mono);font-size:10px;font-weight:var(--weight-reg);letter-spacing:0}.powerup-copy strong{margin-top:3px;color:var(--lc-text);font-size:17px;font-weight:var(--weight-light);letter-spacing:-.02em}.powerup-copy span{margin-top:4px;color:var(--lc-accent);white-space:nowrap}.powerup-charges{display:flex;align-items:center;justify-content:flex-end;gap:4px}.powerup-charges i{display:block;width:6px;height:22px;background:var(--lc-raised);border:1px solid var(--lc-line-strong)}.powerup-charges i.on{background:var(--lc-accent);border-color:var(--lc-accent)}@keyframes stage-flash{0%{opacity:0}18%{opacity:.55}to{opacity:0}}@keyframes stage-impact{0%,to{transform:translate(0)}28%{transform:translate(-4px,2px)}55%{transform:translate(4px,-2px)}78%{transform:translate(-2px,1px)}}@keyframes moment-in{0%{opacity:0;transform:translate(-50%,-22px) scale(.9)}15%{opacity:1;transform:translate(-50%) scale(1.04)}26%,72%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-14px) scale(.98)}}@keyframes moment-in-epic{0%{opacity:0;transform:translate(-50%,-26px) scale(.86)}12%{opacity:1;transform:translate(-50%) scale(1.08)}22%,80%{opacity:1;transform:translate(-50%) scale(1.02)}to{opacity:0;transform:translate(-50%,-16px) scale(.98)}}@keyframes particle-burst{0%{opacity:0;transform:translateY(40px) rotate(0) scale(.4)}18%{opacity:1}to{opacity:0;transform:translate(var(--dx),-360px) rotate(560deg) scale(1)}}@keyframes beacon-pulse{0%{transform:scale(.7)}to{transform:scale(1.15)}}@keyframes powerup-float{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}@keyframes converge-line{0%{stroke-dashoffset:320}to{stroke-dashoffset:0}}.stage-nodes .converge{animation:converge-line 2.6s var(--ease-default) both}@media(prefers-reduced-motion:reduce){.stage-wash.flash,.moment-banner.show,.moment-banner.epic.show,.fx-layer i,.playfield-powerup.online,.playfield-powerup.online .powerup-beacon span,.stage-impact,.stage-nodes .converge{animation:none}}@media(max-width:760px){.playfield-powerup{top:10px;right:10px;left:10px;min-width:0;grid-template-columns:26px 1fr}.powerup-charges{display:none}}
