@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fredoka:wght@400;500;600&display=swap');
:root{--paper:#faf9f5;--ink:#2d403b;--muted:#68766f;--green:#406958;--line:#e2e5dc;--blue:#365fc5;--peach:#f2dfd3;--mint:#e3ebd7;--lavender:#e8e4f2}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #cf9d40;outline-offset:5px}[hidden]{display:none!important}button:disabled{cursor:default}h1,h2,h3{font-family:Fredoka,sans-serif;font-weight:500}p{line-height:1.7}svg{display:block}.site-header{max-width:1200px;margin:auto;padding:25px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:Fredoka,sans-serif;font-size:28px;line-height:1.1}.brand>span>span{color:#ba7c53}.brand small{display:block;font-family:'DM Sans',sans-serif;font-size:8px;letter-spacing:1.7px;font-weight:600;margin-top:5px}.parent-link{border:1px solid #dce2d8;border-radius:30px;background:transparent;padding:12px 17px;font-size:12px;min-height:44px;color:var(--ink)}.parent-link span{margin-right:5px}.library{max-width:1120px;padding:0 24px;margin:auto}.welcome{display:flex;justify-content:space-between;align-items:center;padding:39px 20px 29px;gap:25px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#64786a}.welcome h1{font-size:clamp(34px,4vw,49px);letter-spacing:-.9px;margin:13px 0 10px}.welcome p{color:var(--muted);font-size:14px;margin:0}.welcome-tags{display:flex;gap:12px;margin-top:20px;font-size:10px}.welcome-tags span{border:1px solid #dfe4d9;border-radius:24px;padding:7px 11px;color:#63766a}.welcome-tags span:first-child{background:#edf1e7;border-color:transparent}.welcome-mascot{width:200px;position:relative;margin-right:36px;flex-shrink:0}.welcome-mascot svg{width:100%}.welcome-mascot>span{position:absolute;right:-25px;top:22px;background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:20px;font-family:Fredoka;font-size:14px;transform:rotate(6deg)}.library-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.library-toolbar h2{font-size:23px;margin:0}.age-filter{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:9px}.age-filter select{background:white;border:1px solid var(--line);padding:10px 12px;border-radius:12px;min-height:44px;font-size:12px;color:var(--ink)}.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:22px}.filter{display:flex;gap:8px;align-items:center;border:1px solid var(--line);background:transparent;padding:10px 15px;border-radius:30px;color:#64736b;font-size:12px;min-height:44px}.filter span{font-family:Fredoka;font-weight:500;font-size:16px}.filter.active{background:var(--green);color:white;border-color:var(--green)}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.game-card{display:block;position:relative;background:white;border:1px solid #e2e5dc;border-radius:23px;overflow:hidden;text-decoration:none;box-shadow:0 5px 0 #eaece3;transition:transform .15s,box-shadow .15s}.game-card:hover{transform:translateY(-3px);box-shadow:0 8px 0 #e6e9de}.card-illustration{height:206px;position:relative;overflow:hidden;display:grid;place-items:center}.peach .card-illustration{background:var(--peach)}.mint .card-illustration{background:var(--mint)}.lavender .card-illustration{background:var(--lavender)}.age-badge{position:absolute;top:15px;left:15px;background:#ffffffcf;border-radius:22px;padding:6px 10px;font-size:10px;z-index:2}.word-art{width:100%;height:100%;position:relative}.word-art img{position:absolute;object-fit:contain;border-radius:18px;width:126px;height:126px;box-shadow:0 5px 10px #694c2c0d}.art-book{top:48px;left:38px;transform:rotate(-11deg)}.art-shirt{top:57px;right:27px;transform:rotate(12deg)}.syllable{position:absolute;bottom:16px;left:50%;transform:translateX(-50%) rotate(-4deg);background:#fffaf0;border:1px solid #e9ccb4;border-radius:9px;padding:6px 13px;font-family:Fredoka;font-size:20px;color:#8e5e44;white-space:nowrap}.count-art{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:flex-end;padding-bottom:24px;gap:0}.count-art img{width:29%;border-radius:50%;height:auto}.count-art img:nth-of-type(2){margin:0 -4px 11px;z-index:1}.number-chip{position:absolute;top:44px;left:50%;transform:translateX(-50%) rotate(4deg);font-family:Fredoka;font-size:27px;background:#fff9df;color:#7d8451;border:1px solid #dbe0c3;border-radius:12px;padding:3px 20px;letter-spacing:6px;white-space:nowrap}.shapes-art{display:flex;gap:0;align-items:center;justify-content:center;padding-top:20px;width:100%}.shapes-art svg{width:32%;height:115px;filter:drop-shadow(0 5px 0 #695c6c10)}.shapes-art svg:nth-child(2){transform:translateY(-17px) rotate(7deg)}.shapes-art svg:last-child{transform:rotate(-10deg)}.card-copy{padding:20px 21px 18px}.card-category{font-size:9px;text-transform:uppercase;letter-spacing:1.6px;font-weight:700;color:#788376}.card-copy h3{font-size:28px;margin:8px 0 7px}.card-copy p{font-size:12px;color:var(--muted);margin:0}.card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:24px;font-size:12px;font-weight:700}.card-arrow{border:1px solid var(--line);border-radius:50%;height:32px;width:32px;display:grid;place-items:center;font-size:19px;font-weight:400}.played-tag{display:block;margin-top:9px;font-size:10px;color:#6e816b}.parent-note{display:flex;align-items:center;gap:14px;background:#eef1e6;border-radius:17px;margin:32px 0;padding:16px 21px}.parent-note>span{font-size:25px}.parent-note p{font-size:13px;margin:0;line-height:1.5}.parent-note small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.parent-note button{margin-left:auto;background:none;border:0;color:var(--green);font-size:11px;min-height:44px;padding:8px}.empty-state{grid-column:1/-1;border:1px dashed #cfd8c8;border-radius:20px;text-align:center;padding:35px 20px}.empty-state>span{font-size:34px}.empty-state h3{font-size:25px}.empty-state p{font-size:13px;color:var(--muted)}footer{max-width:1120px;margin:0 auto;padding:20px 24px 25px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted)}.primary,.secondary{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:16px;padding:14px 24px;text-decoration:none;font-weight:600;font-size:15px}.primary{border:0;background:var(--blue);color:white;box-shadow:0 4px 0 #244698}.primary:hover{background:#2c52b1}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #244698}.secondary{border:1px solid #cdd6cd;background:white;color:var(--green);box-shadow:0 4px 0 #e2e7de}.playing{background:#f5f7fc}.mission{max-width:670px;min-height:100svh;margin:0 auto;padding:14px 24px 25px}.mission-nav{max-width:550px;height:48px;margin:0 auto 14px;display:flex;align-items:center;justify-content:space-between}.back-button{display:grid;place-items:center;width:48px;height:48px;border:1px solid #dce3ee;border-radius:50%;background:white;text-decoration:none;color:#334459;font-size:24px}.mission-count{width:48px;text-align:right;color:#647383;font-size:12px}.mission-dots{display:flex;gap:9px}.mission-dots span{width:10px;height:10px;border-radius:50%;background:#dce3ee}.mission-dots .current{background:var(--blue);outline:3px solid #e1e8fa;outline-offset:2px}.mission-dots .complete{background:#4e8668}.mission-content{display:flex;flex-direction:column;align-items:center;text-align:center}.picture-stage{width:min(320px,72vw);height:min(320px,72vw);display:grid;place-items:center;overflow:hidden;background:#fffdf7;border:1px solid #ece8dc;border-radius:30px;margin:0 auto 20px;box-shadow:0 6px 0 #e5e9f1}.word-picture{width:100%;height:100%;object-fit:contain}.target-shape{width:65%;height:65%}.listen{display:flex;gap:12px;justify-content:center;align-items:center;min-height:56px;border:0;background:var(--blue);color:white;box-shadow:0 4px 0 #244698;border-radius:18px;padding:13px 23px;font-weight:600;font-size:17px}.listen svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.listen.speaking{background:#294d9e;outline:4px solid #dce6ff}.mission-prompt{font-family:'DM Sans',sans-serif;font-size:14px;color:#526576;font-weight:400;margin:24px 0 12px;line-height:1.4;outline:none}.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;max-width:500px}.choice{min-height:76px;border:2px solid #dce3ee;border-bottom:5px solid #cbd5e5;border-radius:18px;background:white;padding:12px 8px;color:#2b3c4b;font-size:28px;font-weight:600}.choice:hover:not(:disabled){background:#eef3ff;border-color:#a7bdec}.choice.try-again{background:#f0f2f5;color:#8b959f;border-color:#dce2e8;opacity:.55}.choice.try-again:not(:has(svg)){text-decoration:line-through}.choice.correct{background:#e6f3ec;color:#245d49;border-color:#6ca58b}.choice.guided{outline:3px solid #d7b24c;outline-offset:3px;background:#fff6d9}.shape-choices .choice{padding:8px;display:grid;place-items:center;height:100px}.shape-choices svg{height:75px;width:90px}.feedback{font-size:14px;line-height:1.4;min-height:42px;max-width:500px;width:100%;margin:15px 0 0;padding:10px;border-radius:12px}.feedback.success{background:#e7f2ec;color:#245d49}.feedback.hint{background:#fff4d6;color:#6c5924}.mission-next{margin-top:10px}.audio-note{font-size:11px;color:#647383;max-width:360px;line-height:1.5;margin:12px 0 0}.audio-note:empty{display:none}.count-stage{padding:15px}.counting-objects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;justify-content:center;gap:10px;width:100%;max-width:285px}.count-object{position:relative;min-height:56px;min-width:44px;border:2px solid transparent;border-radius:15px;background:none;padding:0}.count-object img{width:100%;height:auto;max-height:105px;object-fit:contain;border-radius:13px;display:block}.count-object[aria-pressed=true]{border-color:#7ba38a}.count-badge:not(:empty){position:absolute;right:-3px;top:-6px;display:grid;place-items:center;width:26px;height:26px;background:#406958;color:white;border-radius:50%;font-size:14px;font-weight:700}.finish{max-width:720px;margin:35px auto;padding:0 24px 40px;text-align:center}.finish-stamp{display:block;font-size:72px;line-height:1.1;color:#c99b47;margin:25px auto 24px}.finish h1{font-size:42px;margin:15px 0 12px}.finish>p{font-size:14px;color:var(--muted)}.finish-pictures{display:flex;justify-content:center;gap:15px;margin:25px auto 32px}.finish-pictures img{object-fit:contain;border-radius:13px}.finish-pictures svg{width:70px;height:70px}.finish-actions{display:flex;justify-content:center;gap:15px;flex-wrap:wrap}.session-details{max-width:480px;margin:32px auto 0;text-align:left;border-top:1px solid var(--line);padding-top:18px;font-size:12px;color:var(--muted)}.session-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.small{font-size:12px;color:var(--muted);line-height:1.7}.session-details p{font-size:12px}dialog{max-width:570px;width:calc(100% - 32px);max-height:85svh;overflow:auto;border:1px solid var(--line);border-radius:24px;padding:30px;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#223d3380;backdrop-filter:blur(4px)}.dialog-close{float:right;display:grid;place-items:center;background:white;border:1px solid var(--line);border-radius:50%;width:44px;height:44px;font-size:27px;color:var(--ink)}dialog h2{font-size:29px;line-height:1.2;max-width:350px}dialog>p{font-size:13px}.parent-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:22px 0}.parent-stats>div{padding:14px 8px;background:#edf1e7;border-radius:13px;text-align:center}.parent-stats strong{display:block;font-size:27px;font-family:Fredoka;font-weight:500}.parent-stats span{display:block;font-size:10px;margin-top:5px}.activity-list{list-style:none;padding:0}.activity-list li{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.activity-list li>span:last-child{text-align:right}.activity-list small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.sound-setting{display:flex;align-items:center;gap:10px;font-size:13px;min-height:44px}.sound-setting input{width:20px;height:20px;accent-color:var(--green)}.text-button{border:1px solid var(--line);background:white;border-radius:12px;min-height:44px;padding:10px 13px;color:#805e42;font-size:12px}
@media(max-width:850px){.site-header{padding:22px 25px}.game-grid{gap:16px}.card-illustration{height:180px}.word-art img{width:105px;height:105px}.art-book{left:17px}.art-shirt{right:13px}.card-copy{padding:18px 16px}.card-copy h3{font-size:25px}.card-copy p{font-size:11px}.welcome{padding-left:0;padding-right:0}.welcome-mascot{margin-right:15px}}
@media(max-width:650px){.site-header{padding:18px 20px}.brand{font-size:25px;gap:9px}.brand img{width:37px;height:37px}.brand small{font-size:7px;letter-spacing:1.1px}.parent-link{font-size:10px;padding:10px 12px}.library{padding:0 20px}.welcome{padding:30px 0 27px;gap:0}.welcome .eyebrow{font-size:8px;letter-spacing:1.2px}.welcome h1{font-size:33px;max-width:240px;line-height:1.1}.welcome p{font-size:12px;max-width:240px}.welcome-mascot{width:115px;margin:0 -7px 0 0}.welcome-mascot>span{display:none}.welcome-tags{font-size:8px;gap:5px;margin-top:14px;flex-wrap:wrap}.welcome-tags span{padding:6px 8px}.library-toolbar{gap:12px;margin-bottom:15px}.library-toolbar h2{font-size:20px}.age-filter{font-size:0}.age-filter select{font-size:10px;max-width:125px;padding:9px}.filters{gap:6px;flex-wrap:nowrap;margin-bottom:18px}.filter{font-size:10px;gap:5px;padding:8px 10px}.filter span{font-size:14px}.game-grid{grid-template-columns:1fr;gap:19px}.game-card{display:grid;grid-template-columns:41% 59%;min-height:190px;border-radius:20px;overflow:hidden}.card-illustration{height:100%;min-height:190px}.age-badge{top:11px;left:10px;font-size:8px;padding:5px 7px}.word-art img{width:90px;height:90px}.art-book{top:50px;left:2px}.art-shirt{top:76px;right:-3px}.syllable{font-size:15px;bottom:16px;padding:4px 9px}.card-copy{padding:21px 17px 16px}.card-copy h3{font-size:26px;margin-top:7px}.card-copy p{font-size:11px}.card-category{font-size:8px}.card-bottom{margin-top:18px;font-size:11px}.card-arrow{height:28px;width:28px}.count-art{align-items:center;padding:20px 5px 0;flex-wrap:wrap;gap:0}.count-art img{width:47%;height:auto;max-height:76px;object-fit:contain}.count-art img:last-child{margin-top:-50px}.count-art img:nth-of-type(2){margin:0}.number-chip{top:35px;font-size:19px;padding:4px 10px;letter-spacing:3px}.shapes-art{position:relative;height:170px;padding:30px 0 0;flex-wrap:wrap}.shapes-art svg{width:50%;height:70px}.shapes-art svg:last-child{margin-top:-16px}.shapes-art svg:nth-child(2){transform:rotate(7deg)}.parent-note{padding:15px 14px;gap:10px;flex-wrap:wrap;margin-top:27px}.parent-note p{font-size:12px;flex:1}.parent-note small{font-size:10px}.parent-note button{margin:0 0 0 34px;min-height:34px;padding:2px 0}footer{font-size:9px;flex-direction:column;gap:8px;padding:20px}.mission{padding:10px 20px 24px}.mission-nav{margin-bottom:12px}.picture-stage{width:min(270px,68vw);height:min(270px,68vw);border-radius:26px;margin-bottom:18px}.choices{gap:10px}.choice{min-height:68px;font-size:25px;border-radius:16px}.shape-choices .choice{height:88px}.shape-choices svg{width:70px;height:65px}.listen{font-size:16px;min-height:54px}.mission-prompt{margin-top:22px}.finish{margin-top:25px}.finish h1{font-size:35px}.finish-actions{flex-direction:column;align-items:stretch;max-width:340px;margin:auto}dialog{padding:24px}.parent-stats span{font-size:9px}}
@media(max-width:360px){.library{padding:0 15px}.filter{padding:8px;font-size:9px}.welcome-mascot{width:90px}.welcome h1{font-size:29px}.welcome .eyebrow{letter-spacing:.6px}.welcome p{font-size:11px}.game-card{grid-template-columns:40% 60%}.card-copy{padding:20px 13px}.card-copy h3{font-size:24px}.card-copy p{font-size:10px}.word-art img{width:77px;height:77px}}
@media(max-height:700px){.mission-nav{margin-bottom:8px}.picture-stage{width:min(230px,58vw);height:min(230px,58vw);margin-bottom:15px}.mission .listen{min-height:52px}.mission-prompt{margin:18px 0 10px}.choice{min-height:64px}.feedback{min-height:38px;margin-top:12px;padding:8px}.mission-next{margin-top:7px}.count-stage{padding:10px}.counting-objects{gap:6px}.count-object img{max-height:78px}.shape-choices .choice{height:82px}.shape-choices svg{height:60px;width:70px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.counting-objects.single .count-object img{max-height:155px}
@media(max-height:600px){.mission{padding-bottom:10px}.feedback{font-size:12px;min-height:32px;padding:6px}.mission-next{min-height:48px;padding:12px 20px}}

.account-box{padding:16px;background:#edf1e7;border:1px solid #dce4d3;border-radius:14px;margin:16px 0;font-size:13px}.account-box p{font-size:12px;margin:8px 0}.account-box a{color:#315ec7}
