@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(/assets/fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fredoka-latin-700-normal-BOIZVyIN.woff2)format("woff2"),url(/assets/fredoka-latin-700-normal-C8FeHd3X.woff)format("woff")}:root{--ink:#1b1530;--panel:#1b1530d1;--panel-solid:#241c40;--line:#ffffff24;--sun:#ffcf5a;--sun-deep:#ff8a3d;--teal:#3ff0dc;--pink:#ff5fa2;--text:#fff8ea;--muted:#cbbfe6;--good:#8cf06a;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);color:var(--text);font-family:Fredoka,ui-rounded,SF Pro Rounded,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#stage{touch-action:none;position:fixed;inset:0}#stage canvas{width:100%;height:100%;display:block}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}#boot{z-index:50;transition:opacity .4s}#boot.gone{opacity:0;pointer-events:none}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:0}button:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.btn{-webkit-backdrop-filter:blur(6px);border:2px solid var(--line);background:#ffffff1a;border-radius:999px;justify-content:center;align-items:center;gap:.5em;min-height:48px;padding:.55em 1.3em;font-size:1.05rem;font-weight:600;transition:transform .12s,background .2s;display:inline-flex}.btn:hover{background:#ffffff2e}#title .btn:not(.primary){background:#1b15308c}.btn:active{transform:scale(.96)}.btn.primary{background:linear-gradient(180deg, var(--sun), var(--sun-deep));color:#3a1d06;letter-spacing:.04em;border:0;min-height:64px;padding:.55em 2.2em;font-size:1.5rem;box-shadow:0 6px #b8501c,0 12px 30px #ff8a3d73}.btn.primary:active{transform:translateY(4px);box-shadow:0 2px #b8501c,0 6px 20px #ff8a3d66}.btn.teal{color:#06302d;background:linear-gradient(#6ff7e8,#19b9b0);border:0;box-shadow:0 5px #0f7f79}.btn svg{flex:none;width:1.25em;height:1.25em}.btn.small{min-height:40px;padding:.35em 1em;font-size:.95rem}.icon-btn{background:var(--panel);border:2px solid var(--line);border-radius:50%;place-items:center;width:48px;height:48px;font-size:1.25rem;display:grid}.icon-btn svg{width:22px;height:22px}.coin-icon{vertical-align:-.18em;background:radial-gradient(circle at 35% 30%,#fff3b0 0 18%,#ffc23a 40%,#d98a10 100%);border-radius:50%;width:1.1em;height:1.1em;display:inline-block;box-shadow:inset 0 0 0 2px #ffe08a}.screen{display:none;position:absolute;inset:0}.screen.on{display:block}.screen.fade-in{animation:.25s both fadeIn}@keyframes fadeIn{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}#title .wrap{left:calc(24px + var(--safe-left));flex-direction:column;gap:18px;width:min(440px,100% - 48px);display:flex;position:absolute;top:50%;transform:translateY(-50%)}.logo{letter-spacing:.01em;text-shadow:0 4px #00000040;font-weight:700;line-height:.88}.logo .l1{color:var(--sun);align-items:center;gap:.15em;font-size:clamp(3rem,9vw,5.2rem);display:flex}.logo .l2{color:#fff;font-size:clamp(3rem,9vw,5.2rem)}.logo .sun{flex:none;width:.82em;height:.82em}.tagline{color:#efe6ff;text-shadow:0 2px 6px #0a0618d9,0 0 2px #0a0618e6;margin-top:-6px;font-size:1.1rem}.title-row{flex-wrap:wrap;gap:10px;display:flex}.title-stats{color:#efe6ff;text-shadow:0 2px 6px #0a0618d9;gap:16px;font-size:.98rem;display:flex}.title-stats b{color:#fff;font-weight:600}.topbar{top:calc(14px + var(--safe-top));right:calc(14px + var(--safe-right));left:calc(14px + var(--safe-left));justify-content:flex-end;align-items:center;gap:10px;display:flex;position:absolute}.pill{background:var(--panel);border:2px solid var(--line);border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:6px 14px;font-size:1.05rem;font-weight:600;display:inline-flex}.pill.mult{color:var(--teal)}.hub-leave{margin-right:auto}#hud{pointer-events:none}#hud .tl{top:calc(12px + var(--safe-top));left:calc(12px + var(--safe-left));flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute}#hud .tr{top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right));align-items:flex-start;gap:8px;display:flex;position:absolute}#hud .score{text-align:right}#hud .score .v{text-shadow:0 3px #0000004d;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700;line-height:1}#hud .score .m{background:var(--teal);color:#06302d;border-radius:999px;margin-top:4px;padding:2px 10px;font-size:.95rem;font-weight:700;display:inline-block}#hud .score .m.x2{background:var(--good)}#hud .coins{font-size:1.35rem}#hud .pause{pointer-events:auto}#hud .powers{flex-direction:column;gap:6px;display:flex}.power-chip{background:var(--panel);border:2px solid var(--line);border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:.9rem;font-weight:600;animation:.2s both rise;display:flex}.power-chip i{color:#1b1530;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.95rem;font-style:normal;display:grid}.power-chip .bar{background:#ffffff26;border-radius:3px;width:64px;height:6px;overflow:hidden}.power-chip .bar span{background:currentColor;border-radius:3px;height:100%;display:block}#hud .dist{top:calc(14px + var(--safe-top));flex-direction:column;align-items:center;gap:4px;min-width:150px;display:flex;position:absolute;left:50%;transform:translate(-50%)}#hud .dist .v{text-shadow:0 2px #00000059;font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}#hud .track-bar{background:#0000004d;border-radius:3px;width:150px;height:6px;position:relative}#hud .track-bar .fill{background:linear-gradient(90deg, var(--sun), var(--sun-deep));border-radius:3px;position:absolute;inset:0 auto 0 0}#hud .track-bar .ghost{background:var(--teal);width:4px;height:14px;box-shadow:0 0 8px var(--teal);border-radius:2px;margin-left:-2px;position:absolute;top:-4px}.banner{text-align:center;pointer-events:none;white-space:nowrap;animation:2.6s both bannerIn;position:absolute;top:22%;left:50%;transform:translate(-50%)}.banner .t{letter-spacing:.25em;text-transform:uppercase;color:var(--sun);font-size:.95rem}.banner .n{text-shadow:0 4px #0000004d;font-size:clamp(1.8rem,6vw,2.8rem);font-weight:700}@keyframes bannerIn{0%{opacity:0;transform:translate(-50%,10px)}12%,75%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-8px)}}.toasts{left:50%;bottom:calc(18px + var(--safe-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(92vw,420px);display:flex;position:absolute;transform:translate(-50%)}.toast{background:var(--panel);border:2px solid var(--line);text-align:center;border-radius:16px;align-items:center;gap:10px;padding:10px 18px;font-weight:600;animation:3.2s both toastIn;display:flex}.toast.gold{border-color:var(--sun)}.toast.teal{border-color:var(--teal)}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)scale(.95)}10%,82%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}.hint{left:0;right:0;bottom:calc(22% + var(--safe-bottom));pointer-events:none;flex-wrap:wrap;justify-content:center;gap:10px;width:min(94vw,560px);margin:0 auto;animation:6s both toastIn;display:flex;position:absolute}.hint span{background:var(--panel);border:2px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.95rem;font-weight:600}.hint kbd{font:inherit;color:var(--sun)}.countdown{pointer-events:none;color:var(--sun);text-shadow:0 6px #0000004d;place-items:center;font-size:clamp(4rem,18vw,8rem);font-weight:700;display:grid;position:absolute;inset:0}.countdown span{animation:.4s both pop}.dim{background:radial-gradient(#140e288c,#0a0618d1);position:absolute;inset:0}.panel{width:min(460px,100% - 28px);height:-moz-fit-content;height:fit-content;max-height:calc(100% - 28px - var(--safe-top) - var(--safe-bottom));background:var(--panel-solid);border:2px solid var(--line);border-radius:28px;margin:auto;padding:22px 20px;animation:.32s both pop;position:absolute;inset:0;overflow:auto;box-shadow:0 30px 80px #00000080}.panel h2{text-align:center;margin:0 0 12px;font-size:1.7rem}.panel .actions{flex-direction:column;align-items:stretch;gap:10px;margin-top:16px;display:flex}.panel .actions .row{gap:10px;display:flex}.panel .actions .row>*{flex:1}.close{position:absolute;top:12px;right:12px}.big-score{text-align:center}.big-score .label{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;font-size:.85rem}.big-score .v{font-variant-numeric:tabular-nums;font-size:3.2rem;font-weight:700;line-height:1.05}.badge-best{background:var(--teal);color:#06302d;border-radius:999px;margin-top:6px;padding:4px 12px;font-weight:700;animation:.5s .3s both pop;display:inline-block}.stats{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.stat{background:#ffffff0f;border-radius:16px;padding:10px 12px}.stat .k{color:var(--muted);font-size:.85rem}.stat .v{font-size:1.3rem;font-weight:600}.missions{flex-direction:column;gap:8px;margin-top:14px;display:flex}.mission{background:#ffffff0f;border-radius:16px;grid-template-columns:28px 1fr;align-items:center;gap:10px;padding:10px 12px;display:grid}.mission .tick{border:2px solid var(--line);border-radius:50%;place-items:center;width:28px;height:28px;font-size:.9rem;display:grid}.mission.done .tick{background:var(--good);border-color:var(--good);color:#10300a}.mission .txt{font-size:.98rem;font-weight:500}.mission .prog{background:#ffffff1f;border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.mission .prog span{background:linear-gradient(90deg, var(--teal), #8cf0e4);border-radius:3px;height:100%;display:block}.mission .num{color:var(--muted);margin-top:3px;font-size:.82rem}.rank{text-align:center;color:var(--muted)}.rank b{color:var(--teal);font-size:1.15rem}.note{text-align:center;color:var(--sun);margin-top:10px;font-weight:600}.revive-ring{width:120px;height:120px;margin:4px auto 6px;position:relative}.revive-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.revive-ring .n{place-items:center;font-size:2.6rem;font-weight:700;display:grid;position:absolute;inset:0}.tabs{justify-content:center;gap:8px;margin-bottom:14px;display:flex}.tab{border:2px solid var(--line);border-radius:999px;min-height:44px;padding:8px 18px;font-weight:600}.tab.on{background:var(--sun);color:#3a1d06;border-color:var(--sun)}.cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.card{text-align:left;background:#ffffff0f;border:2px solid #0000;border-radius:20px;flex-direction:column;gap:6px;padding:12px;display:flex}.card.sel{border-color:var(--teal)}.card .swatch{border-radius:14px;justify-content:center;align-items:flex-end;gap:4px;height:64px;padding:8px;display:flex}.card .swatch i{border-radius:6px 6px 3px 3px;width:18px}.card .swatch.pic{align-items:center;height:116px;padding:0;overflow:hidden}.card .swatch.pic img{image-rendering:auto;width:116px;height:116px}.card .name{font-size:1.1rem;font-weight:700}.card .blurb{color:var(--muted);min-height:2.4em;font-size:.82rem}.card .btn{min-height:40px;padding:.3em .8em;font-size:.95rem}.wallet{text-align:center;margin-bottom:10px;font-size:1.15rem;font-weight:600}.setting{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;display:flex}.setting:last-child{border-bottom:0}.seg{background:#ffffff0f;border-radius:999px;flex-wrap:wrap;justify-content:flex-end;gap:4px;padding:4px;display:flex}.seg button{border-radius:999px;min-height:36px;padding:6px 12px;font-size:.9rem;font-weight:600}.seg button.on{background:var(--teal);color:#06302d}.controls-help{color:var(--muted);margin-top:10px;font-size:.9rem;line-height:1.6}.controls-help kbd{font:inherit;color:var(--sun)}.credits{color:var(--muted);text-align:center;margin-top:12px;font-size:.8rem}@media (max-width:640px){#title .wrap{top:auto;left:50%;bottom:calc(22px + var(--safe-bottom));text-align:center;align-items:center;transform:translate(-50%)}.title-row,.logo .l1,.title-stats{justify-content:center}#hud .score .v{font-size:1.6rem}#hud .dist{top:calc(64px + var(--safe-top))}.cards{grid-template-columns:1fr 1fr}}@media (max-height:520px) and (orientation:landscape){#title .wrap{gap:10px}.logo .l1,.logo .l2{font-size:2.6rem}.btn.primary{min-height:52px;font-size:1.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
