:root{color-scheme:dark;--ink:#101d2c;--panel:#172b40;--edge:#48627b;--paper:#f6f2df;--muted:#b5c8d7;--hot:#ff9161;--ice:#83e1f2;--left:max(20px,env(safe-area-inset-left));--right:max(20px,env(safe-area-inset-right));--top:max(16px,env(safe-area-inset-top));--bottom:max(20px,env(safe-area-inset-bottom));--pad:184px;--actions:184px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--paper);font:16px/1.5 Pixel,monospace;touch-action:manipulation}body{user-select:none;-webkit-user-select:none}button,input,select{font:inherit;border-radius:0}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:48px;padding:10px 16px}button,select{border:2px solid var(--edge);background:var(--panel);box-shadow:0 4px #091420,inset 0 2px #ffffff10}button:hover{border-color:var(--paper);background:#29465f}button:active,button.held{background:var(--paper);color:var(--ink);border-color:var(--paper);box-shadow:0 2px #091420;transform:translateY(2px)}button:disabled{cursor:default;opacity:.65}button:disabled:active{transform:none}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--ice);outline-offset:4px}[hidden]{display:none!important}svg{display:block;fill:currentColor;shape-rendering:crispEdges}h1,h2,h3,p{margin-top:0}h1,h2,.primary,.secondary,.wordmark,.edition,.eyebrow,.race-info,.position,.lap-block,.speed,.item-slot,.race-event,.result-rank,.pedals,.steer-caption,.steer-mode,#countdown,#toast{font-family:Pixel,monospace;font-weight:400}b,strong{font-weight:inherit}h1,h2{font-weight:400;line-height:.84}h3{font-weight:bold}#game{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}#shade{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#0a1828f5,#102337a8 38%,#101d2c00 74%),linear-gradient(0deg,#0a1828ee,transparent 36%)}body.playing #shade{display:none}#impact{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 100px 25px #d6422d;opacity:0;z-index:2}.screen{position:fixed;inset:0;z-index:3}.eyebrow{font-size:18px;letter-spacing:1px;color:var(--ice)}.checkers{height:16px;width:112px;background:conic-gradient(var(--paper) 25%,transparent 0 50%,var(--paper) 0 75%,transparent 0) 0 0/16px 16px;margin-bottom:24px}.load-wrap{position:absolute;left:10%;top:50%;transform:translateY(-50%);width:min(500px,80%)}.load-wrap h1{font-size:clamp(48px,18vw,100px);margin:24px 0}.load-wrap h1 span{display:block;color:var(--hot)}#loading{background:var(--ink)}.load-line{height:12px;border:2px solid var(--edge);margin:24px 0}.load-line i{display:block;height:100%;width:40%;background:var(--hot);animation:load 1.8s steps(8) infinite}.load-wrap small{color:var(--muted)}@keyframes load{50%{margin-left:60%}}
/* Menu. */
#menu{padding:32px 5%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;gap:20px}#menu header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px}.wordmark{display:flex;align-items:center;font-size:28px;gap:12px}.wordmark>span{font-size:18px;color:var(--muted)}.mark{width:24px;height:24px;display:block;background:conic-gradient(var(--paper) 25%,transparent 0 50%,var(--paper) 0 75%,transparent 0) 0 0/12px 12px}.edition{color:var(--muted);font-size:18px}.edition b{margin-left:10px;color:var(--ink);background:var(--ice);padding:0 6px}.hero{align-self:center;max-width:470px}.hero .eyebrow{font-size:16px}.hero .eyebrow i{display:inline-block;width:8px;height:8px;background:var(--hot);margin-right:8px}.hero h1{font-size:128px;margin:20px 0 18px;text-shadow:4px 4px #08111c}.hero h1>span{display:block;color:var(--hot);font-size:.875em}.tagline{font-size:16px;color:var(--muted);line-height:1.5;margin:0 0 24px}.race-info{display:flex;align-items:center;gap:28px;font-size:16px;margin-bottom:24px;color:var(--muted)}.race-info>span,.lap-choice{display:flex;flex-direction:column}.race-info b{font-size:32px;color:var(--paper);line-height:1}.lap-choice select{height:48px;width:84px;font:28px Pixel,monospace;padding:0 8px;color:var(--paper);margin-top:-12px}.lap-choice>span{line-height:1.4}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:60px;font-size:28px;background:var(--hot);color:var(--ink);border-color:#ffd1a2;box-shadow:0 5px #9b4933,inset 0 3px #ffffff48;padding:12px 20px}.primary:hover{background:#ffb881;border-color:#fff0cc}.primary:active{background:#ffc38b;box-shadow:0 2px #9b4933}.arrow{font:32px Pixel,monospace}.menu-tools{display:flex;gap:12px;margin-top:16px}.quiet{background:#13283be8;min-height:48px;font-size:14px;color:var(--muted)}.menu-tools .quiet{flex:1}.menu-tools .quiet>span{color:var(--ice);margin-left:6px}.car-picker{justify-self:end;align-self:end;padding:20px;background:#101d2ce8;border:2px solid var(--edge);border-top:4px solid var(--ice);box-shadow:6px 6px #091420a0;margin-bottom:24px}.car-picker>.eyebrow{font-size:16px}.swatches{display:flex;gap:12px;margin:16px 0 12px}.swatch{width:48px;height:48px;min-height:48px;padding:6px;background:var(--paint);border:6px solid var(--ink);outline:2px solid var(--edge);box-shadow:none}.swatch:hover{background:var(--paint)}.swatch.active{outline:3px solid var(--paper);position:relative}.swatch.active:after{content:"";position:absolute;bottom:4px;right:4px;width:6px;height:6px;background:var(--ink);box-shadow:-6px 0 var(--paper),0 -6px var(--paper)}#paint-name{font:18px Pixel,monospace}#menu footer{grid-column:1/-1;border-top:2px solid var(--edge);padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;font:16px Pixel,monospace}footer small{color:var(--muted);margin-left:16px}#record{color:var(--muted);font:13px/1.4 Pixel,monospace}.live-dot{display:inline-block;width:8px;height:8px;background:var(--ice);margin-right:8px}
/* Instruments. */
#hud{position:fixed;inset:0;pointer-events:none;touch-action:none;z-index:2}#hud button{pointer-events:auto}.race-top{position:absolute;top:var(--top);left:var(--left);right:var(--right);display:flex;align-items:flex-start;gap:12px}.position{display:flex;gap:10px;background:var(--paper);color:var(--ink);padding:5px 14px;height:72px;border-bottom:4px solid #a0b3be;box-shadow:4px 4px #07142277}.position>b{font-size:64px;line-height:1}.position>div{display:flex;flex-direction:column;justify-content:center}.position span{font-size:14px}.position strong{font-size:24px}.lap-block{padding:0 12px;text-shadow:2px 2px #101d2c;display:grid;grid-template-columns:auto auto;column-gap:12px;font-variant-numeric:tabular-nums}.lap-block>span:first-child{font-size:22px}.lap-block b{color:var(--hot);font-size:28px}.lap-block small{color:var(--muted);font-size:18px;margin-left:6px}.lap-block #timer{font-size:28px;grid-column:1/-1;line-height:1.1}.lap-block #fps{grid-column:2;grid-row:1;font:12px/32px Pixel,monospace;color:var(--ice)}.icon-btn{margin-left:auto;width:56px;height:56px;padding:16px;background:#101d2ce8}.icon-btn svg{width:20px;height:20px}.race-event{position:absolute;left:50%;top:var(--top);transform:translateX(-50%);width:340px;padding:10px 14px;background:#142235f5;border:2px solid #b5754b;box-shadow:4px 4px #07142288}.event-head{display:flex;align-items:center;gap:10px}.event-head svg{width:32px;height:26px;fill:none;stroke:var(--hot);stroke-width:2}.event-head strong{display:block;font-size:22px;line-height:1.05}.event-head small{font-size:14px;color:var(--hot)}.event-head>b{margin-left:auto;font-size:22px;color:var(--hot);white-space:nowrap}.event-bar{height:8px;background:#0a1522;margin-top:10px}.event-bar i{height:100%;display:block;background:var(--hot)}.race-event p{font:11px/1.5 Pixel,monospace;margin:6px 0 0;color:var(--muted)}#event-danger{font:11px/1.5 Pixel,monospace;color:#ffb7a2;margin-top:4px}.race-event.danger{border-color:var(--hot)}.event-alien-icon{display:none}.race-event[data-kind=alien] .event-tank-icon{display:none}.race-event[data-kind=alien] .event-alien-icon{display:block}.race-event[data-kind=alien]{border-color:var(--ice)}.race-event[data-kind=alien] .event-head small,.race-event[data-kind=alien] .event-head>b{color:var(--ice)}.race-event[data-kind=alien] .event-bar i{background:var(--ice)}#toast{position:absolute;left:50%;top:145px;transform:translateX(-50%);padding:8px 16px;background:#101d2cee;border-left:4px solid var(--ice);max-width:65%;text-align:center;font-size:20px;opacity:0;transition:opacity .2s}.combat-status{position:absolute;left:var(--left);top:calc(var(--top) + 84px);font:14px Pixel,monospace;display:flex;gap:16px;text-shadow:2px 2px #101d2c}#shield-status{color:var(--ice)}#countdown{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);text-align:center;text-shadow:4px 4px #101d2c}#countdown strong{display:block;font-size:128px;line-height:1}#countdown>span{display:block;font-size:20px}.lights{display:flex;justify-content:center;gap:12px;margin-top:16px}.lights i{width:16px;height:16px;background:var(--hot);box-shadow:3px 3px #071422}.respawn{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;width:300px;padding:20px;background:#101d2cee;border:2px solid var(--hot)}.respawn>span{font:24px Pixel,monospace}.respawn strong{font:72px Pixel,monospace;color:var(--hot)}.respawn small{font-size:10px}.respawning #toast{visibility:hidden}.map-wrap{position:absolute;bottom:var(--bottom);left:var(--left);width:180px;padding:8px;background:#101d2ccc;border:2px solid var(--edge)}#map{display:block;width:100%;height:auto;image-rendering:pixelated}.map-wrap>span{display:block;text-align:center;font:14px Pixel,monospace;color:var(--muted)}.dash{position:absolute;bottom:var(--bottom);right:var(--right);width:180px;padding:12px 16px;background:#101d2ce8;border:2px solid var(--edge);border-top:4px solid var(--paper)}.speed{display:flex;align-items:baseline;gap:10px;line-height:1}.speed b{font-size:64px}.speed>span{font-size:18px;color:var(--muted)}.boost-meter,.health-meter{height:8px;background:#091420;position:relative}.boost-meter{margin:8px 0 10px}.boost-meter>i,.health-meter>i{display:block;height:100%;background:var(--ice)}.health-meter>i{background:var(--hot)}.boost-meter:after,.health-meter:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 9%,#101d2c 9% 10%)}.condition{display:flex;justify-content:space-between;font:14px Pixel,monospace;margin-bottom:4px}.condition span{color:var(--muted)}.tiny-square{display:none}.desktop-help{position:absolute;left:50%;bottom:var(--bottom);transform:translateX(-50%);display:flex;gap:14px;font-size:11px;padding:6px;background:#101d2cd9}.desktop-help span{white-space:nowrap}kbd{font:inherit;color:var(--ice)}.item-slot{position:absolute;top:calc(var(--top) + 132px);right:var(--right);width:204px;display:flex;align-items:center;gap:10px;background:#142235f5;border:2px solid var(--ice);padding:10px 12px;min-height:76px;text-align:left}.item-slot:disabled{opacity:.8;border-color:var(--edge)}.item-copy{display:flex;flex-direction:column;min-width:0;flex:1}.item-copy small{font:10px/1.4 Pixel,monospace;color:var(--muted)}.item-copy strong{font-size:22px;line-height:1.2}.item-action{display:flex;flex-direction:column;align-items:center;font-size:18px;color:var(--ice)}.item-icon{width:28px;height:32px;flex:0 0 28px;fill:none;stroke:var(--paper);stroke-width:2;stroke-linejoin:miter}.item-icon>g{display:none}.item-icon .icon-solid{fill:#83e1f233}.item-icon .icon-flame{stroke:var(--hot)}[data-item="0"] .icon-empty,[data-item="1"] .icon-rocket,[data-item="2"] .icon-shield,[data-item="3"] .icon-shockwave,[data-item="4"] .icon-repair{display:block}.item-slot:not(:disabled){border-bottom:4px solid var(--ice)}.item-slot:active .item-action,.item-slot:active .item-copy small{color:var(--ink)}.item-slot:active .item-icon{stroke:var(--ink)}
/* Thumb controls. */
.touch .desktop-help{display:none}#steer-pad,.steering,.pedals{position:absolute;bottom:var(--bottom);touch-action:none;pointer-events:auto}#steer-pad,.steering{left:var(--left);width:var(--pad)}#steer-pad{height:136px;border:2px solid #a6cfe166;background:#101d2c91;box-shadow:0 4px #09142088;overflow:hidden;cursor:ew-resize}.steer-caption,.steer-mode{position:absolute;left:0;right:0;text-align:center;font-size:16px;color:var(--muted);pointer-events:none}.steer-caption{top:8px}.steer-mode{bottom:6px;font-size:14px;color:var(--ice)}.steer-track{position:absolute;left:16px;right:16px;top:72px;height:2px;background:#b4d9ed66;display:flex;justify-content:space-between}.steer-track i{width:2px;height:10px;margin-top:-4px;background:var(--muted)}#steer-thumb{position:absolute;left:50%;top:45px;width:52px;height:52px;margin-left:-26px;border:2px solid var(--paper);background:#203c55;box-shadow:3px 3px #07142288;display:grid;place-items:center;pointer-events:none}#steer-thumb svg{width:32px;height:24px}#steer-pad.held{border-color:var(--ice);background:#14283cc7}#steer-pad.held #steer-thumb{color:var(--ink);background:var(--ice);border-color:#d1f8ff}.steering{display:none;gap:12px}.steering button{width:calc((100% - 12px)/2);height:80px;padding:22px;background:#142235df}.steering svg{width:30px;height:30px;margin:auto}.touch-buttons #steer-pad{display:none}.touch-buttons .steering{display:flex}.pedals{right:var(--right);width:var(--actions);display:grid;grid-template-columns:1fr 1fr;gap:12px}.pedals button{min-width:0;height:72px;padding:5px 2px;font-size:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1;border-width:2px}.pedals svg,.pedal-icon{width:24px;height:28px;font:26px/28px Pixel,monospace}.pedals .nitro{background:#80d8e9;color:#102c3e;border-color:#cbf4fa;box-shadow:0 4px #285a73}.pedals .brake{background:#182c41e8;border-color:#c1cdd6}.pedals .gas{display:none;background:var(--paper);color:var(--ink)}.touch.manual-gas .pedals{grid-template-columns:1fr 1fr 1fr}.touch.manual-gas .gas{display:flex}.touch .item-slot{right:var(--right);top:auto;bottom:calc(var(--bottom) + 86px);width:var(--actions);height:72px;min-height:72px;padding:6px 10px;gap:7px}.touch .item-action kbd{display:none}.touch .item-copy small{font-size:9px}.touch .item-copy strong{font-size:20px}.touch .item-action{font-size:18px}.touch .dash{right:auto;left:50%;transform:translateX(-50%);width:140px;padding:6px 10px}.touch .speed b{font-size:48px}.touch .speed span{font-size:14px}.touch .map-wrap{left:auto;right:var(--right);bottom:auto;top:calc(var(--top) + 130px);width:100px;padding:2px;background:#101d2c90}.touch .map-wrap span{font-size:10px}.touch.swap-controls #steer-pad,.touch.swap-controls .steering{left:auto;right:var(--right)}.touch.swap-controls .pedals,.touch.swap-controls .item-slot{right:auto;left:var(--left)}
/* Menus scroll; touch targets never shrink to fit. */
.modal-screen{display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:#081421cc;touch-action:pan-y}.panel{width:min(480px,100%);max-height:100%;overflow:auto;overscroll-behavior:contain;padding:28px;background:var(--ink);border:2px solid var(--edge);border-top:6px solid var(--ice);box-shadow:8px 8px #06101bb8;scrollbar-color:var(--ice) var(--panel);scrollbar-width:thin;touch-action:pan-y}.panel h2{font-size:48px;margin:16px 0 24px}.panel h2>span{color:var(--hot)}.panel p{color:var(--muted);line-height:1.6;font-size:15px}.panel>.primary,.panel>.secondary{margin:16px 0}.panel>small{color:var(--muted);display:block;font-size:12px;line-height:1.6}.secondary{display:block;width:100%;min-height:54px;font-size:24px}.two-buttons{display:flex;gap:12px;margin-bottom:16px}.two-buttons>*{flex:1}.setting{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;border-bottom:1px solid var(--edge);font-size:15px}.setting select{padding:6px 10px;max-width:58%;min-height:48px;color:var(--paper);font-size:14px}.setting input[type=checkbox]{width:28px;height:28px;accent-color:var(--hot);margin:10px;cursor:pointer}.setting-title{font:22px Pixel,monospace;color:var(--ice);margin:24px 0 4px}.panel .setting-note{font-size:12px;color:var(--muted);margin:10px 0;line-height:1.5}.music-level{display:flex;align-items:center;gap:8px}.music-level input{width:120px;max-width:28vw;height:48px;margin:0;accent-color:var(--hot);touch-action:pan-y}.music-level output{width:38px;font:12px Pixel,monospace;color:var(--ice);text-align:right}.help-panel{width:min(620px,100%)}.instruction{display:flex;gap:16px;margin-bottom:20px}.instruction>b{font:26px Pixel,monospace;color:var(--hot);flex-shrink:0}.instruction h3{font-size:16px;margin:2px 0 8px}.instruction p{font-size:14px;margin-bottom:10px}.mobile-note{padding:16px;border:2px solid var(--edge);background:var(--panel)}.result-rank{display:flex;align-items:center;gap:20px;margin-bottom:20px}.result-rank>b{font-size:100px;line-height:1;color:var(--hot)}.result-rank>span{font-size:20px}.results>div{display:flex;justify-content:space-between;padding:12px 0;gap:10px;border-bottom:1px solid var(--edge);font:14px Pixel,monospace}.results b{font-size:18px;color:var(--ice)}.finish-panel>.quiet{width:100%}
@media(max-width:1000px){#menu{padding:24px 4%}.hero h1{font-size:112px}.race-event{top:108px;width:300px}.event-active #toast{top:242px}.desktop-help{gap:8px;font-size:10px}.touch .race-event{top:var(--top);width:290px;left:54%}.touch.event-active #toast{top:142px}.lap-block{padding:0 4px;column-gap:8px}.lap-block #fps{grid-column:1;grid-row:3;line-height:16px}}
@media(max-height:650px) and (min-width:601px){#menu{padding:20px 4%;gap:12px}.hero h1{font-size:88px;margin:12px 0}.hero .eyebrow{font-size:14px}.tagline{font-size:13px;margin:0 0 12px}.race-info{margin-bottom:16px;gap:22px}.hero .primary{min-height:52px;font-size:26px}.hero .menu-tools{margin-top:12px}.car-picker{padding:16px;margin-bottom:12px}#menu footer{padding-top:12px}.wordmark{font-size:24px}.race-event{width:260px}.event-head strong{font-size:20px}.event-head small{font-size:12px}.event-head svg{width:24px}.race-event p,#event-danger{font-size:10px}.touch .race-event{width:280px}.touch .dash{width:124px}.touch .speed b{font-size:40px}.touch .condition{font-size:12px}.touch .boost-meter{margin:6px 0}.touch #toast{font-size:16px;max-width:48%;top:128px}.touch.event-active #toast{top:142px}}
@media(max-height:450px) and (min-width:601px){:root{--top:max(10px,env(safe-area-inset-top));--bottom:max(14px,env(safe-area-inset-bottom))}#menu{padding:12px 4%;gap:10px}.hero{display:grid;grid-template-columns:220px 190px;grid-template-rows:auto auto auto;column-gap:24px;max-width:none}.hero .eyebrow{grid-column:1/-1;font-size:14px;margin-bottom:8px}.hero h1{grid-column:1;grid-row:2;font-size:88px;margin:0}.tagline{display:none}.hero .race-info{grid-column:1;grid-row:3;gap:16px;margin:16px 0 0;font-size:12px}.race-info b{font-size:24px}.lap-choice select{width:64px;height:48px;font-size:24px;margin-top:-6px}.hero .primary{grid-column:2;grid-row:2;align-self:start;margin-top:10px}.hero .menu-tools{grid-column:2;grid-row:2/4;align-self:end;flex-direction:column;gap:8px;margin:0}.car-picker{padding:12px;margin:0}.car-picker>.eyebrow{font-size:14px}.swatches{gap:8px;display:grid;grid-template-columns:1fr 1fr;margin:12px 0}.swatch{width:48px;height:48px}#paint-name{font-size:14px}.edition{font-size:14px}#menu footer{font-size:14px;padding-top:8px}footer small{display:none}#record{font-size:11px}.position{height:64px;padding:2px 10px}.position>b{font-size:56px}.position span{font-size:12px}.position strong{font-size:22px}.lap-block #timer{font-size:24px}.combat-status{top:calc(var(--top) + 82px)}.touch .race-event{left:53%;width:260px;padding:6px 10px}.race-event .event-bar{margin-top:6px}.race-event p{margin-top:4px}.touch .dash{padding:4px 8px}.touch .speed b{font-size:36px}.touch .boost-meter,.touch .health-meter{height:6px}.touch .condition{font-size:12px}.touch .item-slot{height:64px;min-height:64px}.panel{padding:20px}.panel h2{font-size:40px}.touch #countdown strong{font-size:96px}}
@media(max-width:700px) and (max-height:450px){:root{--pad:156px;--actions:180px;--left:max(12px,env(safe-area-inset-left));--right:max(12px,env(safe-area-inset-right))}.hero{grid-template-columns:190px 175px;column-gap:18px}.hero h1{font-size:80px}.car-picker{padding:8px}.car-picker>.eyebrow{font-size:12px}.edition{display:none}.touch .race-event{left:52%;width:238px}.position{padding:2px 8px}.position>div{display:none}.lap-block>span:first-child{font-size:18px}.lap-block #timer{font-size:22px}.touch .dash{left:48%;width:110px}.touch .speed b{font-size:32px}.touch .speed>span{font-size:12px}.touch .recover>span{display:none}.event-head strong,.event-head>b{font-size:18px}.event-head svg{display:none}.touch #toast{font-size:14px;max-width:46%}}
@media(max-width:600px) and (min-height:451px){:root{--left:max(12px,env(safe-area-inset-left));--right:max(12px,env(safe-area-inset-right));--pad:160px;--actions:176px}#menu{padding:20px 6%;grid-template-columns:1fr;grid-template-rows:auto 1fr auto auto;gap:16px}#menu header{grid-column:1}.wordmark{font-size:24px}.wordmark>span{font-size:14px}.edition{font-size:12px}.edition b{margin-left:4px}.hero{width:100%;max-width:390px;align-self:center;justify-self:center}.hero .eyebrow{font-size:14px}.hero h1{font-size:112px;margin:18px 0}.tagline{font-size:14px;margin-bottom:18px}.race-info{font-size:14px;gap:24px;margin-bottom:20px}.race-info b{font-size:28px}.hero .primary{min-height:56px}.menu-tools{margin-top:12px;gap:12px}.car-picker{display:grid;grid-template-columns:1fr auto;align-items:center;justify-self:stretch;gap:4px 12px;padding:12px;margin:0}.car-picker>.eyebrow{font-size:14px}.swatches{grid-column:2;grid-row:1/3;margin:0;gap:8px}.swatch{width:40px;height:48px;border-width:6px}#paint-name{font-size:14px}#menu footer{grid-column:1;padding-top:12px;align-items:flex-start;font-size:14px;gap:10px}footer small{display:none}#record{font-size:11px;max-width:45%;text-align:right}.position{height:64px;padding:2px 10px}.position>b{font-size:56px}.position span{font-size:12px}.position strong{font-size:20px}.race-top{gap:8px}.lap-block{padding:0;column-gap:6px}.lap-block>span:first-child{font-size:18px}.lap-block b{font-size:22px}.lap-block #timer{font-size:24px}.lap-block small{font-size:16px}.lap-block #fps{font-size:11px;grid-column:1;grid-row:3;line-height:16px}.combat-status{top:calc(var(--top) + 90px);font-size:14px}.race-event,.touch .race-event{top:calc(var(--top) + 128px);left:var(--left);right:var(--right);width:auto;transform:none;padding:10px 12px}.event-head strong{font-size:22px}.event-head small{font-size:14px}.event-head svg{width:28px}.touch .dash{bottom:calc(var(--bottom) + 184px);left:var(--left);transform:none;width:120px;padding:6px 10px}.touch .speed b{font-size:40px}.touch .speed>span{font-size:12px}.touch .boost-meter{margin:6px 0}.touch .condition{font-size:12px}.touch .boost-meter,.touch .health-meter{height:6px}.touch #toast,#toast{top:calc(var(--top) + 142px);font-size:18px;max-width:90%;width:max-content}.touch.event-active #toast,.event-active #toast{top:calc(var(--top) + 260px)}#countdown strong{font-size:112px}#countdown>span{font-size:18px}.touch.swap-controls .dash{left:auto;right:var(--right)}.item-slot{top:calc(var(--top) + 130px);width:176px}.map-wrap{width:128px}.dash{width:150px}.desktop-help{display:none}.panel{padding:22px}.panel h2{font-size:40px}.setting{font-size:14px}.setting select{font-size:13px}.pedals{gap:8px}.pedals button{font-size:16px}.touch .item-copy strong{font-size:18px}.touch .item-slot{padding:6px 8px}}
@media(max-width:600px) and (min-height:451px) and (max-height:740px){#menu{padding:16px 5%;gap:12px}.hero h1{font-size:88px;margin:12px 0}.hero .eyebrow{font-size:12px}.tagline{font-size:12px;margin-bottom:14px}.race-info{margin-bottom:16px;font-size:13px}.race-info b{font-size:26px}.hero .primary{min-height:52px;font-size:26px}.menu-tools{margin-top:10px}.car-picker{padding:10px}.car-picker>.eyebrow,#paint-name{font-size:12px}.swatch{width:36px;height:48px;border-width:5px}.edition{font-size:11px}.edition b{display:none}.wordmark>span{font-size:12px}#menu footer{padding-top:8px}.touch .dash{bottom:calc(var(--bottom) + 172px)}.touch.event-active #toast{top:calc(var(--top) + 250px)}}
@media(max-width:374px) and (min-height:451px){:root{--pad:140px;--actions:168px;--left:max(8px,env(safe-area-inset-left));--right:max(8px,env(safe-area-inset-right))}.edition{display:none}.hero h1{font-size:80px}.race-info{gap:20px}.swatches{gap:6px}.swatch{width:32px}.car-picker>.eyebrow{font-size:11px}.panel{padding:16px}.music-level input{width:88px}.position>div{display:none}.touch .item-slot{gap:6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
/* Compact screens retain full-sized targets and a single clear primary action. */
.hero,.car-picker{min-width:0}
@media(max-height:450px) and (min-width:601px){.hero h1{font-size:64px}.hero .primary{min-height:60px;height:60px;font-size:22px;padding:10px 12px;white-space:nowrap}.hero .arrow{font-size:24px;margin-left:6px}.hero .menu-tools{margin-top:10px}.swatches{justify-items:center}}
@media(max-width:700px) and (max-height:450px){.hero h1{font-size:56px}.hero .primary{font-size:20px}}
@media(max-width:600px) and (min-height:451px){#menu{grid-template-columns:minmax(0,1fr)}.hero h1{font-size:96px}.car-picker{grid-template-columns:1fr 1fr;gap:8px}.car-picker>.eyebrow{grid-column:1;grid-row:1;font-size:12px}#paint-name{grid-column:2;grid-row:1;text-align:right;font-size:14px}.swatches{grid-column:1/-1;grid-row:2;display:flex;justify-content:space-between;gap:12px}.swatch{width:48px;height:48px;min-width:48px}.hero .eyebrow{letter-spacing:0}}
@media(max-width:600px) and (min-height:451px) and (max-height:740px){.hero h1{font-size:80px}.tagline{font-size:12px;margin-bottom:12px}.hero .primary{height:56px;min-height:56px;padding:8px 16px}.car-picker{padding:10px}.car-picker>.eyebrow{font-size:12px}.hero .eyebrow{font-size:12px}.hero .race-info{margin-bottom:14px}}
.lap-block #fps{grid-column:1/-1;grid-row:3;line-height:16px}
@media(max-height:450px) and (min-width:601px){.hero .menu-tools{grid-row:3;align-self:start;margin-top:8px}.hero .primary{margin-top:0}.hero .race-info{align-self:center}}
@media(max-width:600px) and (min-height:451px) and (max-height:610px){.hero h1{font-size:64px;margin:10px 0}.hero .tagline{display:none}.hero .race-info{margin-bottom:12px}.car-picker>.eyebrow{display:none}.car-picker #paint-name{grid-column:1/-1;text-align:left}.hero .eyebrow{font-size:11px}#menu{gap:10px;overflow-y:auto}}
@media(max-width:340px) and (min-height:451px){:root{--pad:128px}}
#touch{position:absolute;inset:0;pointer-events:none}
@media(max-width:600px) and (max-height:450px){#menu{padding:8px 3%;gap:10px;grid-template-columns:minmax(0,1fr) 124px;grid-template-rows:auto 1fr auto;overflow-y:auto}#menu header{line-height:1}.wordmark{font-size:24px}.wordmark>span{font-size:12px}.hero{display:grid;grid-template-columns:148px 144px;grid-template-rows:auto auto auto;gap:0 12px;max-width:none}.hero .eyebrow{grid-column:1/-1;font-size:11px;letter-spacing:0;margin-bottom:8px}.hero h1{grid-column:1;grid-row:2;font-size:44px;margin:0}.hero .tagline{display:none}.hero .race-info{grid-column:1;grid-row:3;align-self:center;gap:8px;margin:0;font-size:10px}.hero .race-info b{font-size:20px}.lap-choice select{width:64px;height:48px;font-size:24px;margin-top:0;padding:0 6px}.hero .primary{grid-column:2;grid-row:2;align-self:start;min-height:56px;height:56px;font-size:18px;white-space:nowrap;padding:8px 10px;margin:0}.hero .arrow{font-size:22px;margin-left:4px}.hero .menu-tools{grid-column:2;grid-row:3;display:flex;flex-direction:column;gap:8px;margin-top:8px}.menu-tools .quiet{font-size:12px;padding:8px}.car-picker{width:124px;padding:8px;margin:0;align-self:center}.car-picker>.eyebrow{display:none}.car-picker .swatches{display:grid;grid-template-columns:48px 48px;gap:8px;margin:4px 0 12px}.car-picker .swatch{width:48px;height:48px}.car-picker #paint-name{font-size:12px;white-space:nowrap}#menu footer{padding-top:6px;font-size:12px;gap:8px}#record{font-size:10px}footer small{display:none}.touch .race-event{top:94px;left:50%;width:240px;padding:5px 8px}.touch .event-head svg{display:none}.touch .event-head small{font-size:10px}.touch .event-head strong,.touch .event-head>b{font-size:16px}.touch .event-bar{height:5px;margin-top:4px}.touch .race-event p,.touch #event-danger{font-size:9px;margin-top:3px}.touch.event-active #toast{display:none}}
@media(max-width:600px) and (max-height:450px){.touch .race-event{top:var(--top);left:calc(var(--left) + 176px);width:208px;transform:none}}

/* Shared pixel typography, including hints, native controls and secondary text. */
html,body{font-family:Pixel,monospace;font-weight:400;font-synthesis:none}
button,input,select,option,output{font-family:Pixel,monospace}h3{font-weight:400}
#menu{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}
.quiet{font-size:18px}.tagline,.load-wrap small{font-size:18px}
#record{font:14px/1.3 Pixel,monospace}.lap-block #fps{font:14px/18px Pixel,monospace}
.panel p,.instruction p{font-size:18px;line-height:1.35}.instruction h3{font-size:20px}
.panel>small,.panel .setting-note{font-size:16px;line-height:1.35}
.setting,.setting select{font-size:18px}.music-level output{width:42px;font:16px Pixel,monospace}
.respawn small{font-size:14px}.desktop-help{font-size:16px}.item-copy small,.touch .item-copy small{font-size:14px;line-height:1.05}
/* A flowing message stack prevents warnings and pickup notices from overlapping. */
.race-messages{position:absolute;top:var(--top);left:50%;width:340px;transform:translateX(-50%);display:flex;flex-direction:column;gap:6px;pointer-events:none}
.race-messages .race-event,.race-messages #toast{position:static;inset:auto;width:100%;max-width:none;transform:none;margin:0}
.race-event p,#event-danger{font:16px/1.15 Pixel,monospace}.race-messages #toast{font-size:18px;padding:6px 10px}
@media(max-width:1000px){.race-messages{top:108px;width:300px}}
/* Touch HUD: compact messages at the top, navigation outside the thumb zones. */
.touch .race-messages{top:var(--top);left:calc(var(--left) + 180px);right:calc(var(--right) + 68px);width:auto;max-width:300px;margin:0 auto;transform:none;gap:4px}
.touch .race-messages .race-event{padding:6px 8px;box-shadow:2px 2px #07142266}
.touch .event-head{gap:6px;min-height:18px}.touch .event-head>div{min-width:0;flex:1}
.touch .event-head svg,.touch #event-tag{display:none}
.touch .event-head strong,.touch .event-head>b{font-size:18px;line-height:1;white-space:nowrap}
.touch .event-bar{height:4px;margin-top:5px}
.touch .race-event p,.touch #event-danger{font-size:14px;line-height:16px;margin-top:4px}
.touch .race-event.danger #event-hint{display:none}
.touch .race-event[data-kind=tank][data-phase="3"] #event-hint{display:none}
.touch .race-messages #toast{display:block;font-size:16px;line-height:18px;padding:4px 6px;border-left-width:3px;overflow-wrap:anywhere}
.touch .map-wrap{display:block;width:112px;padding:4px;background:#0b1929db;border-color:#7795ac;left:var(--left);right:auto;top:calc(var(--top) + 78px);bottom:auto;box-shadow:2px 2px #07142266}
.touch .map-wrap>span{font-size:14px;line-height:16px}.touch #map{image-rendering:auto}
.touch .position{height:58px;padding:2px 10px}.touch .position>b{font-size:48px}.touch .position>div{display:none}
.touch .lap-block{padding:0;column-gap:4px}.touch .lap-block>span:first-child{font-size:18px}.touch .lap-block b{font-size:22px}
.touch .lap-block small{font-size:16px;margin-left:4px}.touch .lap-block #timer{font-size:22px;line-height:1}
.touch .race-top{gap:8px}.touch .combat-status{left:calc(var(--left) + 122px);top:calc(var(--top) + 82px);font-size:14px;line-height:16px;flex-direction:column;gap:2px}
@media(max-height:450px){.touch .map-wrap{width:96px;top:calc(var(--top) + 74px)}.touch .map-wrap>span{display:none}.touch .combat-status{left:calc(var(--left) + 104px);top:calc(var(--top) + 78px)}.touch .event-head strong,.touch .event-head>b{font-size:16px}.touch .race-messages #toast{font-size:14px;line-height:16px}.touch .item-copy small{font-size:12px}}
@media(max-width:600px) and (min-height:451px){
 .touch .race-messages{top:calc(var(--top) + 124px);left:var(--left);right:var(--right);max-width:380px}
 .touch .event-head strong,.touch .event-head>b{font-size:18px}
 .touch .map-wrap{top:auto;bottom:calc(var(--bottom) + 174px);right:var(--right);left:auto;width:120px}
 .touch .dash{bottom:calc(var(--bottom) + 174px)}
 .touch .combat-status{left:var(--left);top:calc(var(--top) + 88px);flex-direction:row;gap:12px}
 .touch.swap-controls .map-wrap{left:var(--left);right:auto}
 .tagline{font-size:16px}
}
@media(max-width:374px) and (min-height:451px){.touch .map-wrap{width:112px}.touch .item-copy small{font-size:12px}}

@media(max-height:340px){
 .touch .lap-block>span:first-child{line-height:24px}.touch .lap-block #timer{font-size:20px;line-height:20px}.touch .lap-block #fps{font-size:12px;line-height:14px}
 .touch .map-wrap{width:80px;padding:2px;top:calc(var(--top) + 62px)}
 .touch .combat-status{left:calc(var(--left) + 90px);top:calc(var(--top) + 66px);font-size:12px;line-height:14px}
}
@media(min-width:601px),(max-height:450px){
 .touch .dash{left:calc((100% + var(--pad) - var(--actions) + var(--left) - var(--right))/2)}
 .touch.swap-controls .dash{left:calc((100% + var(--actions) - var(--pad) + var(--left) - var(--right))/2)}
}

/* Voxelus prologue: diegetic picture, unobtrusive safe-area controls. */
#prologue{position:fixed;inset:0;z-index:25;pointer-events:none;background:linear-gradient(#020a12b0,transparent 18%,transparent 65%,#020a12d9)}
.cine-top{position:absolute;top:var(--top);left:var(--left);right:var(--right);display:flex;align-items:center;justify-content:space-between;gap:16px}
.cine-label{font-size:16px;letter-spacing:2px;color:#b9d5dd;text-shadow:2px 2px #08121f}
.cine-actions{display:flex;gap:8px;margin-left:auto;pointer-events:auto}
.cine-actions button{height:48px;min-width:48px;border:2px solid #8eacb5;background:#101f2ee6;color:#f2f4dd;font:18px Pixel,monospace;padding:8px 14px;box-shadow:3px 3px #050c14}
.cine-actions button:hover,.cine-actions button:focus-visible{background:#294c62;border-color:#e5e7c4;outline:2px solid #e5e7c4;outline-offset:3px}
.cine-caption{position:absolute;bottom:calc(var(--bottom) + 10px);left:50%;transform:translateX(-50%);width:min(760px,calc(100% - var(--left) - var(--right)));padding:16px 20px;background:#06101ce8;border-left:3px solid #e5b46d;box-shadow:0 8px 32px #0005}
.cine-speaker{display:flex;gap:16px;align-items:baseline;justify-content:space-between}.cine-speaker>span{font-size:22px;color:#efc382}.cine-speaker small{font-size:14px;color:#a6bcc8}
#story-line{font:26px/1.25 Pixel,monospace;color:#f6f5e8;min-height:65px;margin:8px 0 12px;text-shadow:1px 2px #000;overflow-wrap:break-word}
.cine-progress{height:2px;background:#304452}.cine-progress i{display:block;height:100%;width:0;background:#b2cbd0}
.cinematic #shade{opacity:.12}.grid-count .map-wrap,.grid-count .dash,.grid-count .combat-status,.grid-count .item-slot,.grid-count .desktop-help,.grid-count #touch,.grid-count .position,.grid-count .lap-block{visibility:hidden}
@media(max-width:600px){.cine-label{display:none}.cine-top{gap:8px}.cine-caption{padding:12px 14px;bottom:var(--bottom)}.cine-speaker{display:block}.cine-speaker small{display:block;font-size:12px;margin-top:3px}#story-line{font-size:22px;min-height:84px;margin-bottom:10px}.cine-actions button{font-size:16px;padding:8px 10px}}
@media(max-height:450px){.cine-caption{padding:8px 12px;bottom:var(--bottom);width:min(680px,calc(100% - var(--left) - var(--right)))}#story-line{font-size:20px;min-height:48px;margin:4px 0 7px}.cine-speaker>span{font-size:18px}.cine-speaker small{font-size:12px;display:inline}.cine-speaker{display:flex}.cine-label{font-size:12px;letter-spacing:1px}.cine-actions button{font-size:16px}}

.event-red-icon{display:none}.race-event[data-boss=red][data-kind=tank]{border-color:#e46065}.race-event[data-boss=red][data-kind=tank] .event-tank-icon{display:none}.race-event[data-boss=red][data-kind=tank] .event-red-icon{display:block;stroke:#ff8586}.race-event[data-boss=red][data-kind=tank] .event-bar i{background:#f36469}

#route-transition{position:fixed;inset:0;z-index:19;background:#091522;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;pointer-events:none;color:#edf2df}#route-transition[hidden]{display:none}#route-transition small{font:16px Pixel,monospace;letter-spacing:3px;color:#8cafc5}#route-transition strong{font:clamp(36px,8vw,76px) Pixel,monospace;letter-spacing:3px}.route-meter{height:4px;background:#324758;margin:5px 4px 3px}.route-meter i{display:block;height:100%;background:#8cdaea;width:0}#route-status{display:block;font:12px/16px Pixel,monospace;color:#edbd78;text-align:center}#route-status[data-open=true]{color:#9ee4e8}.touch #route-status{font-size:10px;line-height:12px}.touch .route-meter{height:3px;margin:2px}

/* Portal keeps the game view live; only the inter-world cut is covered. */
body.portal #hud .race-top>div,body.portal .race-messages,body.portal .combat-status,body.portal .map-wrap,body.portal .dash,body.portal .desktop-help,body.portal #use-item,body.portal #touch{visibility:hidden;pointer-events:none}
/* Three pedals retain full touch targets; labels fit the narrowest column. */
.pedal-label{display:block;white-space:nowrap;letter-spacing:0;line-height:1}
.pedals svg{flex:none;width:24px;height:28px}
.touch.manual-gas .pedals{grid-template-columns:repeat(3,minmax(48px,1fr));gap:8px}
.touch.manual-gas .pedal-label{font-size:14px}
@media(max-width:340px) and (min-height:451px){:root{--pad:128px}}
#portal-caption{position:fixed;inset:auto 0 0;z-index:17;min-height:82px;padding:18px max(24px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#040b16ec);text-align:center;pointer-events:none}#portal-title{display:block;font:clamp(22px,4vw,38px)/1.3 Pixel,monospace;letter-spacing:3px;color:#d2e4ef}#portal-note{display:block;font:clamp(10px,2vw,14px)/1.5 Pixel,monospace;letter-spacing:1px;color:#8fa9c0}
#route-transition{background:radial-gradient(ellipse at center,#122e47 0,#061223 35%,#02060f 75%)}#route-transition::before{content:"";position:absolute;width:110vmax;height:110vmax;border:2px solid #69a9bd30;border-radius:50%;box-shadow:0 0 80px #32628240,inset 0 0 90px #407f9f44;transform:scale(.36);animation:portal-wave 2.4s ease-out infinite}#route-transition strong,#route-transition small{position:relative}body.portal #shade{display:none}@keyframes portal-wave{to{transform:scale(1.2);opacity:0}}
#adhesion{position:fixed;left:50%;top:22%;transform:translateX(-50%);z-index:8;padding:9px 14px;border:2px solid #bbd5e5;background:#102235df;color:#e5ece4;font:clamp(12px,2.1vw,18px)/1.4 Pixel,monospace;pointer-events:none;text-align:center;max-width:85vw}

.event-ufo-icon{display:none}.race-event[data-kind=ufo]{border-color:#75d2da}.race-event[data-kind=ufo] .event-tank-icon,.race-event[data-kind=ufo] .event-red-icon,.race-event[data-kind=ufo] .event-alien-icon{display:none}.race-event[data-kind=ufo] .event-ufo-icon{display:block;stroke:#9ae9e5}.race-event[data-kind=ufo] .event-bar i{background:#89dedb}

#perf-panel{margin:14px 0}#perf-save{display:block;text-align:center;text-decoration:none}#perf-save[hidden]{display:none}.perf-running #settings .panel>*:not(#perf-panel){display:none}.perf-running #settings{background:transparent}.perf-running #settings .panel{align-self:flex-end;max-height:35vh;background:#102235e8}.perf-running #perf-panel{margin:0}

#boss-lives{color:var(--hot)}.defeat-panel{width:min(520px,92vw);max-height:90dvh;overflow:auto}.defeat-panel h2{font-size:48px;line-height:1;margin:20px 0}.defeat-panel p{font-size:17px;line-height:1.4}.defeat-panel small{display:block;color:var(--muted);font-size:13px;margin-top:12px}.defeat-panel button{width:100%;margin-top:12px}@media(max-height:480px){.defeat-panel{padding:18px}.defeat-panel h2{font-size:34px;margin:12px 0}.defeat-panel p{font-size:15px;margin-bottom:10px}}

.trial-clear .checkers{display:none}

/* Studio credit shares actual loading time. */
.load-studio{font:clamp(24px,3vw,34px)/1.15 Pixel,monospace;margin:0;color:var(--paper)}.load-studio span{color:var(--ice)}.load-engine{display:block;line-height:1.5}.load-engine strong{font-weight:normal;color:var(--paper)}
@media(max-height:450px){.load-wrap{width:min(560px,84%);left:8%}.load-wrap .checkers{margin-bottom:12px}.load-wrap h1{font-size:clamp(44px,12vh,66px);margin:12px 0}.load-wrap .load-line{margin:12px 0}.load-wrap #load-text{margin:10px 0;font-size:16px}.load-wrap small{font-size:16px}.load-studio{font-size:26px}}
