/* /warm-ups (server/warmups.js, public/site/warmups.js): one themed stage per level */
.wu-tabs{display:flex;flex-wrap:wrap;gap:10px}
.wu-tab{display:grid;padding:10px 16px;border:3px solid #1b1340;border-radius:18px;background:var(--wu-bg,#fff);font:800 16px var(--cm-ui,system-ui);color:#1b1340;text-decoration:none;box-shadow:3px 3px 0 #1b1340;transition:transform .15s}
.wu-tab small{font:600 12px var(--cm-ui,system-ui);color:var(--wu-accent,#6c4de6)}.wu-tab:hover{transform:translate(-1px,-2px) rotate(-1deg)}
.wu-level h2 em{font-style:normal;color:var(--wu-accent)}
.wu-stage{position:relative;padding:22px clamp(14px,3vw,30px) 20px;border:4px solid #1b1340;border-radius:30px;background:radial-gradient(circle,rgba(27,19,64,.07) 1.4px,transparent 2px) 0 0/16px 16px,var(--wu-bg,#fffaf0);box-shadow:8px 8px 0 #1b1340;overflow:hidden}
.wu-stage.timing{border-color:#ff5d8f}
.wu-stage:fullscreen{display:flex;flex-direction:column;justify-content:center;padding:4vw 6vw}
.wu-stage:fullscreen .wu-q{font-size:clamp(30px,4.4vw,58px)}
.wu-deco span{position:absolute;font-size:34px;opacity:.55;top:calc(8% + var(--i) * 22%);right:calc(2% + (var(--i) * 7%) * (var(--i) - 1.5) / 2);animation:wu-float 5s ease-in-out infinite;animation-delay:calc(var(--i) * -1.2s);pointer-events:none}
.wu-deco span:nth-child(odd){left:2%;right:auto}
@keyframes wu-float{50%{transform:translateY(-10px) rotate(8deg)}}
.wu-host{position:relative;display:flex;align-items:flex-start;gap:12px;max-width:760px;margin:0 auto 14px}
.wu-mascot{flex:none;display:grid;place-items:center;width:78px;height:78px;border:3px solid #1b1340;border-radius:50%;background:#fff;font-size:44px;box-shadow:3px 3px 0 #1b1340}
.wu-mascot.hop{animation:wu-hop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes wu-hop{40%{transform:translateY(-12px) rotate(-6deg)}}
.wu-bubble{position:relative;flex:1;margin:6px 0 0;padding:12px 16px;border:3px solid #1b1340;border-radius:20px;background:#fff;font:700 clamp(16px,1.8vw,19px)/1.45 var(--cm-ui,system-ui);color:#1b1340}
.wu-bubble::before{content:"";position:absolute;left:-12px;top:18px;width:18px;height:18px;background:#fff;border-left:3px solid #1b1340;border-bottom:3px solid #1b1340;transform:rotate(45deg)}
.wu-bubble.yay{background:#c9f7e6}.wu-bubble.yay::before{background:#c9f7e6}.wu-bubble.hmm{background:#fff3bf}.wu-bubble.hmm::before{background:#fff3bf}
.wu-card{position:relative;max-width:760px;margin:0 auto;padding:22px 24px;border:3px solid #1b1340;border-radius:24px;background:#fff;box-shadow:5px 5px 0 var(--wu-accent,#1b1340);overflow:hidden}
.wu-card.wu-in{animation:wu-pop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes wu-pop{from{opacity:0;transform:scale(.92) rotate(-1.5deg)}}
.wu-card.spinning .wu-q{filter:blur(1px);opacity:.75}
.wu-eyebrow{display:inline-block;margin:0 0 8px;padding:4px 12px;border-radius:999px;background:var(--wu-accent,#6c4de6);color:#fff;font:800 13px var(--cm-ui,system-ui);letter-spacing:.03em}
.wu-q{margin:4px 0 14px;font:800 clamp(22px,3vw,32px)/1.3 var(--cm-ui,system-ui);color:#1b1340}
.wu-play{display:grid;gap:12px;margin-bottom:12px}
.wu-tiles{display:grid;gap:10px}.wu-tiles.n4{grid-template-columns:repeat(4,minmax(0,1fr))}.wu-tiles.n2,.wu-tiles.n3{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
body.comic .wu-stage .wu-tile{min-height:84px;padding:12px;border:3px solid #1b1340;border-radius:18px;background:#fffaf0;font:800 clamp(20px,2.6vw,30px)/1.2 var(--cm-ui,system-ui);color:#1b1340;cursor:pointer;box-shadow:0 4px 0 #1b1340;transition:transform .12s}
body.comic .wu-stage .wu-tile:hover:not(:disabled){transform:translateY(-3px) rotate(-1deg);background:#fff3bf}
body.comic .wu-stage .wu-tile.picked{background:var(--wu-accent);color:#fff}body.comic .wu-stage .wu-tile.right{background:#c9f7e6;border-color:#1f9d6b}body.comic .wu-stage .wu-tile.wrong{background:#ffd0dc}
.wu-splat{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:40px}
.wu-blob{display:grid;place-items:center;width:110px;height:90px;border-radius:46% 54% 42% 58% / 55% 40% 60% 45%;background:var(--wu-accent,#ff5d8f);color:#fff;font:400 44px var(--cm-display,Impact,sans-serif);box-shadow:inset -8px -8px 0 rgba(0,0,0,.15);animation:wu-wobble 2.4s ease-in-out infinite}
.wu-blob.open{animation:wu-pop .4s;background:#2f9e44}@keyframes wu-wobble{50%{border-radius:58% 42% 55% 45% / 45% 58% 42% 55%}}
.wu-guess{display:flex;flex-wrap:wrap;gap:10px}.wu-guess input{width:140px;padding:10px 14px;border:3px solid #1b1340;border-radius:14px;font:800 24px var(--cm-ui,system-ui)}
.wu-pic{padding:12px;border:2px dashed #1b1340;border-radius:16px;font-size:32px;line-height:1.4;letter-spacing:4px;transition:opacity .4s}.wu-pic.gone{opacity:0}
.wu-slider{display:flex;align-items:center;gap:14px}.wu-slider input{flex:1;accent-color:var(--wu-accent,#6c4de6);height:28px}
.wu-val{min-width:84px;padding:6px 12px;border:3px solid #1b1340;border-radius:12px;background:#fff3bf;font:800 26px var(--cm-ui,system-ui);text-align:center}
.wu-play>.btn{justify-self:start}
.wu-answer{margin:6px 0 8px;padding:12px 16px;border:3px solid #1b1340;border-radius:16px;background:#c9f7e6;font:700 18px/1.5 var(--cm-ui,system-ui)}
.wu-tip{margin:0;font-size:15px;color:#5b5277}
.wu-confetti{position:absolute;top:-10px;left:var(--x);font-size:24px;pointer-events:none;animation:wu-fall var(--d) ease-in forwards}
@keyframes wu-fall{to{transform:translateY(340px) rotate(var(--r));opacity:0}}
.wu-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:760px;margin:16px auto 0}
.wu-all{margin-top:16px;padding:12px 16px;border:2px solid #1b1340;border-radius:16px;background:#fff}
.wu-all summary{cursor:pointer;font-weight:700}.wu-all ol{margin:10px 0 0;padding-left:22px}.wu-all li{margin:12px 0}.wu-all p{margin:2px 0 0}
.wu-kind{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--wu-bg,#f3efff);font:700 12px var(--cm-ui,system-ui)}
.wu-small{font-size:14px;color:#5b5277}
@media(max-width:620px){.wu-tiles.n4{grid-template-columns:1fr 1fr}.wu-mascot{width:60px;height:60px;font-size:34px}.wu-deco{display:none}}
@media(prefers-reduced-motion:reduce){.wu-deco span,.wu-blob,.wu-mascot.hop,.wu-card.wu-in{animation:none}}
