@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;800;900&family=DM+Sans:wght@400;600;700&display=swap');
*{box-sizing:border-box}body{margin:0;background:#0c1423;color:#fff;font:15px 'DM Sans',system-ui;overflow:hidden}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit;border:1px solid #ffffff24;background:#ffffff0c;border-radius:14px;padding:13px 18px;font-weight:700}button:hover{background:#ffffff20}button:disabled{opacity:.45;cursor:default}button.primary{background:#d9ff43;color:#14200c;border:0;box-shadow:0 4px 0 #7a9421}button.selected{border-color:#d9ff43;background:#d9ff4318}canvas{position:fixed;inset:0;width:100%;height:100%}a{color:#c1cbdc;text-decoration:none}.menu{position:fixed;inset:0;overflow:auto;padding:24px max(20px,calc((100vw - 1100px)/2));background:linear-gradient(90deg,#0c1423f5,#0c1423d9 65%,#0c142399);backdrop-filter:blur(7px)}header{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-size:13px;letter-spacing:2px;font-weight:800}.wallet{background:#ffd45c18;border:1px solid #ffd45c44;color:#ffe28a;border-radius:30px;padding:10px 17px;font-weight:800}.intro{margin:32px 0 23px}.eyebrow{font-size:11px;letter-spacing:3px;color:#d9ff43;font-weight:800}h1{font:900 clamp(58px,9vw,104px)/.85 'Barlow Condensed',Impact,sans-serif;font-style:italic;letter-spacing:-2px;margin:12px 0 20px}h1 span{color:#d9ff43}p{color:#aebed2;line-height:1.6}nav{display:flex;gap:9px;margin-bottom:24px;flex-wrap:wrap}h2{font:800 30px 'Barlow Condensed',Impact,sans-serif;margin:16px 0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{text-align:left;position:relative;overflow:hidden;padding:18px;min-height:144px;background:linear-gradient(140deg,var(--tint,#234b65),#142133)}.card strong{display:block;font-size:18px;margin-top:7px}.card small{display:block;color:#c5d0dc;margin-top:6px;font-size:12px}.card .icon{font-size:34px}.card .cost{color:#ffe28a}.trackmap{width:80px;height:48px;float:right}.actionbar{position:sticky;bottom:-24px;background:#0c1423f5;padding:18px 0 24px;margin-top:20px;display:flex;justify-content:space-between;gap:16px;align-items:center}.actionbar p{font-size:12px;margin:0}.actionbar button{min-width:170px}.mode{display:flex;gap:10px}.toast{background:#d9ff43;color:#14200c;padding:12px;border-radius:10px;margin-bottom:12px;font-weight:700}.hud{position:fixed;top:max(16px,env(safe-area-inset-top));left:16px;right:16px;display:flex;gap:10px;align-items:start;justify-content:space-between;pointer-events:none}.hud>div{background:#0b1423d9;padding:12px 18px;border:1px solid #ffffff25;border-radius:15px}.hud strong{font:800 32px 'Barlow Condensed',Impact,sans-serif}.hud small{display:block;font-size:10px;letter-spacing:2px;color:#b8c6db}.hud button{pointer-events:auto;background:#0c1423dc}.controls{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:18px;right:18px;display:flex;justify-content:space-between;align-items:end;user-select:none;-webkit-user-select:none}.controls button{height:72px;min-width:76px;background:#0c1423b8;border:2px solid #ffffff50;font-size:25px;touch-action:none}.controls button.active{background:#d9ff4388}.controls .boost{background:#d9ff43;color:#14200c;font-size:16px}.controls .brake{font-size:12px;margin-right:10px}.steer{display:flex;gap:12px}.center{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#09122199;backdrop-filter:blur(6px);padding:20px}.panel{max-width:540px;width:100%;background:#111e32;border:1px solid #ffffff26;border-radius:26px;padding:30px;text-align:center;max-height:90dvh;overflow:auto}.panel h2{font-size:45px}.panel button{margin:6px}.countdown{position:fixed;top:35%;width:100%;text-align:center;font:900 100px 'Barlow Condensed',Impact;color:#d9ff43;text-shadow:0 5px 0 #14200c;pointer-events:none}.notice{position:fixed;top:100px;width:100%;text-align:center;color:#fff;font-weight:800;text-shadow:0 2px 5px #000;pointer-events:none}.standings{width:100%;text-align:left;border-collapse:collapse;margin:20px 0}.standings td{padding:9px;border-bottom:1px solid #ffffff18}.standings tr:first-child{color:#d9ff43}.help{font-size:12px;color:#9eafc7}.stats{display:flex;gap:5px;margin-top:10px}.stats i{height:5px;border-radius:5px;background:#d9ff43;display:block}.footer{font-size:11px;color:#7b8fa9;padding:0 0 20px}@media(max-width:650px){.menu{padding:18px}.intro{margin-top:25px}h1{font-size:68px}.grid{grid-template-columns:repeat(2,1fr);gap:9px}.card{padding:13px;min-height:135px}.card strong{font-size:15px}nav button{padding:10px 13px}.actionbar{bottom:-18px}.hud>div{padding:8px 11px}.hud strong{font-size:25px}.controls button{height:65px;min-width:61px}.controls .brake{margin-right:6px}.controls{left:12px;right:12px}.steer{gap:8px}.trackmap{width:60px}.actionbar button{min-width:135px}}
html,body{overscroll-behavior:none}canvas,.controls,.touch-wheel{touch-action:none}.menu{background:linear-gradient(90deg,#0b1423f5,#0c1423e8 55%,#0c1423a8);backdrop-filter:blur(3px)}.card .car-art{display:block;width:100%;height:125px;filter:drop-shadow(0 12px 15px #0004);transition:transform .2s}.card:hover .car-art{transform:translateY(-4px)}.card:has(.car-art){min-height:230px}.settings{background:#142238;border:1px solid #ffffff22;border-radius:20px;padding:20px;max-width:700px}.settings p:first-child{margin-top:0}.touch-wheel{width:155px;height:170px;display:flex;flex-direction:column;align-items:center;justify-content:end;position:relative;user-select:none;-webkit-user-select:none}.wheel-ring{width:137px;height:137px;border:12px solid #c6d5e7aa;border-radius:50%;background:#0a14234d;box-shadow:inset 0 0 0 3px #223b54,0 5px 20px #0004;position:relative;will-change:transform}.wheel-ring:before,.wheel-ring:after{content:'';position:absolute;background:#a9bed5aa;top:45px;width:46px;height:12px;transform:rotate(15deg)}.wheel-ring:before{left:0}.wheel-ring:after{right:0;transform:rotate(-15deg)}.wheel-ring i{position:absolute;top:-12px;left:48px;width:14px;height:14px;background:#d9ff43;border-radius:3px}.wheel-ring b{position:absolute;width:43px;height:43px;border:3px solid #809eb9;background:#1b3147;border-radius:50%;top:36px;left:36px;text-align:center;line-height:37px;color:#d9ff43;font-size:22px}.touch-wheel span{font-size:9px;letter-spacing:2px;margin-top:12px;color:#d4e3f2;text-shadow:0 2px 4px #000}.touch-wheel.active .wheel-ring{border-color:#e4f5ff}.controls{align-items:flex-end;pointer-events:none}.controls>*{pointer-events:auto}.controls .brake{width:74px;height:74px;border-radius:50%;font-size:11px;line-height:1.5;background:#142238a8}.controls .boost{width:93px;height:93px;border-radius:50%;font-size:14px;box-shadow:0 0 24px #c4ff3955;border:3px solid #f0ff9c}.controls .boost span{display:block;font-size:21px;margin-top:2px}.race-hint{position:fixed;top:115px;left:15%;width:70%;text-align:center;font-size:12px;line-height:1.6;color:#fff;background:#14223899;border-radius:20px;padding:8px;pointer-events:none;transition:opacity .5s}.speed-fx{position:fixed;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 45%,transparent 36%,#80eaff30 70%,#83eaff88 100%);transition:opacity .2s}.speed-fx.nitro{opacity:1;animation:nitroPulse .2s infinite alternate}.drift-meter{position:fixed;bottom:25px;left:42%;width:16%;height:6px;background:#14223899;border-radius:10px;overflow:hidden;pointer-events:none}.drift-meter div{height:100%;background:linear-gradient(90deg,#51d9ff,#d9ff43);width:0}.notice{top:160px}.hud{gap:7px}.hud #trackLabel{max-width:125px;letter-spacing:1px}.controls button{backdrop-filter:blur(6px)}@keyframes nitroPulse{to{opacity:.7}}@media(min-width:900px){.touch-wheel{width:180px;height:180px}.wheel-ring{width:150px;height:150px}.wheel-ring b{left:42px;top:42px}.wheel-ring i{left:56px}.wheel-ring:before,.wheel-ring:after{top:52px;width:53px}.controls{left:40px;right:40px;bottom:30px}.controls .boost{width:110px;height:110px}}@media(max-width:650px){.card .car-art{height:95px}.card:has(.car-art){min-height:215px}.controls{bottom:max(20px,env(safe-area-inset-bottom));left:16px;right:16px}.controls .brake{margin-right:8px;width:65px;height:65px;min-width:65px}.controls .boost{width:83px;height:83px;min-width:83px}.touch-wheel{width:140px;height:153px}.wheel-ring{width:125px;height:125px;border-width:10px}.wheel-ring b{top:31px;left:31px}.wheel-ring i{top:-10px;left:45px;width:12px;height:12px}.wheel-ring:before,.wheel-ring:after{top:43px;width:42px}.race-hint{top:100px;left:10%;width:80%}.notice{top:154px}}
@media(max-height:500px){.hud>div{padding:5px 12px}.hud strong{font-size:23px}.controls{bottom:12px}.touch-wheel{height:124px;width:128px}.wheel-ring{width:108px;height:108px;border-width:9px}.wheel-ring b{left:24px;top:24px}.wheel-ring i{left:39px;top:-9px}.wheel-ring:before,.wheel-ring:after{width:35px;top:37px}.touch-wheel span{font-size:8px;margin-top:6px}.controls .boost{width:74px;height:74px;min-width:74px}.controls .brake{width:61px;height:61px;min-width:61px}.race-hint{top:70px;padding:3px 8px;font-size:10px;left:25%;width:50%}.notice{top:110px}.drift-meter{bottom:15px}}
.backup-steer{position:absolute;left:0;bottom:0;display:flex;gap:8px;z-index:4;pointer-events:auto}.controls .backup-steer button{width:62px;min-width:62px;height:55px;font-size:24px;background:#1a314bdd;border:2px solid #d7eeff99;touch-action:none}.controls .touch-wheel{margin-bottom:69px}.controls>.steer{margin-bottom:69px}.controls>.backup-steer+div:last-child{margin-left:auto}.controls button.active,.controls .backup-steer button.active{background:#d9ff43;color:#14200c}.speed-fx.crashed{opacity:1;background:radial-gradient(ellipse,transparent 30%,#ff453e99);animation:none}.notice{font-size:15px;font-weight:800;color:#e8ff9d}.touch-wheel{cursor:grab}.wheel-ring,.wheel-ring *,.touch-wheel span{pointer-events:none}.settings{padding-bottom:25px}@media(max-height:500px){.controls .touch-wheel{margin-bottom:50px;height:112px}.controls .backup-steer button{height:42px;width:55px;min-width:55px}.touch-wheel span{display:none}.controls>.steer{margin-bottom:50px}}@media(max-width:400px){.controls .touch-wheel{width:126px}.controls .backup-steer button{width:58px;min-width:58px}.controls .brake{width:58px;min-width:58px}.controls .boost{width:74px;min-width:74px}}
/* One touch system, explicitly above every decorative overlay. */
#scene{z-index:0;pointer-events:none}#app{position:relative;z-index:1}.hud{z-index:20}.direct-controls{z-index:30;bottom:max(18px,env(safe-area-inset-bottom));left:12px;right:12px;align-items:flex-end;pointer-events:none}.direct-steer,.pedals{display:flex;gap:8px;pointer-events:auto}.direct-controls .direct-steer button{width:20vw;max-width:115px;min-width:64px;height:98px;padding:10px;border-radius:20px;background:#18374be6;border:2px solid #c4e7ff;font-size:28px;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;backdrop-filter:none}.direct-steer small{display:block;font-size:11px;letter-spacing:1px;margin-top:7px;pointer-events:none}.direct-controls .direct-steer button.active{background:#d9ff43;color:#132013;border-color:#edffc4;transform:translateY(3px)}.direct-controls .pedals{align-items:flex-end;gap:6px}.direct-controls .brake{margin:0;min-width:54px;width:54px;height:68px;font-size:10px}.direct-controls .boost{min-width:68px;width:68px;height:82px;font-size:11px}.direct-controls .boost span{font-size:19px}#steerStatus{position:fixed;z-index:21;left:12px;bottom:130px;font-size:11px;color:#d9ff43;text-shadow:0 2px 3px #000;pointer-events:none;letter-spacing:1px}.center{z-index:50}.menu{z-index:40}.notice,.race-hint,.speed-fx,.countdown,.drift-meter{pointer-events:none}.race-hint{z-index:10}.notice{z-index:10}@media(max-height:500px){.direct-controls .direct-steer button{height:70px;width:110px}.direct-controls{bottom:12px}.direct-controls .boost{height:70px}#steerStatus{bottom:93px}}
.difficulty{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 22px;padding:15px;background:#152238;border:1px solid #ffffff22;border-radius:16px}.difficulty>span{font-size:10px;letter-spacing:2px;margin-right:6px;color:#bdcee0}.difficulty button{padding:9px 17px}.difficulty small{width:100%;color:#aebed2;font-size:12px}.race-map{position:fixed;z-index:15;right:14px;top:104px;width:128px;padding:9px;background:#0c192be3;border:1px solid #d4e7ff33;border-radius:14px;pointer-events:none}.race-map>div{font-size:8px;letter-spacing:1px;color:#c2d0e0}.race-map span{color:#d9ff43;float:right;letter-spacing:0}.race-map svg{display:block;width:100%;height:auto}.race-map small{display:block;font-size:8px;text-align:center;color:#b2c7a9}.lap-tracker{position:fixed;z-index:15;left:14px;top:104px;width:184px;padding:12px;background:#0c192be3;border:1px solid #d4e7ff33;border-radius:14px;pointer-events:none}.lap-tracker>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:11px}.lap-tracker span{color:#d9ff43;font-variant-numeric:tabular-nums}.lap-bar{height:5px;background:#435368;border-radius:5px;margin:11px 0;overflow:hidden}.lap-bar i{display:block;width:0;height:100%;background:#d9ff43}.lap-tracker small{font-size:10px;color:#b8c9de;display:block;line-height:1.6}.lap-tracker em{font-size:9px;font-style:normal;color:#d9ff43;position:absolute;bottom:12px;right:12px;text-transform:uppercase;letter-spacing:1px}.race-hint{top:263px;left:16%;width:68%;font-size:11px}.notice{top:234px;font-size:12px;padding:0 10px}@media(max-width:430px){.race-map{width:110px;right:10px;top:101px;padding:8px}.lap-tracker{left:10px;top:101px;width:170px}.race-map>div{font-size:7px}.race-map small{font-size:7px}.race-hint{top:250px}.notice{top:223px}}@media(max-height:500px){.race-map{top:74px;width:96px;padding:6px;right:12px}.lap-tracker{top:74px;width:162px;padding:9px;left:12px}.race-hint{top:201px;left:27%;width:46%;font-size:9px}.notice{top:177px}.lap-tracker em{bottom:10px;right:8px}}
.drift-meter{display:none}.direct-controls .pedals{gap:0}.direct-controls .boost{width:78px;height:88px;min-width:78px}.card .car-art{width:92%;margin:0 auto}
#driveSurface{position:fixed;inset:0;z-index:2;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:ew-resize}.direct-controls{justify-content:flex-end;pointer-events:none}.direct-controls .pedals{pointer-events:auto}#touchMarker{display:none;position:fixed;width:46px;height:46px;margin:-23px 0 0 -23px;border:2px solid #d9ff4388;background:#d9ff4312;border-radius:50%;z-index:18;pointer-events:none;box-shadow:0 0 0 9px #d9ff4308}.hud{pointer-events:none}.hud button{pointer-events:auto}.lap-tracker,.race-map{pointer-events:none}#steerStatus{font-size:10px;color:#c9d7e9}
.nitro-key{display:block;font-size:8px;letter-spacing:.5px;margin-top:4px;opacity:.85}@media(hover:none){.nitro-key{display:none}}@media(hover:hover){.race-hint{opacity:1!important}}
.hud #musicToggle{font-size:10px;white-space:nowrap;padding:8px 6px;min-width:36px}.hud>div:first-child{min-width:0;max-width:118px}.hud #trackLabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud>div{padding-left:10px;padding-right:10px}@media(max-width:430px){.hud{left:10px;right:10px;gap:5px}.hud>div:first-child{max-width:100px}.hud>div{padding:7px 8px}.hud button{padding:8px;min-width:32px}.hud strong{font-size:23px}.hud small{font-size:9px}.hud #musicToggle{min-width:32px;font-size:9px;padding:7px 4px}}
