:root{--bg: #bfe3ff;--ink: #2c2140;--ink-soft: #6c5f80;--card: #fffdf8;--accent: #ff3b5c;font-family:Fredoka,ui-rounded,SF Pro Rounded,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);transition:background-color 1.2s ease;color:var(--ink);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}canvas#game{position:fixed;top:0;right:0;bottom:0;left:0;touch-action:none;display:block}#hud{position:fixed;top:0;left:0;right:0;padding:calc(env(safe-area-inset-top) + 12px) 64px 0;gap:6px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.stat{display:flex;flex-direction:column;min-width:70px}.stat.right{align-items:flex-end}.label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.value{font-size:30px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}.level{margin-top:6px;padding:4px 12px;border-radius:999px;background:#ffffffb3;font-weight:700;font-size:15px}#controls{position:fixed;top:calc(env(safe-area-inset-top) + 12px);left:12px;right:12px;display:flex;justify-content:space-between;pointer-events:none}#controls button{pointer-events:auto;width:44px;height:44px;border:0;border-radius:50%;background:#ffffffb3;color:var(--ink);display:grid;place-items:center;cursor:pointer}#controls button[aria-pressed=false]{opacity:.5}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;background:#1e143259;animation:fade .4s ease}.overlay[hidden]{display:none}.card{width:min(420px,100%);max-height:100%;overflow:auto;background:var(--card);border-radius:24px;padding:16px;text-align:center;box-shadow:0 20px 50px #1e14324d;animation:rise .5s cubic-bezier(.2,1.4,.4,1)}.card img{width:100%;max-height:48vh;object-fit:contain;border-radius:12px}.newbest{margin:6px 0 0;font-size:22px;font-weight:700;color:var(--accent)}.stats{display:flex;justify-content:space-around;margin:10px 0 14px}.stats>div{display:flex;flex-direction:column}.buttons{display:flex;gap:10px}.buttons button{flex:1;min-height:52px;border:0;border-radius:16px;font:inherit;font-size:18px;font-weight:700;background:#eee6f5;color:var(--ink);cursor:pointer}.buttons button.primary{background:var(--accent);color:#fff}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(30px) scale(.92);opacity:0}}.mid{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px}.level{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goals{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}.goals:empty{display:none}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px 3px 6px;border-radius:999px;background:#ffffffd9;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.chip b{font-weight:700;margin-right:2px}.chip.done{background:#c9f2d6;color:#10632f}.chip .dot{display:inline-block;width:13px;height:13px;border-radius:50%;box-shadow:inset 0 -2px #0000002e}.goals.big{flex-direction:column;align-items:center;margin:4px 0 6px}.goals.big .chip{font-size:18px;padding:6px 14px 6px 10px;background:#f3edf8}.goals.big .chip .dot{width:18px;height:18px}.card h2{margin:2px 0 6px;font-size:30px}.kicker{margin:4px 0 0;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.hint{margin:0 4px 12px;font-size:18px;line-height:1.35}.small{margin:6px 0 12px;font-size:15px;color:var(--ink-soft)}.stars{font-size:46px;line-height:1;color:#ffb400;letter-spacing:4px;text-shadow:0 3px 0 rgba(160,100,0,.25);animation:rise .6s cubic-bezier(.2,1.6,.4,1)}#r-art{max-height:30vh;margin-bottom:12px}button.link{margin-top:10px;border:0;background:none;font:inherit;font-size:15px;font-weight:600;color:var(--ink-soft);text-decoration:underline;cursor:pointer}.menu{padding:20px 16px 16px}.logo{margin:0;font-size:54px;line-height:1;letter-spacing:1px}.logo span:nth-child(7n+1){color:#ff3b5c}.logo span:nth-child(7n+2){color:#ff8a1f}.logo span:nth-child(7n+3){color:#e0a800}.logo span:nth-child(7n+4){color:#27c763}.logo span:nth-child(7n+5){color:#2f7dff}.logo span:nth-child(7n+6){color:#9b5cff}.logo span:nth-child(7n+7){color:#ff3b5c}.tag{margin:6px 0 16px;color:var(--ink-soft);font-weight:600}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px}.lvl{aspect-ratio:1 / 1.1;border:0;border-radius:16px;background:#fff0c2;color:var(--ink);font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;box-shadow:inset 0 -4px #00000014}.lvl .n{font-size:24px;font-weight:700;line-height:1}.lvl .s{font-size:11px;color:#e09a00;letter-spacing:1px}.lvl.beaten{background:#d4f5df}.lvl.locked{background:#eee8f2;opacity:.6;cursor:default}.lvl:not(.locked):active{transform:scale(.94)}
