:root{--purple:#592bc4;--pink:#ff4fb7;--yellow:#ffe54d;--ink:#35116d;--white:#fff}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#6f3ed5;font-family:"Nunito",sans-serif;color:white}button{font:inherit}.game{position:relative;width:100%;height:100dvh;overflow:hidden;background:#8ddffa}canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.arena-glow{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;mix-blend-mode:screen}.light-haze{fill:url(#glassSheen);filter:url(#softGlow);opacity:.38}.glass-streak{fill:none;stroke:#eaffff;stroke-width:5;opacity:.16}.rink-bloom{fill:#cbf8ff;filter:url(#softGlow);opacity:.18}
.hud{position:absolute;z-index:3;left:clamp(14px,3vw,46px);right:clamp(14px,3vw,46px);top:18px;display:flex;align-items:center;gap:12px;pointer-events:none}.logo{display:flex;align-items:center;gap:10px;font:900 clamp(17px,2.2vw,26px)/.8 "Baloo 2";text-shadow:0 3px 0 #3d1c8f;transform:rotate(-2deg);margin-right:auto}.logo small{display:block;font-size:.58em;letter-spacing:2px;color:var(--yellow)}.logo-star{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,#ff67c2,#a93df0);border:3px solid white;box-shadow:0 5px 0 #401688;color:var(--yellow);font-size:25px}.score,.best{min-width:100px;text-align:center;background:#ffffffed;color:var(--ink);border:3px solid #7332cc;border-radius:17px;padding:5px 15px;box-shadow:0 5px 0 #5321a7}.score small,.best small{display:block;font-size:9px;letter-spacing:2px;color:#a16bc8}.score strong,.best strong{font:900 25px/1 "Baloo 2"}.score strong{color:#ec3b9b}.round-btn{pointer-events:auto;width:43px;height:43px;border-radius:50%;border:3px solid white;color:white;background:#7735cf;box-shadow:0 4px 0 #421782;cursor:pointer}.round-btn:active{transform:translateY(3px);box-shadow:0 1px 0 #421782}
.speed-pill{position:absolute;z-index:2;top:98px;left:clamp(16px,3vw,48px);font-size:9px;letter-spacing:1px;padding:7px 12px;border-radius:20px;background:#37146fbb;border:2px solid #fff8}.speed-pill b{color:var(--yellow);margin-left:5px}.trick-toast{position:absolute;z-index:4;top:25%;left:50%;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-20px) scale(.8) rotate(-3deg);opacity:0;transition:.2s;filter:drop-shadow(0 5px 0 #521a95);pointer-events:none}.trick-toast.show{opacity:1;transform:translate(-50%,0) scale(1) rotate(-3deg)}.trick-toast strong{white-space:nowrap;font:900 clamp(27px,4vw,48px)/1 "Baloo 2";color:var(--yellow);-webkit-text-stroke:2px #5a209e;text-shadow:0 3px 0 #fff}.trick-toast small{font:900 16px "Baloo 2";background:#ff4faf;padding:2px 14px;border-radius:20px;border:2px solid white}.trick-toast>span{color:#fff;font-size:26px}
.overlay{position:absolute;z-index:5;inset:0;display:grid;place-items:center;background:linear-gradient(#5424ad33,#42107bb5);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.25s}.overlay.show{opacity:1;visibility:visible}.start-card,.mini-card{text-align:center;position:relative;width:min(620px,92vw);padding:30px 25px}.start-card:before,.mini-card:before{content:"";position:absolute;inset:10% 4%;z-index:-1;background:#5a25b9d9;border:4px solid #fff;border-radius:42% 58% 45% 55%/55% 43% 57% 45%;box-shadow:0 12px 0 #351174,0 0 60px #ff70c177}.sticker{position:absolute;right:5%;top:9%;padding:8px 15px;background:var(--yellow);color:#7a2a9d;border:3px solid white;border-radius:9px;transform:rotate(9deg);font:900 11px "Nunito";box-shadow:0 5px 0 #d34398}.kicker,.mini-card p{margin:14px 0 0;color:#7ff5ff;font-size:11px;letter-spacing:5px}.start-card h1,.mini-card h2{margin:4px 0;font:900 clamp(52px,9vw,92px)/.72 "Baloo 2";letter-spacing:-3px;text-shadow:0 6px 0 #32116f}.start-card h1 em{font-style:normal;color:var(--yellow);-webkit-text-stroke:2px white}.tagline{font-size:14px;line-height:1.5;margin:24px auto 18px;color:#f2eaff}.play-btn{display:flex;align-items:center;justify-content:space-between;width:230px;height:56px;margin:0 auto;border:3px solid white;border-radius:18px;padding:0 8px 0 28px;background:linear-gradient(100deg,#ff3eac,#ff755e);color:white;box-shadow:0 7px 0 #8d1f87;font:900 17px "Baloo 2";cursor:pointer}.play-btn b{display:grid;place-items:center;width:38px;height:38px;background:var(--yellow);color:#7a2498;border-radius:12px}.play-btn:active{transform:translateY(5px);box-shadow:0 2px 0 #8d1f87}.instruction{margin:20px auto 5px;display:flex;justify-content:center;align-items:center;gap:8px;font-size:11px}.instruction kbd{padding:7px 13px;border-radius:8px;background:white;color:#51218c;box-shadow:0 3px 0 #b7a1dd}.instruction strong{color:var(--yellow);font-size:14px}.mini-card h2{font-size:70px;margin:5px 0 24px}.final-label{font-size:10px;letter-spacing:3px}.final-score{display:block;font:900 55px "Baloo 2";color:var(--yellow);line-height:1}.new-best{font-size:12px;margin:3px 0 15px;color:#74f5ff}
.jump-button{position:absolute;z-index:4;left:50%;bottom:43px;transform:translateX(-50%);display:none;width:104px;height:104px;border-radius:50%;border:5px solid white;background:linear-gradient(145deg,#ff65bd,#ef318e);color:white;box-shadow:0 7px 0 #81207e;flex-direction:column;align-items:center;justify-content:center;touch-action:none}.jump-button span{font-size:27px;line-height:.6}.jump-button b{font:900 17px "Baloo 2"}.jump-button small{font-size:7px}.jump-button:active{transform:translate(-50%,5px);box-shadow:0 2px 0 #81207e}footer{position:absolute;z-index:2;bottom:0;left:0;right:0;height:28px;display:flex;justify-content:center;align-items:center;gap:15px;background:#3d1685;color:#d8c9fa;font-size:8px;letter-spacing:2px}footer i{width:5px;height:5px;background:var(--pink);border-radius:50%}
@media(max-width:700px),(pointer:coarse){.hud{top:10px;gap:6px}.logo-star{width:38px;height:38px}.score,.best{min-width:69px;padding:4px 7px}.best{display:none}.round-btn{width:37px;height:37px}.jump-button{display:flex}.tagline{font-size:12px}.speed-pill{top:76px}.start-card{padding:15px}.sticker{top:4%}}
@media(max-height:600px){.start-card h1{font-size:53px}.tagline{margin:13px auto}.instruction{margin:12px auto}.jump-button{width:82px;height:82px}.mini-card h2{font-size:52px}}
