*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#1a1530;font-family:Fredoka,system-ui,sans-serif;color:#fff;user-select:none;-webkit-user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent}.js-canvas{position:fixed;inset:0;width:100%;height:100%;display:block;outline:none}.hud{position:fixed;inset:0;pointer-events:none;padding:max(14px,env(safe-area-inset-top)) 16px 16px;transition:opacity .4s}.hud.is-hidden{opacity:0}.hud-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.hud-hearts{display:flex;gap:4px;font-size:24px;filter:drop-shadow(0 2px 0 rgba(40,10,80,.5))}.hud-hearts .is-lost{opacity:.25;filter:grayscale(1)}.hud-distance{font-size:30px;font-weight:700;text-shadow:0 3px 0 rgba(40,10,80,.55)}.hud-distance span{font-variant-numeric:tabular-nums}.hud-score{font-size:30px;font-weight:700;min-width:60px;text-align:right;text-shadow:0 3px 0 rgba(40,10,80,.55)}.hud-score.is-pop{animation:pop .18s ease-out}@keyframes pop{0%{transform:scale(1.35)}to{transform:scale(1)}}.hud-xp{margin:10px auto 0;max-width:320px;height:10px;border-radius:999px;background:#28145a73;overflow:hidden}.hud-xp-bar{width:0%;height:100%;border-radius:999px;background:linear-gradient(90deg,#91f0ff,#5f7dff);transition:width .15s}.hud-boss{margin:12px auto 0;max-width:320px;display:flex;align-items:center;gap:8px;transition:opacity .3s}.hud-boss.is-hidden{opacity:0}.hud-boss-label{font-weight:700;font-size:15px;color:#ffd0d8}.hud-boss-track{flex:1;height:12px;border-radius:999px;background:#3c0a288c;overflow:hidden}.hud-boss-bar{width:100%;height:100%;border-radius:999px;background:linear-gradient(90deg,#ff3e6c,#ff8641)}.hud-shield{filter:drop-shadow(0 0 4px #91f0ff)}.hud-power{margin-top:10px;text-align:center;font-size:16px;font-weight:700;color:#fff6b0;text-shadow:0 2px 0 rgba(40,10,80,.6);min-height:20px}.flash{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle,transparent 40%,rgba(255,40,80,.55));opacity:0;transition:opacity .35s}.flash.is-active{opacity:1;transition:none}.screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(circle at 50% 40%,#1e144626,#140a3299);transition:opacity .5s}.screen.is-hidden{opacity:0;pointer-events:none}.screen-card{text-align:center;max-width:340px}.screen-loading{font-size:15px;opacity:.8;margin-bottom:8px;min-height:20px}.screen-title{font-size:64px;line-height:1;font-weight:700;letter-spacing:1px;text-shadow:0 5px 0 #ff347e,0 10px 30px rgba(0,0,0,.35)}.screen-text{margin:18px 0 26px;font-size:18px;line-height:1.4;font-weight:500;text-shadow:0 2px 0 rgba(40,10,80,.5)}.screen-button{font-family:inherit;font-size:24px;font-weight:700;color:#fff;border:none;border-radius:999px;padding:14px 52px;background:linear-gradient(180deg,#ff8641,#ff347e);box-shadow:0 6px #a31d5a,0 12px 30px #0000004d;cursor:pointer;transition:transform .1s,opacity .3s}.screen-button:active{transform:translateY(4px);box-shadow:0 2px #a31d5a}.screen-button:disabled{opacity:.4;cursor:default}.screen-best{margin-top:-12px;margin-bottom:22px;font-size:16px;font-weight:500;opacity:.85;min-height:20px}.sound-toggle{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));width:44px;height:44px;border:none;border-radius:999px;font-size:20px;background:#28145a73;backdrop-filter:blur(6px);cursor:pointer;z-index:10}.jump-meter{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));width:52px;height:52px;margin-left:-26px;border-radius:999px;overflow:hidden;background:#28145a73;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;pointer-events:none;transition:opacity .3s,transform .15s}.jump-meter.is-hidden{opacity:0}.jump-meter.is-ready{transform:scale(1.08);box-shadow:0 0 18px #91f0ffcc}.jump-meter-fill{position:absolute;left:0;right:0;bottom:0;height:0%;background:linear-gradient(0deg,#5f7dff,#91f0ff);opacity:.75}.jump-meter span{position:relative}.menu{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:max(20px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));pointer-events:none;transition:opacity .5s}.menu.is-hidden{opacity:0}.menu.is-hidden *{pointer-events:none!important}.menu-top{text-align:center}.menu-title{font-size:58px;line-height:1;font-weight:700;letter-spacing:1px;text-shadow:0 5px 0 #ff347e,0 10px 30px rgba(0,0,0,.35)}.menu-best{margin-top:10px;font-size:16px;font-weight:500;text-shadow:0 2px 0 rgba(40,10,80,.5);min-height:20px}.menu-card{width:100%;max-width:380px;padding:16px 16px 14px;border-radius:28px;background:#1e10468c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 12px 40px #14003259;text-align:center;pointer-events:auto}.menu-loading{font-size:14px;opacity:.8;min-height:0}.menu-loading:not(:empty){margin-bottom:8px}.menu-picker{display:flex;align-items:center;gap:8px}.menu-arrow{flex:none;width:46px;height:46px;border:none;border-radius:999px;font-family:inherit;font-size:32px;line-height:1;color:#fff;background:#ffffff24;cursor:pointer}.menu-arrow:active{transform:scale(.92)}.menu-hero{flex:1;min-width:0}.menu-hero-name{font-size:30px;font-weight:700}.menu-hero-tagline{font-size:14px;font-weight:500;opacity:.85;min-height:18px}.menu-dots{display:flex;justify-content:center;gap:6px;margin:10px 0 12px}.menu-dots span{width:8px;height:8px;border-radius:999px;background:#ffffff4d}.menu-dots span.is-active{background:#fff;width:22px}.menu-dots span.is-locked{background:#ffffff1f}.menu-stats{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center;text-align:left;font-size:14px;font-weight:500;margin-bottom:10px}.menu-bar{display:flex;gap:4px}.menu-bar i{flex:1;height:8px;border-radius:999px;background:#ffffff26}.menu-bar i.is-on{background:linear-gradient(90deg,#ffb646,#ff347e)}.menu-special{font-size:14px;font-weight:700;color:#fff6b0;margin-bottom:14px;min-height:18px}.menu-special.is-locked{color:#ffb0c4}.menu-help{margin-top:12px;font-size:12px;opacity:.7}.end-unlock{margin-top:10px;font-size:20px;font-weight:700;color:#fff6b0}
