:root{--right:var(--sage);--right-soft:var(--sage-soft);--wrong:var(--pink);--wrong-soft:var(--pink-soft);--coin:var(--butter);--shelf:var(--sky-soft)}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}30%{transform:translateY(-10px)}60%{transform:translateY(-4px)}}@keyframes tilt{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes wiggle{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}@keyframes flash-ring{0%{box-shadow:0 0 0 0 var(--right-soft)}to{box-shadow:0 0 0 14px #0000}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);-webkit-text-size-adjust:100%;font-size:18px;line-height:1.4}#app{max-width:760px;margin:0 auto;padding:12px 16px 24px}#app.wide{max-width:1100px}h1{margin:.2em 0;font-size:1.7rem}h2{margin:.1em 0 .4em;font-size:1.25rem}p{margin:.5em 0}label{margin:10px 0 4px;font-weight:700;display:block}.muted{color:var(--ink-soft)}.muted.block{font-size:.9rem;font-weight:600;display:block}.nowrap{white-space:nowrap}.error{color:var(--pink-deep);min-height:1.2em;font-weight:700}.brand{align-items:center;gap:12px;margin:6px 0 14px;display:flex}.brand img{object-fit:contain;width:64px;height:64px}.brand h1{font-size:1.5rem}.brand .sub{color:var(--ink-soft);margin:2px 0 0;font-weight:600}.card{background:var(--card);border:2px solid var(--paper-deep);border-radius:18px;margin:12px 0;padding:16px}input,textarea{width:100%;font-family:var(--font-ui);border:2px solid var(--mascot-2);background:var(--paper);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:1.1rem}input.code{letter-spacing:.3em;text-align:center;text-transform:uppercase;font-size:2rem;font-family:var(--font-head)}textarea{resize:vertical;min-height:96px}input:focus-visible,textarea:focus-visible{outline:3px solid var(--pink-deep);outline-offset:1px}.btn.big{width:100%;min-height:76px;font-size:1.35rem}.btn.small{min-width:48px;min-height:48px;padding:0 16px;font-size:1rem}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.toggles{gap:8px}.row.chips-row{gap:6px}.stepper{align-items:center;gap:12px;display:inline-flex}.stepper .val{font-family:var(--font-head);text-align:center;min-width:2ch;font-size:1.5rem}.roomcode{font-family:var(--font-head);letter-spacing:.25em;text-align:center;color:var(--pink-deep);margin:4px 0;font-size:3rem}.joinlink{text-align:center;color:var(--ink-soft);word-break:break-all;font-size:.95rem}.chips{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}.chip{background:var(--butter-soft);border-radius:999px;padding:6px 14px;font-weight:700}.chip.word{background:var(--sky-soft)}.tag{background:var(--sage-soft);border-radius:999px;margin-left:6px;padding:4px 10px;font-size:.85rem;font-weight:700}.notice{background:var(--sky-soft);border-radius:12px;margin:8px 0;padding:10px 14px;font-weight:600}.notice.warn{background:var(--butter-soft)}.solo-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.coins{font-family:var(--font-head);background:var(--butter-soft);border-radius:999px;padding:4px 16px;font-size:1.5rem}.coin{filter:saturate(1.2)}.shop-card{text-align:center}.shop-top{justify-content:space-between;align-items:center;display:flex}.shop-top .bag{font-size:2.2rem}.emoji-big{margin:6px 0;font-size:5.5rem;line-height:1;animation:.18s ease-out pop-in}.emoji-mid{font-size:3.4rem;line-height:1}.order{font-family:var(--font-head);margin:8px 0 16px;font-size:2.6rem}.order .blank{border-bottom:5px dashed var(--pink);min-width:1.3em;color:var(--pink-deep);text-align:center;display:inline-block}.goal{margin:4px 0 10px}.goal-row{justify-content:space-between;align-items:baseline;gap:8px;font-size:.95rem;font-weight:700;display:flex}.goal-count{font-family:var(--font-head);color:var(--pink-deep)}.goal-track{background:var(--paper-deep);border-radius:999px;height:12px;margin-top:5px;overflow:hidden}.goal-fill{background:var(--sage);border-radius:999px;height:100%;transition:width .16s}.last-recap{border-radius:12px;margin:8px 0;padding:8px 14px;font-size:.95rem;font-weight:700}.last-recap.ok{background:var(--right-soft)}.last-recap.miss{background:var(--wrong-soft)}.end-card .earned{font-family:var(--font-head);color:var(--pink-deep);margin:8px 0;font-size:2rem}.end-card h2{font-size:1.6rem}.cards{grid-template-columns:repeat(2,1fr);gap:12px;margin:12px 0;display:grid}.big-cards{grid-template-columns:repeat(4,1fr)}.word-card{font-family:var(--font-head);min-height:var(--tap);border:3px solid var(--mascot-2);background:var(--card);color:var(--ink);cursor:pointer;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:18px 10px;font-size:2.4rem;transition:transform 80ms,background .12s,border-color .12s;display:flex}.word-card:hover:not(:disabled){background:var(--sage-soft)}.word-card:active:not(:disabled){transform:scale(.96)}.word-card:focus-visible{outline:3px solid var(--pink-deep);outline-offset:2px}.word-card:disabled{cursor:default}.word-card.right{background:var(--right-soft);border-color:var(--right);animation:.5s ease-out flash-ring}.word-card.wrong{background:var(--wrong-soft);border-color:var(--wrong)}.word-card.off{opacity:.5}.word-card .word{line-height:1}.word-card .tally{font-family:var(--font-ui);color:var(--ink-soft);font-size:1rem;font-weight:700}.prompt{min-height:1.4em;font-size:1.1rem;font-weight:700}.momo{object-fit:contain;width:96px;height:96px;margin:0 auto;display:block}.momo.small{width:64px;height:64px}.momo.bounce{animation:.9s ease-in-out infinite bounce}.momo.tilt{animation:2.4s ease-in-out infinite tilt}.cheer{background:var(--sage-soft);z-index:10;justify-content:center;align-items:center;animation:.15s ease-out pop-in;display:flex;position:fixed;inset:0}.cheer>div{text-align:center}.cheer .big{font-family:var(--font-head);margin:6px 0 0;font-size:3rem}.cheer .points{font-family:var(--font-head);color:var(--pink-deep);font-size:1.6rem}.countdown{font-family:var(--font-head);text-align:center;color:var(--pink-deep);margin:20px 0 0;font-size:5rem}.board{margin:10px 0;padding:0;list-style:none}.lane{background:var(--card);border:2px solid var(--paper-deep);border-radius:12px;align-items:center;gap:12px;margin:6px 0;padding:8px 10px;display:flex}.lane>div{flex:1}.place{font-family:var(--font-head);text-align:center;min-width:1.6em;color:var(--ink-soft);font-size:1.3rem}.place.p1{color:var(--pink-deep)}.place.p2{color:var(--mascot-2)}.place.p3{color:var(--butter)}.name{font-weight:700}.status{text-align:right;min-width:3.5em;font-weight:700}.status.answered{color:var(--pink-deep)}.status.thinking{color:var(--ink-soft)}.robots-divider{color:var(--ink-soft);margin:12px 0 2px;font-weight:700}.race-head{justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.timer{font-family:var(--font-head);color:var(--pink-deep);font-size:1.3rem}.winners-head{justify-content:center;align-items:center;gap:12px;margin:8px 0;display:flex}.teacher-game .stage{grid-template-columns:1.4fr 1fr;align-items:start;gap:20px;display:grid}.teacher-game .emoji-big{font-size:7rem}.teacher-game .order{font-size:3.2rem}.teacher-game .board-box h2{margin-top:0}.kid-game .order-box{text-align:center}.family-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:8px;display:grid}.family{background:var(--sky-soft);border-radius:14px;padding:10px 12px}.family-token{font-family:var(--font-head);color:var(--pink-deep);font-size:1.8rem;display:block}.family-text{color:var(--ink-soft);font-size:.9rem}.tap-summary{min-height:var(--tap);cursor:pointer;align-items:center;font-weight:700;display:flex}details.learn{margin-top:12px}.wiggle{animation:.32s ease-in-out wiggle}@media (width<=620px){.teacher-game .stage{grid-template-columns:1fr}.big-cards{grid-template-columns:repeat(2,1fr)}.order{font-size:2.1rem}.emoji-big{font-size:4.5rem}}
