:root{--accent:#ff0;--text:#e8e8e8;--muted:#9a9a9a;--panel:#080a14eb;--line:#333a55;--warn:#ff6040}html,body{background:#000;height:100%;margin:0;overflow:hidden}#view{width:100vw;height:100vh;display:block}#hud-column{pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:12px;left:12px}#hud{min-width:260px;color:var(--accent);white-space:pre;border:1px solid var(--line);pointer-events:none;text-shadow:1px 1px #000;background:#00000073;padding:10px 14px;font:700 17px/1.5 monospace}.hud-row{align-items:center;gap:10px;display:flex}.hud-row[hidden]{display:none}.hud-fps{color:var(--muted)}.hud-label{color:var(--muted);min-width:3.2em}.hud-value{text-align:right;min-width:3em}.fuel-bar{border:1px solid var(--accent);background:#00000080;flex:1;height:12px}.fuel-fill{background:var(--accent);height:100%}.fuel-fill.bitten{background:#fff}.fuel-fill.low{background:var(--warn);animation:.6s steps(2,start) infinite blink}.alert{color:var(--warn)}.pad-arrow{width:20px;height:20px;display:inline-flex}.hud-lives{letter-spacing:.1em}.hud-arms{color:var(--accent)}.flash{opacity:0;pointer-events:none;background:#e8f8ff;position:fixed;inset:0}.flash.go{animation:.45s ease-out flash}@keyframes flash{0%{opacity:.75}to{opacity:0}}.hud-auto{color:var(--accent)}.hud-auto.engaged{color:#6cf;animation:.6s steps(2,start) infinite blink}.hud-auto.spent{color:var(--muted)}.hud-status{color:#fff;min-height:1.5em}.hud-status.warn{color:var(--warn);animation:.6s steps(2,start) infinite blink}@keyframes blink{to{visibility:hidden}}#scanner{aspect-ratio:1;box-sizing:border-box;width:100%;height:auto;image-rendering:pixelated;border:1px solid var(--line);background:#000}.wave-banner{text-align:center;pointer-events:none;letter-spacing:.3em;color:var(--accent);text-shadow:3px 3px #000;opacity:0;font:700 56px monospace;transition:opacity .4s;position:fixed;top:22%;left:0;right:0}.wave-banner.visible{opacity:1}.wave-bonus{letter-spacing:.15em;color:var(--text);margin-top:6px;font-size:18px}#guide,#howto{box-sizing:border-box;color:var(--text);background:#00000080;padding:24px 16px;font:13px/1.4 monospace;display:flex;position:fixed;inset:0;overflow-y:auto}#overlay.hidden,#guide.hidden,#howto.hidden,#gameover.hidden,#title.hidden,#hud-column.hidden,.panel button.hidden{display:none}.panel{box-sizing:border-box;background:var(--panel);border:2px solid var(--line);width:100%;max-width:820px;margin:auto;padding:20px 24px}.panel header{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.panel h1{letter-spacing:.3em;color:var(--accent);margin:0;font-size:40px}.panel h2{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--line);margin:18px 0 8px;padding-bottom:4px;font-size:13px}.panel section>h2:first-child{margin-top:0}.panel .status{color:var(--muted);flex:1;margin:0}.panel button{font:inherit;cursor:pointer}.fly{letter-spacing:.1em;color:#000;background:var(--accent);border:none;padding:10px 28px;font-weight:700;font-size:18px!important}.fly:hover{filter:brightness(1.15)}#overlay{width:min(400px,100vw);color:var(--text);font:13px/1.4 monospace;position:fixed;top:0;bottom:0;right:0}#overlay:not(.hidden) .drawer{animation:.18s ease-out drawer-in}@keyframes drawer-in{0%{opacity:0;transform:translate(40px)}}.drawer{box-sizing:border-box;background:var(--panel);border-left:2px solid var(--line);flex-direction:column;height:100%;display:flex}.drawer button{font:inherit;cursor:pointer}.drawer button.hidden,.drawer .hidden{display:none}.drawer header{border-bottom:1px solid var(--line);padding:12px 14px 10px}.drawer-title{align-items:center;gap:12px;display:flex}.drawer h1{letter-spacing:.3em;color:var(--accent);margin:0;font-size:24px}.drawer .status{color:var(--muted);flex:1;margin:0}.drawer-buttons{align-items:center;gap:8px;margin-top:10px;display:flex}.drawer-buttons .reset{margin-top:0}.drawer-buttons .fly{margin-left:auto;padding:6px 16px;font-size:14px!important}.drawer-tabs{border-bottom:1px solid var(--line);display:flex}.drawer-tabs button{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:9px 2px 7px;font-size:11px}.drawer-tabs button:hover{color:var(--text)}.drawer-tabs button.selected{color:var(--accent);border-bottom-color:var(--accent)}.drawer-body{scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex:1;padding:4px 14px 12px;overflow-y:auto}.drawer-page{padding-top:8px}.drawer-page>.minimap{margin:0 auto}.drawer footer{border-top:1px solid var(--line);align-items:center;gap:10px;padding:8px 14px;display:flex}.drawer footer .reset{margin-top:0}.fold{border-bottom:1px solid var(--line)}.fold>summary{cursor:pointer;align-items:baseline;gap:10px;padding:9px 0;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"▸";color:var(--accent);flex:none;width:.8em}.fold[open]>summary:before{content:"▾"}.fold-title{color:var(--accent);letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}.glance{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:11px;overflow:hidden}.fold[open] .glance{visibility:hidden}.fold>:last-child{margin-bottom:12px}.drawer .slider{grid-template-columns:1fr auto;gap:2px 10px;margin:6px 0}.drawer .slider input{grid-area:2/1/auto/-1;margin:0}.drawer .toggle{grid-template-columns:auto 1fr;gap:0 8px;margin:8px 0;display:grid}.drawer .toggle .hint{grid-column:2;font-size:11px}.about{line-height:1.5}.about h3{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:14px 0 6px;font-size:13px;font-weight:400}.about h3:first-child{margin-top:4px}.about p{margin:0 0 8px}.about ul,.about ol{margin:0 0 8px;padding-left:18px}.about li{margin:2px 0}.about a{color:var(--accent)}.about sup{margin-left:1px;font-size:10px}.about-version{color:var(--muted);border-top:1px solid var(--line);padding-top:8px}.about-sources{color:var(--muted);font-size:11px}.drawer .help{text-align:left;margin:8px 0 0;font-size:11px}.minimap,.map-card canvas{image-rendering:pixelated;border:1px solid var(--line);display:block}.minimap{width:256px;max-width:100%;height:256px}.map-cards{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.map-card{color:var(--text);background:0 0;border:2px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:4px;display:flex}.map-card canvas{aspect-ratio:1;width:100%;height:auto}.map-card span{text-align:center;font-size:11px}.map-card:hover{border-color:var(--line)}.map-card.selected{border-color:var(--accent)}.map-card.selected span{color:var(--accent)}.slider{grid-template-columns:140px 1fr 80px;align-items:center;gap:10px;margin:4px 0;display:grid}.slider input{width:100%;accent-color:var(--accent)}.slider .value{text-align:right;color:var(--accent)}.toggle{cursor:pointer;align-items:baseline;gap:10px;margin:4px 0;display:flex}.toggle input{accent-color:var(--accent)}.toggle .name{white-space:nowrap}.toggle .hint{color:var(--muted)}.note{color:var(--muted);margin:6px 0 0}.debug-row{align-items:center;gap:10px;display:flex}.debug-row input{width:4.5em;font:inherit;color:var(--text);border:1px solid var(--line);background:#0006;padding:4px 6px}.debug-row .reset{margin-top:0}.note.warn{color:var(--warn)}.reset{color:var(--text);border:1px solid var(--line);background:0 0;margin-top:16px;padding:6px 12px}.reset:hover{border-color:var(--accent)}.help{color:var(--muted);text-align:center;margin:20px 0 0}.presets{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.preset{color:var(--text);border:1px solid var(--line);background:0 0;padding:4px 10px}.preset:hover{border-color:var(--accent)}.preset.selected{color:#000;background:var(--accent);border-color:var(--accent)}#guide,#howto{background:#000000a6}.howto-cards{grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;display:grid}@media (width<=720px){.howto-cards{grid-template-columns:1fr}}.howto-card{border:1px solid var(--line);background:#00000059;padding:10px 12px}.howto-card h3{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-size:13px}.howto-card p{margin:0 0 6px}.howto-card kbd{border:1px solid var(--line);color:var(--accent);background:#00000080;border-radius:3px;padding:1px 6px;font:700 12px monospace}.guide-cards{grid-template-columns:1fr 1fr;gap:14px;display:grid}.panel h2.guide-section{margin-top:22px}@media (width<=720px){.guide-cards{grid-template-columns:1fr}}.guide-card{border:1px solid var(--line);background:#00000059;align-items:flex-start;gap:12px;padding:10px;display:flex}.guide-picture{flex:none;width:168px;height:120px}.guide-text{min-width:0}.guide-text p{margin:0 0 6px}.guide-text h3{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);justify-content:space-between;gap:8px;margin:0 0 6px;font-size:13px;display:flex}.guide-tag{color:var(--text);letter-spacing:0;text-transform:none}.guide-appears{color:var(--muted)}.guide-beat{color:var(--accent)}@media (width<=420px){.guide-card{flex-direction:column}}#gameover{box-sizing:border-box;color:var(--text);background:#3c001499;padding:24px 16px;font:13px/1.4 monospace;display:flex;position:fixed;inset:0}.gameover{text-align:center;max-width:460px}.gameover h1{color:var(--warn)}.gameover-reason{color:var(--text);font-size:15px}.gameover-stats{gap:6px;width:max-content;margin:18px auto;font-size:18px;display:grid}.gameover-row{justify-content:space-between;gap:32px;display:flex}.gameover-value{color:var(--accent);font-weight:700}.gameover-best{color:var(--muted)}.gameover-best.new{color:var(--accent);font-weight:700}.gameover-buttons{justify-content:center;align-items:center;gap:12px;margin-top:16px;display:flex}.gameover-buttons .reset{margin-top:0}#title{box-sizing:border-box;pointer-events:none;color:var(--text);text-shadow:1px 1px #000;flex-direction:column;justify-content:space-between;padding:16px;font:15px/1.4 monospace;display:flex;position:fixed;inset:0}#title button{pointer-events:auto;font:inherit;cursor:pointer}.title-tag a{pointer-events:auto;color:var(--accent)}.github{color:var(--muted);transition:color .15s;display:inline-flex}.github:hover,.github:focus-visible{color:var(--accent)}.github svg{width:100%;height:100%}.title-github{pointer-events:auto;width:28px;height:28px;position:absolute;top:12px;right:16px}.panel-github{width:24px;height:24px}.title-tag{text-align:center;color:var(--muted);letter-spacing:.08em;margin:0}.title-lost{text-align:center;letter-spacing:.2em;color:#ff3c7a;opacity:0;margin:0;font:700 36px monospace;transition:opacity .6s}.title-lost.visible{opacity:1}.title-bottom{background:linear-gradient(#0000,#000000b3 45%);flex-direction:column;align-items:center;gap:14px;margin:0 -16px -16px;padding-top:40px;padding-bottom:16px;display:flex}.title-goal{text-align:center;margin:0;font-size:18px}.title-virus{color:#ff3c7a;font-weight:700}.title-keys{flex-wrap:wrap;justify-content:center;gap:6px 14px;max-width:760px;display:flex}.title-key{color:var(--muted);align-items:center;gap:6px;transition:color .15s;display:inline-flex}.title-key kbd{border:1px solid var(--line);color:var(--muted);background:#00000080;border-radius:3px;padding:2px 7px;font:700 13px monospace;transition:all .15s}.title-key.lit{color:var(--text)}.title-key.lit kbd{color:#000;background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px var(--accent)}.title-scheme{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;display:flex}.title-mouse-note{color:var(--accent);letter-spacing:.04em}.title-scheme-choice{display:inline-flex}.title-scheme-button{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);background:#00000080;padding:2px 10px;font:12px monospace}.title-scheme-button+.title-scheme-button{border-left:none}.title-scheme-button:hover{color:var(--text)}.title-scheme-button.selected{color:#000;background:var(--accent);border-color:var(--accent)}.howto-note{color:var(--muted);margin:14px 0 0;font-size:13px}.howto-note kbd{border:1px solid var(--line);color:var(--muted);background:#00000080;border-radius:3px;padding:1px 5px;font:700 11px monospace}#demo-badge{pointer-events:none;letter-spacing:.25em;color:#000;background:var(--accent);padding:3px 12px;font:700 15px monospace;position:fixed;top:12px;left:50%;transform:translate(-50%)}#demo-badge span{letter-spacing:.04em;margin-left:8px;font-weight:400}#demo-badge.hidden{display:none}#aim{border:1px solid var(--line);pointer-events:none;background:#00000059;border-radius:50%;width:64px;height:64px;margin-left:-32px;position:fixed;bottom:24px;left:50%}#aim:before{content:"";border:1px solid var(--muted);border-radius:50%;width:6px;height:6px;margin:-3px;position:absolute;top:50%;left:50%}#aim.hidden{display:none}#aim .aim-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 6px var(--accent);border-radius:50%;margin:-4px;position:absolute;top:50%;left:50%}.title-buttons{align-items:center;gap:12px;display:flex}.title-buttons .reset,.panel header .reset{margin-top:0}.title-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 24px;display:flex}.title-best{color:var(--accent);font-weight:700}.title-best:empty{display:none}.title-map{align-items:center;gap:8px;display:inline-flex}.title-map-name{text-align:center;min-width:12ch;color:var(--text)}.title-arrow{color:var(--accent);border:1px solid var(--line);background:0 0;padding:0 6px}.title-arrow:hover{border-color:var(--accent)}.combo{pointer-events:none;color:var(--accent);text-shadow:2px 2px #000;flex-direction:column;align-items:center;gap:4px;font:700 15px monospace;display:flex;position:fixed;top:44px;left:50%;transform:translate(-50%)}.combo.hidden,.combo .hidden{display:none}.combo-chain{--heat:0;color:color-mix(in srgb, var(--accent), #ff4020 calc(var(--heat) * 100%));grid-template-columns:auto auto;align-items:baseline;gap:0 8px;display:grid}.combo-chain.bump{animation:.25s ease-out combo-bump}@keyframes combo-bump{0%{transform:scale(1.5)}}.combo-times{font-size:40px;line-height:1}.combo-label{letter-spacing:.25em}.combo-bar{background:#00000080;border:1px solid;grid-column:1/-1;height:4px}.combo-clock{background:currentColor;height:100%}.combo-low{color:#6cf;letter-spacing:.15em}.combo-low.fading{opacity:.5}.score-popup{--heat:0;pointer-events:none;white-space:nowrap;color:#fff;text-shadow:2px 2px #000;font:700 16px monospace;position:fixed;top:0;left:0}.score-popup.chained{color:color-mix(in srgb, var(--accent), #ff4020 calc(var(--heat) * 100%));font-size:20px}.score-popup span{font-size:.8em}.race-hud{pointer-events:none;color:var(--accent);text-shadow:2px 2px #000;flex-direction:column;align-items:center;gap:2px;font:700 15px monospace;display:flex;position:fixed;top:40px;left:50%;transform:translate(-50%)}.race-hud.hidden{display:none}.race-clock{letter-spacing:.05em;font-variant-numeric:tabular-nums;font-size:44px;line-height:1}.race-row{letter-spacing:.15em;align-items:center;gap:10px;display:flex}.race-distance{color:var(--text);min-width:2em}.race-split{color:#fff;font-size:26px}.race-split.ahead{color:#6f6}.race-split.behind{color:var(--warn)}.race-hint{color:#fff;letter-spacing:.2em;animation:.8s steps(2,start) infinite blink}.race-hint:empty{display:none}.race-best{color:var(--muted);letter-spacing:.1em;font-size:12px}.race-result-time{color:var(--accent);margin:8px 0;font:700 56px monospace}#race-result{box-sizing:border-box;color:var(--text);background:#00000073;padding:24px 16px;font:13px/1.4 monospace;display:flex;position:fixed;inset:0}#race-result.hidden{display:none}.race-result h1{color:var(--accent)}
