:root{color:#fff;font-synthesis:none;--sun:#ffc21a;--coral:#ec4a36;--ink:#0b2a42;--glass:#08243a8c;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#app{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:100%;margin:0;overflow:hidden}#app{background:#0b3a5c;position:relative}#game-canvas{touch-action:none;outline:none;width:100vw;height:100dvh;display:block}#hud{pointer-events:none;text-shadow:0 2px 8px #00142873;position:absolute;inset:0}.label{letter-spacing:.16em;text-transform:uppercase;opacity:.85;font-size:.68rem;font-weight:800}#score-box{top:max(16px, env(safe-area-inset-top));left:max(18px, env(safe-area-inset-left));position:absolute}#score-value{font-variant-numeric:tabular-nums;font-size:2.3rem;font-style:italic;font-weight:900;line-height:1}#combo{align-items:center;gap:8px;margin-top:6px;display:flex}#combo-value{background:var(--sun);min-width:36px;color:var(--ink);text-shadow:none;text-align:center;border-radius:6px;padding:2px 7px;font-size:.9rem;font-weight:900}#combo-bar{background:#ffffff47;border-radius:3px;width:74px;height:5px;overflow:hidden}#combo-fill{background:#fff;width:0;height:100%;display:block}#best-box{top:max(16px, env(safe-area-inset-top));right:max(70px, calc(env(safe-area-inset-right) + 60px));text-align:right;position:absolute}#best-value{font-variant-numeric:tabular-nums;font-size:1.35rem;font-style:italic;font-weight:900}#air-readout{bottom:calc(max(20px, env(safe-area-inset-bottom)) + 104px);letter-spacing:.06em;color:var(--sun);font-size:1.6rem;font-style:italic;font-weight:900;transition:opacity .15s;position:absolute;left:50%;transform:translate(-50%)}#air-readout.hidden{opacity:0}#speedo{bottom:max(20px, env(safe-area-inset-bottom));text-align:center;min-width:150px;position:absolute;left:50%;transform:translate(-50%)}#speed-value{font-variant-numeric:tabular-nums;font-size:3rem;font-style:italic;font-weight:900;line-height:.95}#speedo .unit{letter-spacing:.2em;opacity:.85;font-size:.72rem;font-weight:800}#boost-bar{background:#08243a80;border:1px solid #ffffff59;border-radius:4px;width:170px;height:8px;margin:8px auto 0;overflow:hidden}#boost-fill{background:linear-gradient(90deg, #ff8a1a, var(--sun));transform-origin:0;width:100%;height:100%;display:block}#boost-bar.active #boost-fill{background:linear-gradient(90deg,#ff4d1a,#ffe36a);box-shadow:0 0 10px #ffb000}#popups{flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:33%;left:50%;transform:translate(-50%)}.popup{white-space:nowrap;font-size:1.5rem;font-style:italic;font-weight:900;animation:1.5s ease-out forwards pop}.popup b{color:var(--sun);margin-left:8px}.popup.big{font-size:2.1rem}@keyframes pop{0%{opacity:0;transform:translateY(12px)scale(.7)}12%{opacity:1;transform:translateY(0)scale(1.12)}22%{transform:scale(1)}75%{opacity:1}to{opacity:0;transform:translateY(-26px)}}#hint{bottom:calc(max(20px, env(safe-area-inset-bottom)) + 108px);background:var(--glass);white-space:nowrap;border-radius:999px;padding:7px 14px;font-size:.85rem;transition:opacity .6s;position:absolute;left:50%;transform:translate(-50%)}#hint.hidden{opacity:0}#hud.off{visibility:hidden}#wipeout{text-align:center;pointer-events:none;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)rotate(-4deg)}#wipeout div{color:#fff;text-shadow:0 5px 0 var(--coral), 0 12px 30px #00000059;font-size:clamp(2.6rem,9vw,4.6rem);font-style:italic;font-weight:900;animation:.35s cubic-bezier(.2,1.6,.4,1) slam}#wipeout small{text-shadow:0 2px 6px #00000080;margin-top:8px;font-size:.95rem;font-weight:700;display:block}#wipeout.hidden{display:none}@keyframes slam{0%{opacity:0;transform:scale(2.2)}to{opacity:1;transform:scale(1)}}.overlay{z-index:10;background:radial-gradient(#061e3240,#061e3299);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.overlay.hidden{display:none}.panel{-webkit-backdrop-filter:blur(10px);text-align:center;background:#08243ab8;border:1px solid #ffffff38;border-radius:18px;width:min(420px,100vw - 32px);padding:26px 26px 22px;box-shadow:0 20px 60px #00000059}.panel h1{letter-spacing:.02em;text-shadow:0 4px 0 var(--coral);margin:0;font-size:clamp(2.3rem,9vw,3.4rem);font-style:italic;font-weight:900}.panel h2{margin:0 0 14px;font-size:2rem;font-style:italic;font-weight:900}.tag{opacity:.9;margin:8px 0 16px}.keys{gap:8px;margin:0 0 18px;padding:0;font-size:.92rem;list-style:none;display:grid}kbd{min-width:24px;color:var(--ink);background:#ffffffeb;border-radius:5px;margin:0 2px;padding:2px 6px;font:800 .78rem system-ui,sans-serif;display:inline-block;box-shadow:0 2px #00000059}.panel button{background:var(--sun);width:100%;color:var(--ink);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:0;border-radius:12px;margin-top:10px;padding:13px;font:900 1.15rem system-ui,sans-serif;display:block;box-shadow:0 4px #c78f00}.panel button.ghost{color:#fff;box-shadow:none;background:#ffffff24}.panel button:focus-visible{outline-offset:2px;outline:3px solid #fff}.small{opacity:.8;margin:12px 0 0;font-size:.8rem}.touch-only{display:none}#mute-btn,#pause-btn{top:max(14px, env(safe-area-inset-top));background:var(--glass);color:#fff;cursor:pointer;z-index:5;border:1px solid #ffffff4d;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute}#mute-btn{right:max(16px, env(safe-area-inset-right))}#mute-btn.muted{opacity:.55}#pause-btn{right:max(66px, calc(env(safe-area-inset-right) + 50px));display:none}#touch-controls{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));left:max(18px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:flex-end;display:none;position:absolute}#touch-stick{aspect-ratio:1;pointer-events:auto;touch-action:none;background:#08243a66;border:2px solid #ffffff59;border-radius:50%;width:clamp(110px,30vw,140px);position:relative}#touch-knob{aspect-ratio:1;background:#fff;border-radius:50%;width:42%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 14px #0000004d}#touch-buttons{align-items:flex-end;gap:12px;display:flex}#touch-buttons button{letter-spacing:.06em;pointer-events:auto;touch-action:none;color:var(--ink);border:2px solid #ffffff80;border-radius:50%;font:900 .8rem system-ui,sans-serif}#jump-button{aspect-ratio:1;background:var(--sun);width:clamp(78px,22vw,96px)}#boost-button{aspect-ratio:1;background:#ff8a3a;width:clamp(60px,17vw,74px);margin-bottom:30px}#touch-buttons button.down{filter:brightness(1.15);transform:scale(.92)}#race-box{top:max(14px, env(safe-area-inset-top));background:var(--glass);text-align:center;border:1px solid #fff3;border-radius:14px;min-width:210px;padding:8px 16px 9px;position:absolute;left:50%;transform:translate(-50%)}#race-top{justify-content:space-between;gap:18px;display:flex}#race-top b{letter-spacing:.04em;color:var(--sun);font-size:.9rem}#race-top b.flash{animation:.5s ease-out flash}@keyframes flash{0%{color:#7dffcf;transform:scale(1.5)}to{color:var(--sun);transform:scale(1)}}#lap-time{font-variant-numeric:tabular-nums;font-size:2.1rem;font-style:italic;font-weight:900;line-height:1.05}#lap-time.idle{opacity:.55}#race-sub{letter-spacing:.1em;text-transform:uppercase;opacity:.92;justify-content:space-between;gap:16px;font-size:.72rem;font-weight:800;display:flex}#race-sub b{letter-spacing:.02em;font-variant-numeric:tabular-nums;margin-left:4px;font-size:.88rem}#best-lap{color:#7dffcf}#race-msg{background:var(--coral);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;margin-top:5px;padding:3px 10px;font-size:.78rem;font-weight:900}#race-msg.info{color:#d9fff1;background:#7dffcf38}#race-msg.hidden{display:none}#gate-arrow{top:calc(max(14px, env(safe-area-inset-top)) + 118px);color:#7dffcf;letter-spacing:.08em;flex-direction:column;align-items:center;width:60px;margin-left:-30px;font-size:.72rem;font-weight:900;display:flex;position:absolute;left:50%}#gate-arrow svg{filter:drop-shadow(0 2px 4px #00142880)}#gate-arrow.hidden{visibility:hidden}#lap-banner{top:calc(max(14px, env(safe-area-inset-top)) + 112px);text-align:center;white-space:nowrap;animation:.35s cubic-bezier(.2,1.6,.4,1) banner-in;position:absolute;left:50%;transform:translate(-50%)}@keyframes banner-in{0%{opacity:0;transform:translate(-50%)scale(2)}to{opacity:1;transform:translate(-50%)scale(1)}}#lap-banner.hidden{display:none}#lap-banner-title{letter-spacing:.24em;font-size:1.1rem;font-weight:900}#lap-banner-time{font-variant-numeric:tabular-nums;text-shadow:0 5px #0b6b55,0 12px 30px #00000059;font-size:clamp(2.6rem,9vw,4.2rem);font-style:italic;font-weight:900;line-height:1}#lap-banner.best #lap-banner-title{color:#7dffcf}#lap-banner-sub{letter-spacing:.08em;margin-top:6px;font-size:.9rem;font-weight:800}#pos-box{top:calc(max(16px, env(safe-area-inset-top)) + 92px);left:max(18px, env(safe-area-inset-left));position:absolute}#pos-box.hidden{display:none}#pos-main{font-style:italic;font-weight:900;line-height:1}#pos-place{color:var(--sun);text-shadow:0 3px #9a5d00,0 8px 20px #0000004d;font-size:2.6rem}#pos-of{opacity:.85;margin-left:3px;font-size:1.2rem}#standings{background:var(--glass);border:1px solid #ffffff29;border-radius:10px;min-width:150px;margin:8px 0 0;padding:6px 8px;font-size:.78rem;font-weight:800;list-style:none}#standings li,#finish-rows li{align-items:center;gap:7px;padding:2px;display:flex}#standings li.me,#finish-rows li.me{color:var(--sun)}#standings .p{text-align:right;opacity:.8;font-variant-numeric:tabular-nums;width:12px}#standings i,#finish-rows i{border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 1.5px #fffc}#standings .n{letter-spacing:.06em;flex:1}#standings .g{opacity:.75;font-variant-numeric:tabular-nums;font-size:.72rem}#countdown{color:#fff;text-shadow:0 6px 0 var(--coral), 0 16px 40px #00000059;font-size:clamp(4rem,16vw,8rem);font-style:italic;font-weight:900;animation:.9s ease-out count;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}#countdown.go{color:#7dffcf;text-shadow:0 6px #0b6b55,0 16px 40px #00000059}#countdown.hidden{display:none}@keyframes count{0%{opacity:0;transform:translate(-50%,-50%)scale(1.9)}25%{opacity:1;transform:translate(-50%,-50%)scale(1)}}#finish .panel{width:min(400px,100vw - 32px)}#finish-place{color:#fff;text-shadow:0 5px 0 var(--coral);margin-top:4px;font-size:clamp(3.4rem,14vw,5rem);font-style:italic;font-weight:900;line-height:1}#finish-place.win{color:var(--sun);text-shadow:0 5px #9a5d00,0 0 30px #ffc21a99}#finish h2{margin:6px 0 0;font-size:1.5rem}#finish-sub{font-variant-numeric:tabular-nums;margin:6px 0 10px}#finish-rows{text-align:left;background:#0000002e;border-radius:12px;margin:0 0 6px;padding:6px 10px;font-size:.95rem;font-weight:800;list-style:none}#finish-rows li{border-bottom:1px solid #ffffff14;padding:4px 0}#finish-rows li:last-child{border-bottom:0}#finish-rows .p{width:34px;font-style:italic}#finish-rows .n{letter-spacing:.08em;flex:1}#finish-rows .t{font-variant-numeric:tabular-nums}#finish-rows .t.live{opacity:.6;font-size:.82rem;font-weight:700}#tags{pointer-events:none;position:absolute;inset:0;overflow:hidden}#tags.off{visibility:hidden}.rtag{border:1.5px solid var(--c,#fff);letter-spacing:.08em;white-space:nowrap;will-change:transform;background:#08243a9e;border-radius:999px;padding:2px 7px 2px 5px;font:900 .7rem system-ui,sans-serif;position:absolute;top:0;left:0}.rtag b{background:var(--c,#fff);min-width:14px;color:var(--ink);text-align:center;border-radius:6px;margin-right:4px;padding:0 3px;display:inline-block}.rtag.hidden{display:none}@media (pointer:coarse),(width<=760px){#pos-box{top:calc(max(14px, env(safe-area-inset-top)) + 122px)}#pos-place{font-size:1.9rem}#pos-of{font-size:.95rem}#finish .panel{padding:18px 18px 16px}#finish-rows{font-size:.85rem}#touch-controls{display:flex}#pause-btn{display:grid}.desktop-only{display:none}ul.touch-only{display:grid}span.touch-only{display:inline}#speedo{top:calc(max(14px, env(safe-area-inset-top)) + 50px);bottom:auto;left:auto;right:max(16px, env(safe-area-inset-right));text-align:right;min-width:0;transform:none}#boost-bar{margin:6px 0 0 auto}#race-box{width:min(150px,38vw);min-width:0;padding:5px 9px 6px}#race-top .label{letter-spacing:.1em;font-size:.58rem}#race-sub{align-items:center}#lap-banner{top:calc(max(14px, env(safe-area-inset-top)) + 104px)}#lap-banner-time{font-size:2.4rem}#race-top{gap:8px}#lap-time{font-size:1.55rem}#race-sub{flex-direction:column;gap:0;font-size:.62rem}#race-sub b{font-size:.78rem}#gate-arrow{top:calc(max(14px, env(safe-area-inset-top)) + 112px)}#popups{top:32%}#speed-value{font-size:2rem}#boost-bar{width:96px;height:6px}#score-value{font-size:1.7rem}#best-box{top:calc(max(14px, env(safe-area-inset-top)) + 84px);left:max(18px, env(safe-area-inset-left));text-align:left;right:auto}#best-value{font-size:1.05rem}#hint{bottom:calc(max(18px, env(safe-area-inset-bottom)) + 160px);font-size:.75rem}.popup{font-size:1.15rem}.popup.big{font-size:1.5rem}#air-readout{bottom:calc(max(18px, env(safe-area-inset-bottom)) + 205px);font-size:1.25rem}}
