:root{--paper:#f0edff;--paper-deep:#e0d9f7;--ink:#2e3350;--ink-soft:#6a6f8e;--accent:#8c5cf5;--accent-ink:#f4efff;--good:#3fb96b;--bad:#ef476f;--sky:#6cc6f5;--card:#fff;--shadow:#2e33502e}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{overscroll-behavior:none;height:100%}body{color:var(--ink);background-color:var(--paper);user-select:none;-webkit-user-select:none;background-image:radial-gradient(#8c5cf524 2.5px,#0000 2.5px);background-size:26px 26px;font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}button{color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none;font-family:inherit}.hidden{display:none!important}.screen{display:flex;padding:max(1rem,env(safe-area-inset-top))1rem max(1rem,env(safe-area-inset-bottom));flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto}.menu-head{text-align:center;padding:1.6rem 0 1.2rem}.logo{letter-spacing:.02em;color:var(--ink);font-family:Fredoka,sans-serif;font-size:clamp(2.6rem,12vw,3.6rem);font-weight:700}.logo-it{color:var(--accent);text-shadow:0 3px #2c165740}.menu-sub{color:var(--ink-soft);margin-top:.35rem;font-weight:700}.picker-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:.7rem;font-family:Fredoka,sans-serif;font-size:1rem;font-weight:600}.level-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;padding-bottom:1.5rem}.level-btn{position:relative;display:flex;background:var(--card);border:3px solid var(--ink);box-shadow:0 4px 0 var(--shadow);text-align:left;border-radius:18px;flex-direction:column;align-items: flex-start;gap:.15rem;padding:.7rem .85rem;transition:transform .12s}.level-btn:active{box-shadow:0 1px 0 var(--shadow);transform:translateY(3px)}.level-btn.locked{opacity:.55;background:var(--paper-deep);cursor:default}.level-num{color:var(--accent-ink);background:var(--accent);border:2px solid var(--ink);display:inline-flex;border-radius:999px;justify-content:center;align-items: center;min-width:1.7rem;height:1.7rem;font-family:Fredoka,sans-serif;font-size:.85rem;font-weight:700}.level-name{font-family:Fredoka,sans-serif;font-size:1.05rem;font-weight:600}.level-stars{min-height:1.1rem;font-size:.8rem}.level-mode{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:700}.hud{display:flex;align-items: center;gap:.7rem;padding-bottom:.6rem}.btn-back{border:3px solid var(--ink);background:var(--card);box-shadow:0 3px 0 var(--shadow);border-radius:14px;flex-shrink:0;width:2.5rem;height:2.5rem;font-family:Fredoka,sans-serif;font-size:1.6rem;font-weight:700;line-height:1}.hud-level{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Fredoka,sans-serif;font-size:1rem;font-weight:600}.round-track{display:flex;flex-shrink:0;gap:.3rem;margin-left:auto}.round-dot{border:2px solid var(--ink);background:var(--card);border-radius:50%;width:.65rem;height:.65rem;transition:background .25s,transform .25s}.round-dot.found{background:var(--good);transform:scale(1.2)}.round-dot.found-retry{background:var(--sky);transform:scale(1.2)}.stage{display:flex;flex-direction:column;flex:1;justify-content:center;align-items: center;gap:clamp(.9rem,3.5vh,1.6rem);padding-bottom:1rem}.count-card{position:relative;background:var(--card);border:4px solid var(--ink);box-shadow:0 6px 0 var(--shadow);display:flex;border-radius:28px;flex-direction:column;align-items: center;gap:.7rem;width:min(92vw,440px);padding:1rem 1rem 1.3rem}.count-card.pop{animation:pop-in .35s cubic-bezier(.34,1.56,.64,1)}@keyframes pop-in{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.prompt{text-align:center;font-family:Fredoka,sans-serif;font-size:clamp(1.15rem,5.5vw,1.5rem);font-weight:600}.object-field{display:flex;flex-wrap:wrap;justify-content:center;align-items: center;gap:.35rem;max-width:100%;min-height:clamp(7rem,24dvh,12rem)}.obj{position:relative;aspect-ratio:1;display:flex;transform:rotate(var(--tilt,0deg));justify-content:center;align-items: center;width:clamp(3.4rem,17vw,4.6rem);transition:transform .15s}.obj-emoji{font-size:clamp(2.3rem,12vw,3.2rem);line-height:1}.obj:active{transform:rotate(var(--tilt,0deg))scale(.9)}.obj.counted{transform:rotate(0)scale(1.05)}.obj-badge{position:absolute;background:var(--accent);color:var(--accent-ink);border:2px solid var(--ink);display:none;border-radius:999px;justify-content:center;align-items: center;min-width:1.45rem;height:1.45rem;padding:0 .25rem;font-family:Fredoka,sans-serif;font-size:.85rem;font-weight:700;top:-.15rem;right:-.15rem}.obj.counted .obj-badge{display:inline-flex;animation:badge-pop .25s cubic-bezier(.34,1.56,.64,1)}@keyframes badge-pop{0%{transform:scale(.4)}to{transform:scale(1)}}.choices{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;width:100%;max-width:420px}.choice{background:var(--card);border:3px solid var(--ink);box-shadow:0 4px 0 var(--shadow);border-radius:18px;min-width:clamp(3.6rem,17vw,4.4rem);padding:.35em .45em;transition:transform .12s,background .2s;font-family:Fredoka,sans-serif;font-size:clamp(1.7rem,8vw,2.3rem);font-weight:700}.choices--words .choice{text-transform:lowercase;letter-spacing:.06em;padding:.45em .8em;font-size:clamp(1.4rem,6.5vw,1.9rem);font-weight:600}.choice:active:not(:disabled){box-shadow:0 1px 0 var(--shadow);transform:translateY(3px)}.choice.correct{background:var(--good);color:#fff;animation:cheer .45s ease}.choice.wrong{background:var(--paper-deep);color:var(--ink-soft);animation:shake .4s ease;opacity:.6}@keyframes cheer{0%,to{transform:scale(1)}40%{transform:scale(1.07)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}}.overlay{position:fixed;display:flex;z-index:10;background:#2e33508c;justify-content:center;align-items: center;padding:1.2rem;inset:0}.card-panel{position:relative;background:var(--paper);border:4px solid var(--ink);text-align:center;animation:pop-in .35s cubic-bezier(.34,1.56,.64,1);border-radius:26px;width:min(100%,380px);padding:1.6rem 1.4rem;box-shadow:0 8px #00000040}.win-eyebrow{font-family:Fredoka,sans-serif;font-size:1.5rem;font-weight:700}.stars{margin:.4rem 0;font-size:2.4rem}.stars .dim{filter:grayscale(1);opacity:.35}.win-note{color:var(--ink-soft);margin-bottom:1.1rem;font-weight:700}.win-actions{display:flex;flex-direction:column;gap:.55rem}.btn-play{background:var(--accent);color:var(--accent-ink);border:3px solid var(--ink);box-shadow:0 4px 0 var(--shadow);border-radius:18px;padding:.7em 1.4em;font-family:Fredoka,sans-serif;font-size:1.2rem;font-weight:700}.btn-play:active{box-shadow:0 1px 0 var(--shadow);transform:translateY(3px)}.btn-ghost{background:var(--card);border:3px solid var(--ink);box-shadow:0 3px 0 var(--shadow);border-radius:18px;padding:.55em 1.2em;font-family:Fredoka,sans-serif;font-size:1.05rem;font-weight:600}.btn-ghost:active{box-shadow:0 1px 0 var(--shadow);transform:translateY(2px)}.confetti{position:absolute;overflow:hidden;pointer-events:none;inset:0}.confetti span{position:absolute;animation:fall linear infinite;top:-2.5rem}@keyframes fall{to{transform:translateY(110vh)rotate(320deg)}}@media (prefers-reduced-motion:reduce){.count-card.pop,.card-panel,.choice.correct,.choice.wrong,.obj.counted .obj-badge{animation:none}}@media (orientation:landscape) and (max-height:500px){.stage{flex-direction:row;gap:1.6rem}.count-card{width:min(52vw,380px)}.object-field{min-height:8rem}.obj{width:3rem}.obj-emoji{font-size:2rem}.choices{gap:.45rem;max-width:300px}.choice{min-width:3.2rem;font-size:1.4rem}}
