:root{--accent:#f5b50a;--accent2:#36a3ff;--danger:#e2362f;--ok:#3ccf6e;--panel:#080a0ec7;--text:#f4f4f4;--muted:#a9b0bb;--font-title:"Russo One", Impact, "Arial Black", sans-serif;--font-ui:"Oswald", "Arial Narrow", Arial, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--font-ui);-webkit-user-select:none;user-select:none;background:#000;margin:0;overflow:hidden}#game{outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}#hud{pointer-events:none;position:fixed;inset:0}#hud-top-left{flex-direction:column;gap:6px;display:flex;position:absolute;top:18px;left:18px}.hud-chip{background:var(--panel);border-left:4px solid var(--accent);letter-spacing:1px;justify-content:space-between;gap:14px;min-width:190px;padding:6px 14px;font-size:18px;display:flex}.hud-chip .lbl{color:var(--muted);text-transform:uppercase;align-self:center;font-size:14px}#hud-timer{font-family:var(--font-title);letter-spacing:2px;text-shadow:0 3px #000,0 0 18px #0009;font-variant-numeric:tabular-nums;font-size:44px;position:absolute;top:14px;left:50%;transform:translate(-50%)}#hud-section{letter-spacing:3px;color:var(--accent);text-shadow:0 2px #000;text-transform:uppercase;font-size:16px;position:absolute;top:72px;left:50%;transform:translate(-50%)}#hud-speedo{background:var(--panel);text-align:right;border-right:4px solid var(--accent2);width:190px;padding:8px 16px 12px;position:absolute;bottom:20px;right:22px}#hud-speed{font-family:var(--font-title);font-variant-numeric:tabular-nums;font-size:58px;line-height:1}#hud-speedo .unit{color:var(--muted);letter-spacing:2px;margin-top:-2px;font-size:14px}#hud-gear{font-family:var(--font-title);color:var(--accent2);font-size:30px;position:absolute;top:10px;left:14px}#hud-speedo .rpm{background:#ffffff1f;height:6px;margin-top:8px}#hud-rpm-fill{background:linear-gradient(90deg, var(--accent2), #fff 70%, var(--danger) 90%);width:0%;height:100%}#hud-hint{color:#ffffffa6;letter-spacing:1px;text-shadow:0 1px 2px #000;font-size:14px;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}#banner{pointer-events:none;text-align:center;font-family:var(--font-title);letter-spacing:4px;color:#fff;text-shadow:0 4px #000,0 0 30px #000000b3;opacity:0;white-space:nowrap;font-size:46px;transition:opacity .35s;position:fixed;top:24%;left:50%;transform:translate(-50%,-50%)}#banner.show{opacity:1}#banner .sub{font-family:var(--font-ui);letter-spacing:3px;color:var(--accent);margin-top:4px;font-size:18px;display:block}#bigmsg{pointer-events:none;font-family:var(--font-title);text-shadow:0 6px #000,0 0 40px #0009;opacity:0;white-space:nowrap;font-size:120px;position:fixed;top:45%;left:50%;transform:translate(-50%,-50%)scale(1)}#bigmsg.pop{animation:.9s ease-out forwards pop}#bigmsg.stay{opacity:1;animation:none}#bigmsg.red{color:var(--danger);letter-spacing:6px;font-size:96px}#bigmsg.gold{color:var(--accent)}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(1.8)}15%{opacity:1;transform:translate(-50%,-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(.9)}}#fade{opacity:0;pointer-events:none;background:#000;transition:opacity .25s;position:fixed;inset:0}#fade.on{opacity:1}.overlay{background:radial-gradient(#00000040,#000000a6);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.panel{background:var(--panel);border-top:5px solid var(--accent);width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);padding:30px 40px 26px;overflow:auto;box-shadow:0 20px 60px #0009}.panel.small{text-align:center;width:min(420px,100vw - 32px)}.title{font-family:var(--font-title);letter-spacing:3px;text-shadow:0 4px #000;font-size:54px;line-height:1}.title.gold{color:var(--accent)}.subtitle{color:var(--accent);letter-spacing:3px;text-transform:uppercase;margin:8px 0 22px;font-size:16px}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;display:flex}.row .lbl{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:15px}#colors{gap:8px;display:flex}.swatch{cursor:pointer;border:2px solid #ffffff40;width:30px;height:30px;padding:0}.swatch.active{box-shadow:0 0 0 2px var(--accent);border-color:#fff}.toggle{display:flex}.toggle button{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:1px;color:var(--muted);cursor:pointer;background:#ffffff14;border:none;padding:7px 14px;font-size:15px}.toggle button.active{background:var(--accent);color:#111}.big-btn,.btn{cursor:pointer;width:100%;font-family:var(--font-title);letter-spacing:3px;border:none;display:block}.big-btn{background:var(--accent);color:#111;margin-top:22px;padding:14px;font-size:28px;transition:transform 80ms,filter .15s}.big-btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.big-btn:disabled{filter:grayscale()brightness(.6);cursor:wait}.btn{color:#fff;background:#ffffff1a;margin-top:10px;padding:10px;font-size:18px}.btn:hover{background:#fff3}#menu-best{text-align:center;color:var(--muted);letter-spacing:1px;min-height:20px;margin-top:10px}.controls{color:var(--muted);border-top:1px solid #ffffff1a;grid-template-columns:1fr 1fr;gap:4px 18px;margin-top:16px;padding-top:14px;font-size:14px;display:grid}.controls b{color:#fff;font-weight:600}#loading{text-align:center;color:var(--accent2);letter-spacing:1px;margin-top:12px}.stats{margin:18px 0 4px}.stats div{border-bottom:1px solid #ffffff14;justify-content:space-between;padding:8px 4px;font-size:20px;display:flex}.stats span{color:var(--muted);text-transform:uppercase;letter-spacing:1px;align-self:center;font-size:16px}.stats b{font-family:var(--font-title);font-variant-numeric:tabular-nums;font-weight:400}.record{color:var(--ok);font-family:var(--font-title);letter-spacing:3px;margin-top:8px;font-size:22px;animation:1s infinite blink}@keyframes blink{50%{opacity:.4}}@media (max-width:700px){#hud-timer{font-size:30px}.title{font-size:38px}.controls{grid-template-columns:1fr}#bigmsg{font-size:70px}#bigmsg.red{font-size:52px}#banner{font-size:28px}}.modes{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mode-btn{cursor:pointer;background:var(--accent);color:#111;border:none;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;transition:transform 80ms,filter .15s;display:flex}.mode-btn.challenge{background:var(--danger);color:#fff}.mode-btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.mode-btn:disabled{filter:grayscale()brightness(.6);cursor:wait}.mode-name{font-family:var(--font-title);letter-spacing:3px;font-size:26px}.mode-sub{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:1px;opacity:.85;font-size:13px}.mode-hint{text-align:center;color:var(--muted);letter-spacing:1px;margin:8px 0 12px;font-size:13px}.level-box{border-left:4px solid var(--accent2);background:#ffffff0d;margin-bottom:8px;padding:10px 14px}.level-meta{letter-spacing:1px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:18px;display:flex}.level-meta .lbl{color:var(--muted);text-transform:uppercase;letter-spacing:2px;font-size:13px}.level-meta .lbl b{color:#fff;font-family:var(--font-title);font-size:18px;font-weight:400}.diff{text-transform:uppercase;letter-spacing:2px;background:var(--ok);color:#111;padding:2px 8px;font-size:13px}.diff[data-level="1"]{background:var(--accent)}.diff[data-level="2"]{background:#ff7a00}.diff[data-level="3"]{background:var(--danger);color:#fff}.level-obstacles{text-align:center;color:var(--muted);margin-top:6px;font-size:13px;line-height:1.5}.swatch.locked{cursor:not-allowed;filter:grayscale(.7)brightness(.45);position:relative}.swatch.locked:after{content:"🔒";filter:none;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.colors-info{text-transform:none;letter-spacing:0;color:var(--muted);font-size:12px;display:block}.unlock{color:var(--accent);font-family:var(--font-title);letter-spacing:2px;margin-top:8px;font-size:18px}.drift{text-align:center;pointer-events:none;opacity:0;--glow:0px;--tint:#ffd23a;transition:opacity .2s,transform .2s;position:absolute;top:104px;left:50%;transform:translate(-50%)scale(.6)}.drift.on{opacity:1;transform:translate(-50%)scale(1)}.drift.cool{opacity:.55}.drift-lbl{font-family:var(--font-title);letter-spacing:6px;color:#fff;text-shadow:0 2px #000;font-size:16px}.drift-time{font-family:var(--font-title);color:var(--tint);font-variant-numeric:tabular-nums;text-shadow:0 3px 0 #000, 0 0 var(--glow) var(--tint), 0 0 calc(var(--glow) * 2) var(--tint);font-size:64px;line-height:1}.drift-time small{margin-left:4px;font-size:26px}.drift-tier{font-family:var(--font-title);letter-spacing:4px;color:var(--tint);min-height:24px;text-shadow:0 2px 0 #000, 0 0 var(--glow) var(--tint);font-size:20px}.drift[data-tier="1"]{--glow:8px;--tint:#ffd23a}.drift[data-tier="2"]{--glow:14px;--tint:#ffc21a}.drift[data-tier="3"]{--glow:20px;--tint:#ffab00}.drift[data-tier="4"]{--glow:28px;--tint:#ff8a00}.drift[data-tier="5"]{--glow:38px;--tint:#ff5a1f}.drift[data-tier="4"] .drift-time,.drift[data-tier="5"] .drift-time{animation:.12s infinite alternate driftShake}.drift.burst .drift-time{animation:.45s ease-out driftBurst}@keyframes driftBurst{0%{filter:brightness(2);transform:scale(1.6)}to{filter:none;transform:scale(1)}}@keyframes driftShake{0%{transform:translate(-1px)rotate(-1deg)}to{transform:translate(1px)rotate(1deg)}}.drift-bank{font-family:var(--font-title);color:var(--ok);opacity:0;pointer-events:none;text-shadow:0 3px 0 #000, 0 0 16px var(--ok);white-space:nowrap;font-size:46px;position:absolute;top:120px;left:50%;transform:translate(-50%)}.drift-bank.go{animation:1.3s ease-out forwards driftBank}@keyframes driftBank{0%{opacity:0;transform:translate(-50%,10px)scale(.7)}15%{opacity:1;transform:translate(-50%)scale(1.15)}60%{opacity:1;transform:translate(-50%,-40px)scale(1)}to{opacity:0;transform:translate(-50%,-90px)scale(.6)}}#hud-timer.bonus{animation:.8s ease-out timerBonus}@keyframes timerBonus{0%{color:var(--ok);transform:translate(-50%)scale(1.25)}to{color:#fff;transform:translate(-50%)scale(1)}}.stats b.bonus{color:var(--ok)}.drift-time{z-index:0;display:inline-block;position:relative}.drift-fire{z-index:-1;pointer-events:none;opacity:0;filter:blur(2.5px);--f1:#fff3b0;--f2:#ff9a1a;--f3:#ff3c008c;height:120%;transition:opacity .3s,height .3s;position:absolute;bottom:8%;left:-12%;right:-12%}.drift-fire i{bottom:0;left:var(--x);width:20%;height:var(--h);background:radial-gradient(ellipse at 50% 88%, var(--f1) 0%, var(--f2) 38%, var(--f3) 62%, transparent 74%);transform-origin:50% 100%;animation:flameTongue var(--d) ease-in var(--delay) infinite;border-radius:50% 50% 38% 38%/62% 62% 38% 38%;position:absolute}@keyframes flameTongue{0%{opacity:.9;transform:translateY(8%)scale(1.05,.7)}45%{opacity:1}to{opacity:0;transform:translateY(-48%)scale(.35,1.35)}}.drift.fire .drift-fire{opacity:.7}.drift.fire-blue .drift-fire{opacity:1;filter:blur(2px);--f1:#f2fdff;--f2:#3fb4ff;--f3:#1e46ff99;height:175%}.drift.fire-blue .drift-fire i{animation-duration:calc(var(--d) * .75)}.drift.fire #drift-time{animation:.14s infinite alternate fireFlicker}.drift.fire-blue #drift-time{animation:.1s infinite alternate blueFlicker}@keyframes fireFlicker{0%{text-shadow:0 3px #000,0 0 10px #ff8a00,0 -6px 18px #ff5a00}to{text-shadow:0 3px #000,0 0 16px #ffb000,0 -10px 26px #ff3d00}}@keyframes blueFlicker{0%{text-shadow:0 3px #000,0 0 14px #5ac8ff,0 -8px 26px #1e6bff,0 -16px 40px #1e6bff}to{text-shadow:0 3px #000,0 0 22px #9fe2ff,0 -14px 36px #2f7dff,0 -24px 54px #2f50ff}}.nitro{text-align:left;margin-top:10px}.nitro-lbl{font-family:var(--font-title);letter-spacing:3px;color:#7fd4ff;justify-content:space-between;font-size:13px;display:flex}.nitro-bar{background:#ffffff1a;height:10px;margin-top:3px;position:relative;overflow:hidden}#nitro-fill{background:linear-gradient(90deg,#1e6bff,#3fb4ff 60%,#e8fbff);width:100%;height:100%;box-shadow:0 0 10px #3fb4ff}.nitro.boost .nitro-bar{box-shadow:0 0 14px #3fb4ff,0 0 26px #1e6bff}.nitro.boost #nitro-fill{animation:.12s infinite alternate nitroPulse}@keyframes nitroPulse{0%{filter:brightness()}to{filter:brightness(1.6)}}.nitro.refill .nitro-lbl{animation:.5s infinite alternate nitroRefill}@keyframes nitroRefill{0%{color:#7fd4ff}to{color:#fff;text-shadow:0 0 8px #3fb4ff}}.nitro.empty .nitro-lbl{color:var(--muted)}
