:root{color-scheme:light;--paper:#f8f6ef;--ink:#302c42;--muted:#756d80;--purple:#6951d9;--purple-soft:#ece5fb;--line:#e5e0d6;--green:#dceac9;--yellow:#f8e6bd;--white:#fffefa;font-family:ui-rounded,'SF Pro Rounded','Arial Rounded MT Bold',system-ui,sans-serif;font-synthesis:none;background:var(--paper);color:var(--ink)}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--purple);outline-offset:5px}button:not(:disabled):active{transform:scale(.97)}button{transition:transform .14s ease,background .14s ease}a{color:var(--purple);text-underline-offset:4px}[hidden]{display:none!important}.shell{max-width:1200px;margin:auto;padding:24px 40px max(18px,env(safe-area-inset-bottom))}.header{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;background:transparent;text-align:left;font-size:29px;letter-spacing:-1.4px;font-weight:820;line-height:.95;min-height:54px;padding:0}.brand-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:16px;background:var(--purple);color:#f6dd99;font-size:35px;transform:rotate(-10deg);line-height:1}.brand-sub{display:block;font-size:10px;letter-spacing:3.2px;margin:8px 0 0 2px;font-weight:700;color:var(--muted)}.adult-link{display:flex;align-items:center;gap:9px;min-height:48px;padding:10px 15px;border:1px solid #ded8cd;border-radius:18px;background:transparent;font-size:13px;font-weight:650}.adult-link>span:first-child{font-size:22px}.hero{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;min-height:305px;gap:20px;padding:25px 8px 15px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--purple);font-weight:800;margin:0 0 16px}.hero h1{font-size:clamp(34px,4.6vw,56px);font-weight:780;line-height:1.06;letter-spacing:-2.7px;margin:0}.hero-intro{font-size:17px;color:var(--muted);line-height:1.6;margin:19px 0 21px}.together-pill{display:inline-flex;align-items:center;gap:8px;font-size:11px;padding:9px 12px;border-radius:20px;background:#eeeae0;font-weight:600}.together-pill>span{color:var(--purple);font-size:16px}.mascot-scene{position:relative;height:285px;display:grid;place-items:center;isolation:isolate}.mascot{width:285px;height:285px;object-fit:contain;position:relative;z-index:1;transform:rotate(4deg);filter:drop-shadow(0 12px 14px #6951d911)}.orbit{position:absolute;border-radius:50%;z-index:0}.orbit-one{width:236px;height:236px;background:#ece4fa;transform:rotate(20deg);border-radius:40% 60% 47% 53%}.orbit-two{width:262px;height:170px;border:1px solid #d8d0e4;transform:rotate(-32deg)}.tiny-spark{position:absolute;font-size:36px;color:#9b86d2}.spark-one{right:10%;top:16%;transform:rotate(15deg)}.spark-two{left:6%;bottom:22%;color:#c99741;font-size:26px}.game-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.game-card{text-align:left;border-radius:28px;min-width:0;padding:22px 23px 24px;background:var(--purple-soft);border:1px solid #e2d9f1;position:relative;overflow:hidden}.game-card.colors{background:var(--green);border-color:#d1dfbd}.game-card.sizes{background:var(--yellow);border-color:#ecdbb5}.game-card:hover{transform:translateY(-4px)}.card-kicker{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:1.8px;font-weight:700;color:#756686}.card-kicker>span{font-size:25px;letter-spacing:0;line-height:1}.card-art{height:135px;display:flex;align-items:center;justify-content:center;gap:10px}.glyph{display:inline-block;width:var(--glyph-size,64px);height:var(--glyph-size,64px);flex:0 0 auto;background:var(--glyph-color,var(--purple));filter:drop-shadow(0 4px 0 #0000000b)}.glyph.circle{border-radius:50%}.glyph.square{border-radius:16%}.glyph.triangle{clip-path:polygon(50% 0,100% 100%,0 100%)}.glyph.star{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 58%,79% 94%,50% 72%,21% 94%,32% 58%,2% 35%,39% 35%)}.card-art .glyph:nth-child(1){transform:rotate(-14deg)}.card-art .glyph:nth-child(2){transform:translateY(10px) rotate(8deg)}.card-art .glyph:nth-child(3){transform:rotate(9deg)}.colors .card-art .glyph:nth-child(2){transform:translateY(-15px)}.sizes .card-art{align-items:flex-end;padding-bottom:19px}.sizes .card-art .glyph{transform:none}.game-card h2{font-size:25px;line-height:1.15;letter-spacing:-.8px;margin:5px 0 9px;font-weight:750}.game-card p{font-size:13px;line-height:1.5;min-height:39px;color:#645b6e;margin:0}.card-play{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:750;margin-top:20px}.card-play>span{font-size:24px;font-weight:400}.home-footnote{text-align:center;font-size:12px;line-height:1.6;color:var(--muted);margin:21px auto 0;max-width:590px}footer{border-top:1px solid var(--line);margin-top:26px;padding-top:16px;display:flex;justify-content:space-between;gap:14px;color:#827a88;font-size:10px;line-height:1.5}.game-top{display:flex;align-items:center;gap:15px;padding:25px 0 20px}.round-button{display:grid;place-items:center;width:58px;height:58px;min-width:58px;background:var(--white);border:1px solid var(--line);border-radius:20px;font-size:29px;line-height:1}.round-button:disabled{opacity:.4}.game-name{font-size:19px;letter-spacing:-.45px;font-weight:700}.progress{display:flex;gap:9px;margin-left:auto}.progress span{width:29px;height:29px;border-radius:50%;background:#e9e4db;display:grid;place-items:center;font-size:17px;color:white;font-weight:800}.progress .done{background:var(--purple)}.play-board{background:#eee8fb;border:1px solid #e5def0;border-radius:36px;text-align:center;padding:28px 36px 22px;min-height:445px;position:relative}.play-board.colors{background:#edf3e5;border-color:#dfe8d6}.play-board.sizes{background:#faf0db;border-color:#efe1c4}.board-heading{position:relative;padding:0 66px}.mini-label{font-size:11px;letter-spacing:1.3px;text-transform:uppercase;color:#786a85;font-weight:700}.board-heading h1{font-size:clamp(24px,3.2vw,34px);font-weight:720;line-height:1.2;letter-spacing:-1px;margin:10px 0 17px}.listen{position:absolute;right:0;top:0;font-size:29px;background:#ffffffaa;border-color:#ffffff80}.target-stage{width:152px;height:136px;margin:0 auto 26px;background:#ffffffb8;border-radius:35px;display:grid;place-items:center;position:relative;box-shadow:0 3px 0 #d9cfea66}.target-stage .glyph{filter:drop-shadow(0 4px 0 #0000000a)}.target-badge{position:absolute;bottom:-10px;right:-9px;width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:var(--purple);color:#f8e6a6;font-size:23px;border:3px solid #eee8fb}.hinted{outline:3px dashed #9c86dc;outline-offset:6px}.choices{display:flex;align-items:center;justify-content:center;gap:19px;flex-wrap:wrap}.choice{width:116px;height:112px;display:grid;place-items:center;background:var(--white);border:3px solid #ffffff;border-radius:27px;box-shadow:0 6px 0 #d8d2df;position:relative;min-width:96px}.choice:hover:not(:disabled){border-color:#b7a5e6;transform:translateY(-3px)}.choice.selected{border-color:#87a74f;background:#f7faed;box-shadow:0 6px 0 #c5d5a9}.selected-tick{position:absolute;bottom:-9px;right:-8px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#88a653;color:white;border:3px solid #f7faed;font-size:17px}.choice.try-again{animation:nudge .3s}.feedback{min-height:27px;line-height:1.5;font-size:17px;font-weight:700;color:var(--purple);margin:22px 0 0}.feedback.gentle{font-size:15px;color:#74687e;font-weight:550}.round-tools{display:flex;justify-content:center;gap:19px;min-height:36px;align-items:center}.text-button{background:none;padding:10px 4px;font-size:12px;text-decoration:underline;text-underline-offset:4px;color:#746885}.text-button:disabled{opacity:.45}.voice-note{min-height:20px;font-size:12px;text-align:center;color:var(--muted);line-height:1.6;margin:16px auto 0;max-width:650px}.order-tray{display:flex;justify-content:center;align-items:center;gap:10px;margin:18px auto 28px}.order-slot{position:relative;display:grid;place-items:center;width:100px;height:112px;border:2px dashed #dacda9;border-radius:22px;background:#ffffff77}.order-slot.current{border-color:#9d80d2}.order-slot.filled{border-style:solid;border-color:#b4c783;background:#fffff2}.order-slot>span:last-child:not(.glyph){position:absolute;bottom:-11px;left:calc(50% - 13px);border-radius:50%;background:#e8dcbf;width:26px;height:26px;display:grid;place-items:center;font-size:12px;font-weight:750}.order-slot.filled>span:last-child{background:#8ca953;color:white}.glyph.ghost{opacity:.13;filter:none}.tray-arrow{font-size:18px;color:#ae9d77}.finish-panel{text-align:center;background:#eee8fb;border:1px solid #e2daf0;border-radius:36px;padding:20px 28px 30px;position:relative}.finish-mascot{display:block;width:155px;height:155px;object-fit:contain;margin:0 auto 8px}.finish-panel>.eyebrow{margin:9px 0 11px}.finish-panel h1{font-size:clamp(28px,3.5vw,42px);font-weight:740;letter-spacing:-1.6px;line-height:1.1;margin:0}.finish-description{max-width:530px;font-size:15px;line-height:1.6;color:var(--muted);margin:15px auto 20px}.offscreen-card{background:var(--white);border-radius:24px;padding:20px 23px;display:flex;gap:16px;align-items:center;text-align:left;max-width:595px;margin:0 auto 23px}.offscreen-card>span{font-size:34px;color:var(--purple)}.offscreen-card h2{font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--purple);margin:0 0 7px}.offscreen-card p{font-size:16px;line-height:1.5;margin:0}.finish-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.primary,.secondary{padding:16px 23px;min-height:54px;border-radius:18px;font-size:14px;font-weight:700}.primary{background:var(--purple);color:white}.secondary{background:var(--white);color:var(--purple)}.primary>span,.secondary>span{margin-left:12px}.full{width:100%}dialog{width:min(500px,calc(100% - 26px));max-height:calc(100dvh - 32px);border:1px solid #e8e1d5;border-radius:28px;padding:26px;color:var(--ink);background:var(--paper);box-shadow:0 30px 80px #302c4233}dialog::backdrop{background:#29233888;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px}.dialog-top h2{font-size:25px;line-height:1.15;letter-spacing:-.7px;margin:0}.dialog-top .round-button{width:44px;height:44px;min-width:44px;border-radius:15px;font-size:26px}dialog p{font-size:14px;line-height:1.6;color:var(--muted)}.gate-math{padding:20px 8px;font-size:35px;text-align:center;letter-spacing:2px;font-weight:650;background:var(--purple-soft);border-radius:20px;margin:22px 0}#gate-form label{display:block;font-size:13px;margin-bottom:8px;font-weight:650}#gate-answer{width:100%;height:57px;border:1px solid #c8bdd8;background:white;border-radius:15px;padding:8px 15px;font-size:26px;text-align:center;letter-spacing:5px;color:var(--ink)}.gate-error{min-height:22px;color:#8a4667!important;font-size:12px!important}.fine-print{font-size:11px!important;line-height:1.6!important}.settings-intro{margin:0 0 20px}fieldset{border:0;padding:0;margin:22px 0}legend{font-size:12px;font-weight:700;margin-bottom:9px}.segmented{display:flex;gap:9px}.segmented button{flex:1;padding:14px 8px;border-radius:15px;background:#eae5dc;font-size:14px;min-height:49px}.segmented button[aria-pressed=true]{background:var(--purple);color:white}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}.toggle-row input{accent-color:var(--purple);width:24px;height:24px}.local-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}.local-summary>div{display:flex;align-items:center;gap:11px}.local-summary strong{font-size:30px;font-weight:700}.local-summary span{font-size:12px;color:var(--muted)}.local-badge{padding:7px 10px;background:#e8eddc;border-radius:13px;font-size:10px!important;max-width:125px;text-align:center}.status-note{font-size:12px!important;border-radius:12px;padding:11px 12px;background:#e9e6da}.settings-links{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:4px 0}.settings-links a{font-size:12px;margin-top:9px}.settings-notice{min-height:14px;font-size:12px!important}.loading{min-height:500px;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;gap:10px;padding:35px}.loading h1{font-size:25px;max-width:650px;line-height:1.4}.loading p{color:var(--muted);line-height:1.5}.loading-star{font-size:58px;color:var(--purple)}
@keyframes nudge{0%,100%{transform:translateX(0)}35%{transform:translateX(-4px)}70%{transform:translateX(4px)}}
@media(min-width:1100px){.hero{min-height:340px}.mascot-scene{height:315px}.mascot{width:320px;height:320px}.orbit-one{width:260px;height:260px}.game-card{padding:24px 26px}.card-art{height:145px}.play-board{padding-top:33px;min-height:480px}.target-stage{margin-bottom:34px}.choice{width:130px;height:122px}}
@media(max-width:850px){.shell{padding:23px 25px}.hero{grid-template-columns:1.3fr 1fr;padding-top:30px;gap:8px}.hero h1{letter-spacing:-1.7px}.mascot{width:230px;height:230px}.mascot-scene{height:255px}.orbit-one{width:200px;height:200px}.orbit-two{width:220px;height:145px}.card-art{gap:6px;height:110px}.card-art .glyph{max-width:53px;max-height:53px}.sizes .card-art .glyph{max-width:78px;max-height:78px}.game-card{padding:18px}.game-card h2{font-size:21px}.game-card p{font-size:12px;min-height:54px}.card-play{margin-top:13px}.game-library{gap:13px}}
@media(max-width:600px){.shell{padding:19px 18px max(16px,env(safe-area-inset-bottom))}.brand{font-size:25px;gap:9px}.brand-icon{width:38px;height:38px;font-size:30px;border-radius:14px}.brand-sub{font-size:8px;margin-top:7px}.adult-link{padding:9px 11px;font-size:11px;border-radius:16px;min-height:45px;gap:6px}.hero{grid-template-columns:1fr;min-height:0;text-align:center;padding:34px 0 22px;position:relative;gap:0}.eyebrow{font-size:9px;letter-spacing:1.6px;margin-bottom:12px}.hero h1{font-size:38px;letter-spacing:-1.8px}.hero-intro{font-size:14px;margin:14px 0}.together-pill{font-size:9px;padding:7px 10px}.mascot-scene{height:161px;margin-top:7px}.mascot{width:171px;height:171px}.orbit-one{width:145px;height:145px}.orbit-two{width:162px;height:112px}.spark-one{right:24%;top:14%;font-size:24px}.spark-two{left:24%;bottom:17%;font-size:21px}.game-library{grid-template-columns:1fr;gap:12px}.game-card{padding:18px 19px 16px;min-height:156px;display:grid;grid-template-columns:1fr 112px;grid-template-rows:auto auto auto;column-gap:12px}.card-kicker{position:absolute;right:16px;top:13px;font-size:0}.card-kicker>span{font-size:21px}.card-art{grid-column:2;grid-row:1 / 4;height:106px;margin-top:18px;gap:4px;align-self:center}.card-art .glyph{max-width:31px;max-height:31px}.sizes .card-art .glyph{max-width:49px;max-height:49px}.sizes .card-art .glyph:nth-child(1){width:23px;height:23px}.sizes .card-art .glyph:nth-child(2){width:35px;height:35px}.sizes .card-art{padding-bottom:28px}.game-card h2{grid-column:1;font-size:23px;margin:4px 0 7px;line-height:1.1}.game-card p{grid-column:1;min-height:0;font-size:12px;max-width:220px;line-height:1.45}.card-play{grid-column:1;justify-content:flex-start;gap:19px;margin-top:13px;font-size:12px}.card-play>span{font-size:20px}.home-footnote{font-size:11px;margin-top:19px}footer{font-size:9px;margin-top:22px;padding-top:13px;flex-wrap:wrap;gap:6px}.game-top{padding:25px 0 18px;gap:9px;flex-wrap:wrap}.round-button{width:51px;height:51px;min-width:51px;font-size:25px;border-radius:18px}.game-name{font-size:17px;max-width:calc(100% - 210px);line-height:1.15}.progress{gap:6px}.progress span{width:23px;height:23px;font-size:14px}.play-board{padding:23px 14px 15px;border-radius:29px;min-height:427px}.board-heading{padding:0 48px}.board-heading h1{font-size:25px;letter-spacing:-.6px;min-height:60px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.mini-label{font-size:9px;letter-spacing:1px}.listen{width:43px;height:43px;min-width:43px;top:-3px;border-radius:15px;font-size:24px}.target-stage{width:126px;height:115px;border-radius:28px;margin-bottom:24px}.choices{gap:11px}.choice{width:88px;min-width:80px;height:94px;border-radius:22px;box-shadow:0 5px 0 #d8d2df}.choice .glyph:not(.size-large){max-width:60px;max-height:60px}.choice .glyph.size-large{width:70px;height:70px}.feedback{font-size:16px;min-height:28px;margin-top:20px}.feedback.gentle{font-size:13px;min-height:40px}.round-tools{min-height:35px;gap:18px}.text-button{font-size:11px;min-height:38px}.voice-note{font-size:11px;padding:0 4px}.order-tray{gap:6px;margin:7px auto 26px}.order-slot{width:82px;height:94px;border-radius:19px}.order-slot .glyph.size-large{width:70px;height:70px}.tray-arrow{font-size:14px}.order-slot>span:last-child:not(.glyph){width:23px;height:23px;left:calc(50% - 11.5px);font-size:10px}.finish-panel{border-radius:29px;padding:23px 17px}.finish-mascot{width:145px;height:145px}.finish-panel h1{font-size:31px;letter-spacing:-1px}.finish-description{font-size:13px;margin:15px auto 20px}.offscreen-card{padding:18px 16px;border-radius:21px;gap:12px}.offscreen-card>span{font-size:29px}.offscreen-card h2{font-size:9px;letter-spacing:.5px}.offscreen-card p{font-size:14px}.finish-actions{gap:10px}.finish-actions button{width:100%;font-size:13px;min-height:53px}dialog{padding:21px}.dialog-top h2{font-size:23px}.local-summary{gap:5px}.local-summary span{font-size:11px}}
@media(max-width:359px){.shell{padding-left:12px;padding-right:12px}.hero h1{font-size:33px}.game-name{max-width:none;order:3;width:100%;text-align:center;margin-top:6px}.progress{gap:6px}.choice{width:78px;min-width:72px;height:88px}.choices{gap:9px}.order-slot{width:74px}.tray-arrow{font-size:12px}.card-art{width:101px}.game-card{grid-template-columns:1fr 98px}.game-card h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.heading-line{display:block}.glyph.color-purple{--glyph-color:#785ee6}.glyph.color-red{--glyph-color:#e96a74}.glyph.color-yellow{--glyph-color:#efb83e}.glyph.color-blue{--glyph-color:#408ed5}.glyph.color-green{--glyph-color:#77ad4d}.glyph.size-small{--glyph-size:36px}.glyph.size-medium{--glyph-size:54px}.glyph.size-large{--glyph-size:78px}.glyph.size-regular{--glyph-size:64px}
.reset-confirmation{margin:12px 0;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.reset-confirmation p{font-size:13px;line-height:1.5}.reset-confirmation .finish-actions{margin-top:12px}.reset-confirmation button{font-size:12px;min-height:46px}
