:root{font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif;color:#243e35;background:#f7f5ed;font-synthesis:none;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit;border:0}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #7148ac;outline-offset:5px}button:not(:disabled):active{transform:translateY(1px)}header{max-width:1120px;margin:auto;padding:26px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dddfd4}header a{text-decoration:none;color:inherit;font-size:24px;font-weight:800;display:flex;align-items:center;gap:12px}.brand-icon{color:#47785a;font-size:36px}.header-note{font-size:14px;color:#566a5e}main{max-width:1060px;margin:auto;padding:35px 28px 50px}footer{text-align:center;color:#647268;padding:24px;font-size:13px}.welcome{display:flex;justify-content:space-between;align-items:center;padding:12px 0 32px;gap:20px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:#586d5e;margin:0 0 10px}h1{font-size:clamp(36px,5vw,57px);line-height:1.12;letter-spacing:-1.7px;margin:0 0 20px}em{font-style:normal;color:#547a50}h2{font-size:21px;line-height:1.35;margin:0 0 14px}h3{font-size:19px;margin:0}.intro{font-size:18px;color:#5a685e;line-height:1.7}.animal{display:inline-block;width:150px;flex-shrink:0}.animal svg{display:block;width:100%;height:auto}.animal.small{width:65px}.friends{position:relative;display:flex;align-items:flex-end;justify-content:center;padding:30px 20px 60px;border-radius:50%;background:#ebeede;min-width:340px}.friends .animal:first-child{transform:rotate(-8deg)}.friends .animal:nth-child(2){width:125px;transform:rotate(7deg)}.friends>span:last-child{position:absolute;bottom:20px;font-size:14px;color:#53634e}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.section-heading>span{font-size:13px;color:#667164}.subjects{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px;margin-bottom:28px}.subject{padding:20px 18px;border:1px solid #dfe1d6;border-radius:18px;display:flex;align-items:center;gap:12px;background:#fffefa}.subject p{margin:3px 0 0;font-size:12px}.subject.active{background:#e8efdf;border:2px solid #718b5b}.symbol{font-size:34px;line-height:1;color:#567345}.badge{margin-left:auto;font-size:10px;font-weight:700;white-space:nowrap}.upcoming{color:#6a7168;background:transparent}.selection{background:#fffefa;border:1px solid #e2e2d6;border-radius:24px;padding:26px}.rows{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.row{border:1px solid #dedfd3;border-radius:12px;background:#faf9f3;min-height:76px;font-size:25px;font-weight:700}.row span{display:block;font-size:11px;font-weight:400}.row.selected{background:#304e3f;color:#fff;border-color:#304e3f}.row.mixed{grid-column:span 2;display:flex;justify-content:center;align-items:center;gap:12px}.row.mixed span{font-size:15px}.start-line{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.start-line p{font-size:14px;margin:0}.start-line small{color:#667165}.primary,.secondary{border-radius:12px;min-height:54px;padding:14px 26px;font-weight:700;font-size:16px}.primary{background:#304e3f;color:#fff}.primary span{margin-left:30px}.secondary{background:#ede8f4;color:#57436d;border:1px solid #d8cde3}.round-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.text-button{background:transparent;text-align:left;min-height:48px;padding:8px 0;text-decoration:underline;text-underline-offset:4px}progress{display:block;width:100%;height:9px;accent-color:#6f8c54;margin:16px 0 32px;border-radius:10px}.exercise-layout{display:grid;grid-template-columns:1.65fr 1fr;gap:24px}.exercise{background:#fffefa;border:1px solid #e2e2d6;border-radius:24px;padding:25px 32px}.speaker{display:flex;gap:18px;align-items:center}.speaker h1{font-size:25px;letter-spacing:-.5px;margin:0}.speaker .eyebrow{margin-bottom:4px;font-size:10px}.equation{display:flex;align-items:center;justify-content:center;gap:15px;font-size:clamp(30px,5vw,48px);font-weight:800;margin:24px 0 5px;white-space:nowrap}.equation>span{font-weight:400;color:#74816b}output{border-bottom:3px solid #82966c;min-width:95px;text-align:center;color:#46613e}.feedback{min-height:48px;text-align:center;font-size:14px;color:#526248;margin:12px 0}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.keypad button{background:#f1f1e7;border:1px solid #dddfd1;border-radius:12px;min-height:57px;font-size:25px;font-weight:600}.keypad button:hover:not(:disabled){background:#e3e9d8}.wide{width:100%;margin-top:16px}.helper{background:#eeebf2;border:1px solid #e1dbe7;border-radius:24px;padding:28px;text-align:center;align-self:start}.helper .animal{width:105px;margin-bottom:12px}.helper .eyebrow{color:#715a83}.helper>p:not(.eyebrow){font-size:14px;color:#655b70}.helper .secondary{width:100%;padding:12px}.hint{font-size:15px;text-align:left}.hint p{margin:20px 0 0}.hint .text-button{font-size:14px;color:#5a4173;font-weight:700;margin-top:8px}.explanation{padding-top:15px;border-top:1px solid #cec5d8}.finish{text-align:center;max-width:780px;margin:auto}.finish-friends .animal{width:100px}.finish h1{margin-top:16px}.finish>p:not(.eyebrow){color:#61705f}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:32px 0}.stats>div{background:#fffefa;border:1px solid #dddfd3;border-radius:18px;padding:22px 12px}.stats strong{display:block;font-size:36px;color:#4f7045}.stats span{display:block;font-size:14px}.finish-actions{display:flex;justify-content:center;gap:14px}@media(max-width:760px){header{padding:15px 20px}main{padding:24px 18px}.welcome{gap:10px}.friends{min-width:220px;padding:20px 10px 50px}.friends .animal{width:100px}.friends .animal:nth-child(2){width:85px}.subjects{grid-template-columns:1fr 1fr}.subject.active{grid-column:span 2}.rows{grid-template-columns:repeat(4,1fr)}.section-heading>span{display:none}.exercise-layout{grid-template-columns:1fr 240px;gap:14px}.exercise{padding:20px}.helper{padding:20px 16px}.equation{gap:10px}output{min-width:75px}}@media(max-width:580px){.header-note{font-size:12px}header a{font-size:21px}.welcome{flex-direction:column;align-items:flex-start}.welcome h1 br{display:none}.friends{align-self:center;margin:0 0 10px}.intro{font-size:16px}.selection{padding:20px 16px}.rows{gap:8px}.start-line{align-items:stretch;flex-direction:column}.start-line .primary{width:100%}.exercise-layout{grid-template-columns:1fr}.helper{margin-top:6px}.helper .animal{width:75px}.helper h2 br{display:none}.round-nav{font-size:12px}.round-nav>span{display:none}.stats{gap:8px}.stats>div{padding:16px 8px}.stats span{font-size:12px}.finish-actions{flex-direction:column}.equation{font-size:42px}.speaker h1{font-size:23px}}.feedback-correct,.feedback-wrong{display:flex;align-items:center;gap:14px;padding:14px 16px;border:2px solid;border-radius:14px;text-align:left;font-size:16px;font-weight:700}.feedback-correct{color:#21603b;background:#e7f4e8;border-color:#398350}.feedback-wrong{color:#a12d30;background:#fff0ee;border-color:#bd4548}.feedback-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:46px;height:46px;border-radius:50%;font-size:34px;line-height:1}.feedback-correct .feedback-icon{background:#287344;color:#fff}.feedback-wrong .feedback-icon{border:2px solid currentColor;font-size:28px}output.answer-wrong{color:#a12d30;border-bottom:4px solid #bd4548}output.answer-correct{color:#21603b;border-bottom-color:#398350}.partial-steps{margin-top:18px;padding-top:16px;border-top:1px solid #cec5d8}.partial-equation{background:#fffafc;color:#513d65;border-radius:10px;padding:10px;margin:8px 0;font-size:22px;font-weight:700;text-align:center}.partial-steps p{font-weight:700}.partial-steps .step-instruction{font-weight:400;font-size:13px}.subjects{grid-template-columns:repeat(4,1fr)}button.subject{text-align:left}.subject strong{font-size:19px}.subject-description{display:block;margin-top:3px;font-size:12px}.sequence-instruction{color:#526248;font-size:18px;margin-top:24px}.sequence-trail{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:18px}.sequence-trail>span:not(.trail-arrow),.sequence-trail strong{background:#e8efdf;padding:5px 10px;border-radius:8px}.trail-arrow{color:#64745a}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:24px 0 12px}.choice{min-height:86px;background:#f1f1e7;border:2px solid #d4dac9;border-radius:16px;font-size:32px;font-weight:700}.choice:not(:disabled):hover{background:#e3e9d8}.choice.choice-wrong{color:#a12d30;background:#fff0ee;border-color:#bd4548;text-decoration:underline;text-underline-offset:6px}.choice.choice-correct{color:#21603b;background:#e7f4e8;border-color:#398350;opacity:1}@media(max-width:900px){.subjects{grid-template-columns:repeat(2,1fr)}.subject.active{grid-column:auto}}@media(max-width:580px){.subjects{grid-template-columns:repeat(2,minmax(0,1fr))}.subject{flex-direction:column;align-items:flex-start;padding:16px 12px;gap:8px}.subject-description{overflow-wrap:anywhere}}.learning-progress{margin:0 0 32px;padding:24px;background:#f0f1e5;border:1px solid #d9dfcb;border-radius:24px}.reward-summary{display:flex;align-items:center;justify-content:space-between;gap:24px}.daily-goal{display:flex;align-items:center;gap:18px}.daily-goal p,.star-total p{font-size:13px;margin:4px 0}.goal-ring{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#547a50 var(--goal-angle),#dbe2ce 0);flex-shrink:0}.goal-ring span{background:#f0f1e5;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;font-weight:700}.star-total>span{font-size:36px;color:#996418;margin-right:8px}.star-total>strong{font-size:22px}.learning-progress details{border-top:1px solid #d4ddc7;padding-top:14px;margin-top:18px}.learning-progress summary{cursor:pointer;min-height:44px;padding:8px 0;font-weight:700}.learning-progress details>p{max-width:760px;font-size:14px}.progress-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}.row-progress{padding:16px 12px;background:#fffefa;border:1px solid #dde2d3;border-radius:14px}.skill-status{margin-top:14px;font-size:12px}.skill-status>*{display:block}.status-label{color:#58684d;margin:4px 0}.status-label.secure{color:#21603b;font-weight:700}.skill-status small{color:#59634f}select{font:inherit;min-height:48px;border:1px solid #839373;background:#fffefa;border-radius:10px;padding:8px;color:inherit}select:focus-visible,summary:focus-visible{outline:3px solid #7148ac;outline-offset:3px}.star-earned{padding:16px;background:#fff1cc;border-radius:14px;color:#705016!important;font-weight:700}.storage-warning{background:#fff1cc;color:#644a19;border:1px solid #bb924a;border-radius:12px;padding:16px}@media(max-width:900px){.progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.learning-progress{padding:18px}.reward-summary{flex-direction:column;align-items:flex-start;gap:12px}.goal-ring{width:80px;height:80px}.goal-ring span{width:64px;height:64px}}.pwa-banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;background:#e8efdf;border-radius:12px;margin-bottom:20px;font-size:14px}.pwa-banner>span:first-child{font-weight:700;color:#21603b}.pwa-banner .secondary{margin-left:auto;min-height:44px;padding:8px 14px}.header-meta{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}#open-parent-settings{background:transparent;color:#6b716e;font-size:12px;min-height:44px;padding:6px 0}#open-parent-settings:hover{text-decoration:underline;text-underline-offset:3px}.parent-settings{background:#f0f0ed;border:1px solid #d6d9d1;border-radius:18px;padding:24px;margin-bottom:28px}.parent-settings[hidden]{display:none}.parent-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.parent-heading h2{margin:0}.parent-settings p{font-size:14px;max-width:750px}.parent-settings h3{margin-top:22px;font-size:16px}.parent-settings .pwa-banner{margin:12px 0}@media(max-width:580px){.header-meta{flex-direction:column;align-items:flex-end;gap:0}#open-parent-settings{max-width:135px;text-align:right;line-height:1.3}.parent-settings{padding:18px}}
