@font-face{font-family:Fredoka;src:url(./fredoka-BOIZVyIN.woff2) format("woff2");font-weight:700;font-display:swap}:root{--font: "Fredoka", "Arial Rounded MT Bold", "Nunito", system-ui, sans-serif;--ink: #1b2540;--gold: #ffcf33;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none}html,body{margin:0;height:100%;overflow:hidden;background:#4aa8f5;font-family:var(--font);font-weight:700;color:#fff;overscroll-behavior:none;position:fixed;inset:0;width:100%}#app{position:fixed;inset:0;overflow:hidden}canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.off{display:none!important}button{font-family:var(--font);font-weight:700;color:inherit;border:0;cursor:pointer;touch-action:manipulation}#hud{position:absolute;inset:0;pointer-events:none}#topbar{position:absolute;left:0;right:0;top:max(12%,calc(var(--safe-t) + 8px));padding:4px calc(8px + var(--safe-r)) 0 calc(8px + var(--safe-l));display:flex;align-items:flex-start;justify-content:space-between;gap:4px}#tl{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:5px;flex-wrap:wrap}.ico{pointer-events:auto;width:32px;height:32px;border-radius:10px;background:#141e3c8c;display:grid;place-items:center;padding:0;box-shadow:0 3px #00000040}.ico svg{width:18px;height:18px;fill:#fff}#combo{display:flex;align-items:baseline;gap:3px;padding:2px 9px 3px;border-radius:12px;background:#141e3c8c;font-size:20px;line-height:1.1;transform-origin:left center;transition:transform .12s;box-shadow:0 3px #00000040}#combo span{font-size:12px;opacity:.85}#combo.bump{transform:scale(1.3)}#tc{flex:0 0 auto;text-align:center;line-height:1}#score{font-size:38px;letter-spacing:1px;color:#fff;text-shadow:0 3px 0 var(--ink),0 0 2px var(--ink),2px 0 0 var(--ink),-2px 0 0 var(--ink),0 -2px 0 var(--ink);transition:color .2s;min-width:90px}#score.gold{color:var(--gold)}#score.pulse{animation:pulse .18s}#wave{margin-top:2px;font-size:14px;letter-spacing:2px;color:#fff;text-shadow:0 2px 0 var(--ink),1px 0 0 var(--ink),-1px 0 0 var(--ink)}#hearts{flex:1 1 0;min-width:0;display:flex;justify-content:flex-end;gap:1px}.heart{width:21px;height:21px;transition:transform .2s}.heart path{fill:#ff3b57;stroke:var(--ink);stroke-width:2;stroke-linejoin:round}.heart.empty path{fill:#1e28468c}.heart.lost{animation:lose .5s}.heart.gain{animation:pulse .4s}#bossbar{position:absolute;left:50%;top:calc(max(12%,var(--safe-t)) + 74px);width:min(62%,320px);transform:translate(-50%);height:16px;border-radius:10px;background:#141e3ca6;border:3px solid var(--ink);overflow:hidden}#bossname{position:absolute;inset:0;z-index:2;font-size:10px;line-height:10px;text-align:center;letter-spacing:3px;padding-top:0;display:none}#bossfill{height:100%;width:100%;background:linear-gradient(#ff6a5a,#e53935);transition:width .12s}#callouts{position:absolute;left:0;right:0;top:27%;display:flex;flex-direction:column;align-items:center;gap:2px}.callout{font-size:clamp(30px,10vw,58px);line-height:1;white-space:nowrap;color:#fff;-webkit-text-stroke:7px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 rgba(0,0,0,.3);animation:pop 1.15s cubic-bezier(.2,.9,.3,1) forwards;pointer-events:none}.callout.sm{font-size:clamp(22px,7vw,38px);-webkit-text-stroke-width:6px}.c-head{color:#ffd23f}.c-double{color:#4de2ff}.c-quick{color:#8cff5a}.c-combo{color:#ff9a2e}.c-clear{color:#62f08a}.c-boss{color:#ff4d4d}.c-ouch{color:#ff5a5a}.c-best{color:#ffd23f}.c-ko{color:#fff}.c-mission{color:#b98cff}.c-heal{color:#62f08a}.floater{position:absolute;left:0;top:0;font-size:26px;color:#fff;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;pointer-events:none;white-space:nowrap;will-change:transform}.floater.head{color:#ffd23f;font-size:32px}.floater.bad{color:#ff6a6a}@keyframes pop{0%{transform:scale(.2) rotate(-6deg);opacity:0}18%{transform:scale(1.3) rotate(3deg);opacity:1}32%{transform:scale(.94) rotate(-1deg)}45%{transform:scale(1) rotate(0)}78%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-34px) scale(1);opacity:0}}@keyframes pulse{50%{transform:scale(1.25)}}@keyframes lose{0%{transform:scale(1.6)}30%{transform:rotate(-20deg) scale(1.3)}60%{transform:rotate(14deg)}to{transform:none}}#vignette{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,#ff001e00 40%,#ff1428bf)}#vignette.hit{animation:flashred .55s ease-out}@keyframes flashred{0%{opacity:1}to{opacity:0}}#gray{position:absolute;inset:0;pointer-events:none;background:#5a5f6e8c;opacity:0;transition:opacity .4s;mix-blend-mode:saturation}#gray.on{opacity:1;background:#6e6e78}#banner{position:absolute;left:0;right:0;top:36%;text-align:center;pointer-events:none;font-size:clamp(40px,14vw,84px);line-height:1;-webkit-text-stroke:9px var(--ink);paint-order:stroke fill;text-shadow:0 7px 0 rgba(0,0,0,.3);opacity:0}#banner small{display:block;margin-top:8px;font-size:.34em;-webkit-text-stroke-width:5px}#banner.show{animation:banner 1.5s cubic-bezier(.2,.9,.3,1) forwards}@keyframes banner{0%{transform:scale(.3);opacity:0}15%{transform:scale(1.18);opacity:1}25%{transform:scale(1)}80%{opacity:1}to{transform:scale(1.05);opacity:0}}#hint{position:absolute;pointer-events:none;transform:translate(-50%,-100%);padding:6px 12px;border-radius:12px;background:#fff;color:var(--ink);font-size:16px;box-shadow:0 4px #0000004d;opacity:0;transition:opacity .15s;white-space:nowrap}#hint.on{opacity:1}#hint.big{font-size:clamp(22px,6.5vw,34px);white-space:normal;width:min(86%,380px);text-align:center;background:#ffcf33}#hand{position:absolute;width:64px;height:64px;pointer-events:none;opacity:0;transform:translate(-30%,-8%);filter:drop-shadow(0 4px 0 rgba(0,0,0,.3))}#hand.on{opacity:1;animation:tap .9s infinite ease-in-out}@keyframes tap{0%,to{transform:translate(-30%,-8%) scale(1)}45%{transform:translate(-30%,-8%) scale(.82) translateY(6px)}}#intro{position:absolute;left:0;right:0;bottom:calc(15% + var(--safe-b));display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}#intro-pill{max-width:86%;padding:10px 18px;border-radius:18px;background:#141e3cd1;font-size:clamp(18px,5.4vw,26px);text-align:center;box-shadow:0 5px #00000040}#intro-sub{font-size:14px;letter-spacing:3px;color:#fff;text-shadow:0 2px 0 var(--ink),1px 0 0 var(--ink),-1px 0 0 var(--ink);animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.35}}.pill{pointer-events:auto;padding:8px 16px;border-radius:999px;background:linear-gradient(#8f6bff,#6a45e8);font-size:15px;letter-spacing:1px;box-shadow:0 4px #3b2490}.pill:active,.big:active,.sec:active{transform:translateY(3px)}#pause,#result,#unlocks,#nogl{position:absolute;inset:0;display:grid;place-items:center;background:#0a10288c;padding:calc(12% + var(--safe-t) * 0) calc(14px + var(--safe-r)) calc(8% + var(--safe-b)) calc(14px + var(--safe-l))}#result{background:#0a102866}.panel,.card{width:min(100%,400px);max-height:100%;border-radius:24px;background:linear-gradient(#35477e,#232f5c);border:4px solid var(--ink);box-shadow:0 8px #00000059;padding:16px 16px 18px;text-align:center;overflow:auto}.title{font-size:34px;-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;margin-bottom:8px}.big{width:100%;margin-top:12px;padding:16px 12px;font-size:30px;letter-spacing:1px;border-radius:20px;background:linear-gradient(#5dff7e,#1fc24d);box-shadow:0 6px #0f7a2c;text-shadow:0 3px 0 rgba(0,0,0,.25)}.sec{padding:10px 14px;border-radius:14px;font-size:15px;background:linear-gradient(#5e78d6,#3f56b3);box-shadow:0 4px #24317a}.row{display:flex;gap:8px;justify-content:center;margin-top:12px;flex-wrap:wrap}.settings{display:grid;gap:8px;margin:8px 0 6px}.tog{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:14px;background:#ffffff1a;font-size:18px}.sw{width:52px;height:28px;border-radius:14px;background:#56607f;position:relative;transition:background .15s}.sw:after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s}.tog.on .sw{background:#2fcf5c}.tog.on .sw:after{transform:translate(24px)}.card .ko{font-size:22px;letter-spacing:3px;opacity:.85}.card .final{font-size:64px;line-height:1.05;color:#fff;-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;position:relative;display:inline-block}.card .final.gold{color:var(--gold)}.stamp{position:absolute;right:-34px;top:-6px;transform:rotate(14deg);font-size:15px;letter-spacing:1px;padding:3px 8px;border-radius:8px;background:#ffcf33;color:#6b3d00;border:3px solid #6b3d00;animation:stamp .4s cubic-bezier(.3,1.6,.5,1) .2s backwards;-webkit-text-stroke:0}@keyframes stamp{0%{transform:rotate(14deg) scale(3);opacity:0}to{transform:rotate(14deg) scale(1)}}.card .best{font-size:18px;opacity:.9;margin-bottom:8px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.stat{padding:6px 4px;border-radius:12px;background:#ffffff1a;font-size:13px;line-height:1.15}.stat b{display:block;font-size:22px}.mission{margin-top:6px;padding:8px 10px;border-radius:14px;background:#b98cff33;font-size:15px;text-align:left}.bar{height:12px;margin-top:6px;border-radius:8px;background:#00000059;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(#c9a6ff,#8f6bff);border-radius:8px}.coins{margin-top:6px;font-size:15px;color:#ffe27a}#unlocks .card{max-height:100%;display:flex;flex-direction:column}.tabs{display:flex;gap:4px;margin:8px 0}.tab{flex:1;padding:7px 2px;border-radius:10px;background:#ffffff1f;font-size:13px}.tab.on{background:#ffcf33;color:#4a2d00}.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:auto;flex:1;touch-action:pan-y}.item{padding:8px;border-radius:14px;background:#ffffff1a;font-size:14px;border:3px solid transparent}.item.sel{border-color:#62f08a}.item .sw2{height:44px;border-radius:10px;margin-bottom:6px;border:3px solid rgba(0,0,0,.35)}.item button{margin-top:6px;width:100%;padding:6px;border-radius:10px;font-size:14px;background:#3f56b3}.item button.buy{background:#e8a317;color:#3a2200}.item button.dis{opacity:.45}.scroll{touch-action:pan-y}#nogl{background:#1b2540;text-align:center;z-index:99}#nogl h1{font-size:28px}#nogl p{opacity:.8;font-size:17px}#dbg{position:absolute;left:4px;bottom:4px;z-index:50;font:11px/1.3 monospace;background:#000000b3;color:#8f8;padding:4px 6px;border-radius:6px;max-width:60%;pointer-events:auto}#dbg button{font:11px monospace;margin:1px;padding:2px 5px;background:#234;color:#fff;border-radius:4px}
