:root{--cyan: #00e5ff;--magenta: #ff2d78;--amber: #ffb347;--lime: #b8ff3c;--bg-deep: #05070f;--panel: rgba(10, 14, 26, .82);--panel-line: rgba(0, 229, 255, .28);--text: #e8f4ff;--text-dim: #7f93ad;--font: "Rajdhani", "Avenir Next Condensed", "Arial Narrow", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-deep);color:var(--text);font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;overscroll-behavior:none}#app{position:fixed;inset:0}canvas#gl{position:absolute;inset:0;width:100%;height:100%;display:block}canvas#fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.hidden{display:none!important}.mono{font-variant-numeric:tabular-nums;letter-spacing:.02em}#hud{position:absolute;inset:0;pointer-events:none;z-index:5}#hud-topleft{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:2px;padding:10px 16px 12px;background:linear-gradient(120deg,#060a14b8,#060a1459);border-left:3px solid var(--cyan);clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%);min-width:190px}.ht-row{display:flex;align-items:baseline;gap:10px;line-height:1.05}.ht-label{font-size:clamp(11px,1.4vh,13px);font-weight:600;color:var(--text-dim);letter-spacing:.22em;width:44px}.ht-big{font-size:clamp(30px,4.6vh,44px);font-weight:700;font-style:italic;color:#fff;text-shadow:0 0 18px rgba(0,229,255,.55)}.ht-big small{font-size:.45em;color:var(--text-dim);font-style:normal}.ht-mid{font-size:clamp(19px,2.9vh,27px);font-weight:600;color:var(--cyan);font-style:italic}.ht-mid small{font-size:.55em;color:var(--text-dim)}.ht-small{font-size:clamp(14px,2vh,17px);font-weight:600;color:var(--text-dim)}#minimap{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:clamp(110px,15vw,178px);height:clamp(110px,15vw,178px);border-radius:10px;border:1px solid rgba(0,229,255,.25);background:#05080fb8;box-shadow:0 0 24px #00000073,inset 0 0 18px #00000080}#speedo-wrap{position:absolute;right:clamp(6px,2.5vw,34px);bottom:clamp(2px,1.5vh,18px);width:clamp(170px,24vw,280px);filter:drop-shadow(0 0 14px rgba(0,0,0,.65))}#speedo{width:100%;height:auto;display:block}#nitro-wrap{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:clamp(10px,2vh,24px);width:clamp(130px,16vw,200px);height:clamp(64px,9vh,92px);pointer-events:none}#nitro-label{font-weight:700;font-style:italic;letter-spacing:.3em;color:var(--magenta);font-size:clamp(13px,1.8vh,16px);text-shadow:0 0 12px rgba(255,45,120,.8)}#nitro-bar{position:relative;margin-top:5px;height:46%;background:#ff2d7817;border:1px solid rgba(255,45,120,.45);transform:skew(-14deg);overflow:hidden}#nitro-fill{position:absolute;inset:0;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,#ff2d78,#b445ff 55%,#00e5ff);box-shadow:0 0 16px #b445ffcc inset}#nitro-segs{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 2px),rgba(5,8,15,.9) calc(10% - 2px) 10%)}#nitro-ready{margin-top:5px;font-size:clamp(10px,1.5vh,12px);font-weight:700;letter-spacing:.34em;color:var(--text-dim);opacity:0;transition:opacity .2s}#nitro-ready.on{opacity:1;color:var(--lime);animation:readyPulse .9s infinite;text-shadow:0 0 10px rgba(184,255,60,.9)}@keyframes readyPulse{50%{opacity:.45}}#drift-meter{position:absolute;right:clamp(10px,3vw,42px);top:38%;text-align:right;font-style:italic}#drift-score{display:block;font-size:clamp(30px,5vh,48px);font-weight:700;color:#fff;text-shadow:0 0 20px rgba(255,179,71,.85)}.drift-tag{display:block;font-size:clamp(12px,1.7vh,15px);font-weight:700;letter-spacing:.4em;color:var(--amber)}#drift-mult{display:inline-block;margin-top:2px;font-size:clamp(15px,2.2vh,20px);font-weight:700;color:var(--lime);text-shadow:0 0 12px rgba(184,255,60,.7)}#drift-mult.hot{animation:readyPulse .5s infinite}#center-banner{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);font-size:clamp(56px,14vh,150px);font-weight:700;font-style:italic;color:#fff;text-shadow:0 0 34px rgba(0,229,255,.9),0 0 90px rgba(255,45,120,.5);letter-spacing:.04em}#center-banner.count{animation:countPop .94s ease-out both}#center-banner.go{color:var(--lime);text-shadow:0 0 40px rgba(184,255,60,1);animation:goPop .8s ease-out both}#center-banner.perfect{color:var(--amber);font-size:clamp(30px,6vh,62px);animation:goPop 1.4s ease-out both}@keyframes countPop{0%{transform:translate(-50%,-50%) scale(1.7);opacity:0}18%{opacity:1}to{transform:translate(-50%,-50%) scale(.86);opacity:.15}}@keyframes goPop{0%{transform:translate(-50%,-50%) scale(2.1);opacity:0}15%{opacity:1}70%{opacity:1}to{transform:translate(-50%,-50%) scale(.9);opacity:0}}#wrongway{position:absolute;left:50%;top:20%;transform:translate(-50%);font-size:clamp(22px,4.4vh,44px);font-weight:700;font-style:italic;letter-spacing:.12em;color:#ff3b30;text-shadow:0 0 26px rgba(255,59,48,.95);animation:wrongBlink .5s steps(2) infinite;white-space:nowrap}@keyframes wrongBlink{50%{opacity:.25}}#reset-hint{position:absolute;left:50%;bottom:24%;transform:translate(-50%);font-size:clamp(15px,2.4vh,21px);font-weight:600;letter-spacing:.18em;color:var(--text);background:#05080fad;border:1px solid rgba(0,229,255,.35);padding:8px 18px;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}#reset-hint b{color:var(--cyan)}#popup-layer{position:absolute;inset:0;overflow:hidden}.popup{position:absolute;font-style:italic;font-weight:700;color:var(--cyan);text-shadow:0 0 16px currentColor;animation:popupFloat 1.25s ease-out both;white-space:nowrap;will-change:transform,opacity}.popup.amber{color:var(--amber)}.popup.lime{color:var(--lime)}.popup.magenta{color:var(--magenta)}.popup.big{font-size:clamp(22px,3.4vh,34px)}.popup.mid{font-size:clamp(17px,2.6vh,25px)}@keyframes popupFloat{0%{transform:translateY(14px) scale(.7);opacity:0}14%{transform:translateY(0) scale(1.08);opacity:1}30%{transform:translateY(-4px) scale(1)}to{transform:translateY(-52px) scale(.96);opacity:0}}#checkpoint-flash{position:absolute;inset:0;opacity:0;pointer-events:none;box-shadow:inset 0 0 120px #00e5ff8c}#checkpoint-flash.hit{animation:cpFlash .5s ease-out}@keyframes cpFlash{0%{opacity:1}to{opacity:0}}#damage-flash{position:absolute;inset:0;opacity:0;pointer-events:none;box-shadow:inset 0 0 140px #ff2d3c6b}#damage-flash.hit{animation:dmgFlash .45s ease-out}@keyframes dmgFlash{0%{opacity:1}to{opacity:0}}#touch{position:absolute;inset:0;z-index:8;pointer-events:none}.tc-side{position:absolute;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 118px);display:flex;gap:12px;pointer-events:auto}.tc-left{left:14px}.tc-right{right:14px;flex-direction:column;align-items:flex-end;gap:10px}.tbtn{pointer-events:auto;width:clamp(64px,17vw,88px);height:clamp(64px,17vw,88px);border:1px solid rgba(0,229,255,.5);border-radius:14px;background:#080c168c;color:var(--text);font-family:var(--font);font-weight:700;font-size:clamp(13px,3.4vw,17px);letter-spacing:.08em;backdrop-filter:blur(4px)}.tbtn.primary{border-color:#b8ff3c99;color:var(--lime)}.tbtn.wide{width:clamp(120px,32vw,170px);height:clamp(44px,11.5vw,58px)}.tbtn.tall{height:clamp(74px,19vw,98px);width:clamp(58px,15vw,78px)}.tc-pedals{display:flex;gap:10px}.tbtn.pressed{background:#00e5ff47;border-color:var(--cyan)}#screens{position:absolute;inset:0;z-index:10;pointer-events:none}.screen{position:absolute;inset:0;pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 50% 110%,rgba(255,45,120,.14),transparent 55%),radial-gradient(120% 90% at 50% -20%,rgba(0,229,255,.12),transparent 55%),#04060cc7;backdrop-filter:blur(6px);animation:screenIn .28s ease-out;overflow-y:auto;overflow-x:hidden;padding:4vh 4vw}@keyframes screenIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.screen.transparent{background:#04060c73}.scanlines:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}.title-logo{text-align:center;line-height:.92;margin-bottom:1vh;animation:logoFlicker 7s infinite}.title-main{font-size:clamp(52px,11vw,128px);font-weight:700;font-style:italic;letter-spacing:.01em;background:linear-gradient(100deg,#fff 20%,var(--cyan) 55%,var(--magenta));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 26px rgba(0,229,255,.4));text-transform:uppercase;white-space:nowrap}.title-sub{margin-top:8px;font-size:clamp(16px,2.6vw,30px);font-weight:600;letter-spacing:.58em;text-indent:.58em;color:var(--text-dim);text-transform:uppercase}.title-tag{margin-top:2.2vh;color:var(--text-dim);font-size:clamp(13px,1.8vw,17px);letter-spacing:.2em}@keyframes logoFlicker{0%,93%,96%,to{opacity:1}94%,97%{opacity:.78}}.press-enter{margin-top:4vh;font-size:clamp(17px,2.6vw,26px);font-weight:700;letter-spacing:.34em;color:var(--cyan);animation:pressPulse 1.4s ease-in-out infinite;text-shadow:0 0 18px rgba(0,229,255,.8)}@keyframes pressPulse{50%{opacity:.35}}.menu-hintbar{position:absolute;bottom:max(14px,env(safe-area-inset-bottom));left:0;right:0;display:flex;justify-content:center;gap:3.5vw;flex-wrap:wrap;color:var(--text-dim);font-size:clamp(11px,1.6vw,14px);font-weight:600;letter-spacing:.14em}.menu-hintbar b{color:var(--text);border:1px solid rgba(255,255,255,.28);border-radius:4px;padding:1px 7px;margin-right:6px;font-weight:700}.screen-title{align-self:center;text-align:center;font-size:clamp(30px,5.4vw,54px);font-weight:700;font-style:italic;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3vh}.screen-title em{color:var(--cyan);font-style:italic}.screen-title .crumb{display:block;font-size:.38em;color:var(--text-dim);letter-spacing:.5em;font-style:normal;margin-bottom:6px}.card-row{display:flex;gap:2.2vw;justify-content:center;flex-wrap:wrap;max-width:1500px}.card{pointer-events:auto;cursor:pointer;width:clamp(230px,24vw,330px);background:var(--panel);border:1px solid rgba(127,147,173,.25);border-top:3px solid var(--text-dim);padding:18px 20px 16px;transition:transform .14s ease,border-color .14s,box-shadow .14s;position:relative;clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%)}.card:focus{outline:none}.card.focused{transform:translateY(-6px) scale(1.03);border-color:var(--cyan);border-top-color:var(--cyan);box-shadow:0 12px 44px #00e5ff29,0 0 0 1px var(--cyan)}.card.selected-lock{border-color:var(--lime);border-top-color:var(--lime)}.card h3{font-size:clamp(21px,2.2vw,27px);font-weight:700;font-style:italic;letter-spacing:.04em}.card .chip{display:inline-block;margin:6px 0 10px;padding:2px 10px;font-size:12px;font-weight:700;letter-spacing:.22em;border:1px solid currentColor;color:var(--magenta)}.card p{color:var(--text-dim);font-size:clamp(13px,1.3vw,15px);line-height:1.45;min-height:3em}.card .stats{margin-top:12px;display:grid;gap:5px}.stat-row{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:10px;font-size:12px;letter-spacing:.14em;color:var(--text-dim);font-weight:600}.stat-track{height:7px;background:#ffffff12;transform:skew(-18deg);overflow:hidden}.stat-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--magenta));transform-origin:left}.card .best-line{margin-top:12px;font-size:13.5px;color:var(--text-dim);letter-spacing:.08em}.card .best-line b{color:var(--amber)}.medal-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-left:4px;vertical-align:-1px}.medal-gold{background:radial-gradient(circle at 35% 30%,#ffe9a8,#d99a1f);box-shadow:0 0 8px #d99a1fcc}.medal-silver{background:radial-gradient(circle at 35% 30%,#f2f6fa,#93a3b3)}.medal-bronze{background:radial-gradient(circle at 35% 30%,#f0b087,#8a5527)}.paint-swatch{width:100%;height:10px;margin:12px 0 4px;transform:skew(-18deg)}.btn{pointer-events:auto;cursor:pointer;font-family:var(--font);font-weight:700;font-style:italic;letter-spacing:.18em;font-size:clamp(15px,1.8vw,19px);color:var(--text);background:#00e5ff14;border:1px solid rgba(0,229,255,.45);padding:12px 34px;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);transition:background .12s,color .12s,box-shadow .12s}.btn:hover,.btn.focused{background:var(--cyan);color:#04121a;box-shadow:0 0 26px #00e5ff80;outline:none}.btn.danger{border-color:#ff505080;background:#ff50500f}.btn.danger:hover,.btn.danger.focused{background:#ff4d4d;color:#1a0505;box-shadow:0 0 26px #ff4d4d66}.btn-col{display:flex;flex-direction:column;gap:14px;align-items:center;margin-top:3vh}.btn-row{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.controls-panel{background:var(--panel);border:1px solid var(--panel-line);padding:22px 30px;max-width:660px;width:min(92vw,660px);clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%)}.controls-panel h4{font-size:17px;letter-spacing:.3em;color:var(--cyan);margin-bottom:14px;font-style:italic}.ctrl-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;font-size:15.5px}.ctrl-grid b{color:#fff;border:1px solid rgba(255,255,255,.3);border-bottom-width:3px;border-radius:5px;padding:1px 10px;font-family:var(--font);letter-spacing:.06em;white-space:nowrap;justify-self:start;font-weight:600}.ctrl-grid span{color:var(--text-dim);letter-spacing:.06em;align-self:center}.results-position{font-size:clamp(64px,13vh,132px);font-weight:700;font-style:italic;line-height:.9;color:#fff;text-shadow:0 0 40px rgba(0,229,255,.75)}.results-position small{font-size:.38em;color:var(--text-dim)}.results-sub{font-size:clamp(16px,2.4vw,23px);letter-spacing:.3em;color:var(--cyan);font-weight:700;margin-top:4px}.standings{margin-top:3vh;min-width:min(520px,88vw);border-collapse:collapse;font-size:clamp(14px,1.8vh,17px)}.standings td,.standings th{padding:7px 18px;text-align:left;letter-spacing:.06em}.standings th{color:var(--text-dim);font-size:.8em;letter-spacing:.26em;border-bottom:1px solid rgba(127,147,173,.3)}.standings tr.me td{color:var(--cyan);font-weight:700}.standings tr.finished-not td{color:var(--text-dim)}.standings td.pos{font-weight:700;font-style:italic;width:34px}.standings tr:nth-child(2n):not(.me){background:#ffffff07}.lap-table{margin-top:2vh;display:flex;gap:26px;flex-wrap:wrap;justify-content:center;color:var(--text-dim);font-size:14.5px;letter-spacing:.08em}.lap-table b{color:var(--text);font-variant-numeric:tabular-nums}.lap-table .best{color:var(--amber)}.medal-stamp{margin-top:2.4vh;font-size:clamp(22px,3.6vh,36px);font-weight:700;font-style:italic;letter-spacing:.3em;padding:6px 30px;border:3px solid currentColor;transform:rotate(-4deg);animation:stampIn .4s cubic-bezier(.2,2.6,.4,1) both}.medal-stamp.gold{color:#ffd76a;text-shadow:0 0 24px rgba(255,215,106,.7)}.medal-stamp.silver{color:#cfdcea;text-shadow:0 0 20px rgba(207,220,234,.6)}.medal-stamp.bronze{color:#e29a63}.medal-stamp.none{color:var(--text-dim);border-color:var(--text-dim)}@keyframes stampIn{0%{transform:rotate(-4deg) scale(2.4);opacity:0}to{transform:rotate(-4deg) scale(1);opacity:1}}.race-stats{margin-top:2vh;display:flex;gap:3vw;flex-wrap:wrap;justify-content:center;color:var(--text-dim);font-size:14px;letter-spacing:.12em}.race-stats b{color:var(--text);display:block;font-size:19px;font-style:italic}.new-record{color:var(--lime);font-weight:700;letter-spacing:.2em;margin-top:1.4vh;animation:readyPulse 1s infinite}.pause-box{text-align:center}.pause-title{font-size:clamp(38px,7vh,66px);font-weight:700;font-style:italic;letter-spacing:.14em;margin-bottom:3vh;text-shadow:0 0 30px rgba(0,229,255,.5)}.settings-strip{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));display:flex;gap:10px}.set-btn{pointer-events:auto;cursor:pointer;background:#080c1699;color:var(--text-dim);border:1px solid rgba(127,147,173,.3);padding:6px 14px;font-family:var(--font);font-weight:700;letter-spacing:.14em;font-size:12.5px}.set-btn.on{color:var(--cyan);border-color:var(--cyan)}.toast{position:absolute;bottom:9%;left:50%;transform:translate(-50%);background:#05080fd9;border:1px solid var(--cyan);color:var(--text);padding:10px 22px;font-weight:600;letter-spacing:.12em;font-size:14.5px;animation:toastIn .25s ease-out;z-index:40}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1}}#vignette{position:absolute;inset:0;pointer-events:none;z-index:4;opacity:0;background:radial-gradient(140% 100% at 50% 50%,transparent 52%,rgba(2,4,10,.55) 100%);transition:opacity .3s}body.nos-active #vignette{opacity:1;box-shadow:inset 0 0 160px #5078ff59}#boot-note{position:absolute;bottom:4%;left:0;right:0;text-align:center;color:var(--text-dim);letter-spacing:.3em;font-size:12px;z-index:12}@media(max-width:760px){#hud-topleft{min-width:148px;padding:8px 12px 9px}.ht-label{width:36px}.card-row{gap:12px}.menu-hintbar{gap:5vw}#speedo-wrap{right:50%;transform:translate(50%);bottom:6px}#nitro-wrap{left:12px;bottom:auto;top:30%}#drift-meter{top:24%;right:12px}}
