@import"https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=Heebo:wght@400;600;800&display=swap";:root{--bg: #070c14;--ink: #e9f1fb;--dim: #8ea3bd;--cyan: #21e6ff;--yellow: #ffd23c;--pink: #ff5bd0;--red: #ff2f55;--panel: rgba(8, 15, 26, .82);--hair: rgba(255, 255, 255, .12)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:Heebo,system-ui,sans-serif;touch-action:none;overscroll-behavior:none;user-select:none}#app,#app canvas{position:fixed;inset:0;display:block}#speed-lines{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .18s;background:repeating-linear-gradient(90deg,transparent 0 46px,rgba(255,255,255,.08) 46px 48px);mask-image:radial-gradient(ellipse at center,transparent 34%,#000 88%);-webkit-mask-image:radial-gradient(ellipse at center,transparent 34%,#000 88%)}#speed-lines.show{opacity:1}#hud{position:fixed;top:0;inset-inline:0;z-index:6;display:flex;align-items:center;gap:clamp(10px,2.2vw,26px);padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left));pointer-events:none;background:linear-gradient(180deg,rgba(4,8,14,.75),transparent)}.chip{display:flex;flex-direction:column;line-height:1.05;padding:6px 14px;border-radius:12px;background:#090e168c;border:1px solid var(--hair);backdrop-filter:blur(10px)}.chip small{font-size:9px;color:var(--dim);letter-spacing:.1em}.chip b{font-family:Rajdhani,sans-serif;font-size:clamp(15px,2.4vw,22px);font-variant-numeric:tabular-nums}.chip.best b{color:var(--yellow)}.chip.tiny{margin-inline-start:auto}.chip.tiny b{font-size:12px;color:var(--dim)}#toast{position:fixed;inset-inline:0;top:26%;z-index:7;text-align:center;font-family:Rajdhani,sans-serif;font-size:clamp(24px,5vw,52px);font-weight:700;letter-spacing:.02em;pointer-events:none;opacity:0;transform:scale(.92);transition:opacity .18s,transform .18s;text-shadow:0 4px 26px rgba(0,0,0,.7)}#toast.show{opacity:1;transform:scale(1)}#toast small{display:block;font-family:Heebo,sans-serif;font-size:34%;font-weight:400;color:var(--dim)}#car-picker{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}#car-picker button{font-family:Heebo,sans-serif;font-size:13px;font-weight:600;padding:7px 18px;border-radius:99px;border:1px solid var(--hair);background:transparent;color:var(--dim);cursor:pointer;transition:color .15s,border-color .15s}#car-picker button.on{color:var(--ink);border-color:var(--tint);box-shadow:inset 0 0 0 1px var(--tint)}.modal{position:fixed;inset:0;z-index:9;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:radial-gradient(ellipse at center,#09101cdb,#04070cf5);backdrop-filter:blur(6px)}.modal.show{display:flex}.badge{font-family:Rajdhani,sans-serif;font-size:12px;letter-spacing:.22em;color:var(--cyan);border:1px solid var(--hair);border-radius:99px;padding:5px 14px}.modal h1{font-family:Rajdhani,sans-serif;font-size:clamp(34px,8vw,74px);line-height:.92;font-weight:700}.modal h1 em{font-style:normal;color:var(--cyan)}.modal h2{font-family:Rajdhani,sans-serif;font-size:clamp(24px,5vw,40px)}.modal p{max-width:48ch;color:var(--dim);font-size:clamp(13px,2vw,16px);line-height:1.6}.modal p strong{color:var(--ink)}.hint-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;font-size:clamp(11px,1.7vw,13px);color:var(--dim)}.hint-row i{font-style:normal;color:var(--cyan)}.modal button{font-family:Rajdhani,sans-serif;font-size:17px;font-weight:700;letter-spacing:.06em;padding:12px 40px;border-radius:99px;border:1px solid var(--hair);cursor:pointer}.modal button.primary{background:var(--cyan);color:#04141a;border-color:transparent}.modal button.secondary{background:transparent;color:var(--ink)}.controls{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--dim);line-height:1.7;max-width:60ch}.controls b{color:var(--ink)}body.touch .controls .desktop,body:not(.touch) .controls .mobile{display:none}#rotate{position:fixed;inset:0;z-index:20;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg);font-size:15px;color:var(--dim)}#rotate span{font-size:46px;color:var(--cyan)}@media(orientation:portrait)and (pointer:coarse){#rotate{display:flex}}#tune{position:fixed;z-index:12;top:60px;inset-inline-end:12px;width:300px;max-height:74dvh;display:none;flex-direction:column;background:var(--panel);border:1px solid var(--hair);border-radius:12px;backdrop-filter:blur(14px);font-size:11px;direction:ltr}#tune.open{display:flex}#tune header{display:flex;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--hair);font-family:Rajdhani,sans-serif;font-size:13px;letter-spacing:.06em;direction:rtl}#tune header span{color:var(--dim)}#tune .rows{overflow-y:auto;padding:6px 10px}#tune label{display:grid;grid-template-columns:108px 1fr 44px;align-items:center;gap:6px;padding:3px 0}#tune label span{color:var(--dim);font-family:ui-monospace,monospace;font-size:10px}#tune label b{text-align:right;font-family:ui-monospace,monospace;font-size:10px;color:var(--cyan)}#tune input[type=range]{width:100%;accent-color:var(--cyan)}#tune footer{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--hair);direction:rtl}#tune footer button{flex:1;padding:6px;border-radius:7px;border:1px solid var(--hair);background:transparent;color:var(--ink);font-family:Heebo,sans-serif;font-size:11px;cursor:pointer}@media(max-height:430px){.modal{gap:9px}}#map-frame{position:fixed;z-index:6;left:16px;bottom:16px;width:clamp(96px,17vh,150px);aspect-ratio:1;border-radius:16px;border:1px solid var(--hair);background:#090e168c;backdrop-filter:blur(10px);box-shadow:0 8px 30px #0006;display:none;overflow:hidden}body.playing #map-frame{display:block}#minimap{width:100%;height:100%;display:block}#dial{position:fixed;z-index:6;right:16px;bottom:16px;width:clamp(104px,19vh,168px);aspect-ratio:1;display:none;place-items:center;pointer-events:none}body.playing #dial{display:grid}#dial svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(135deg)}#dial circle{fill:none;stroke-linecap:round;transform-origin:center}#dial .track{stroke:#ffffff1f;stroke-width:9;stroke-dasharray:314;stroke-dashoffset:78.5}#dial .fill{stroke:var(--cyan);stroke-width:9;transition:stroke .15s}#dial .fill.hot{stroke:var(--yellow)}#dial .boost{stroke:#ffd23cd9;stroke-width:4}#dial .readout{position:relative;text-align:center;line-height:.95}#dial .readout b{display:block;font-family:Rajdhani,sans-serif;font-size:clamp(26px,5vh,42px);font-variant-numeric:tabular-nums}#dial .readout small{font-size:9px;letter-spacing:.16em;color:var(--dim)}#drift-pips{position:absolute;bottom:6%;display:flex;gap:5px}#drift-pips i{width:13px;height:4px;border-radius:99px;background:#ffffff29;transition:background .1s}#drift-pips i.on{background:var(--pink)}#drift-pips i:nth-child(1).on{background:#dff4ff}#drift-pips i:nth-child(2).on{background:var(--yellow)}#pad{position:fixed;direction:ltr;inset:0;z-index:8;display:none;justify-content:space-between;align-items:flex-end;padding:0 max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));pointer-events:none}body.playing.touch #pad{display:flex}.pad-side{display:flex;align-items:flex-end;gap:14px}.pad-side.right{flex-direction:row-reverse}.ctl{pointer-events:auto;touch-action:none;display:grid;place-items:center;gap:2px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:#0a101a6b;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 10px 26px #0006;transition:transform .06s,background .06s}.ctl.active{transform:scale(.93)}.ctl.steer{width:clamp(74px,22vh,116px);height:clamp(74px,22vh,116px)}.ctl.steer svg{width:46%;height:46%;fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.ctl.steer.active{background:#21e6ff42;border-color:var(--cyan)}.ctl.boost{width:clamp(84px,25vh,128px);height:clamp(84px,25vh,128px);border-color:#ffd23c80}.ctl.boost span{font-size:clamp(22px,6vh,32px);line-height:1}.ctl.boost b{font-family:Rajdhani,sans-serif;font-size:11px;letter-spacing:.1em;color:var(--yellow)}.ctl.boost.active{background:#ffd23c47;border-color:var(--yellow)}.ctl.brake{width:clamp(64px,17vh,92px);height:clamp(64px,17vh,92px);border-color:#ff2f5573}.ctl.brake b{font-family:Rajdhani,sans-serif;font-size:11px;letter-spacing:.08em;color:var(--red)}.ctl.brake.active{background:#ff2f5542;border-color:var(--red)}body.touch #dial{right:calc(clamp(84px,25vh,128px) + clamp(64px,17vh,92px) + 46px);bottom:auto;top:max(58px,env(safe-area-inset-top));width:clamp(84px,15vh,120px)}body.touch #map-frame{left:calc(clamp(74px,22vh,116px)*2 + 34px);bottom:auto;top:max(58px,env(safe-area-inset-top));width:clamp(76px,14vh,116px)}#fullscreen-btn{position:fixed;z-index:9;top:max(10px,env(safe-area-inset-top));inset-inline-end:max(12px,env(safe-area-inset-right));width:38px;height:38px;border-radius:11px;border:1px solid var(--hair);background:#090e1680;backdrop-filter:blur(10px);color:var(--dim);font-size:17px;display:none;cursor:pointer;touch-action:none}body.can-fullscreen #fullscreen-btn{display:block}@media(pointer:coarse){#hud{gap:8px;padding-top:max(8px,env(safe-area-inset-top))}.chip{padding:4px 10px}.chip b{font-size:15px}.chip.tiny{display:none}}#hearts{display:flex;gap:5px;align-items:center;padding:0 4px}#hearts i{width:15px;height:14px;background:#ffffff24;clip-path:path("M7.5 14 C7.5 14 0 8.6 0 4.4 C0 1.9 1.9 0 4.1 0 C5.6 0 6.9 0.8 7.5 2 C8.1 0.8 9.4 0 10.9 0 C13.1 0 15 1.9 15 4.4 C15 8.6 7.5 14 7.5 14 Z");transition:background .2s}#hearts i.on{background:var(--red);box-shadow:0 0 10px #ff2f5580}#clock{position:fixed;z-index:6;top:max(52px,calc(env(safe-area-inset-top) + 44px));inset-inline:0;margin-inline:auto;width:clamp(150px,26vw,250px);display:none;flex-direction:column;align-items:center;gap:4px;pointer-events:none}body.playing #clock{display:flex}#clock-bar{width:100%;height:7px;border-radius:99px;background:#0006;border:1px solid var(--hair);overflow:hidden}#clock-bar i{display:block;width:100%;height:100%;transform-origin:right center;background:linear-gradient(90deg,var(--red),var(--yellow),var(--cyan));transition:background .2s}#clock b{font-family:Rajdhani,sans-serif;font-size:clamp(15px,2.6vw,22px);font-variant-numeric:tabular-nums;color:var(--dim)}#clock.warn b{color:var(--red)}#clock.warn #clock-bar i{background:var(--red);animation:pulse .4s infinite alternate}@keyframes pulse{to{opacity:.45}}#countdown{position:fixed;inset:0;z-index:8;display:grid;place-items:center;font-family:Rajdhani,sans-serif;font-size:clamp(80px,22vh,190px);font-weight:700;color:var(--ink);text-shadow:0 8px 40px rgba(0,0,0,.75);pointer-events:none;opacity:0;transform:scale(1.35);transition:opacity .12s,transform .12s}#countdown.show{opacity:1;transform:scale(1)}#splits{position:fixed;inset:0;z-index:5;pointer-events:none;display:none}#splits.on{display:block}#splits i{position:absolute;background:#06090ee6;box-shadow:0 0 0 1px #ffffff1f}#splits i.h{left:0;right:0;height:3px;transform:translateY(-50%)}#splits i.v{top:0;bottom:0;width:3px;transform:translate(-50%)}#install-sheet{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;background:#06090ed1;backdrop-filter:blur(10px);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))}#install-sheet.show{display:flex}#install-sheet .sheet-card{width:min(460px,92vw);max-height:92dvh;overflow:auto;background:linear-gradient(180deg,#18202c,#0d131c);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:22px 22px 18px;text-align:center;box-shadow:0 24px 60px #0000008c}#install-sheet .sheet-icon{width:68px;height:68px;border-radius:16px;box-shadow:0 8px 20px #00000073}#install-sheet h3{margin:12px 0 6px;font-size:20px}#install-sheet p{margin:0 0 14px;opacity:.72;font-size:14px;line-height:1.5}#install-sheet ol{text-align:start;margin:0 0 16px;padding-inline-start:22px;font-size:14px;line-height:2}#install-sheet .ios-share{display:inline-block;min-width:22px;text-align:center;color:#4aa3ff}#install{display:none}body.offer-install #install{display:inline-block}body.standalone #install,body.standalone #fullscreen-btn{display:none!important}.modal button.ghost{background:transparent;border:1px solid rgba(255,255,255,.22);color:#ffffffdb;margin-top:8px}.modal button.ghost:hover{background:#ffffff0f}@media(max-height:440px){body.touch .modal{gap:6px;padding-block:8px}body.touch .modal h1{font-size:clamp(30px,12dvh,54px);line-height:.94}body.touch .modal p{font-size:12.5px;line-height:1.42;max-width:62ch}body.touch .modal .badge{font-size:10px;padding:3px 9px}body.touch .modal .hint-row{font-size:10.5px;gap:6px}body.touch .modal .controls{font-size:10.5px}body.touch #car-picker{gap:6px}body.touch #car-picker button{padding:5px 9px;font-size:11px}body.touch .modal button.primary{padding:10px 26px;font-size:14px}body.touch .modal button.ghost{padding:7px 18px;font-size:12px;margin-top:4px}}.modal{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(min-width:900px){body.touch #pad{padding:0 max(34px,env(safe-area-inset-right)) max(34px,env(safe-area-inset-bottom)) max(34px,env(safe-area-inset-left))}}@media(pointer:coarse)and (orientation:landscape){#map-frame{left:max(16px,env(safe-area-inset-left))}#dial{inset-inline-end:max(16px,env(safe-area-inset-right))}}@media(min-height:560px){body.touch #dial{top:auto;bottom:max(18px,env(safe-area-inset-bottom));right:calc(clamp(84px,25vh,128px) + clamp(64px,17vh,92px) + 74px)}body.touch #map-frame{top:auto;bottom:max(18px,env(safe-area-inset-bottom));left:calc(clamp(74px,22vh,116px)*2 + 62px)}}#lobby input{font:inherit;font-size:16px;padding:11px 14px;border-radius:12px;border:1px solid var(--hair);background:#ffffff0f;color:#fff;text-align:center;width:min(280px,78vw);outline:none}#lobby input:focus{border-color:var(--cyan)}#lobby-code{width:120px;letter-spacing:.32em;text-transform:uppercase;font-weight:800}.lobby-actions{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:12px}.lobby-or{opacity:.45;font-size:12px}.lobby-join{display:flex;gap:8px;align-items:center}.lobby-error{display:none;margin-top:10px;color:#ff8fa3;font-size:13px;max-width:78vw}.lobby-error.show{display:block}.room-code{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:10px}.room-code small{opacity:.5;font-size:11px;letter-spacing:.1em}.room-code b{font-size:clamp(34px,9dvh,56px);letter-spacing:.22em;color:var(--cyan);font-weight:900;text-indent:.22em}.room-link{font-size:11px;opacity:.45;word-break:break-all;max-width:80vw;margin:8px 0 4px;direction:ltr}#room-players{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:6px;width:min(300px,82vw)}#room-players li{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:11px;background:#ffffff0d;border:1px solid var(--hair);font-size:14px}#room-players li i{font-style:normal;font-size:10px;padding:2px 7px;border-radius:6px;background:var(--cyan);color:#06121a;font-weight:800}#room-players li small{margin-inline-start:auto;opacity:.45;font-size:11px}.room-wait{font-size:12.5px;opacity:.55;margin:4px 0 8px}
