:root{color-scheme:dark;--green:#a5ffbb;--acid:#55ff9c;--dark:#03090c;--red:#ff6167;--white:#f0fff4}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#02070a;color:var(--white);font-family:'Arial Narrow','Helvetica Neue',Arial,sans-serif}#game,canvas#fx,.vignette,.scanlines,#flash{position:fixed;inset:0;width:100%;height:100%}#game canvas{display:block;width:100%;height:100%;outline:none}#fx{pointer-events:none;z-index:4;opacity:.91}.vignette{pointer-events:none;z-index:5;background:radial-gradient(ellipse at 50% 45%,transparent 32%,rgba(0,9,11,.24) 65%,rgba(0,3,7,.83) 100%)}.scanlines{pointer-events:none;z-index:6;opacity:.23;background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,rgba(7,18,14,.32) 4px)}#flash{pointer-events:none;z-index:7;opacity:0;background:#c7ffda;transition:opacity .09s}button{cursor:pointer;font:inherit}button:focus-visible{outline:2px solid var(--green);outline-offset:3px}.hidden{display:none!important}.green{color:var(--acid)}#hud{position:fixed;inset:0;z-index:9;pointer-events:none}.hud-top{position:absolute;left:3.2%;right:3.2%;top:25px;display:flex;justify-content:space-between;align-items:flex-start;gap:25px}.brand{display:flex;align-items:flex-start;gap:10px;min-width:170px;font-weight:900;line-height:.83;letter-spacing:.06em;font-size:20px;filter:drop-shadow(0 0 9px rgba(70,255,139,.24))}.brand b{color:var(--green);font-size:25px}.brand .thin{font-weight:200}.sigil{color:var(--green);font-size:39px;line-height:.9}.hud-micro{font:9px monospace;color:#527d71;writing-mode:vertical-rl;margin-left:2px}.chapter{width:270px;text-align:center;font:11px 'Courier New',monospace;color:#bbdfcc;letter-spacing:.18em}.progress-track{height:2px;background:rgba(117,215,155,.23);margin:12px 0 7px;overflow:hidden}.progress-track i{height:100%;width:0;background:var(--acid);box-shadow:0 0 10px var(--acid);display:block}.chapter small{color:#5f8777;font-size:9px;letter-spacing:.11em}.hud-right{display:flex;gap:27px;text-align:right}.number,.score{display:flex;flex-direction:column;gap:3px}.number>span{font-family:Impact,'Arial Black',sans-serif;font-size:47px;line-height:.9;color:var(--green);letter-spacing:.04em}.score>span{font-size:21px;letter-spacing:.12em;font-weight:700}.number small,.score small{font:9px monospace;color:#719e84;letter-spacing:.12em}.hud-bottom{position:absolute;bottom:32px;left:3.2%;right:3.2%;display:flex;justify-content:space-between;align-items:flex-end}.meter-stack{width:min(245px,28vw);display:flex;flex-direction:column;gap:12px}.meter-caption{font:10px monospace;display:flex;justify-content:space-between;color:#b5d2c2;letter-spacing:.1em;margin-bottom:5px}.bar{height:4px;background:rgba(110,180,148,.2)}.bar i{display:block;height:100%;width:100%;transition:width .1s;box-shadow:0 0 11px currentColor}.bar .hp{background:#dcfff0;color:#dcfff0}.bar .nitro{background:#48d8ed;color:#48d8ed}.bar .focus{background:#75ff94;color:#75ff94}.event-text{position:absolute;left:50%;bottom:130px;transform:translateX(-50%);text-align:center;font:900 20px 'Arial Narrow',sans-serif;letter-spacing:.25em;color:#d8ffe3;text-shadow:0 0 25px rgba(51,255,144,.7);white-space:nowrap;transition:opacity .3s}.speed{font-family:Impact,'Arial Black',sans-serif;font-size:70px;line-height:.78;letter-spacing:.02em;text-align:right}.speed>div{font-size:15px;letter-spacing:.28em;color:#b1dcc0;margin-top:8px}.speed small{font:10px monospace;letter-spacing:.15em;color:var(--acid)}.target-indicator{position:absolute;top:39%;left:50%;transform:translate(-50%,-50%);font:11px monospace;letter-spacing:.2em;color:var(--green)}.crosshair{position:absolute;top:50%;left:50%;width:27px;height:27px;transform:translate(-50%,-50%);opacity:.43}.crosshair:before,.crosshair:after{content:'';position:absolute;border-color:var(--acid);border-style:solid;width:6px;height:6px}.crosshair:before{top:0;left:0;border-width:1px 0 0 1px}.crosshair:after{bottom:0;right:0;border-width:0 1px 1px 0}.danger,.cling{position:absolute;left:50%;transform:translateX(-50%);top:27%;font:800 17px monospace;white-space:nowrap;color:#ff9959;letter-spacing:.12em;text-shadow:0 0 24px #ff5139;animation:warn .55s linear infinite alternate}.cling{top:34%;color:#f4fffa;text-shadow:0 0 22px #8affad}@keyframes warn{to{opacity:.36}}.screen{position:fixed;inset:0;z-index:13;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(90deg,rgba(0,5,8,.86),rgba(0,5,8,.34) 43%,rgba(0,5,8,.73));overflow:hidden}.corner{position:absolute;font:10px 'Courier New',monospace;letter-spacing:.12em;color:#6d9483}.top-left{top:32px;left:3.2%}.top-right{top:32px;right:3.2%}.bottom-left{bottom:30px;left:3.2%}.bottom-right{bottom:30px;right:3.2%}.intro-content{margin-top:28px;max-width:min(90%,770px)}.eyebrow{color:var(--green);font:10px 'Courier New',monospace;letter-spacing:.42em;display:flex;align-items:center;justify-content:center;gap:14px}.eyebrow .line{width:24px;height:1px;background:#3c8b5c}.intro h1{margin:18px 0 20px;font-family:Impact,'Arial Black',sans-serif;letter-spacing:-.02em;line-height:.8;font-size:clamp(77px,12.1vw,165px);text-align:center;transform:scaleX(.89);font-weight:900;filter:drop-shadow(0 0 35px rgba(50,255,125,.09))}.intro h1 span{display:block;color:#d8ffe6;letter-spacing:.035em;text-shadow:0 0 32px rgba(86,255,147,.36)}.intro h1 strong{display:block;color:transparent;-webkit-text-stroke:2px #9cddab;letter-spacing:.01em;font-weight:900;margin-top:7px}.intro-desc{font:11px/1.85 'Courier New',monospace;letter-spacing:.19em;color:#b3cebd}.intro-desc em{font-style:normal;color:var(--acid);font-weight:bold}.main-button{margin:24px auto 19px;background:var(--green);border:1px solid #caffd7;color:#05160d;font:900 13px 'Arial Narrow',sans-serif;letter-spacing:.2em;padding:18px 23px;min-width:265px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 0 25px rgba(95,255,153,.19);transition:background .2s,transform .2s,box-shadow .2s}.main-button:hover{background:#fff;transform:translateY(-2px);box-shadow:0 0 50px rgba(95,255,153,.5)}.main-button span{font-size:23px;margin-left:20px}.controls-grid{margin:20px auto 0;max-width:610px;display:flex;gap:9px 18px;flex-wrap:wrap;justify-content:center;font:9px 'Courier New',monospace;color:#7d9b88;letter-spacing:.03em}.controls-grid b{color:var(--green);margin-right:4px}#result{background:rgba(1,7,10,.85)}#result h2{font:900 clamp(46px,7vw,95px)/1 Impact,'Arial Black',sans-serif;letter-spacing:.04em;color:var(--white);margin:15px 0 9px}#result .eyebrow{color:var(--red)}.result-stats{display:flex;gap:48px;margin:20px 0 4px}.result-stats>div{display:flex;flex-direction:column}.result-stats b{font:38px Impact,'Arial Black',sans-serif;color:var(--green)}.result-stats small{font:9px monospace;color:#7fa78c;letter-spacing:.12em}.little-note{font:9px monospace;color:#668674;letter-spacing:.17em}.stage-title{position:absolute;z-index:12;top:25%;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;white-space:nowrap;filter:drop-shadow(0 0 38px rgba(64,255,154,.55))}.stage-title p{font:11px monospace;letter-spacing:.4em;color:#a4ffc1}.stage-title h2{font:900 clamp(48px,7vw,103px) Impact,'Arial Black',sans-serif;margin:0 0 6px;letter-spacing:.1em;color:#ecfff0}.stage-title span{font:11px monospace;letter-spacing:.25em;color:#8bffb4}.sound{position:fixed;bottom:27px;left:50%;transform:translateX(-50%);z-index:14;font:9px 'Courier New',monospace;letter-spacing:.14em;padding:9px 12px;border:1px solid #305643;background:#06100d99;color:#80a78e}.sound span{color:#afffc2}.touch-controls{display:none;position:fixed;bottom:18px;left:12px;right:12px;z-index:10;justify-content:space-between;pointer-events:none}.touch-left,.touch-right{display:flex;gap:7px;align-items:flex-end}.touch-controls button{pointer-events:auto;touch-action:none;width:50px;height:50px;background:#071714bb;color:#d5ffe0;border:1px solid #67987a99;border-radius:4px;font:900 12px monospace}.touch-controls button:active{background:#83f9a3;color:#071714}.touch-right{display:grid;grid-template-columns:repeat(2,50px)}.error{position:fixed;inset:0;z-index:20;background:#06100e;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:20px;text-align:center}.error h2{font-family:Impact,sans-serif;letter-spacing:.2em;color:#caffd7}.error p{font:12px/1.8 monospace;max-width:480px;color:#9fcab0}@media(max-width:720px){.top-right,.bottom-left,.bottom-right,.hud-micro{display:none}.intro h1{font-size:clamp(60px,17vw,110px)}.intro-content{margin-top:-10px}.intro-desc{font-size:10px}.controls-grid{max-width:320px;font-size:8px}.hud-top{top:18px;left:18px;right:18px}.brand{font-size:15px;min-width:110px}.brand b{font-size:19px}.sigil{font-size:30px}.chapter{position:absolute;top:54px;left:0;right:0;width:auto;font-size:9px}.number>span{font-size:32px}.score{display:none}.hud-bottom{bottom:95px;left:18px;right:18px}.meter-stack{width:40vw}.meter-caption{font-size:8px}.speed{font-size:50px}.event-text{bottom:210px;font-size:14px}.sound{bottom:auto;top:13px;left:50%;transform:translateX(-50%)}body.in-game .touch-controls{display:flex}.danger,.cling{font-size:12px;top:29%}.stage-title h2{font-size:44px}.result-stats{gap:20px}.result-stats b{font-size:28px}}
@media(max-height:680px){.intro h1{font-size:min(10vw,105px);margin:12px}.controls-grid{margin-top:9px}.main-button{margin:12px auto}.intro-desc{margin:7px}.hud-bottom{bottom:18px}}
/* Keep every alert readable on narrow portrait devices. */
@media(max-width:720px){
  .hud-top{gap:7px}
  .brand{min-width:102px;max-width:142px}
  .hud-right{flex:0 0 auto;transform:scale(.84);transform-origin:top right}
  .number small{font-size:8px}
  .stage-title{top:25%;width:96%;max-width:96vw;white-space:normal}
  .stage-title h2{font-size:clamp(26px,8.1vw,44px);letter-spacing:.035em;line-height:1.08;overflow-wrap:normal}
  .stage-title span{font-size:9px;letter-spacing:.13em;white-space:normal}
  .event-text{max-width:88vw;white-space:normal;font-size:12px;line-height:1.4;bottom:185px}
  .meter-stack{width:42vw}
  .speed{font-size:45px}
  .speed>div{font-size:12px}
}
