:root{--paper:#faf9f4;--ink:#203e35;--muted:#6c7c73;--green:#266854;--soft:#edf3ed;--line:#e2e8de;--orange:#d67540;--white:#fff;--radius:22px;font-family:Arial,Helvetica Neue,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select{font:inherit}a,button,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}a,button,input,select{outline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d78845}h1,h2,h3,p{margin:0}h1{font-size:48px;line-height:1.13;letter-spacing:-1.6px}h2{font-size:25px;line-height:1.28;letter-spacing:-.5px}h3{font-size:22px;line-height:1.35}p{line-height:1.65}.muted{color:var(--muted)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:#5a7869}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:21px;font-weight:700;letter-spacing:-.6px}.brand small{display:block;font-size:11px;letter-spacing:.2px;font-weight:400;color:var(--muted);margin-top:5px}.brand-mark{display:grid;place-items:center;width:46px;height:46px;background:var(--green);color:#fff;font-size:27px;border-radius:15px}.button{min-height:50px;border-radius:13px;padding:13px 20px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:18px;font-weight:700;font-size:14px;transition:background .15s,transform .15s;text-decoration:none}.primary{background:var(--green);color:#fff}.primary:hover{background:#1c5342}.secondary{background:white;border-color:var(--line);color:var(--green)}.secondary:hover{background:var(--soft)}.text-button{min-height:48px;padding:10px;color:var(--green);font-weight:600;font-size:14px}.icon-button,.text-button{border:0;background:transparent}.icon-button{width:48px;height:48px;flex-shrink:0;color:var(--muted);font-size:22px;border-radius:12px}.icon-button:hover{background:var(--soft)}.wide{width:100%}.pill{border:1px solid var(--line);border-radius:30px;background:white;padding:10px 15px;font-size:12px;color:var(--muted);white-space:nowrap}.dashboard{max-width:1160px;margin:auto;padding:0 40px}.topbar{align-items:center;padding:26px 0;border-bottom:1px solid var(--line);margin-bottom:42px}.page-heading,.topbar{display:flex;justify-content:space-between}.page-heading{align-items:flex-start;gap:20px;margin-top:12px;margin-bottom:32px}.page-heading p{color:var(--muted);margin-top:16px;font-size:16px}.welcome-card{background:#eaf1e7;border:1px solid #e2e9dd;border-radius:var(--radius);padding:33px 38px;display:flex;justify-content:space-between;gap:28px;margin-bottom:38px;overflow:hidden}.welcome-card h2{font-size:30px;margin-top:12px}.welcome-card p{max-width:510px;color:#567061;margin-top:14px;font-size:14px}.stage-label{display:inline-flex;align-items:center;background:#fff9e9;color:#91723b;font-size:11px;font-weight:700;border-radius:8px;padding:7px 10px;margin-top:20px}.guide{width:220px;height:220px;flex-shrink:0}.guide-small{width:48px;height:48px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.section-heading p{font-size:13px;margin-top:5px}.card{border:1px solid var(--line);border-radius:var(--radius);background:white;padding:26px;box-shadow:0 3px 15px #203e3503}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.profile-top{display:flex;align-items:center;gap:16px;margin-bottom:25px}.profile-top>div{flex:1 1;min-width:0}.profile-top h3{overflow-wrap:anywhere}.profile-top p{font-size:12px;margin-top:5px}.avatar{display:grid;place-items:center;width:62px;height:62px;border-radius:20px;background:#f9e9d9;font-size:32px;flex-shrink:0}.avatar-owl{background:#eee8f8}.avatar-bear{background:#ede7df}.avatar-rabbit{background:#f8e8ec}.profile-details{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--green);border-top:1px solid #f0f2ec;padding-top:18px}.status-dot{width:6px;height:6px;border-radius:50%;background:#61a27e}.sound-label{margin-left:auto;font-weight:400;color:var(--muted)}.profile-note{color:var(--muted);font-size:13px;margin:12px 0 20px}.empty-state{text-align:center;padding:35px}.empty-state p{color:var(--muted);max-width:500px;margin:10px auto 22px;font-size:14px}.empty-symbol{font-size:30px;color:var(--orange);display:block;margin-bottom:12px}.next-step{display:flex;gap:20px;padding:28px 0;margin-top:22px}.step-number{display:grid;place-items:center;background:#f0ede5;color:#8c8166;width:48px;height:48px;border-radius:14px;font-size:17px;flex-shrink:0}.next-step h3{font-size:16px}.next-step p{font-size:13px;color:var(--muted);margin-top:7px;max-width:780px}.privacy-note{padding-bottom:32px}.dashboard footer,.privacy-note{font-size:12px;color:var(--muted)}.dashboard footer{border-top:1px solid var(--line);padding:22px 0 30px;display:flex;justify-content:space-between}.form-stack{display:grid;gap:20px;margin-top:30px}label{display:grid;gap:9px;font-weight:600;font-size:13px}input,select{width:100%;min-height:50px;border:1px solid #dbe3d9;background:#fdfefa;border-radius:12px;padding:13px 14px;color:var(--ink);font-size:15px}input::placeholder{color:#8b958b;font-size:13px}input:focus,select:focus{border-color:var(--green)}.form-note{font-size:12px;color:var(--muted);font-weight:400}.error{padding:13px 16px;background:#fff0ec;color:#9a3925;border:1px solid #f4d4cc;border-radius:12px;font-size:14px;line-height:1.5;margin-bottom:14px}.form-stack .error{margin-bottom:0}.profile-form{margin-bottom:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.full-width{grid-column:1/-1}.check-label{display:flex;align-items:center;gap:12px;min-height:48px}.check-label input{width:22px;height:22px;min-height:0;accent-color:var(--green)}.login-shell{display:grid;grid-template-columns:1.05fr 1fr;max-width:1180px;min-height:720px;margin:4vh auto;padding:24px;gap:60px;align-items:center}.login-story{border-radius:32px;background:#eaf1e7;padding:34px 38px;min-height:660px;display:flex;flex-direction:column}.story-body{padding-top:55px;flex:1 1}.story-body h1{font-size:42px;margin-top:15px}.story-body p{font-size:15px;color:#5b7566;margin-top:20px;max-width:370px}.story-body .guide{display:block;margin:22px auto 12px;width:205px;height:205px}.story-caption{display:block;text-align:center;color:#4a715d;font-size:12px}.login-stage{font-size:10px;color:#65816d;margin-top:20px}.login-card{padding:25px 20px 25px 0;max-width:400px;width:100%}.login-card h2{font-size:31px;margin-top:12px;margin-bottom:15px}.login-card>.muted{font-size:14px;max-width:350px}.login-footnote{display:flex;align-items:center;gap:15px;border-top:1px solid var(--line);margin-top:32px;padding-top:26px;font-size:12px;color:var(--muted)}.login-footnote>span{font-size:26px;color:#678778}.child-shell{min-height:100dvh;background:#eff4e9;padding:24px;position:relative}.parent-link{position:absolute;top:20px;right:25px;min-height:48px;padding:10px;color:#687e6c;font-size:13px}.child-welcome,.parent-link{display:flex;align-items:center}.child-welcome{flex-direction:column;padding-top:15vh;text-align:center}.child-welcome h1{font-size:40px;margin-top:24px;overflow-wrap:anywhere;max-width:100%}.child-welcome p{font-size:24px;color:#5b7a62;margin-top:15px}.child-stars{color:#c3903f;font-size:40px;letter-spacing:13px;margin-top:25px}.error-page{max-width:600px;padding:50px 24px;margin:auto}.error-page h1{font-size:30px}.error-page p{margin:20px 0}@media(max-width:900px){.login-shell{gap:24px;margin:0;min-height:100vh}.login-story{padding:25px;min-height:620px}.story-body h1{font-size:34px}.login-card{padding:20px 5px}.dashboard{padding:0 25px}.page-heading{align-items:center}h1{font-size:40px}.pill{display:none}.welcome-card{padding:28px}.welcome-card .guide{width:185px;height:185px}.profile-grid{grid-template-columns:1fr}}@media(max-width:600px){.login-shell{display:flex;flex-direction:column;align-items:stretch;padding:18px;gap:25px}.login-story{min-height:0;padding:22px;border-radius:24px}.story-body{padding-top:25px;position:relative;min-height:140px}.story-body h1{font-size:28px;max-width:230px;letter-spacing:-.7px}.story-body .eyebrow{font-size:9px;letter-spacing:1px}.login-stage,.story-body p,.story-caption{display:none}.story-body .guide{position:absolute;right:-7px;bottom:-5px;width:100px;height:100px;margin:0}.login-card{padding:0 8px 20px;max-width:none}.login-card h2{font-size:28px}.form-stack{margin-top:24px}.login-footnote{margin-top:22px;padding-top:20px}.dashboard{padding:0 18px}.topbar{padding:20px 0;margin-bottom:28px}.brand{font-size:19px;gap:10px}.brand-mark{width:40px;height:40px;border-radius:13px}.brand small{font-size:9px}h1{font-size:34px;letter-spacing:-1px}.page-heading{margin-bottom:24px}.page-heading p{font-size:14px}.welcome-card{padding:23px;position:relative;min-height:270px}.welcome-card h2{font-size:25px}.welcome-card p{font-size:12px;max-width:70%;margin-bottom:6px}.welcome-card .guide{position:absolute;right:-5px;bottom:40px;width:105px;height:105px}.welcome-card .eyebrow{font-size:9px;letter-spacing:1px}.stage-label{margin-top:12px}.section-heading{align-items:flex-start;gap:12px}.section-heading h2{font-size:22px}.section-heading p{font-size:11px;max-width:180px}.section-heading .button{font-size:11px;padding:10px 12px;min-height:48px;white-space:nowrap}.card{padding:21px}.profile-top{gap:12px}.avatar{width:54px;height:54px;border-radius:18px;font-size:29px}.form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.next-step{gap:14px}.dashboard footer{font-size:10px;gap:15px}.child-welcome h1{font-size:32px}.child-welcome p{font-size:22px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.catalog-heading{font-size:38px;margin:15px 0}.catalog-stats{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.catalog-stats span{background:#edf3ed;padding:10px 14px;border-radius:12px;font-size:13px}.branch-picker{max-width:330px;margin-bottom:24px}.catalog-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.3fr);gap:22px;align-items:start}.catalog-list{display:grid;gap:12px}.catalog-list .card{padding:18px}.catalog-list summary{cursor:pointer;min-height:48px}.catalog-list summary strong{font-size:14px}.catalog-list summary span{display:block;font-size:11px;margin-top:7px}.catalog-list details p{font-size:12px;margin:12px 0}.template-button{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;min-height:48px;padding:10px;background:#fafbf7;border:1px solid #e2e8de;border-radius:10px;margin-top:8px;font-size:11px}.template-button.selected{border-color:#266854;background:#eaf1e7}.template-button small{font-size:10px;color:#6c7c73}.review-panel{position:sticky;top:20px;overflow-wrap:anywhere}.review-panel h2{font-size:22px}.review-instruction{font-size:20px;margin:24px 0 16px}.review-model{padding:16px;background:#f6f8f1;border-radius:14px;margin-bottom:20px}.review-tags{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.review-tags span{padding:8px 12px;background:white;border:1px solid #e2e8de;border-radius:10px;font-size:18px}.review-expression{font-size:26px;margin:10px 0}.review-grids{display:flex;gap:20px;flex-wrap:wrap}.review-grid{display:grid;gap:3px;margin:10px 0}.review-grid span{height:36px;border:1px solid #bad0bb;border-radius:4px;background:white}.review-grid span.filled{background:#47846d}.answer-box{padding:16px;background:#fff4df;border:1px solid #efe1c4;border-radius:14px;font-size:13px}.answer-box p{margin-top:10px}.material-details{margin:20px 0;font-size:13px}.material-details summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:600}.material-details p{margin:12px 0}.review-spoken{font-size:12px;margin:18px 0}.review-checks{display:grid;gap:14px;margin:20px 0}.review-checks .check-label{font-size:12px}.review-checks textarea{font:inherit;border:1px solid #dbe3d9;border-radius:12px;padding:12px;resize:vertical;width:100%}.review-panel .form-note{margin-top:16px}.next-step .button{margin-top:14px}@media(max-width:800px){.catalog-layout{grid-template-columns:1fr}.review-panel{position:static}.catalog-heading{font-size:30px}.catalog-list{max-height:420px;overflow:auto}}.child-app{max-width:1000px;margin:auto;padding:20px;color:#203e34;font-size:22px;min-height:100dvh}.child-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.child-app a.math-button,.child-app button{min-height:52px;font-size:20px;border:2px solid #b2c7ba;border-radius:16px;background:#fffdf8;color:#203e34;padding:10px 16px;cursor:pointer;touch-action:manipulation}.child-app a:focus-visible,.child-app button:focus-visible{outline:4px solid #916b22;outline-offset:3px}.child-app button:disabled{cursor:default;opacity:.55}.child-app .primary{background:#266854;color:white;border-color:#266854}.child-app .focused,.child-app .selected{background:#dce9f4;border-color:#345c85;color:#183f62;opacity:1}.child-app h1{font-size:28px;line-height:1.45;max-width:800px;margin:22px auto}.child-app h2{font-size:28px;line-height:1.4}.child-app p{font-size:22px;line-height:1.5}.child-state,.child-welcome{text-align:center;padding:24px 12px}.child-state .guide,.child-welcome .guide{max-width:220px;margin:auto}.child-state .math-button{margin:8px}.model-items,.model-numbers,.part-fields,.sequence-slots,.sound-controls,.task-tools{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:20px 0}.child-task{text-align:center;background:#fffdf8;border:1px solid #d5dfd5;border-radius:28px;padding:24px}.task-controls{max-width:760px;margin:20px auto}.child-app .how-button{font-size:20px}.math-token{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;max-width:100%}.math-token svg{flex-shrink:0}.math-token b{font-size:30px}.model-numbers span{padding:12px 22px;background:#eef2e9;border-radius:12px;font-size:32px}.expression,.number-draft{display:block;font-size:44px;letter-spacing:2px;margin:20px auto}.number-draft{border:2px solid #b2c7ba;border-radius:18px;min-width:140px;width:max-content;padding:12px 24px;min-height:72px}.keypad{display:grid;grid-template-columns:repeat(3,minmax(64px,88px));gap:10px;justify-content:center}.child-app .keypad button{font-size:32px;min-height:64px}.piece-board{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.child-app .piece{min-width:52px;padding:8px;font-size:32px}.child-app .part-field{min-width:130px;display:flex;flex-direction:column;align-items:center;gap:8px}.part-field b{font-size:36px}.number-line{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;border-bottom:3px solid #758f84;padding-bottom:8px}.child-app .line-point{min-width:58px;display:flex;flex-direction:column;align-items:center;padding:8px}.mapping-board{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.mapping-sources,.mapping-targets{display:flex;flex-direction:column;gap:12px}.mapping-card{min-height:64px;overflow-wrap:anywhere}.assignment{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:8px;font-size:20px}.child-app .sequence-slot{min-width:70px;min-height:70px;font-size:30px}.math-grid{display:grid;gap:6px;justify-content:center;margin:16px auto;width:max-content}.cell,.child-app .cell{width:56px;height:56px;min-height:56px;display:flex;justify-content:center;align-items:center;padding:0;border-radius:8px;border:2px solid #91a99e;font-size:30px}.cell.fixed,.child-app .cell.fixed{background:#526b60;color:white;opacity:1}.grids{gap:32px;flex-wrap:wrap}.flash-panel,.grids{display:flex;justify-content:center}.flash-panel{min-height:210px;align-items:center}.child-app .done-button{min-width:200px;min-height:64px;font-size:26px;margin:24px 0}.child-notice,.help-message{background:#f6ecd5;border:1px solid #d8bb86;padding:16px;border-radius:16px;font-size:20px}@media(max-width:600px){.child-app{padding:12px}.child-task{padding:16px 10px}.child-app h1{font-size:24px}.sound-controls{gap:8px}.child-app .sound-controls button{padding:8px;font-size:20px}.mapping-board{gap:10px}.child-app .mapping-card{padding:8px}.math-token{gap:4px}.child-topbar{flex-wrap:wrap}.task-tools{gap:8px}}@media(prefers-reduced-motion:reduce){.child-app *{animation:none!important;transition:none!important}}.mission-heading{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;margin:20px 0;font-size:20px}.mission-heading progress{accent-color:#266854;max-width:200px;height:20px}.mission-map{text-align:left;margin:32px auto;max-width:800px}.mission-map section{margin:24px 0;padding:20px;border:1px solid #cbd8ca;border-radius:24px;background:#fffdf8}.mission-map ol{list-style:none;padding:0}.mission-map li{display:flex;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid #dce4d9}.mission-map small{display:block;font-size:20px;margin-top:8px}.medal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px}.medal-grid article{display:flex;flex-direction:column;align-items:center;text-align:center;background:#f6ecd5;border-radius:18px;padding:20px 12px;gap:12px;font-size:20px}.medal-icon{font-size:44px}.solution-model{margin:20px auto;border:2px solid #c8d7c5;border-radius:18px;padding:16px;min-width:0}.solution-model legend{font-size:22px;padding:0 12px}.learning-demo p,.learning-feedback p{max-width:720px;margin:24px auto}.solution-model .keypad{display:none}.help-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.help-groups>div{padding:12px;border:2px solid #cfbd95;border-radius:16px}.help-groups h3{font-size:22px}.help-model{margin:16px 0}.help-model .model-items{gap:6px}.child-app .cell.dots-only{border-color:transparent;background:transparent;color:#477966}.parent-progress .card,.report-tabs{margin:20px 0}.report-tabs{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.report-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}.report-metrics strong{display:block;font-size:28px;color:var(--green,#285e43)}.report-metrics span{display:block;margin-top:6px}.report-metrics .full-width{grid-column:1/-1}.skill-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.attempt-row,.report-version,.skill-summary{border:1px solid #dce5dc;border-radius:18px;padding:20px;margin:12px 0;overflow-wrap:anywhere}.tier-summary{border-left:3px solid #9ebfa8;padding-left:14px;margin:16px 0}.annotation-form{display:grid;gap:14px;margin-top:16px}.annotation-form label{display:grid;gap:8px}.annotation-form textarea{width:100%;min-height:100px;padding:12px;font:inherit;border:1px solid #b3c2b5;border-radius:12px}.answer-data{white-space:pre-wrap;overflow-wrap:anywhere;display:block;padding:12px;background:#f5f7f2}.report-version summary{cursor:pointer;padding:8px 0}@media(max-width:720px){.skill-map{grid-template-columns:1fr}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-progress .topbar{flex-wrap:wrap;gap:12px}}