:root{--ink: #27324d;--sky: #4fb3ff;--green: #3ccf5a;--green-dark: #22a13d;--blue: #2f8cff;--blue-dark: #1b64c9;--yellow: #ffd21f;--pill: rgba(24, 44, 90, .72);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#9fdcff;background-image:radial-gradient(circle at 20% 20%,#c9edff 0 12%,transparent 13%),radial-gradient(circle at 80% 70%,#c9edff 0 9%,transparent 10%),linear-gradient(#63bdff,#bfe9ff);font-family:Fredoka,"Baloo 2",Nunito,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:none;overscroll-behavior:none}#app{position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%);width:min(100vw,62vh);height:100%;overflow:hidden;background:#bfe9ff;box-shadow:0 0 40px #00285a40}@media(orientation:portrait){#app{width:100vw;box-shadow:none}}#game{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;image-rendering:auto;touch-action:none}#ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:none;pointer-events:auto}.screen.show{display:block}#hud{pointer-events:none}#hud button{pointer-events:auto}.dim{background:#14285073}.btn{border:0;padding:0;cursor:pointer;color:#fff;display:grid;place-items:center;font:inherit;touch-action:manipulation;transition:transform .12s}.btn:active{transform:scale(.9)}.btn svg{width:55%;height:55%}.round{border-radius:50%;background:var(--blue);box-shadow:0 5px 0 var(--blue-dark);border:3px solid #fff}.round.small{width:54px;height:54px}.round.mid{width:72px;height:72px}.play-big{width:118px;height:118px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#6ff08a,var(--green));box-shadow:0 8px 0 var(--green-dark);border:5px solid #fff}.play-big svg{width:58%;height:58%;margin-left:8%}.pill{display:inline-flex;align-items:center;gap:6px;height:48px;padding:0 16px 0 8px;border-radius:24px;background:var(--pill);color:#fff;font-weight:700;font-size:26px}.pill svg{width:36px;height:36px;flex:none}.pill.pulse{animation:pulse .3s ease-out}.pill.shake{animation:shake .45s}@keyframes pulse{50%{transform:scale(1.18)}}@keyframes shake{20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}.topbar{position:absolute;top:calc(12px + var(--safe-top));left:12px;right:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.logo{display:flex;flex-direction:column;align-items:center;line-height:.9;text-align:center}.logo-top{font-size:22px;font-weight:700;color:#fff;background:#ff5d73;padding:4px 14px;border-radius:14px;transform:rotate(-4deg);margin-bottom:6px}.logo-main{font-size:54px;font-weight:700;color:var(--yellow);-webkit-text-stroke:3px #e5850b;paint-order:stroke fill;text-shadow:0 5px 0 #b3540a}#loading{background:linear-gradient(#4fb3ff,#c4ecff);display:none;flex-direction:column;align-items:center;justify-content:center;gap:40px}#loading.show{display:flex}.load-road{position:relative;width:70%;height:22px;border-radius:11px;background:#5c6274;border:3px solid #fff}.load-fill{height:100%;width:0;border-radius:8px;background:var(--green);transition:width .2s}.load-car{position:absolute;top:-34px;left:0;font-size:36px;transform:translate(-50%) scaleX(-1);transition:left .2s;animation:bob .4s infinite alternate}@keyframes bob{to{margin-top:-4px}}.menu-logo{position:absolute;top:calc(80px + var(--safe-top));left:0;right:0}#menu .arrow{position:absolute;top:52%;width:64px;height:64px;transform:translateY(-50%)}#menu .arrow:active{transform:translateY(-50%) scale(.9)}#menu .prev{left:12px}#menu .next{right:12px}.car-info{position:absolute;left:0;right:0;bottom:calc(190px + var(--safe-bottom));display:flex;flex-direction:column;align-items:center;gap:10px}.car-name{font-size:26px;font-weight:700;color:#fff;background:var(--pill);padding:6px 18px;border-radius:20px}.lock-badge{display:none;align-items:center;gap:4px;font-size:28px;font-weight:700;color:#fff;background:#ff5d73;border:3px solid #fff;padding:4px 14px 4px 10px;border-radius:22px}.lock-badge svg{width:30px;height:30px}#menu.locked .lock-badge{display:inline-flex}.lock-badge.wiggle{animation:shake .45s}.dots{display:flex;gap:6px}.dots i{width:10px;height:10px;border-radius:50%;background:#ffffff8c}.dots i.on{background:#fff;transform:scale(1.35)}#menu .play-big{position:absolute;left:50%;bottom:calc(44px + var(--safe-bottom));transform:translate(-50%);animation:breathe 1.6s ease-in-out infinite}#menu .play-big:active{transform:translate(-50%) scale(.9)}#menu.locked .play-big{background:#b9c2d3;box-shadow:0 8px #8792a8;animation:none}@keyframes breathe{50%{transform:translate(-50%) scale(1.07)}}.progress{flex:1;max-width:240px;position:relative;display:flex;flex-direction:column;align-items:center;padding-top:10px}.bar{position:relative;width:100%;height:22px;border-radius:12px;background:#ffffffe6;border:3px solid #34405a}.bar-fill{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:8px;background:linear-gradient(#7af07f,#2fc24a);transform-origin:left;transform:scaleX(0)}.bar-car{position:absolute;top:-8px;left:0;font-size:26px;line-height:1;transform:translate(-50%) scaleX(-1)}.bar-flag{position:absolute;right:-18px;top:-2px}.bar-flag svg{width:38px;height:38px}.dist{margin-top:6px;padding:2px 14px;border-radius:14px;background:var(--pill);color:#fff;font-weight:700;font-size:20px}.hint{position:absolute;left:0;right:0;bottom:calc(60px + var(--safe-bottom));display:none;align-items:center;justify-content:center;gap:6px}.hint.show{display:flex}.hint-arrow{width:84px;height:84px;color:#fff;opacity:.9}.hint-arrow svg{width:100%;height:100%;filter:drop-shadow(0 3px 0 rgba(0,0,0,.25))}.hint-arrow.l{animation:nudgeL 1.2s ease-in-out infinite}.hint-arrow.r{animation:nudgeR 1.2s ease-in-out infinite}.hint-hand{width:84px;height:84px;animation:swipe 1.2s ease-in-out infinite}.hint-hand svg{width:100%;height:100%}@keyframes swipe{0%,to{transform:translate(-38px) rotate(-10deg)}50%{transform:translate(38px) rotate(10deg)}}@keyframes nudgeL{50%{transform:translate(-10px)}}@keyframes nudgeR{50%{transform:translate(10px)}}.count{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);font-size:120px;font-weight:700;color:#fff;-webkit-text-stroke:5px #e5850b;paint-order:stroke fill;text-shadow:0 8px 0 #b3540a;opacity:0}.count.pop{animation:countPop .9s ease-out forwards}@keyframes countPop{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}25%{transform:translate(-50%,-50%) scale(1.15);opacity:1}40%{transform:translate(-50%,-50%) scale(1)}85%{opacity:1}to{transform:translate(-50%,-50%) scale(1.3);opacity:0}}.stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px}.row{display:flex;gap:18px;align-items:center;justify-content:center}#finish{background:linear-gradient(#14285000 35%,#14285066)}#finish .card{position:absolute;left:50%;bottom:calc(22px + var(--safe-bottom));width:min(90%,380px);transform:translate(-50%);padding:26px 18px 24px;border-radius:32px;background:#fff;border:5px solid var(--yellow);box-shadow:0 10px #0000002e;display:flex;flex-direction:column;align-items:center;gap:14px;animation:cardIn .45s cubic-bezier(.2,1.4,.4,1)}@keyframes cardIn{0%{transform:translate(-50%,60%) scale(.7);opacity:0}}.trophy{font-size:72px;line-height:1;margin-top:-70px;animation:bob .6s infinite alternate}.well{font-size:30px;font-weight:700;color:#ff7a00}.big-stars{height:64px;font-size:40px;padding-right:22px}.big-stars svg{width:50px;height:50px}.unlock,.next-goal{display:none;align-items:center;gap:10px}#finish.has-unlock .unlock,#finish.has-goal .next-goal{display:flex}.unlock-emoji{font-size:56px;animation:pulse .8s infinite}.unlock-text{font-size:26px;font-weight:700;color:#fff;background:#ff5d73;padding:4px 14px;border-radius:16px}.goal-bar{width:150px;height:18px;border-radius:10px;background:#e3e8f2;border:3px solid #34405a;overflow:hidden}.goal-fill{height:100%;background:var(--yellow);transform-origin:left}.goal-car{font-size:40px;position:relative}.goal-car span{position:absolute;right:-8px;bottom:-4px;width:26px;height:26px;color:#ff5d73}.goal-car span svg{width:100%;height:100%}#finish .row{margin-top:4px}#finish .play-big{width:96px;height:96px}#finish .round.mid{width:64px;height:64px}@media(max-height:640px){.logo-main{font-size:42px}.play-big{width:96px;height:96px}.car-info{bottom:calc(160px + var(--safe-bottom))}}.bar-cop{position:absolute;top:-6px;left:0;display:none;font-size:22px;line-height:1;transform:translate(-50%);transition:left .3s}.speedlines{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .25s;background:repeating-conic-gradient(from 0deg at 50% 42%,rgba(255,255,255,.75) 0deg .6deg,transparent .6deg 8deg);-webkit-mask-image:radial-gradient(ellipse at 50% 42%,transparent 28%,#000 72%);mask-image:radial-gradient(ellipse at 50% 42%,transparent 28%,#000 72%);animation:lines .16s steps(2) infinite;animation-play-state:paused}.speedlines.on{opacity:1;animation-play-state:running}@keyframes lines{to{transform:scale(1.06)}}.siren{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s}.siren.on{opacity:1}.siren i{position:absolute;top:0;bottom:0;width:26%;opacity:0}.siren i.l{left:0;background:linear-gradient(90deg,rgba(255,30,50,.6),transparent)}.siren i.r{right:0;background:linear-gradient(270deg,rgba(40,90,255,.6),transparent)}.siren.on i.l{animation:flash .56s steps(1) infinite}.siren.on i.r{animation:flash .56s steps(1) infinite -.28s}@keyframes flash{0%{opacity:1}50%{opacity:0}}.shout{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);font-size:64px;font-weight:700;white-space:nowrap;-webkit-text-stroke:4px #1c2a55;paint-order:stroke fill;text-shadow:0 6px 0 rgba(0,0,0,.3);opacity:0}.shout.pop{animation:countPop 1s ease-out forwards}.bar-cop.danger{animation:copPulse .5s ease-in-out infinite}@keyframes copPulse{50%{transform:translate(-50%) scale(1.35)}}#finish.caught .card{border-color:#ff5d73}#finish.caught .well{color:#e63946}#finish.caught .next-btn{display:none}#finish.caught .replay-btn{width:96px;height:96px;background:radial-gradient(circle at 35% 30%,#6ff08a,var(--green));box-shadow:0 8px 0 var(--green-dark);border-width:5px}
