@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fredoka:wght@400;500;600;700&display=swap');
:root{--ink:#224a38;--green:#286c4b;--deep:#194b34;--cream:#fbfaf4;--lime:#e1ed9b;--yellow:#f4ca57;--muted:#68776a;--line:#e1e7dc}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.5 'DM Sans',sans-serif}h1,h2,h3,.brand,.button,.answer,.target-number{font-family:'Fredoka','Trebuchet MS',sans-serif}h1,h2,h3,p{margin:0}h1{font-size:clamp(36px,4.7vw,60px);font-weight:500;line-height:1.12;letter-spacing:-1.3px}h2{font-size:26px;font-weight:500;line-height:1.25}h3{font-size:22px;font-weight:500}em{font-style:normal;color:var(--green)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #cc7918;outline-offset:5px}button[hidden],[hidden]{display:none!important}.site-header{height:100px;display:flex;align-items:center;gap:48px;max-width:1360px;padding:0 48px;margin:auto;border-bottom:1px solid var(--line)}.brand{font-size:29px;font-weight:600;display:flex;align-items:center;gap:4px;letter-spacing:-.6px}.brand>span:last-child{color:var(--green)}.brand-mark{background:var(--green);color:var(--lime);width:41px;height:41px;border-radius:13px;text-align:center;margin-right:8px;font-size:32px}.site-header nav{display:flex;gap:32px;margin-left:24px;height:100%;align-items:center}.site-header nav a{color:var(--muted);font-weight:600;font-size:15px;display:grid;align-items:center;height:100%;position:relative}.site-header nav a.active{color:var(--deep)}.site-header nav a.active:after{content:'';position:absolute;bottom:22px;left:0;right:0;height:3px;background:var(--green);border-radius:9px}.player-chip{margin-left:auto;border:1px solid var(--line);padding:10px 16px;border-radius:28px;font-weight:600;background:white;white-space:nowrap}.player-chip span{margin-left:16px}main{max-width:1264px;margin:auto;padding:0 32px}footer{text-align:center;font-size:13px;color:var(--muted);padding:40px 0}footer span{margin:0 12px;color:#a5ad79}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:var(--green);margin-bottom:13px}.back{display:inline-block;font-size:14px;font-weight:600;padding:12px 0}.world-heading{display:flex;align-items:center;justify-content:space-between;padding:26px 0 32px;gap:20px}.world-heading .eyebrow{margin-top:15px}.world-heading h1{font-size:52px}.world-heading p{margin-top:12px;color:var(--muted)}.heading-leaf{font-size:38px;vertical-align:middle}.reward-pills{display:flex;gap:10px;margin-top:40px}.reward-pills>span{border:1px solid #e6dfbe;border-radius:24px;padding:10px 16px;font-size:14px;background:#fffdf3;white-space:nowrap}.world-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;align-items:start}.forest-map{border:1px solid #d7e3c9;border-radius:28px;background-color:#edf2dc;background-image:radial-gradient(circle at 14% 28%,#dde9b9 0,transparent 24%),radial-gradient(circle at 85% 68%,#dce8c4 0,transparent 25%);overflow:hidden;position:relative}.map-caption{display:flex;justify-content:space-between;padding:24px 28px;font-size:11px;letter-spacing:1px;font-weight:700;gap:10px}.map-caption>span+span{letter-spacing:0;color:var(--muted);font-size:12px;font-weight:500}.trail{position:relative;padding:10px 50px 36px;display:flex;flex-direction:column;align-items:center}.trail:before{content:'';position:absolute;top:80px;bottom:140px;left:calc(50% - 3px);border-left:7px dotted #c4d5a9}.trail-stop{display:flex;align-items:center;gap:22px;width:78%;position:relative;margin:16px 0;min-height:122px;z-index:1}.trail-stop:nth-child(4n+1){align-self:flex-start}.trail-stop:nth-child(4n+3){align-self:flex-end}.map-node{display:grid;place-items:center;width:108px;height:108px;border-radius:38%;font-size:50px;background:#fff8dd;border:6px solid white;box-shadow:0 7px 0 #d3dcb9,0 8px 20px #4a692011;position:relative;transition:transform .2s}.unlocked a.map-node:hover{transform:translateY(-5px) rotate(-4deg);box-shadow:0 11px 0 #c2d398}.trail-stop:first-child .map-node{background:#f6d87c;border-color:#fff9db}.node-label{padding:10px 15px;background:#edf2dcee;border-radius:15px}.node-label small{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#6d8056}.node-label h2{font-size:21px;margin:2px 0 5px}.node-state{font-size:12px;font-weight:600;color:#4b693d}.locked .map-node{background:#e2e9d6;filter:grayscale(.7);box-shadow:0 6px 0 #ced8c0;border-color:#f4f7ea}.locked .node-label{color:#626f5c}.lock{position:absolute;bottom:-5px;right:-8px;font-size:18px;background:white;border-radius:50%;width:31px;height:31px;display:grid;place-items:center}.guide-card{background:#225b40;border-radius:25px;padding:27px 24px;color:#fff;text-align:center}.guide-avatar{display:block;font-size:74px;margin:5px 0 22px}.guide-card .eyebrow{color:#d4e7ae;font-size:10px}.guide-card h2{font-size:30px}.guide-card p{font-size:14px;line-height:1.8;color:#dfebdb;margin:17px 0 25px}.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;min-height:53px;padding:13px 25px;border-radius:16px;border:0;font-size:18px;font-weight:500;transition:transform .15s}.button:hover{transform:translateY(-2px)}.primary{background:var(--green);color:#fff;box-shadow:0 4px 0 #184b34}.secondary{background:#edf2e4;color:var(--deep);border:1px solid #ccdac0}.guide-card .primary{background:#e3efab;color:#244834;font-size:15px;width:100%;padding:12px 10px;box-shadow:0 4px 0 #122f22}.panel{background:white;border:1px solid var(--line);border-radius:24px;padding:28px}.journey{margin-top:20px;padding:24px}.journey h3{font-size:19px}.progress-track{height:9px;background:#e8eddf;border-radius:20px;overflow:hidden;margin:20px 0 12px}.progress-track>span{display:block;height:100%;background:#8aaf59;border-radius:20px;transition:width .3s}.journey p{font-size:13px;color:var(--muted)}.legend{display:grid;gap:13px;border-top:1px solid var(--line);margin-top:20px;padding-top:20px;font-size:13px}.sidebar-note{font-family:'Fredoka',sans-serif;font-size:21px;line-height:1.55;text-align:center;color:#829071;margin:28px 0}.stars{color:#bd7d12;font-size:25px;letter-spacing:4px}.empty-stars{color:#929b87}.boss-stop{background:#f9f8ed;border:2px dashed #bbc9a2;display:flex;align-items:center;gap:20px;z-index:1;border-radius:22px;padding:24px;margin-top:25px;width:100%}.boss-stop>span{font-size:54px}.boss-stop small{font-size:10px;letter-spacing:1.5px}.boss-stop p{font-size:13px;margin:8px 0}.boss-stop h2{font-size:23px}.home-hero{text-align:center;padding:64px 0 16px;position:relative}.home-hero h1{font-size:clamp(45px,6vw,76px)}.home-hero>p{color:var(--muted);margin:24px 0 30px}.home-icons{font-size:58px;margin:26px 0 14px;letter-spacing:30px}.home-icons span{font-size:100px}.world-ticket{border:1px solid #d7e3c9;background:#edf2dc;border-radius:24px;max-width:500px;padding:24px;display:flex;align-items:center;text-align:left;gap:24px;margin:20px auto}.world-ticket>span{font-size:38px}.world-ticket>span:last-child{margin-left:auto;color:#90a355}.world-ticket small{font-size:10px;letter-spacing:1.5px}.world-ticket strong{font:500 27px 'Fredoka',sans-serif;display:block}.world-ticket p{font-size:14px;color:var(--muted)}.page-intro{text-align:center;padding:50px 0 30px}.page-intro p{color:var(--muted);margin-top:16px}.profile-grid{display:flex;justify-content:center;flex-wrap:wrap;gap:20px}.profile-card{display:grid;gap:12px;text-align:center;width:220px;border:1px solid var(--line);background:#edf2dc;border-radius:24px;padding:25px;color:var(--ink)}.profile-card>span{font-size:55px}.profile-card small{font-size:13px}.profile-form{max-width:480px;margin:28px auto}.profile-form h2{margin-bottom:20px}input[type=text],input:not([type]),select{display:block;width:100%;padding:12px 15px;border:1px solid #bbc9b2;border-radius:12px;background:#fff;color:var(--ink);margin:8px 0 20px;min-height:48px}fieldset{border:0;padding:0;margin:20px 0}.avatar-options{display:flex;gap:12px;margin-top:12px}.avatar-options input{position:absolute;opacity:0}.avatar-options span{display:block;padding:8px;font-size:35px;border:2px solid var(--line);border-radius:13px;cursor:pointer}.avatar-options input:checked+span{border-color:var(--green);background:#edf2dc}.avatar-options input:focus-visible+span{outline:3px solid #cc7918}.small{font-size:13px;color:var(--muted);margin-top:20px}.game-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0;font-size:12px;letter-spacing:1px}.game-shell{max-width:900px;margin:20px auto;text-align:center}.game-shell h1{font-size:44px}.mode-tabs{display:flex;justify-content:center;gap:6px;margin:24px auto;max-width:440px;background:#e9eedf;padding:6px;border-radius:17px}.mode-tabs a{flex:1;padding:10px;border-radius:12px;font-weight:600}.mode-tabs .selected{background:white;box-shadow:0 2px 6px #234a3710}.lesson{min-height:360px;padding:35px}.lesson h2{font-size:30px}.lesson p{margin:22px 0}.lesson .small{font-size:13px}.lesson form{max-width:300px;margin:20px auto}.lesson label{font-size:14px}.lesson-mascot{font-size:65px;margin-bottom:20px}.lesson-groups{display:flex;justify-content:center;gap:24px;margin:32px 0}.lesson-groups>div{background:#f1f4e7;border-radius:20px;padding:25px;font-size:30px}.lesson-groups strong{display:block;font-size:20px;margin-top:16px}.lesson-number{font-size:80px;margin-top:25px}.count-demo{display:flex;justify-content:center;gap:10px;margin-top:32px;flex-wrap:wrap}.count-demo button,.count-object{border:0;border-radius:12px;background:transparent;font-size:40px;padding:6px;min-width:52px;min-height:52px;color:var(--ink)}.count-demo small{display:block;font-size:18px}.counted{background:#e6edc7!important}.audio-placeholder{display:block;margin:25px auto 0;background:none;border:0;color:var(--muted);font-size:13px}.question-meta{display:flex;justify-content:space-between;margin-top:28px;font-weight:600;font-size:15px}.play-panel{background:white;border:1px solid var(--line);border-radius:28px;padding:36px 28px;margin-top:24px;min-height:430px}.play-panel h2{font-size:32px}.objects{display:flex;justify-content:center;align-content:center;align-items:center;flex-wrap:wrap;gap:12px;max-width:550px;margin:24px auto;font-size:36px;min-height:60px}.objects>span{display:inline-block}.answer-options{display:flex;justify-content:center;gap:15px;margin:28px 0 16px;flex-wrap:wrap}.answer{border:2px solid #dfe6d6;box-shadow:0 4px 0 #dfe6d6;background:#f8faf3;color:var(--ink);border-radius:20px;min-width:110px;min-height:85px;padding:18px;font-size:38px}.answer:hover:not(:disabled){border-color:#779c55;background:#f0f5dc}.answer.right{border-color:var(--green);background:#e7f0ca}.answer.tried:not(.right){border-style:dashed}.group-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.group-options .objects{font-size:30px;margin:10px 0;gap:8px}.empty-basket{min-height:95px;border:2px dashed #b3c49a;border-radius:18px}.target-number{font-size:80px;margin:15px auto 0;color:var(--green)}.sequence{display:flex;gap:12px;justify-content:center;margin:34px 0;flex-wrap:wrap}.sequence>span{display:grid;place-items:center;min-width:72px;min-height:78px;padding:12px;background:#eef3de;border-radius:16px;font:500 35px 'Fredoka',sans-serif}.sequence .missing{border:2px dashed var(--green);background:#fff8db}.blocks{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;max-width:260px;margin:16px auto 0}.ten{width:14px;height:60px;background:repeating-linear-gradient(to bottom,#6e9a62 0 5px,#e1edcd 5px 6px);border:1px solid #507d45;border-radius:2px}.one{width:14px;height:14px;background:#d3a42e;border:1px solid #9f7818;border-radius:2px;align-self:end}#feedback{min-height:44px;font-weight:600;padding:8px;font-size:18px}.correct{color:var(--green)}.retry{color:#966017}.result{max-width:650px;margin:50px auto;text-align:center;padding:40px}.celebrate{font-size:65px;animation:pop .5s ease-out}.result h1{margin:12px 0}.result>p{margin:15px 0 25px;color:var(--muted)}.result .stars{font-size:54px}.result-score{font:500 76px 'Fredoka',sans-serif;margin-top:15px}.result-score span{font-size:30px;color:var(--muted)}.earned{background:#edf2dc;padding:12px;border-radius:14px;margin:20px 0}.result-actions{display:flex;flex-direction:column;gap:15px;max-width:320px;margin:auto}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.metrics .panel{display:grid;gap:8px}.metrics strong{font:500 40px 'Fredoka',sans-serif}.metrics span{font-size:14px;color:var(--muted)}.skill-list{display:grid;gap:15px;margin-top:25px}.skill-row{display:grid;grid-template-columns:1fr auto;gap:20px}.skill-row h2{font-size:23px}.skill-row p{font-size:14px;color:var(--muted);margin-top:7px}.skill-row dl{grid-column:1/-1;display:flex;gap:28px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:15px;margin:0}.skill-row dt{font-size:12px;color:var(--muted)}.skill-row dd{margin:5px 0 0;font-size:15px;font-weight:600}.skip{position:absolute;top:-100px;left:20px;background:white;padding:15px;z-index:20}.skip:focus{top:10px}@keyframes pop{from{transform:scale(.7)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:1500px){.world-heading{padding-top:40px}.forest-map{min-height:900px}}@media(max-width:950px){.site-header{padding:0 25px;gap:20px}.site-header nav{margin-left:0;gap:20px}.world-layout{grid-template-columns:minmax(0,1fr) 245px;gap:18px}.trail{padding:10px 24px 28px}.trail-stop{width:95%;gap:12px}.map-node{width:90px;height:90px;font-size:40px}.node-label h2{font-size:19px}.map-caption{padding:20px 16px;flex-direction:column}.guide-card{padding:24px 16px}.world-heading h1{font-size:43px}.reward-pills{flex-direction:column}.heading-leaf{display:none}}@media(max-width:700px){body{font-size:16px}.site-header{height:auto;min-height:85px;padding:16px 20px;flex-wrap:wrap;gap:12px}.brand{font-size:25px}.brand-mark{width:34px;height:34px;font-size:26px}.site-header nav{order:3;width:100%;justify-content:center;gap:50px;padding-top:5px}.site-header nav a{padding:8px}.site-header nav a.active:after{bottom:0}.player-chip{font-size:13px;padding:9px 12px;max-width:48%;overflow:hidden;text-overflow:ellipsis}.player-chip span{margin-left:5px}main{padding:0 18px}.world-heading{padding:15px 0 25px;display:block}.world-heading h1{font-size:42px}.world-heading .eyebrow{font-size:10px}.reward-pills{flex-direction:row;margin-top:20px}.world-layout{display:flex;flex-direction:column}.forest-map{width:100%;order:2}.adventure-sidebar{width:100%;order:1}.guide-card{display:none}.journey{margin:0;padding:18px}.journey .legend,.sidebar-note{display:none}.journey .progress-track{margin-top:12px}.map-caption{flex-direction:row;font-size:9px}.map-caption>span+span{font-size:10px}.trail{padding:5px 16px 24px}.trail-stop{width:90%;min-height:106px;margin:13px 0;gap:10px}.node-label{padding:8px}.node-label h2{font-size:20px}.node-label small{font-size:9px}.node-state{font-size:11px}.map-node{width:87px;height:87px}.boss-stop{padding:18px;gap:12px}.boss-stop>span{font-size:42px}.boss-stop h2{font-size:20px}.game-top{font-size:10px}.game-top .stars{font-size:19px}.game-top .back{font-size:12px}.game-shell h1{font-size:34px}.play-panel,.lesson{padding:25px 15px}.play-panel h2,.lesson h2{font-size:25px}.answer{min-width:64px;min-height:68px;font-size:30px;padding:12px}.answer-options{gap:12px}.group-options .objects{font-size:26px;gap:5px}.objects{gap:7px;font-size:31px}.count-object{font-size:29px}.sequence{gap:7px}.sequence>span{min-width:44px;min-height:58px;font-size:25px;padding:9px}.lesson-groups{gap:12px}.lesson-groups>div{padding:15px;font-size:23px}.result{padding:30px 20px;margin-top:30px}.metrics{grid-template-columns:1fr;gap:10px}.metrics .panel{padding:20px;grid-template-columns:100px 1fr;align-items:center}.metrics strong{font-size:30px}.skill-row{padding:22px;gap:15px}.skill-row dl{gap:18px}.home-hero{padding-top:40px}.home-icons{letter-spacing:10px;font-size:43px}.home-icons span{font-size:75px}.world-ticket{padding:18px;gap:14px}.world-ticket>span:last-child{display:none}.page-intro h1{font-size:36px}.profile-form{padding:22px}.profile-card{width:100%}.profile-grid form{min-width:calc(50% - 12px)}.profile-card small{font-size:11px}} 
/* First-number games: stable containers and roomy touch targets. */
.game-shell .button,.mode-tabs a{min-height:60px}.question-dots{font-size:23px;color:var(--green);letter-spacing:7px;margin:12px}.basket{border:2px solid #d5dfbd;border-bottom:7px solid #c3d49b;border-radius:18px 18px 30px 30px;background:#f6f8ed;padding:14px;min-height:100px}.basket:empty{background:linear-gradient(#fafbf5,#f0f4e5)}
#visual>.objects{min-height:130px;max-width:510px}.objects.grid,.objects.scattered{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.objects.row{display:flex;flex-wrap:wrap}.objects>span{font-size:32px;line-height:44px;min-width:0}.objects.scattered>*:nth-child(3n+1){transform:translateY(5px)}.objects.scattered>*:nth-child(3n+2){transform:translateY(-5px)}
.count-object{position:relative;min-width:60px;min-height:64px;font-size:33px;padding:5px}.count-object small{position:absolute;right:0;top:-5px;border-radius:50%;background:var(--green);color:white;width:25px;height:25px;font:700 17px/25px sans-serif}.counted{animation:pop .25s ease-out}.answer-options.group-options{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.group-options .answer{min-width:0;padding:10px}.group-options .objects{grid-template-columns:repeat(5,minmax(0,1fr));padding:10px;gap:4px;min-height:112px}.group-options .objects>span{font-size:28px}.group-options .answer:nth-child(3):last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 6px)}.group-options .same-answer{font-size:26px;min-height:70px}.answer.tried{animation:gentle-shake .3s}.celebrating{animation:pop .4s}.unlock-notice{animation:pop .5s}.lesson-compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:25px auto}.lesson-collection{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;font-size:32px}.lesson-compare .answer{min-width:0;padding:15px}.result-actions .button{width:100%}.audio-placeholder{min-height:44px;min-width:44px}.game-shell pre{white-space:pre-wrap;text-align:left;overflow-wrap:anywhere}.count-demo button{min-width:64px;min-height:70px}.game-top>span{letter-spacing:0}.lesson #lesson-feedback{min-height:30px}.lesson #lets-play{margin-top:15px}
@keyframes gentle-shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(max-width:700px){.game-shell .answer{min-height:76px;min-width:70px}.answer-options.group-options{grid-template-columns:1fr}.group-options .answer:nth-child(3):last-child{grid-column:auto;width:100%}.group-options .objects{max-width:100%;margin:0;min-height:90px}.group-options .answer{min-width:0;padding:8px}.play-panel{padding:22px 12px}.objects.grid,.objects.scattered{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.group-options .objects{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.group-options .objects>span{font-size:27px}.game-top{flex-wrap:wrap}.game-top .back{min-height:44px}.lesson-compare{gap:10px}.lesson-compare .answer{padding:10px;min-width:0}.answer-options{gap:10px}.game-shell .answer-options:not(.group-options){display:grid;grid-template-columns:repeat(2,minmax(70px,100px))}.lesson{padding:24px 14px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Keep the current question close to the child's hands. */
.playing .site-header{height:68px;min-height:68px}.playing .site-header nav{display:none}.playing .game-top{margin:10px 0}.playing .game-shell{margin:10px auto}.playing .game-shell h1{font-size:34px}.playing .eyebrow{margin-bottom:6px}.playing .question-meta{margin-top:14px}.playing .question-dots{margin:5px}.playing .play-panel{margin-top:12px;padding:22px 20px;min-height:0}.playing .target-number{font-size:65px;margin:4px auto}.playing .answer-options{margin:16px 0 8px}.playing .audio-placeholder{margin:0 auto}.playing .three-groups{grid-template-columns:repeat(3,minmax(0,1fr))}.playing .three-groups .answer:nth-child(3):last-child{grid-column:auto;width:100%}.playing .group-options .objects{display:grid}.playing #visual>.objects{margin:14px auto}.playing footer{padding:20px 0}
@media(max-width:700px){.playing .site-header{padding:10px 18px}.playing .game-shell h1{font-size:29px}.playing .play-panel{padding:18px 12px}.playing .three-groups{grid-template-columns:1fr}.playing .group-options .objects{min-height:78px}.playing .group-options .answer{min-height:94px}.playing .target-number{font-size:54px}.playing .game-top{gap:8px}.playing .game-top .stars{font-size:16px}.playing .game-top>span{font-size:11px}.playing .question-meta{margin-top:10px}}
/* Phase 2: one shared, shape-based quantity model. */
.base-ten{display:flex;justify-content:center;align-items:flex-end;flex-wrap:wrap;gap:18px;margin:18px auto;max-width:440px;min-width:0}.ten-group,.one-group{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;max-width:100%}.one-group{max-width:116px;align-items:flex-end}.ten-bar{display:block;width:20px;height:124px;border:2px solid #285d49;background:repeating-linear-gradient(to bottom,#b9d99c 0 10px,#285d49 10px 12px);flex:none;border-radius:3px}.one-cube{display:block;width:20px;height:20px;border:2px solid #74511b;background:#f4ce6d;flex:none}.bond-row,.comparison-row{display:flex;justify-content:center;gap:24px;align-items:center;margin:18px auto}.bond-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:240px;margin:12px auto}.bond-dot{width:26px;height:26px;display:block;border:2px solid #245981;border-radius:4px;background:#97c9e9}.second .bond-dot{border-radius:50%;background:#efb6a8;border-color:#9a4c37}.bond-row.combined{gap:4px;border:2px solid #658747;border-radius:20px}.missing-group{font-size:44px;min-width:80px;border:2px dashed #658747;border-radius:18px}.bond-diagram{font:500 40px 'Fredoka',sans-serif;margin:18px}.bond-whole{border:2px solid #628951;border-radius:50%;width:65px;margin:auto}.bond-branches{letter-spacing:22px;padding-left:22px;line-height:1}.bond-parts{white-space:pre}.pair-caption{font-size:23px}.model-options{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.model-options .answer{min-width:0;width:100%;padding:14px}.model-options .base-ten{gap:10px}.model-options .ten-group{gap:5px}.model-options .ten-bar{width:16px;height:104px;background:repeating-linear-gradient(to bottom,#b9d99c 0 8px,#285d49 8px 10px)}.quantity-card{flex:1;min-width:0;border:2px solid #dce5cf;border-radius:18px;padding:12px}.number-builder{width:100%;max-width:430px;display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:auto}.number-builder label{font-weight:700}.number-builder select{font-size:26px;min-height:60px;margin:8px 0}.build-preview,.number-builder>.button{grid-column:1/-1}.advanced-options:has(.number-builder){display:block!important}.marked-digit{background:#f9df8c;border-bottom:6px solid #74511b;border-radius:8px}.place-table{font:500 28px 'Fredoka',sans-serif;white-space:pre}.mango-pairs{display:flex;gap:12px;justify-content:center;margin:20px auto}.mango-row{display:grid;gap:2px;font-size:24px}.paired .mango-row>span{border-bottom:2px solid #628951}.paired .extra-mango{background:#f9df8c;border:2px dashed #74511b;border-radius:5px}#hint-text{font-size:18px;margin:12px auto;max-width:480px}.trail-stop .node-label{min-width:0}.count-trace{font-size:26px}.trail-stop .map-node{flex-shrink:0}
@media(min-width:701px){.trail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px;padding:20px}.trail:before{left:50%;border-left:5px dotted #b9cc96;top:60px;bottom:70px}.trail-stop{width:100%;flex-direction:column;text-align:center;gap:8px;margin:0;min-height:185px}.trail-stop:nth-child(4n+3){grid-column:2}.trail-stop:nth-child(4n+4){grid-column:1;grid-row:auto}.trail-stop:nth-child(3){grid-row:2}.trail-stop:nth-child(4){grid-row:2}.trail-stop:nth-child(7){grid-row:4}.trail-stop:nth-child(8){grid-row:4}.node-label{padding:6px}.forest-map{min-height:0}}
@media(max-width:700px){.base-ten{gap:12px}.ten-bar{width:18px}.comparison-row{gap:8px;align-items:stretch}.quantity-card{padding:8px}.model-options{grid-template-columns:1fr!important}.bond-row{gap:12px}.bond-dot{width:23px;height:23px}.game-shell .advanced-options .answer{min-width:0}.number-builder .button{padding:12px}.trail-stop{width:95%}.node-label h2{overflow-wrap:anywhere}}
/* Number Forest: shared paths, patterns, estimates and clue cards. */
.number-line{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:28px auto 20px;padding:12px 0;max-width:100%;position:relative}
.line-stop{position:relative;display:grid;place-items:center;min-width:42px;min-height:52px;padding:8px 5px;border:2px solid #b8cc9d;border-radius:12px;background:#edf3dd;color:var(--deep);font:500 23px 'Fredoka',sans-serif}
button.line-stop{min-width:52px;min-height:60px;cursor:pointer}.line-stop.highlighted{border-color:#316144;background:#d6e9b3}.line-stop.missing,.forest-sequence .missing{border:2px dashed #507d45;background:#fff3c8}.frog{position:absolute;top:-27px;font-size:25px;animation:forest-hop .35s ease-out}.revealed{animation:pop .3s}.jump-caption{font-size:23px;color:var(--green);margin:16px}.forest-sequence{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:20px auto}.forest-sequence>span{display:grid;place-items:center;min-width:42px;min-height:58px;padding:8px;background:#edf3dd;border-radius:12px;font:500 27px 'Fredoka',sans-serif}.pattern-shape{font-size:17px;color:#b06733}.forest-sequence>span:nth-child(2n) .pattern-shape{color:#346878}
.sequence-options{display:flex!important;flex-direction:column;align-items:stretch;max-width:620px;margin-left:auto!important;margin-right:auto!important}.sequence-options .answer{padding:8px;min-width:0}.sequence-options .forest-sequence{margin:0;gap:5px}.sequence-options .forest-sequence>span{font-size:23px;min-width:33px;padding:5px;min-height:44px}
.estimate-row{display:flex;justify-content:center;align-items:flex-end;gap:24px;margin:22px auto;max-width:530px}.estimate-card{flex:1;min-width:0}.estimate-card>p{margin:8px!important;font-weight:600}.estimate-jar{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-end;gap:5px;max-width:185px;min-height:100px;margin:auto;padding:15px 10px;border:3px solid #759b94;border-top:9px solid #759b94;border-radius:16px 16px 35px 35px;background:#ecf6f3}.estimate-jar.large{max-width:225px;min-height:135px}.estimate-ball{display:block;width:17px;height:17px;flex:none;border-radius:50%;background:#edb74f;border:2px solid #9a691f;transform:translateY(var(--shift)) rotate(var(--turn))}
.detective-clues{display:grid;gap:12px;max-width:500px;margin:22px auto}.clue-card{background:#faf4df;border:2px solid #ddcda2;border-radius:15px;padding:16px;text-align:left;color:var(--deep);font-size:20px;min-height:60px}.clue-card.checked{background:#e4efcf;border-color:#67894c}.clue-card.checked:after{content:' ✓';color:#326143}.rounding-model{max-width:600px;margin:auto}.rounding-model .number-line{flex-wrap:nowrap;gap:0;justify-content:space-between}.rounding-model .line-stop{background:none;border:0;font-size:18px;min-width:0;padding:5px 0}.rounding-track{height:5px;background:#9eb982;margin:48px 15px 0;position:relative}.rounding-frog{position:absolute;bottom:4px;font-size:30px;transform:translateX(-50%);transition:left .55s ease-out}.rounding-model .number-line{margin:0 5px 20px;padding:0}.skip-groups{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:20px;margin:20px auto}.skip-groups>div{flex:1;min-width:100px}.group-icons{font-size:26px;overflow-wrap:anywhere}.skip-groups strong{display:block;font-size:24px}.master-emblem{font-size:85px;margin:25px}.skill-badge{font-size:14px;color:var(--muted)}.world-complete{border:3px solid #aab76d;background:linear-gradient(150deg,#fffdf2,#edf6db)}.world-complete .celebrate{animation:forest-hop .65s ease-out 2}.world-complete-notice{background:#eaf2d4;border-radius:18px;padding:18px;margin-bottom:20px;text-align:center}.trail-stop:last-child .map-node{background:#f7e4a4;border-color:#ac8837}.trail-stop:last-child .node-label small{color:#83651a}
@keyframes forest-hop{0%{transform:translateY(0)}50%{transform:translateY(-15px)}100%{transform:translateY(0)}}
@media(min-width:701px){.trail{grid-template-columns:repeat(2,minmax(0,1fr))}.trail-stop{grid-row:var(--trail-row)!important;grid-column:var(--trail-col)!important}.trail-stop:last-child{grid-column:1 / -1!important}.trail-stop:nth-child(4n+1):not(:last-child):after,.trail-stop:nth-child(4n+3):not(:last-child):after{content:'';position:absolute;width:50%;border-top:4px dotted #b9cc96;top:48px;left:75%;z-index:-1}.trail-stop:nth-child(4n+3):not(:last-child):after{left:-25%}}
@media(max-width:700px){.number-line{gap:6px}.line-stop{min-width:37px;font-size:21px}.estimate-row{gap:10px}.estimate-jar{padding:12px 6px;gap:4px}.estimate-ball{width:15px;height:15px}.estimate-card>p{font-size:14px}.forest-sequence{gap:5px}.forest-sequence>span{font-size:23px;min-width:34px;padding:6px}.clue-card{font-size:18px;padding:13px}.sequence-options .forest-sequence>span{font-size:20px;min-width:28px;padding:4px}.question-dots{font-size:18px;letter-spacing:4px}.rounding-model .line-stop{font-size:16px}.game-shell .forest-options:not(.sequence-options){grid-template-columns:repeat(2,minmax(70px,120px))}.skip-groups{gap:10px}.skip-groups>div{min-width:80px}.group-icons{font-size:21px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Connect the alternating rows into one continuous winding journey. */
@media(min-width:701px){.trail:before{display:none}.trail-stop:nth-child(odd):not(:last-child):after{left:50%;width:calc(100% + 14px);top:48px}.trail-stop:nth-child(4n+3):not(:last-child):after{left:calc(-50% - 14px)}.trail-stop:nth-child(even):after{content:'';position:absolute;top:48px;left:50%;height:calc(100% + 24px);border-left:4px dotted #b9cc96;z-index:-1}.trail-stop:nth-child(18):after{width:calc(50% + 7px);height:calc(100% - 8px);left:calc(-7px);border-left:0;border-right:4px dotted #b9cc96;border-bottom:4px dotted #b9cc96;border-bottom-right-radius:35px}.node-label{position:relative;background:#edf3df;border-radius:15px}.node-wrap{z-index:1}}
.line-stop.right{background:#d6e9b3;border-color:#316144}
/* Addition village uses the shared cards, trail, buttons and celebrations. */
.arithmetic-sentence{display:flex;justify-content:center;align-items:center;gap:clamp(8px,3vw,24px);font-size:clamp(30px,6vw,58px);font-weight:800;margin:20px 0}.arithmetic-groups{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;margin:20px auto}.arithmetic-basket{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:330px;padding:15px;border:2px dashed #487a61;border-radius:22px;background:#fffdf2}.arithmetic-object{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;font-size:32px;border:0;border-radius:12px;background:transparent}.arithmetic-object.taken{opacity:.35;transform:translateY(-5px)}.arithmetic-object.taken:after{content:'×';position:absolute;color:#293d31;font-size:52px}.arithmetic-support{margin:16px auto}.arithmetic-support>.button{margin:10px}.arithmetic-sign,.empty-quantity{font-size:32px;font-weight:800}.world-choice{max-width:760px;margin:24px auto;padding:24px}.village-map{background:#fff8e8}.world-choice p{margin:10px 0}@media(max-width:480px){.arithmetic-basket{max-width:250px;padding:10px;gap:6px}.arithmetic-object{font-size:28px}.arithmetic-support .bond-diagram{max-width:100%}}@media(prefers-reduced-motion:no-preference){.arithmetic-object{transition:opacity .25s,transform .25s}}
.reward-pills{flex-wrap:wrap;max-width:100%}.village-map .node-label{background:#fff8e8}@media(min-width:701px){.village-map .trail-stop:last-child{grid-column:var(--trail-col)!important}.village-map .trail-stop:last-child:after{display:none}}
/* Make room for the independent Practice Lab navigation entry. */
@media(max-width:700px){.site-header nav{gap:16px}.site-header nav a{padding:8px 4px}}
@media(max-width:420px){.site-header nav{gap:8px}.site-header nav a{white-space:nowrap;font-size:14px}}
