.bingo-zone{display:grid;place-items:center;width:100%}
.bingo-tiles{width:min(100%,58cqh,455px);gap:clamp(2px,.9vmin,8px)}
.bingo-tiles button{font-size:clamp(8px,2.85vmin,19px);overflow-wrap:normal;word-break:normal}
.bingo-call{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.45em}
.bingo-call button{min-height:25px}
.shape-icon{font-size:clamp(15px,8cqh,39px);line-height:1}
.fraction-model{display:inline-flex;gap:2px;background:#eddefb;border:1px solid #8b63c7;border-radius:5px;padding:2px;min-width:4em}
.fraction-model i{flex:1;height:1em;border:1px solid #bfb2e6;background:#fff;border-radius:2px}
.fraction-model .shaded{background:linear-gradient(#ff9ac5,#ef48a5)}
.money-clue,.base-clue{display:inline-flex;align-items:center;justify-content:center;gap:3px;font-size:.68em;flex-wrap:wrap}
.money-clue b,.base-clue b,.reading-clue{padding:.23em .48em;border-radius:5px;background:#e1f9d8;border:1px solid #8fd588}
.money-clue .coin{border-radius:50%;background:#ffe392;border-color:#daa642}
.flag-clue{font-size:1.25em;line-height:1}
@media(max-height:400px){.bingo-tiles{width:min(100%,67cqh,330px)}.bingo-call{font-size:clamp(12px,4vmin,17px)}.bingo-tiles button{font-size:clamp(8px,2.7vmin,14px)}}
:root{font-family:"Nunito",system-ui,sans-serif;color:#211348;background:#29205c;color-scheme:light;--hot:#7547ec;--deep:#302167;--ice:#eee9ff}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden}
button,input,select,textarea{font:inherit}
button,select{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #148cf8;outline-offset:2px}
button:disabled{opacity:.44;cursor:default;transform:none}
#club{height:100%;height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(4px,1.1vmin,12px);padding:clamp(5px,1.6vmin,17px);position:relative;isolation:isolate;background:linear-gradient(135deg,#9aeafb,#d7d0ff 70%,#ffc9e8)}
#club::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,#24206080,#48329444),var(--world) center/cover}
#boot{place-self:center;color:#fff;text-align:center;align-self:center;grid-row:2;text-shadow:0 2px 5px #282050}
#boot strong{font-size:clamp(30px,8vmin,68px)}
.club-header,.club-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;position:relative;z-index:2;background:#fff4df;border:2px solid #fff5;box-shadow:0 3px 0 #2d215451,0 8px 24px #1e184431;border-radius:clamp(10px,2.5vmin,24px);padding:clamp(3px,1.2vmin,12px) clamp(5px,1.8vmin,18px)}
.club-header h1{font-size:clamp(12px,3.9vmin,33px);line-height:1.05;margin:0;font-weight:900;min-width:0}
.club-header h1 span{margin-right:.24em}
.club-header .controls{justify-content:flex-end;flex-wrap:nowrap;flex:none}
.club-footer{min-height:2.15rem;justify-content:flex-start;background:#fff8e9;color:#39216c;font-size:clamp(11px,2.65vmin,17px);font-weight:800;line-height:1.13;overflow-wrap:anywhere}
.club-footer::before{content:"✦";color:#a65cff;font-size:1.35em}
.club-footer[data-tone=success]{color:#155237;background:#edffd6}
.club-footer[data-tone=retry]{color:#783b2e;background:#fff1da}
.club-main{min-width:0;min-height:0;border-radius:clamp(11px,2.8vmin,28px);border:2px solid #fff9;box-shadow:0 6px 0 #25194c55,0 12px 35px #170d4470;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:clamp(3px,1.7vmin,15px);background:linear-gradient(145deg,#fff9e9f5,#f8eefff3);container-type:size}
.club-main > *{min-width:0;max-width:100%}
.controls,.options{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:clamp(4px,1vmin,10px)}
button{color:#37236d;font-weight:850;min-height:30px;border:1px solid #6948b531;border-radius:11px;background:linear-gradient(#fff,#eee6ff);box-shadow:0 2px 0 #baa5e0;padding:.38em .68em;font-size:clamp(11px,2.6vmin,16px);line-height:1.15;touch-action:manipulation}
button:not(:disabled):active{transform:translateY(2px);box-shadow:none}
button.primary,button.selected{color:white;border-color:#ad8ff5;background:linear-gradient(#a678ff,#5a31d2);box-shadow:0 2px 0 #4a2199}
button.gold{color:#4b2a25;border-color:#ffdf74;background:linear-gradient(#fff093,#ffc444);box-shadow:0 2px 0 #d48d2c}
button.good{color:#0c503a;background:#9df7be;box-shadow:0 2px 0 #60be91}
button.wrong{color:#8f364b;background:#ffdce5}
button.icon{width:clamp(28px,8vmin,52px);min-height:clamp(27px,7.7vmin,50px);padding:0;font-size:clamp(13px,4vmin,23px)}
button.tiny{font-size:clamp(10px,2.6vmin,13px);padding:.23em .42em;min-height:22px}
.picker{display:flex;align-items:center;justify-content:center;gap:.35em;font-weight:750;font-size:clamp(10px,2.4vmin,14px)}
select,input,textarea{color:#251953;background:#fffdf6;border:1px solid #c3afea;border-radius:8px;padding:.28em .45em;max-width:100%;min-width:0}
.controls select{min-height:25px}
.stack{min-width:0;min-height:0;width:min(100%,720px);height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(3px,1.2vmin,11px)}
.stack > *{max-width:100%}
.stack p{margin:0;text-align:center}
.prompt{text-align:center;font-size:clamp(14px,4.3vmin,30px);font-weight:900;line-height:1.13;color:#311963}
.stat{font-size:clamp(10px,2.8vmin,15px);font-weight:850;color:#503482;text-align:center}
.hint{font-size:clamp(10px,2.5vmin,14px);color:#4c4165;text-align:center}
.tiles{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:clamp(3px,1.1vmin,9px);width:min(100%,66cqh,550px);min-width:0}
.tiles button{width:100%;min-height:0;aspect-ratio:1;padding:1px;overflow:hidden;display:grid;place-items:center;font-size:clamp(9px,3.4vmin,22px);overflow-wrap:anywhere;text-align:center}
.tiles.dense{gap:2px;width:min(100%,77cqh,450px)}
.tiles.dense button{font-size:clamp(8px,2.75vmin,16px);border-radius:5px}
.play-canvas{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:13px;touch-action:none;box-shadow:0 3px 0 #603f9b35;background:#e3eff9}
.stack>.play-canvas{flex:1;min-height:0;align-self:center;aspect-ratio:var(--canvas-aspect,1.8)}
.dialog-backdrop{position:absolute;inset:0;display:grid;place-items:center;background:#25174499;z-index:4;border-radius:inherit;padding:6px}
.dialog{display:grid;justify-items:center;text-align:center;gap:8px;max-width:min(440px,95%);max-height:100%;background:linear-gradient(#fff6d9,#f6ebff);padding:clamp(7px,3vmin,27px);border:2px solid white;border-radius:20px;box-shadow:0 6px 0 #4a2b8b,0 12px 24px #170f42aa}
.dialog h2,.dialog p{margin:0}
.dialog h2{font-size:clamp(15px,4.2vmin,30px);color:#3e217e}
.dialog p{font-size:clamp(11px,2.75vmin,16px);font-weight:750}
.star-line{font-size:clamp(19px,6vmin,45px);color:#dc831d;text-shadow:0 2px 0 #ffe970;letter-spacing:.12em}
.learning-burst{position:absolute;inset:50% auto auto 50%;pointer-events:none;z-index:5}
.learning-burst i{position:absolute;width:9px;height:9px;background:var(--color);clip-path:polygon(50% 0,62% 35%,100% 35%,70% 57%,81% 100%,50% 74%,19% 100%,30% 57%,0 35%,38% 35%);animation:club-burst .74s ease-out both}
@keyframes club-burst{to{transform:translate(var(--dx),var(--dy)) rotate(120deg);opacity:0}}
@media(max-width:420px){.club-header h1{font-size:clamp(12px,4.2vw,19px)}.club-main{padding:4px}.controls{gap:4px}}
@media(max-height:370px){.club-footer{min-height:22px}.club-main{padding:3px}.club-header{padding:2px 5px}.club-header .icon{min-height:24px}.controls{gap:4px}.stack{gap:3px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{#club{display:block;height:auto;background:white;padding:0}#club::before,.club-header .controls,.club-footer,.club-main .controls,.dialog-backdrop{display:none}.club-main{min-height:450px;box-shadow:none;border:0}.club-header{background:white;box-shadow:none}html,body{overflow:visible;height:auto}}
.grammar-scene{position:relative;display:grid;place-items:center;overflow:hidden;width:min(95%,560px);min-height:36px;height:33cqh;flex:0 1 auto;background:radial-gradient(circle at 50% 0,#fefac7,#ab97fc 68%,#7962c7);border:2px solid #fff;border-radius:18px;box-shadow:0 3px 0 #8d68c44d}
.grammar-scene[data-scene=crystal-cave]{background:radial-gradient(circle at 50% 80%,#72deff,#403478 75%)}
.grammar-scene[data-scene=sandstone-steps],.grammar-scene[data-scene=temple]{background:radial-gradient(circle at 50% 20%,#fff2b4,#ef9a63 75%)}
.grammar-scene[data-scene=dragon]{background:radial-gradient(circle at 50% 60%,#f9c785,#50267e 75%)}
.scene-item{font-size:clamp(28px,20cqh,125px);filter:drop-shadow(0 5px 9px #311c5e62);animation:floaty 3s ease-in-out infinite alternate}
.trail-spark{position:absolute;top:14%;left:24%;font-size:clamp(10px,5cqh,30px);color:#ffef81}
@keyframes floaty{to{transform:translateY(-5%)}}
.grammar-words button{font-size:clamp(13px,3.4vmin,23px)}
.typing-arena{position:relative;width:100%;flex:1;min-height:0;display:grid;place-items:center;border:2px solid #a389e2;border-radius:15px;overflow:hidden;background:radial-gradient(ellipse at 50% 86%,#ffdbba,#9eb6fd 58%,#423081);isolation:isolate}
.rocket-arena{background:radial-gradient(ellipse at 50% 100%,#6a42ba,#1a2567 64%,#131b4c)}
.ghost-arena{background:radial-gradient(ellipse at 50% 100%,#b487d8,#37275a 64%,#211637)}
.typing-arena::before{content:"✦　　　 ·　　 ✧　　　·　　✧";position:absolute;top:8%;left:8%;color:#fff5ba;z-index:-1}
.typing-target{position:absolute;display:grid;place-items:center;left:calc(12.5% + var(--lane)*25%);bottom:calc(4% + var(--progress)*82%);transform:translateX(-50%);line-height:1;text-shadow:0 2px 3px #130738;color:#fff;font-size:clamp(14px,4vmin,29px);font-weight:900}
.ghost-arena .typing-target{bottom:calc(82% - var(--progress)*72%);scale:calc(.76 + var(--progress)*.35)}
.typing-target .target-art{font-size:clamp(20px,8vmin,66px)}
.typed{color:#6affb9}
.keyboard{width:min(100%,640px);display:grid;gap:3px}
.keyboard div{display:flex;justify-content:center;gap:3px}
.keyboard button{min-width:0;width:9.5%;min-height:clamp(18px,6vmin,35px);padding:0}
.cup-arena{display:flex;flex-direction:column;justify-content:center;gap:2px}
.cup-row{display:flex;justify-content:center;gap:3px}
.cup{width:clamp(20px,11cqh,52px);height:clamp(15px,9cqh,42px);display:grid;place-items:center;clip-path:polygon(7% 0,93% 0,79% 100%,21% 100%);font-weight:900;color:#281563;background:#eee5ff55;border-radius:6px}
.cup.stacked{background:linear-gradient(#ffa0dd,#c357dd)}
.cup.current{background:linear-gradient(#ffed9b,#ffae49);color:#421d2c}
.word-puzzle{display:grid;place-items:center;width:100%;min-height:0}
.tiles.word-grid{touch-action:none;user-select:none;width:min(100%,61cqh,430px)}
.word-grid button{touch-action:none;min-width:0}
.word-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}
.word-bank span{background:#f0e4ff;border:1px solid #d6bbf4;padding:2px 5px;font-weight:800;font-size:clamp(9px,2.4vmin,14px);border-radius:6px}
.word-bank .found{text-decoration:line-through;background:#d7f6cf;color:#234b24}
@media(max-height:400px){.tiles.word-grid{width:min(100%,58cqh,330px)}.words input{font-size:11px}.word-bank{gap:2px}}
.swatches{gap:4px}
button.swatch{background:var(--swatch);min-height:0;aspect-ratio:1;width:clamp(16px,5.4vmin,34px);padding:0;border:2px solid #fff;box-shadow:0 1px 0 #7359a9}
.stamps button{font-size:clamp(12px,4vmin,24px);padding:1px 5px;min-height:23px}
.studio .controls input{max-width:min(180px,70%)}
.studio .play-canvas{width:auto;min-width:0}
@media(max-height:400px){.studio .picker select{min-height:21px}.studio .controls button,.stamps button{min-height:20px}.swatches button{min-height:0}.studio .controls input{font-size:10px}}
.math-board{width:100%;display:grid;place-items:center;min-height:0}
.math-board .tiles:not(.dense){width:min(100%,85cqh,540px)}
.birds button{font-size:clamp(14px,4.1vmin,29px)}
.bird-rail,.map-shards{display:flex;justify-content:center;gap:4px;width:min(100%,620px)}
.bird-rail span,.map-shards span{flex:1;min-width:0;background:#e9d9fc;padding:.5em .1em;text-align:center;border-radius:8px;font-weight:900;font-size:clamp(11px,3.1vmin,21px)}
.map-shards .revealed{background:#ffdd7a}
.race-course{width:min(100%,650px);height:47cqh;border-radius:18px;overflow:hidden;border:2px solid #8d77d0;display:grid;grid-template-rows:repeat(3,1fr);background:linear-gradient(135deg,#302861,#6565be)}
.race-lane{position:relative;border-bottom:1px dashed #fff9;border-right:10px solid #ffdb63}
.race-lane span{position:absolute;top:50%;transform:translateY(-50%);transition:left .1s linear;font-size:clamp(17px,8vmin,51px)}
.fraction-monster{font-size:clamp(36px,21cqh,135px);transform:scale(var(--grow,1));line-height:1.25}
.critter-graph{display:flex;align-items:flex-end;justify-content:center;gap:9px;height:48cqh;width:90%;max-width:560px}
.graph-item{display:grid;text-align:center;gap:3px;flex:1;min-width:0;font-size:clamp(10px,2.7vmin,16px)}
.graph-column{display:flex;flex-direction:column;justify-content:flex-end;gap:2px}
.graph-column span{border-radius:5px;background:var(--bar);font-size:clamp(13px,6.5cqh,33px);line-height:1.12}
.critter-reward{font-size:clamp(34px,34cqh,160px);color:#8adddf;align-self:center;text-shadow:0 3px 0 #36215f}
.bond-machine{display:grid;justify-items:center;gap:4px;padding:5px;background:#d8c3ff;border-radius:14px;width:min(80%,340px);font-weight:900;color:#6747b9}
.bond-machine b{display:inline-grid;place-items:center;width:clamp(25px,13cqh,66px);aspect-ratio:1;border-radius:50%;background:#fff5b0;border:2px solid #f4c754;font-size:clamp(13px,6vmin,35px);color:#592d70;margin:0 8px}
.orb-track{min-height:35px;padding:5px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;background:#241b57;border-radius:30px}
.orb-track span{width:clamp(22px,8vmin,52px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 25% 18%,#dff9fe,#73bef6 55%,#7662e8);display:grid;place-items:center;font-weight:900}
.orb-track span:last-child{background:radial-gradient(circle at 25% 18%,#fff6bc,#f9bb58 58%,#dd7e57)}
.hoop-court{height:35cqh;width:min(100%,450px);border-radius:15px;background:linear-gradient(#afe4ff 61%,#ffa66f 61%);position:relative;display:grid;place-items:center}
.hoop-court::before{content:"";position:absolute;width:16%;height:28%;top:19%;right:15%;background:#fff;border:3px solid #7863ab;border-radius:5px}
.hoop-court::after{content:"";position:absolute;width:10%;height:15%;top:42%;right:18%;border:3px solid #e67f3d;border-top-width:5px;border-radius:20% 20% 50% 50%}
.hoop-court span{font-size:clamp(22px,9cqh,48px);position:absolute;left:14%;bottom:13%}
.shot-made span{left:74%;bottom:44%;transition:left .35s,bottom .35s}
.shot-meter{width:min(70%,290px);height:12px;position:relative;border-radius:8px;background:linear-gradient(to right,#ed869d 31%,#9bea9b 31% 69%,#ed869d 69%)}
.shot-meter i{position:absolute;left:calc(var(--meter,0)*100%);width:4px;top:0;bottom:0;background:#311b59;border-radius:2px}
.tiles.number-chart{width:min(100%,64cqh,440px)}
.chart-sunshine{background:#ffe795}.chart-mint{background:#b5f1cc}.chart-sky{background:#bce9ff}.chart-rose{background:#ffc4e0}
.quiz-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;font-size:clamp(9px,2.4vmin,15px)}
.quiz-review span{padding:3px 5px;border-radius:5px;background:#f7e6ee}
.quiz-review .right{background:#d7f7d9}
.logic-grid{display:grid;place-items:center;width:100%;min-height:0}
.logic-grid .tiles{width:min(100%,76cqh,475px)}
.logic-grid .tiles button:disabled{opacity:.85}
.logic-grid .gate{background:#ffc996}
.logic-grid .rock{background:#afa3cb}
.logic-grid .wet{background:#a2e5ff}
.factory-samples{display:flex;justify-content:center;gap:9px;width:100%;text-align:center}
.factory-samples > div{min-width:0;font-size:clamp(10px,2.8vmin,17px)}
.factory-critter{border:3px solid #62508d;border-radius:43% 43% 34% 34%;overflow:hidden;width:clamp(57px,34cqh,200px);aspect-ratio:1;display:grid;grid-template-columns:1fr 1fr}
.factory-critter span{display:grid;place-items:center;color:#433261;font-size:clamp(12px,7cqh,40px)}
.order-pizza{width:min(56cqh,230px);min-height:32px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffdc70 0 74%,#ffb76c 75%);border:4px solid #d89150;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;padding:12%;font-size:clamp(18px,5vmin,34px)}
.dreidel{width:min(31cqh,134px);aspect-ratio:1;border-radius:18px;background:linear-gradient(#ffeec5,#edb567);border:4px solid #ffd991;display:grid;place-items:center;font-size:clamp(25px,13cqh,70px);font-weight:900;color:#64462b;box-shadow:0 5px 0 #9a733f}
.spinning{animation:turn .49s linear}
@keyframes turn{to{transform:rotateY(720deg)}}
.tech-items{max-width:100%;gap:6px}
.safety-answers{display:grid;gap:6px;max-width:95%}
.safety-shield{font-size:clamp(20px,11cqh,68px)}
.club-main{background:linear-gradient(145deg,#fff9e9dc,#f3e8ffe9)}
[data-group=math] .club-main{background:linear-gradient(150deg,#fff9dce8,#eaf1ffe8)}
[data-group=literacy] .club-main{background:linear-gradient(150deg,#e9ffdfe8,#e8f2ffe8)}
[data-group=typing] .club-main{background:linear-gradient(150deg,#edecffe8,#d5d6ffe8)}
[data-group=creative] .club-main{background:linear-gradient(150deg,#fff4e2e8,#ffe5f5e8)}
[data-group=science] .club-main{background:linear-gradient(150deg,#e1fbffe8,#dcf6e5e8)}
.critter-shelf{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.critter-shelf span{display:grid;place-items:center;width:clamp(12px,5vmin,28px);aspect-ratio:1;background:#e1d3f0;color:#745b9b;border-radius:45%;font-weight:900}
.critter-shelf .earned{background:var(--badge);box-shadow:0 2px 0 #4934694a;color:#412157}
.order-pizza{padding:10px}
.bingo-tiles{width:min(100%,61cqh,455px)}
@media(max-height:400px){.bingo-tiles{width:min(100%,54cqh,330px)}}
@media(max-height:355px){
  [data-engine=chart] .math{display:grid;grid-template-columns:minmax(75px,1fr) minmax(0,3fr);grid-template-rows:auto minmax(0,1fr);align-items:center}
  [data-engine=chart] .math > .stat{grid-column:1/-1}
  [data-engine=chart] .math > .controls{display:grid;justify-items:start}
  [data-engine=chart] .math .picker{display:grid;justify-items:start;text-align:left;font-size:10px}
  [data-engine=chart] .math select{max-width:100%;min-height:19px;padding:1px 3px}
  [data-engine=chart] .math-board{align-self:stretch;min-width:0}
  .tiles.number-chart{width:min(100%,265px);height:min(100%,265px);grid-auto-rows:minmax(0,1fr)}
  .tiles.number-chart button{height:100%;aspect-ratio:auto}
}
[data-quiet] *,[data-quiet] *::before,[data-quiet] *::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
.club-footer .asset-credits{margin-left:auto;font-size:.8em;color:#563786;white-space:nowrap;flex:none}
