*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{--purple:#7c3aed;--pink:#ec4899;--ink:#2b1d4e;--bg1:#fde68a;--bg2:#a7f3d0;--bg3:#bfdbfe;
--fish:#0ea5e9;--amph:#22c55e;--rept:#a16207;--bird:#f97316;--mamm:#e11d48;--ins:#7c3aed;--none:#64748b}
html,body{margin:0;min-height:100%;overflow-x:hidden}
body{font-family:"Varela Round","Rubik","Arial Rounded MT Bold",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);
background:linear-gradient(160deg,var(--bg1) 0%,#fbcfe8 45%,var(--bg3) 100%);background-attachment:fixed;font-size:18px;line-height:1.4}
#app{max-width:520px;margin:0 auto;padding:14px 16px calc(24px + env(safe-area-inset-bottom));min-height:100vh;min-height:100dvh}
.screen{display:none;flex-direction:column;gap:14px;animation:pop .35s ease}
.screen.active{display:flex}
@keyframes pop{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
h1,h2{font-family:"Rubik","Varela Round",sans-serif;font-weight:800;margin:0;text-align:center}
h1{font-size:40px;line-height:1.1;color:var(--purple);text-shadow:3px 3px 0 #fff,5px 5px 0 rgba(236,72,153,.35);margin-top:4px}
h2{font-size:30px;color:var(--purple)}
.hero{font-size:44px;text-align:center;letter-spacing:4px;margin-top:10px;animation:bob 2.6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-6px)}}
.sub{text-align:center;margin:0;font-size:19px}
button{font-family:inherit;color:inherit;cursor:pointer;border:0}
button:focus-visible{outline:4px solid #1d4ed8;outline-offset:3px}
.levels{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.level-btn{display:flex;align-items:center;gap:12px;text-align:right;padding:16px;border-radius:22px;color:#fff;
box-shadow:0 6px 0 rgba(0,0,0,.18);transition:transform .1s;min-height:84px}
.level-btn:active{transform:translateY(4px);box-shadow:0 2px 0 rgba(0,0,0,.18)}
.level-btn b{display:block;font-family:"Rubik",sans-serif;font-size:21px}
.level-btn small{display:block;font-size:15px;opacity:.95}
.level-btn>span:nth-child(2){flex:1}
.lv-emoji{font-size:38px;background:rgba(255,255,255,.25);border-radius:16px;width:58px;height:58px;display:grid;place-items:center;flex-shrink:0}
.lv-stars{font-size:16px;white-space:nowrap}
.l1{background:linear-gradient(135deg,#06b6d4,#3b82f6)}
.l2{background:linear-gradient(135deg,#22c55e,#16a34a)}
.l3{background:linear-gradient(135deg,#f97316,#ec4899)}
.link-btn{background:rgba(255,255,255,.7);border-radius:999px;padding:12px 18px;font-size:17px;align-self:center;min-height:48px}
.big-btn{background:var(--purple);color:#fff;font-size:21px;font-family:"Rubik",sans-serif;font-weight:700;border-radius:20px;padding:15px 20px;
box-shadow:0 5px 0 #5b21b6;min-height:58px;width:100%}
.big-btn:active{transform:translateY(3px);box-shadow:0 2px 0 #5b21b6}
.big-btn.alt{background:var(--pink);box-shadow:0 5px 0 #be185d}
.learn-list{display:flex;flex-direction:column;gap:10px}
.learn-item{background:#fff;border-radius:18px;padding:12px 14px;border-right:10px solid var(--c);box-shadow:0 3px 10px rgba(0,0,0,.08)}
.learn-item h3{margin:0 0 4px;font-family:"Rubik",sans-serif;font-size:20px;color:var(--c)}
.learn-item p{margin:0;font-size:16px}
.learn-item .ex{margin-top:4px;font-size:15px;opacity:.85}
.topbar{display:flex;align-items:center;gap:10px}
.icon-btn{background:#fff;border-radius:14px;width:48px;height:48px;font-size:22px;flex-shrink:0;box-shadow:0 3px 0 rgba(0,0,0,.12)}
.progress{flex:1;height:14px;background:rgba(255,255,255,.7);border-radius:99px;overflow:hidden}
#progress-fill{height:100%;width:0;background:linear-gradient(90deg,#22c55e,#facc15);border-radius:99px;transition:width .4s}
.score-pill{background:#fff;border-radius:999px;padding:8px 14px;font-weight:700;font-family:"Rubik",sans-serif;box-shadow:0 3px 0 rgba(0,0,0,.12);white-space:nowrap}
.meta{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:16px;min-height:28px}
.streak:empty{display:none}
.streak{background:#fff;border-radius:99px;padding:2px 10px;color:#c2410c}
.streak.hot{animation:pulse .6s ease}
@keyframes pulse{50%{transform:scale(1.25)}}
.card{background:#fff;border-radius:28px;padding:18px 16px 20px;text-align:center;box-shadow:0 8px 0 rgba(124,58,237,.25),0 10px 30px rgba(0,0,0,.08);position:relative}
.q-counter{font-size:14px;opacity:.7}
.q-emoji{font-size:92px;line-height:1.15;margin:4px 0;animation:bob 2.4s ease-in-out infinite}
.q-emoji.clue{font-size:56px}
.q-text{font-family:"Rubik",sans-serif;font-weight:700;font-size:26px}
.q-text.clue-text{font-size:22px;line-height:1.35}
.q-hint{font-size:16px;opacity:.75;margin-top:4px}
.card.shake{animation:shake .45s}
@keyframes shake{20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}
.card.yay{animation:yay .5s}
@keyframes yay{50%{transform:scale(1.06) rotate(-1deg)}}
.answers{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.answers.two{grid-template-columns:1fr}
.ans{background:var(--c,#7c3aed);color:#fff;border-radius:20px;padding:12px 8px;min-height:68px;font-family:"Rubik",sans-serif;font-weight:700;font-size:20px;
display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 5px 0 rgba(0,0,0,.22);transition:transform .1s,opacity .2s}
.ans .e{font-size:26px}
.answers.two .ans{min-height:76px;font-size:22px}
.ans:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(0,0,0,.22)}
.ans.wide{grid-column:1/-1;min-height:54px;font-size:18px}
.ans:disabled{cursor:default}
.ans.dim{opacity:.35}
.ans.right{outline:5px solid #facc15;outline-offset:-2px;opacity:1}
.ans.wrong{outline:5px solid #111;outline-offset:-2px}
.feedback{border-radius:22px;padding:14px;display:flex;flex-direction:column;gap:8px;animation:pop .3s}
.feedback[hidden]{display:none}
.feedback.good{background:#dcfce7;border:3px solid #22c55e}
.feedback.bad{background:#fff1f2;border:3px solid #fb7185}
.fb-title{font-family:"Rubik",sans-serif;font-weight:800;font-size:22px}
.fb-text{font-size:18px}
.end-emoji{font-size:90px;text-align:center;margin-top:20px;animation:bob 2s infinite}
.end-stars{font-size:56px;text-align:center;letter-spacing:6px}
.end-stars .off{filter:grayscale(1);opacity:.3}
.end-stars span{display:inline-block;animation:starIn .5s both}
.end-stars span:nth-child(2){animation-delay:.25s}.end-stars span:nth-child(3){animation-delay:.5s}
@keyframes starIn{from{transform:scale(0) rotate(-90deg)}to{transform:none}}
.end-score{text-align:center;font-size:24px;font-weight:700;margin:0;font-family:"Rubik",sans-serif}
#confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:50}
.cf{position:absolute;top:-30px;font-size:22px;animation:fall linear forwards}
.cf.sq{width:10px;height:14px;border-radius:3px}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:.9}}
@media (max-height:700px){.q-emoji{font-size:70px}.hero{font-size:36px}h1{font-size:34px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
