@font-face{font-family:Arcade;src:local('Arial Black');font-display:swap}
:root{font-family:Arial,Helvetica,sans-serif;color:#fff;background:#080a08;color-scheme:dark;font-size:16px;--yellow:#f9e830;--pink:#d15c93;--ink:#141815}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{display:grid;place-items:center;background:#080a08}button,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #fff;outline-offset:4px}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}
#game{position:relative;width:min(100vw,calc(100dvh * 820 / 460));height:min(100dvh,calc(100vw * 460 / 820));overflow:hidden;isolation:isolate;background:#ad9484;container-type:inline-size;border:2px solid #cecbb5}
#world{width:100%;height:100%;display:block;position:absolute;inset:0;image-rendering:pixelated}.vignette{display:none}#scanlines{position:absolute;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,#00000007 0,#00000007 1px,transparent 1px,transparent 3px);opacity:.28}#impact{position:absolute;inset:0;pointer-events:none;z-index:4;box-shadow:inset 0 0 80px 15px #dd2119;opacity:0}
.utilities{position:absolute;right:1.7%;top:2.5%;z-index:8;display:flex;gap:5px;opacity:.62;transition:opacity .15s}.utilities:hover,.utilities:focus-within{opacity:1}.icon-button{display:grid;place-items:center;width:clamp(26px,3.8cqw,44px);height:clamp(26px,3.8cqw,44px);border:1px solid #fff8d788;border-radius:3px;background:#181e1a70;padding:6px}.icon-button svg{width:100%;height:100%}.sound-off{display:none}.muted .sound-off{display:block}.muted .sound-waves{display:none}
.screen{position:absolute;inset:0;z-index:5}.menu-screen{background:transparent}.menu-content{position:absolute;inset:0;width:100%;transform:none}.game-logo{position:absolute;left:11.6%;top:8.1%;width:76%;height:44%;margin:0;filter:drop-shadow(2px 3px 1px #1114)}.game-logo img{display:block;width:100%;height:100%;object-fit:fill;image-rendering:auto}.menu-buttons{position:absolute;top:60%;left:40.3%;width:20%;height:30%;display:grid;grid-template-rows:repeat(3,1fr);gap:1.8cqw}.score-link{position:absolute;top:91.9%;left:38.4%;width:23.2%;border:0;background:none;padding:0;color:#fff7d8;text-shadow:1px 1px #171b16,-1px -1px #171b16;font-size:clamp(9px,1.35cqw,17px);font-weight:900;letter-spacing:.7px;text-decoration:underline;text-underline-offset:3px}.score-link small{margin-left:5px;color:#f9e830;font-size:.68em;letter-spacing:.5px;text-decoration:none}.score-link:hover{color:#fff36b;transform:translateY(-1px)}
.arcade-button{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;height:100%;width:100%;padding:0 12px 2px;border:0;border-bottom:3px solid #51533175;border-radius:0 22px 22px 0;box-shadow:inset 0 2px 3px #ffffcc85,2px 3px 2px #22262666;background:var(--yellow);font-family:Arcade,'Arial Black',Arial,sans-serif;font-size:clamp(14px,2.6cqw,37px);font-weight:900;font-style:italic;line-height:1;letter-spacing:-.6px;color:#fff;text-shadow:-1px -1px 0 #131a1c,1px -1px 0 #131a1c,-1px 1px 0 #131a1c,2px 2px 0 #131a1c;transition:filter .12s,transform .12s}.arcade-button:before{content:'';position:absolute;left:-10%;top:0;width:35%;height:100%;pointer-events:none;background:linear-gradient(90deg,transparent,#343e3f55 45%,transparent)}.arcade-button.primary{background:linear-gradient(90deg,#b7a71400 0%,#e5d919 16%,#e8da0b 63%,#ffff3c 90%,#d3c918 100%)}.arcade-button.pink{background:linear-gradient(90deg,#92426500 0%,#c1588d 20%,#c66492 67%,#e495ba 90%,#bd638f 100%);border-bottom-color:#57384399}.arcade-button:hover{filter:brightness(1.2);transform:translateX(3px)}.arcade-button:active{transform:translate(3px,2px)}.start-hint,.menu-footer{display:none}kbd{display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;border:1px solid #fff9df69;border-bottom-width:2px;border-radius:2px;padding:4px 6px;line-height:1;color:#fff9e8}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
#hud{position:absolute;inset:0;z-index:5;pointer-events:none;text-shadow:2px 2px #111}.race-top{position:absolute;top:3%;left:3%;display:flex;gap:3.7cqw;color:#fffce5;text-shadow:1px 1px #222,-1px -1px #222}.hud-stat{display:flex;gap:6px;align-items:baseline}.hud-stat>span{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(9px,1.6cqw,20px);letter-spacing:.4px}.hud-stat strong{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(12px,2cqw,27px);font-weight:900;font-variant-numeric:tabular-nums}.hud-stat small{font-size:.65em;color:#eee7cd}.record{opacity:.8}.record strong{color:#fff5bb}
.course{position:absolute;left:12.3%;top:60%;width:1.5%;height:26.5%}.course-label,.course-caption,.course-finish{display:none}.course-line{height:100%;width:100%;min-width:8px;position:relative;border:3px solid #111;border-radius:9px;background:#fff;box-shadow:0 0 0 1px #eee;overflow:visible}#course-fill{position:absolute;left:0;bottom:0;width:100%;height:0;background:#d92611;border-radius:8px}#course-car{position:absolute;left:50%;bottom:0;transform:translate(-50%,45%);width:2.9cqw;height:2.9cqw;min-width:16px;min-height:16px;background:#f02d0b;border:3px solid #090e0a;border-radius:50%;box-shadow:0 0 0 1px #81732b}
.dashboard{position:absolute;top:49%;right:1.7%;width:15%;transform:none;display:flex;flex-direction:column}.gauge{position:relative;margin:0 0 .4cqw}.gauge-heading{display:flex;justify-content:flex-end;align-items:center;margin:0 0 -.25cqw;font-family:Impact,Haettenschweiler,'Arial Narrow',Arial,sans-serif;font-weight:900;font-size:clamp(12px,3cqw,42px);line-height:.96;letter-spacing:-.3px;text-shadow:2px 2px #111,-2px -1px #111,2px -1px #111,-2px 2px #111}.gauge-heading>span:nth-child(2){position:absolute;left:0;right:0;top:3.35cqw;text-align:center;z-index:2;font:700 clamp(8px,1.2cqw,16px) Arial,sans-serif;line-height:1;color:#fff;letter-spacing:1px;text-shadow:1px 1px #000,-1px -1px #000}.gauge-heading kbd{display:none}.gauge-track{height:2.8cqw;min-height:13px;border:3px solid #111;border-radius:20px;background:#670e07;box-shadow:0 0 0 2px #f0eedb,inset 0 0 0 2px #dedcbe;padding:4px;overflow:hidden}.gauge-track>i{display:block;height:100%;width:0;background:#e42b14;border-radius:5px}.turbo-gauge .gauge-track{background:#311612}.turbo-gauge .gauge-track>i{width:100%;border-radius:0;background:repeating-linear-gradient(45deg,transparent 0 2px,#d32115 2px 5px,transparent 5px 7px);filter:none}.turbo-active{position:absolute;left:0;right:0;top:-24px;text-align:right;color:#ffff36;font-size:clamp(11px,2cqw,26px);font-weight:900;font-style:italic;opacity:0}.speed{order:3;display:flex;align-items:baseline;justify-content:flex-end;gap:5px;margin-top:2px;font-style:italic;color:#fffbe6}.speed>strong{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(18px,3.5cqw,43px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums;text-shadow:2px 2px #1b2019,-1px -1px #1b2019;letter-spacing:-.5px}.speed>div{display:flex;gap:6px;align-items:baseline}.speed span{font-size:clamp(8px,1cqw,14px);font-weight:700}.speed b{display:none}.keyboard-hint{position:absolute;bottom:2.6%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:clamp(8px,1.1cqw,13px);font-weight:700;color:#fff7d9a8;text-shadow:1px 1px #252b1c}.keyboard-hint kbd{font-size:clamp(8px,1.1cqw,13px);padding:2px 4px;border-color:#fff8cd66}.keyboard-hint>span{margin-left:8px}.touch-controls{display:none}
#countdown{position:absolute;left:50%;top:25.5%;transform:translate(-50%,-50%);font-family:Arcade,'Arial Black',Arial,sans-serif;font-size:clamp(35px,9.3cqw,128px);font-weight:900;color:#f7eb43;text-shadow:2px 3px #868334;line-height:1;z-index:6;pointer-events:none}#countdown.pop{animation:count-pop .3s ease-out}#toast{position:absolute;top:17%;left:50%;transform:translateX(-50%);color:#f9ef42;font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(14px,3cqw,38px);font-weight:900;text-shadow:2px 2px #181c13,-1px -1px #181c13;opacity:0;z-index:6;white-space:nowrap;pointer-events:none}#unsupported{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:#283326;text-align:center}#unsupported p{max-width:440px;font-size:16px;line-height:1.5}
@keyframes count-pop{from{scale:1.18;opacity:.8}to{scale:1;opacity:1}}
.game-dialog{width:min(440px,calc(100% - 36px));border:1px solid #fff9d754;border-top:3px solid var(--yellow);border-radius:8px;background:linear-gradient(140deg,#26342eef,#14221bf5);color:#fff9e8;padding:35px;box-shadow:0 20px 100px #07100ccc;backdrop-filter:blur(18px);max-height:calc(100dvh - 36px);overflow:auto}.game-dialog::backdrop{background:#10161178;backdrop-filter:blur(5px)}.close-dialog{position:absolute;right:12px;top:9px;border:0;background:none;width:34px;height:34px;font-size:27px;color:#f7efd5ad}.panel-eyebrow{color:#eddfba99;font-size:11px;font-weight:700;letter-spacing:2px}.game-dialog h2{font-size:35px;font-weight:900;font-style:italic;letter-spacing:-.7px;margin:9px 0 27px;line-height:1.04}.control-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #fff5ce19;font-size:15px;gap:10px}.control-row>div{display:flex;gap:5px;align-items:center}.control-row kbd{font-size:12px;min-width:28px;text-align:center;line-height:1.5}.control-row small{font-size:11px;opacity:.4;padding:0 2px}.panel-note,.touch-note{font-size:14px;line-height:1.65;color:#d1d6c3;margin:23px 0}.touch-note{display:none}.game-dialog .arcade-button{min-height:46px;font-size:19px}.option-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;font-size:16px}.option-row p{font-size:12px;line-height:1.4;color:#abb7a6;margin:5px 0 0}input[type=range]{width:100%;accent-color:var(--yellow);margin:17px 0 2px;height:14px;cursor:pointer}output{font-size:14px;color:var(--yellow)}.toggle{appearance:none;-webkit-appearance:none;position:relative;flex-shrink:0;width:44px;height:25px;background:#5b675c;border-radius:20px;border:1px solid #b1bdac55;cursor:pointer;transition:background .15s}.toggle:after{content:'';position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:100%;background:#eff1df;transition:transform .15s}.toggle:checked{background:#b9bd37}.toggle:checked:after{transform:translateX(18px)}.centered{text-align:center}.centered h2{font-size:39px}.centered .arcade-button{margin-top:15px}.text-button{border:0;background:none;font-size:14px;color:#d2d9c7;text-decoration:underline;text-underline-offset:4px;padding:20px 5px 0}.result-time{font-weight:900;font-style:italic;font-size:51px;letter-spacing:-2px;color:var(--yellow);font-variant-numeric:tabular-nums}#result-note{font-size:14px;color:#cbd4bf;line-height:1.5}.result-stats{display:flex;justify-content:center;gap:36px;margin:26px 0}.result-stats>div{display:flex;flex-direction:column;gap:8px}.result-stats span{font-size:10px;letter-spacing:1px;color:#aebda7}.result-stats strong{font-size:18px}
.game-dialog{border:2px solid #cbcbb5;border-top:3px solid #ede338;border-radius:2px;background:#283226;box-shadow:0 0 0 2px #111,8px 8px #1118;backdrop-filter:none}.game-dialog::backdrop{background:#151b1388;backdrop-filter:none}.game-dialog h2{font-family:Impact,'Arial Narrow',Arial,sans-serif;letter-spacing:.5px}.game-dialog .arcade-button{height:46px;min-height:46px;font-size:19px}.game-dialog .arcade-button.primary{background:linear-gradient(#fff56b,#e4d21e 70%,#fff840)}.game-dialog .arcade-button.pink{background:linear-gradient(#e6a1bd,#be5182 70%,#da85ab)}.game-dialog .arcade-button:before{left:0}.centered .arcade-button{margin-top:15px}.panel-eyebrow{font-size:12px}.option-row p{font-size:13px}.control-row small{font-size:12px}.result-stats span{font-size:12px}.result-time{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:46px;font-style:normal;letter-spacing:1px}
.score-submit{margin:12px 0 2px;padding-top:13px;border-top:1px solid #fff5ce2a;text-align:left}.score-submit label{display:block;color:#d8dfc9;font-size:12px;letter-spacing:.2px}.score-submit-row{display:flex;align-items:stretch;gap:8px;margin-top:7px}.score-submit input{min-width:0;flex:1;height:42px;border:2px solid #aeb59b;background:#111a13;color:#fff9e8;border-radius:2px;padding:0 10px;font-size:15px}.score-submit input::placeholder{color:#aeb7a3}.score-submit .arcade-button{flex:0 0 120px;width:120px;height:42px;min-height:42px;padding:0 8px;font-size:14px}.score-submit-status{min-height:17px;margin:7px 0 0;color:#d9e4c5;font-size:12px;line-height:1.35}.scoreboard-dialog{width:min(510px,calc(100% - 36px))}.scoreboard-dialog h2{margin-bottom:10px}.scoreboard-intro{margin:0 0 13px;color:#cad4bd;font-size:14px;line-height:1.45}.scoreboard-status{min-height:18px;color:#d9e4c5;font-size:12px}.scoreboard-list{list-style:none;padding:0;margin:10px 0 22px;counter-reset:score-rank}.scoreboard-list li{display:grid;grid-template-columns:2.3em minmax(0,1fr) auto;align-items:baseline;gap:6px;padding:9px 0;border-bottom:1px solid #fff5ce1f;font-size:15px}.scoreboard-list li:last-child{border-bottom:0}.scoreboard-list .rank{color:#f9e830;font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:18px;text-align:right}.scoreboard-list .score-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scoreboard-list .score-time{color:#f9e830;font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:18px;letter-spacing:.4px;font-variant-numeric:tabular-nums}.scoreboard-list .score-meta{grid-column:2/-1;color:#aebda5;font-size:11px;line-height:1.2}.scoreboard-empty{display:block;padding:19px 0;color:#b9c5ad;font-size:14px;text-align:center}.scoreboard-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.scoreboard-actions .arcade-button{height:42px;min-height:42px;font-size:14px}
@media(max-width:620px){.record{display:none}.utilities{top:2%;right:2%;gap:4px}.icon-button{width:26px;height:26px;padding:5px}.menu-buttons{width:24%;left:38%;height:32%;top:58%;gap:1.5cqw}.score-link{left:34%;width:32%;top:91.4%;font-size:clamp(8px,1.55cqw,14px)}.score-link small{margin-left:3px}.arcade-button{font-size:clamp(12px,2.8cqw,18px);border-bottom-width:2px}.gauge-track{border-width:2px;padding:2px;box-shadow:0 0 0 1px #eee,inset 0 0 0 1px #dedcbe}.gauge-heading{font-size:clamp(12px,3cqw,20px)}.gauge-heading>span:nth-child(2){top:3.5cqw;font-size:8px}.course-line{border-width:2px;min-width:5px}#course-car{border-width:2px;min-width:13px;min-height:13px}.keyboard-hint{display:none}.hud-stat{gap:3px}.race-top{gap:14px}.game-dialog{width:min(420px,calc(100% - 32px));padding:25px}.game-dialog h2{font-size:30px}.panel-note,.touch-note{font-size:14px}.score-submit-row{flex-direction:column}.score-submit .arcade-button{width:100%;flex-basis:42px}.scoreboard-actions{grid-template-columns:1fr}.scoreboard-dialog{padding:22px}}
@media(pointer:coarse){.touch-controls{position:absolute;left:2.5%;right:2.5%;bottom:3%;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.touch-steering,.touch-pedals{display:flex;gap:8px;align-items:flex-end}.touch-controls button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;min-width:45px;width:7cqw;height:7cqw;min-height:40px;border:2px solid #ddd9bbaa;border-radius:4px;background:#273023a8;font-size:19px;font-weight:900;color:#fff9df}.touch-controls button.pressed{background:#e8da38;color:#171e13}.touch-controls .touch-boost{min-width:54px;font-size:11px;color:#fff548}.touch-controls button[data-control=brake]{font-size:12px}.touch-controls .touch-gas{background:#baaf2599;font-size:12px}.keyboard-hint{display:none}.touch-note{display:block}}
@media(pointer:coarse) and (orientation:portrait){.touch-controls{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:12px;right:12px}.touch-controls button{width:52px;height:58px}.touch-controls .touch-boost{width:58px}.touch-steering,.touch-pedals{gap:7px}.menu-buttons{width:28%;left:36%}}
@media(max-height:550px){.game-dialog{padding:22px 28px;max-height:calc(100dvh - 24px)}.game-dialog h2{font-size:29px;margin:7px 0 15px}.control-row{padding:8px 0}.panel-note,.touch-note{margin:13px 0;font-size:13px;line-height:1.5}.option-row{margin-top:16px}.game-dialog .arcade-button{height:40px;min-height:40px;font-size:17px}.result-stats{margin:18px 0}.result-time{font-size:38px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
