@font-face{font-family:DM;src:url('/fonts/dm-sans-400.ttf')}@font-face{font-family:DM;src:url('/fonts/dm-sans-700.ttf');font-weight:700}@font-face{font-family:Barlow;src:url('/fonts/barlow-700.ttf');font-weight:700}
:root{color-scheme:dark;--lime:#c4ee78;--ink:#0b1812;--muted:#a5b9ae;--line:#ffffff1c;font-family:DM,Arial,sans-serif;color:#f3f6ee;background:var(--ink)}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button{touch-action:manipulation}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line);gap:20px;background:#0b1812}.brand{display:flex;align-items:center;gap:24px}.brand img{width:112px;height:45px;object-fit:contain;filter:brightness(0) invert(1)}.brand span{font-size:12px;letter-spacing:.16em;color:var(--muted);border-left:1px solid var(--line);padding-left:24px}.tools{display:flex;gap:8px;align-items:center}.tools button,.tools a{background:transparent;border:1px solid var(--line);border-radius:6px;padding:10px 12px;font-size:14px}.tools button:hover:not(:disabled){background:#ffffff0b}.tools .exit{margin-left:12px;border:0;color:var(--muted)}kbd{font:inherit;font-size:12px;opacity:.55;margin-left:6px}.stage{position:relative;height:calc(100svh - 72px);min-height:540px;overflow:hidden;background:#10231a;isolation:isolate}#game{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 150px #030d0870;z-index:1}.overlay{position:absolute;inset:0;z-index:10;background:#08160f98;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px;overflow:auto}.menuCard{width:460px;max-width:100%;text-align:left}.eyebrow{font-size:12px;letter-spacing:.19em;font-weight:700;color:var(--lime);display:flex;align-items:center;gap:8px}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 14px var(--lime)}h1{font-family:Barlow,Impact,sans-serif;font-size:clamp(70px,10vh,108px);font-weight:700;line-height:.82;letter-spacing:-.025em;margin:24px 0 0;color:var(--lime)}h1 span{display:block;color:#f2f5e9;font-size:.35em;letter-spacing:.015em;margin-top:12px}.intro{font-size:16px;line-height:1.6;color:#b5c7bb;margin:20px 0}.modes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modes button{text-align:left;padding:14px;border:1px solid #ffffff26;border-radius:9px;background:#ffffff05;font-weight:700;font-size:16px}.modes button span{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:5px}.modes button[aria-pressed=true]{border-color:var(--lime);background:#c4ee7810}.skinRow{display:flex;align-items:center;justify-content:space-between;margin:20px 0}.skinRow>span{font-size:12px;letter-spacing:.12em;color:var(--muted)}.skins{display:flex;gap:8px}.skins button{width:30px;height:30px;border:5px solid var(--ink);border-radius:50%;background:var(--swatch);outline:1px solid transparent;position:relative}.skins button[aria-pressed=true]{outline-color:var(--swatch)}.skins button[aria-pressed=true]:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#0b1812;font-size:14px;font-weight:700}.primary{background:var(--lime);color:#112017;display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-radius:6px;min-height:56px;padding:16px 20px;letter-spacing:.04em;font-weight:700;font-size:16px;transition:background .15s,transform .15s}.primary:hover{background:#d5ff8f;transform:translateY(-1px)}.primary>span{font-size:24px;line-height:1}.menuFoot{display:flex;justify-content:space-between;font-size:12px;margin-top:14px;color:var(--muted);gap:8px}.menuFoot b{color:var(--lime);margin-left:6px}.howTo{font-size:12px;color:var(--muted);line-height:1.6;margin:22px 0 0}.produceKey{display:flex;gap:28px;position:absolute;bottom:24px;left:32px;font-size:12px;letter-spacing:.1em;color:var(--muted)}.produceKey span{display:flex;align-items:center;gap:8px}.produceKey img{width:28px;height:28px;object-fit:contain}.produceKey b{color:#eff5e9;font-size:14px}.hud{position:absolute;top:30px;left:32px;z-index:2;pointer-events:none}.scorebox>span{font-size:12px;color:var(--muted);letter-spacing:.14em}.scorebox>strong{font:700 60px/.95 Barlow,sans-serif;display:block;letter-spacing:-.02em;margin:8px 0}.personal{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.personal b{color:#f2f5ed}.personal>span{border-left:1px solid #ffffff30;padding-left:12px;margin-left:6px}.combo{margin-top:24px;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:9px;max-width:180px}.combo strong{font:700 40px Barlow,sans-serif;color:var(--lime)}.combo>span{font-size:12px;line-height:1.2;letter-spacing:.07em;max-width:70px}.combo>div{grid-column:1 / -1;height:3px;background:#ffffff20}.combo i,.energyTrack i{display:block;height:100%;background:var(--lime);transform-origin:left}.powerStatus{font-size:14px;color:#a9e2f4;margin-top:16px;line-height:1.7;white-space:pre-line}.ranking{position:absolute;top:30px;right:32px;width:230px;padding:15px 18px;background:#08150dc9;border:1px solid var(--line);border-radius:10px;z-index:2;pointer-events:none}.ranking>div{font-size:12px;letter-spacing:.1em;display:flex;justify-content:space-between;align-items:center}.ranking>div span{font-size:10px;color:var(--muted);letter-spacing:0}.ranking ol{list-style:none;margin:12px 0 0;padding:0;counter-reset:rank}.ranking li{counter-increment:rank;display:flex;gap:8px;font-size:12px;padding:5px 0;color:var(--muted)}.ranking li:before{content:counter(rank,decimal-leading-zero);opacity:.5}.ranking li b{margin-left:auto;font-weight:400}.ranking .you{color:var(--lime);font-weight:700}.bottomHud{position:absolute;bottom:26px;left:32px;right:32px;display:flex;align-items:flex-end;justify-content:space-between;z-index:2;pointer-events:none;gap:20px}.boostInfo{width:190px}.boostInfo>span{font-size:12px;letter-spacing:.12em;display:flex;justify-content:space-between}.energyTrack{height:5px;background:#ffffff22;margin-top:12px;border-radius:3px;overflow:hidden}.boostInfo small{display:block;font-size:12px;margin-top:8px;color:var(--muted)}.controlHint{font-size:12px;color:#a5b9ae90;margin-bottom:2px}#map{width:112px;height:112px;border:1px solid #ffffff20;border-radius:50%;background:#08170dcc}.toast{position:absolute;left:50%;top:25px;transform:translate(-50%,-15px);z-index:3;border:1px solid #c4ee7840;border-radius:30px;padding:12px 20px;color:var(--lime);font-size:14px;background:#10241bee;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;text-align:center;max-width:90%}.toast.visible{opacity:1;transform:translate(-50%,0)}.edgeWarning{position:absolute;left:50%;top:20%;transform:translateX(-50%);color:#ffbe96;font-size:12px;letter-spacing:.12em;z-index:2;white-space:nowrap;padding:10px 14px;background:#31180dde;border:1px solid #ffae7050;border-radius:6px}.smallCard{width:420px;max-width:100%;padding:36px;background:#101f18ee;border:1px solid #ffffff1c;border-radius:14px;text-align:center;box-shadow:0 30px 100px #0005}.smallCard .eyebrow{justify-content:center}h2{font:700 46px/1 Barlow,sans-serif;margin:20px 0 12px;letter-spacing:-.02em}.smallCard p{font-size:14px;color:var(--muted);line-height:1.6}.secondary{width:100%;margin-top:10px;padding:14px;border:1px solid #ffffff25;border-radius:6px;background:transparent;font-size:14px}.secondary:hover{background:#ffffff08}.finalScore{font:700 84px/1 Barlow,sans-serif;letter-spacing:-.03em;color:var(--lime);margin:20px 0 4px}.scoreLabel{font-size:12px;color:var(--muted);letter-spacing:.12em}.runStats{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0;border-block:1px solid var(--line);padding:18px 0}.runStats strong{display:block;font-size:20px}.runStats span{font-size:10px;letter-spacing:.07em;color:var(--muted);display:block;margin-top:5px}.localBest{font-size:12px;color:var(--muted);display:block;margin-top:18px}.touchControls{position:absolute;inset:0;z-index:4;pointer-events:none}.joystick{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));left:25px;width:116px;height:116px;border-radius:50%;background:#10251cac;border:1px solid #ffffff28;pointer-events:auto;touch-action:none;display:grid;place-items:center}.joystick>span{width:46px;height:46px;border-radius:50%;background:#c4ee7860;border:1px solid #c4ee78b0;pointer-events:none}.joystick small{position:absolute;bottom:10px;font-size:10px;letter-spacing:.13em;color:var(--muted);pointer-events:none}.boostButton{position:absolute;bottom:max(38px,env(safe-area-inset-bottom));right:25px;width:90px;height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;border:1px solid #c4ee7850;color:var(--lime);background:#173422d9;font-size:32px;pointer-events:auto;touch-action:none;overflow:hidden}.boostButton>span{font-size:10px;letter-spacing:.1em;z-index:1}.boostButton>i{position:absolute;bottom:0;left:0;width:100%;height:5px;background:var(--lime);transform-origin:left}.boostButton:active{background:#365832}.stage:fullscreen{height:100dvh}.touch .controlHint,.touch .boostInfo{display:none}.touch .bottomHud{bottom:28px;justify-content:center}.touch #map{width:82px;height:82px}.touch .howTo{max-width:400px}.touch .topbar kbd{display:none}
@media(max-width:700px){.topbar{height:60px;padding:0 14px;gap:8px}.brand img{width:87px;height:37px}.brand span,.exit,#full{display:none!important}.tools{gap:5px}.tools button{font-size:12px;padding:9px 10px}.tools kbd{display:none}.stage{height:calc(100svh - 60px);min-height:530px}.overlay{padding:24px 22px}.menuCard{width:390px}h1{font-size:80px}.eyebrow{font-size:10px}.intro{font-size:14px;margin:16px 0}.howTo{margin-top:16px}.produceKey{display:none}.menuFoot{font-size:10px}.modes button{padding:12px;font-size:14px}.modes button span{font-size:11px}.skins{gap:6px}.skins button{width:28px;height:28px}.skinRow{margin:17px 0}.hud{left:18px;top:20px}.scorebox>strong{font-size:46px}.scorebox>span{font-size:10px}.ranking{right:14px;top:20px;width:158px;padding:10px 12px}.ranking>div{font-size:10px}.ranking>div span{display:none}.ranking li{font-size:11px;padding:3px 0}.ranking li:nth-child(n+5){display:none}.combo{margin-top:14px}.powerStatus{font-size:12px}.toast{top:190px;font-size:12px;min-width:230px}.edgeWarning{top:45%}.bottomHud{left:18px;right:18px}.controlHint{display:none}.smallCard{padding:27px 24px}.smallCard h2{font-size:42px}.finalScore{font-size:74px}.personal{font-size:11px}}
@media(max-height:700px){h1{font-size:70px}.menuCard .intro{margin:14px 0}.menuCard .howTo{margin-top:12px}.menuCard .skinRow{margin:14px 0}.produceKey{display:none}.overlay{justify-content:flex-start;padding-top:24px}.smallCard{margin:auto}.stage{min-height:530px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-height:540px){.topbar{height:52px}.stage{height:calc(100dvh - 52px);min-height:0}.overlay{display:block;padding:22px;overflow-y:auto}.menuCard,.smallCard{margin:0 auto}.menuCard{padding-bottom:12px}.hud{top:14px}.ranking{top:14px}.bottomHud{bottom:15px}.touch .bottomHud{bottom:15px}.joystick{width:100px;height:100px;bottom:14px}.boostButton{bottom:20px;width:82px;height:82px}.toast{top:12px}.edgeWarning{top:45%}}
