:root{--ink:#16474d;--muted:#63807a;--teal:#238e91;--cream:#fffdf4;--line:#cedfd4;--display:'Fredoka',sans-serif;--body:'Nunito',sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:700 16px var(--body);background:#e5eddf;min-height:100dvh;background-image:radial-gradient(ellipse at 12% 20%,#fffdf5e0,transparent 45%),linear-gradient(150deg,#e5efdf 10%,#d7e8de 70%,#ecdfcb)}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:4px solid #237b9b;outline-offset:5px}button:disabled{cursor:default}button,svg{touch-action:manipulation}svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.room-light{position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(100deg,#fff9 0%,transparent 24%);opacity:.6}.topbar{max-width:1440px;margin:auto;min-height:108px;display:flex;justify-content:space-between;align-items:center;padding:20px 44px;gap:20px}.brand{border:0;background:none;display:flex;align-items:center;text-align:left;gap:12px;font:600 26px/.95 var(--display);letter-spacing:-.6px}.brand-star{display:block;color:#ecc34b;font-size:58px;text-shadow:0 3px 0 #d6a53a;transform:rotate(-10deg)}.brand-club{display:block;font:800 11px var(--body);letter-spacing:5px;margin-top:8px}.top-actions{display:flex;gap:20px;align-items:center}.preview-label{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:#5d7970}.icon-button{display:grid;place-items:center;width:55px;height:55px;border-radius:50%;border:3px solid #ffffffb0;background:#369ca0;color:white;box-shadow:0 4px 0 #24777d,0 9px 18px #23545315;transition:transform .18s}.icon-button:active{transform:translateY(3px)}.icon-button[data-muted=true]{background:#81958d;box-shadow:0 4px 0 #637b72}.icon-button[data-muted=true] .sound-waves{display:none}.layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:30px;max-width:1370px;margin:12px auto 50px;padding:0 40px;align-items:start}.glup-panel{position:sticky;top:38px;text-align:center;padding-top:75px}.speech{background:#fffef5;border:1px solid #fff;box-shadow:0 6px 20px #3b674a0c;padding:20px 18px;max-width:250px;min-height:84px;border-radius:25px;font:500 20px/1.3 var(--display);position:relative;margin:auto}.speech:after{content:'';position:absolute;bottom:-10px;left:50%;width:20px;height:20px;background:#fffef5;transform:rotate(45deg)}.sprite{display:block;background-image:url('assets/playroom-atlas.png');background-size:300% 300%;background-position:var(--x) var(--y);aspect-ratio:1;flex-shrink:0}.glup-button{border:0;background:none;padding:0;width:100%;margin-top:22px;position:relative}.glup-button:after{content:'';position:absolute;bottom:2%;left:20%;width:60%;height:10px;background:#6d755b20;border-radius:50%;filter:blur(6px);z-index:-1}.glup{width:100%;animation:breathe 4s ease-in-out infinite;transform-origin:50% 95%;transition:filter .2s}.glup.cheer{animation:hop .65s ease 2}.glup.think{animation:tilt .6s ease}.glup-name{font-size:9px;letter-spacing:1.5px;color:#72877c}.side-note{margin-top:38px;font:500 23px/1.3 var(--display);color:#719084}main{min-width:0;outline:none}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#61877a;margin:12px 0}h1{font:600 clamp(32px,3.5vw,49px)/1.05 var(--display);letter-spacing:-1px;margin:12px 0;color:#134a50}h2{font:600 26px var(--display);margin:12px 0}.subtitle{color:#5e7c73;font-size:15px;margin:12px 0 28px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.crumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:30px;font-size:13px;color:#6f867c}.crumb button{background:none;border:0;padding:6px 0;text-decoration:underline;text-underline-offset:4px}.crumb span{color:#84988f}.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tile{position:relative;border:2px solid #ffffffba;border-radius:26px;box-shadow:0 5px 0 #9faf9729,0 12px 20px #5b785e0a;overflow:hidden;background:var(--tile-color,#fff7e6);padding:12px 16px 19px;min-width:0;text-align:center;transition:transform .2s,box-shadow .2s}.tile:hover{transform:translateY(-5px);box-shadow:0 10px 0 #9faf9729,0 18px 22px #5b785e10}.tile:active{transform:translateY(2px)}.peach{--tile-color:#fff0d5}.mint{--tile-color:#e0efda}.lilac{--tile-color:#e9e1f3}.pink{--tile-color:#f8e0dc}.yellow{--tile-color:#faf0c7}.tile .sprite{width:min(100%,190px);margin:0 auto 3px;transition:transform .3s cubic-bezier(.2,.8,.3,1.4)}.tile:hover .sprite{transform:rotate(-4deg) scale(1.05)}.tile-title{display:block;font:600 clamp(18px,1.8vw,25px)/1.1 var(--display);margin:3px 0 7px}.tile-desc{display:block;color:#59766b;font-size:12px;line-height:1.5}.tile-count{font-size:11px;display:inline-block;margin-top:13px;background:#ffffff80;padding:5px 10px;border-radius:12px;color:#526d62}.grade-tiles{margin-top:30px;gap:20px}.grade-tiles .tile{padding:24px 16px}.grade-tiles .sprite{width:100%;max-width:230px}.grade-tiles .tile-title{font-size:27px;margin:12px 0}.grade-tag{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#738577;margin:10px 0}.pill{border:1px solid #c5d8cc;background:#fffcf0;padding:12px 18px;border-radius:18px;font-size:13px;box-shadow:0 3px 0 #b5cbb54d}.browse-all{margin-top:23px;text-align:center}.check-mark{position:absolute;top:10px;right:10px;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#257e76;color:white}.game-tile .sprite{width:125px}.game-tile .tile-title{font-size:21px}.game-tile{min-height:220px}.play-panel{margin-top:20px;background:#fffdf4e8;border:2px solid #fff;border-radius:30px;padding:28px 34px 32px;box-shadow:0 8px 0 #aec4ad25;min-height:430px;text-align:center;animation:enter .25s ease}.play-header{display:flex;justify-content:space-between;align-items:center;gap:15px;text-align:left}.play-header h1{font-size:28px;margin:0}.round-label{color:#7a8e80;font-size:12px;white-space:nowrap}.progress{display:flex;gap:7px;margin:22px 0 28px}.progress span{height:7px;border-radius:8px;background:#e0e8dc;flex:1}.progress span.done{background:#53a896}.question{font:500 clamp(22px,2.4vw,29px)/1.3 var(--display);max-width:640px;margin:18px auto}.question-visual{display:flex;align-items:center;justify-content:center;min-height:60px;margin:12px 0 22px}.question-visual:empty{display:none}.question-symbol{font:600 84px var(--display);color:#dfb955}.answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;max-width:620px;margin:20px auto}.answers.two{max-width:460px}.answer{min-height:83px;background:white;border:2px solid #d4e3d7;border-radius:21px;padding:16px;font:500 24px var(--display);box-shadow:0 5px 0 #bdcfba66;display:flex;align-items:center;justify-content:center;gap:14px;flex-direction:column;transition:transform .16s,border-color .16s}.answer:hover:not(:disabled){border-color:#4da596;transform:translateY(-3px)}.answer.correct{border-color:#52a983;background:#e1f2d8}.answer.wrong{border-color:#d9aa65;background:#fff1d9;animation:tilt .3s}.answer-label{font-size:20px}.feedback{min-height:29px;margin:18px 0;color:#317d65;font:500 20px var(--display)}.play-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:10px}.primary{background:#268e89;border:2px solid #ffffff8c;border-radius:18px;box-shadow:0 4px 0 #196c68;color:#fff;padding:14px 26px;font:500 18px var(--display)}.secondary{background:#edf1e4;border:1px solid #d4dfc9;border-radius:18px;padding:13px 20px;font-size:14px}.listen{display:inline-flex;align-items:center;gap:7px}.listen svg{width:19px;height:19px}.paint-dot{width:var(--dot-size,66px);height:var(--dot-size,66px);background:var(--paint);display:inline-block;border-radius:46% 54% 52% 48%;box-shadow:inset 4px 7px 8px #ffffff35,inset -3px -4px 5px #00000010,0 4px 0 #0000000b;flex-shrink:0}.shape{width:var(--shape-size,64px);height:var(--shape-size,64px);background:var(--shape-color);display:inline-block;box-shadow:inset 5px 7px 10px #ffffff40,inset -4px -4px 7px #0001}.shape.circle{border-radius:50%}.shape.square{border-radius:10px}.shape.triangle{clip-path:polygon(50% 0,100% 100%,0 100%)}.shape.star{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 58%,79% 96%,50% 73%,21% 96%,32% 58%,2% 35%,39% 35%)}.counters{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;max-width:240px}.counter{display:block;width:35px;height:35px;border-radius:50%;background:#e6b553;border:3px solid #f5d379;box-shadow:0 3px 0 #c5963970;animation:enter .25s backwards;animation-delay:calc(var(--i)*.04s)}.counter:after{content:'••';color:#a37835;display:block;margin:3px 0;font-size:14px;letter-spacing:2px}.groups,.mixing,.pattern,.tens,.word-blocks{display:flex;gap:18px;align-items:center;justify-content:center;flex-wrap:wrap;font:500 32px var(--display)}.groups .counters{max-width:160px}.ten-block{width:32px;height:95px;display:grid;place-items:center;background:repeating-linear-gradient(to bottom,#65adb6 0px,#65adb6 8px,#368e99 8px,#368e99 10px);color:white;border-radius:7px;font-size:16px}.letter-block{padding:12px 22px;min-width:80px;background:#fae3b4;border:4px solid #e7c68c;border-radius:15px;color:#b15f46;font:600 60px var(--display);box-shadow:0 5px 0 #d3b483}.equation{font:500 clamp(30px,4vw,50px) var(--display)}.face{position:relative;width:85px;height:85px;border-radius:50%;display:block;background:#f3cc65;box-shadow:inset 4px 5px 10px #fff4,0 4px 0 #b38b4320}.face i{position:absolute;width:8px;height:11px;background:#614a35;border-radius:50%;top:29px;left:25px}.face i:nth-child(2){left:54px}.face b{position:absolute;left:29px;top:46px;width:27px;height:17px;border-radius:0 0 30px 30px;background:#784e3c}.face.sad{background:#b8cddd}.face.sad b{border-radius:30px 30px 0 0;top:49px;height:10px}.face.surprised{background:#f4b499}.face.surprised b{border-radius:50%;width:18px;left:34px;height:22px}.quiz-art{width:145px}.sound-cue{font-size:90px;color:#449b99}.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:25px auto;max-width:620px}.memory-card{height:105px;border:2px solid #fff;border-radius:20px;background:#71b3ac;color:white;box-shadow:0 5px 0 #4b958f;font:500 35px var(--display);display:grid;place-items:center}.memory-card.open,.memory-card.matched{background:#f6ebcf;box-shadow:0 5px 0 #e1d6b4}.memory-card.matched{opacity:.6}.memory-art{width:85px}.win-star{font-size:90px;color:#e9bb3e;text-shadow:0 5px 0 #dca438}.win-copy{font:500 25px var(--display);margin:15px}.confetti{position:fixed;pointer-events:none;width:10px;height:16px;top:-25px;z-index:99;background:var(--confetti);animation:fall 1.6s ease-in forwards;left:var(--left);animation-delay:var(--delay)}footer{max-width:1290px;margin:auto;padding:25px 35px;display:flex;justify-content:space-between;border-top:1px solid #b6c9b744;color:#7c9081;font-size:11px}#main:focus{outline:none}@keyframes breathe{50%{transform:translateY(-6px) rotate(1deg)}}@keyframes hop{35%{transform:translateY(-22px) rotate(-5deg)}70%{transform:translateY(0) scale(1.03,.97)}}@keyframes tilt{30%{transform:rotate(-3deg)}70%{transform:rotate(3deg)}}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fall{to{transform:translateY(100vh) rotate(500deg);opacity:0}}
@media(min-width:1550px){.layout{margin-top:45px}.tile .sprite{max-width:205px}}@media(max-width:1050px){.layout{grid-template-columns:190px minmax(0,1fr);gap:20px;padding:0 25px}.topbar{padding:20px 26px}.tile{padding:12px}.grade-tiles .tile-title{font-size:23px}.speech{font-size:17px}.tiles{gap:12px}.tile-desc{font-size:11px}.side-note{font-size:20px}.play-panel{padding:24px}.pattern{gap:9px}}@media(max-width:760px){.topbar{padding:17px 20px;min-height:83px}.brand{font-size:21px}.brand-star{font-size:44px}.brand-club{font-size:9px}.preview-label{display:none}.icon-button{width:47px;height:47px}.layout{display:flex;flex-direction:column;padding:0 18px;margin-top:0;gap:16px}.glup-panel{position:relative;top:auto;display:flex;align-items:center;padding:0;width:100%;gap:13px;flex-direction:row-reverse;justify-content:flex-end}.speech{font-size:16px;min-height:0;padding:13px 16px;margin:0;max-width:none}.speech:after{left:-6px;top:calc(50% - 7px);width:13px;height:13px;bottom:auto}.glup-button{width:85px;flex-shrink:0;margin:0}.glup-name,.side-note{display:none}main{width:100%}h1{font-size:34px}.subtitle{font-size:13px;margin-bottom:20px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grade-tiles{grid-template-columns:1fr;margin-top:20px}.grade-tiles .tile{display:grid;grid-template-columns:110px minmax(0,1fr);padding:12px 17px;text-align:left;column-gap:16px}.grade-tiles .sprite{grid-column:1;grid-row:1/5;width:110px;align-self:center}.grade-tag{margin:6px 0 0;font-size:9px}.grade-tiles .tile-title{margin:4px 0;font-size:25px}.grade-tiles .tile-count{justify-self:start;margin-top:8px;font-size:10px}.tile .sprite{max-width:155px}.tile-title{font-size:23px}.tile-desc{font-size:12px}.play-panel{padding:20px 16px;min-height:400px;border-radius:23px;margin-top:12px}.play-header h1{font-size:23px}.question{font-size:23px}.answers{gap:12px}.answer{font-size:22px;padding:14px 9px;min-height:80px}.answer-label{font-size:18px}.play-actions{gap:10px}.memory-grid{gap:10px}.memory-card{height:80px;border-radius:16px}.memory-art{width:62px}.letter-block{font-size:43px;min-width:58px;padding:9px 13px}.word-blocks{gap:10px}.pattern .paint-dot{width:30px;height:30px}.pattern{gap:8px}.groups{gap:10px}.groups .counters{max-width:120px}.counter{width:29px;height:29px}.counter:after{margin:0}.tens{gap:10px}.game-tile{min-height:215px}.game-tile .sprite{width:115px}footer{padding:20px;gap:15px;font-size:10px;flex-wrap:wrap}.glup-panel.playing .glup-button{width:62px}.glup-panel.playing .speech{font-size:14px}}@media(max-width:365px){.layout{padding:0 12px}.tiles{gap:10px}.tile-title{font-size:20px}.tile-count{font-size:10px}.answer-label{font-size:16px}.memory-card{height:64px}.memory-art{width:49px}.grade-tiles .tile{grid-template-columns:85px minmax(0,1fr);gap:10px}.grade-tiles .sprite{width:85px}.grade-tiles .tile-title{font-size:23px}.play-panel{padding:18px 10px}.play-header h1{font-size:21px}.round-label{font-size:10px}.brand{font-size:19px}.topbar{padding:16px}.question{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.confetti{display:none}}
/* Keep the complete category menu in view on classroom laptop screens. */
.sprite{clip-path:inset(3%)}
@media(min-width:761px){.topbar{min-height:92px;padding-top:14px;padding-bottom:14px}.layout{margin-top:0}.eyebrow{margin:8px 0}.subtitle{margin-bottom:22px}.category-tiles .tile{padding:9px 12px 12px}.category-tiles .sprite{max-width:142px}.category-tiles .tile-title{font-size:24px}.category-tiles .tile-count{margin-top:7px}}
button svg,button svg *{pointer-events:none}
.animal-art{background-image:url('assets/animals-atlas.png');width:116px}.answer:has(.animal-art){gap:1px;padding:8px 14px 12px}.answer:hover .animal-art{animation:tilt .5s ease}
@media(max-width:760px){.animal-art{width:92px}}
.glup{clip-path:none}
@media(max-width:760px){.sound-cue{font-size:52px}.question-visual:has(.sound-cue){margin:8px 0;min-height:55px}.play-panel:has(.animal-art) .question{margin:15px auto}.play-panel:has(.animal-art) .progress{margin:18px 0}}
