:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;color:#2f3e37;--paper:#fffdf8;--cream:#f7f2e8;--ink:#2f3e37;--muted:#5a6861;--forest:#315f4c;--forest-dark:#25483a;--sage:#dce8da;--sage-strong:#a8c4aa;--coral:#d96f5f;--coral-soft:#f5d9d1;--gold:#e7b55f;--gold-soft:#f7e8c5;--sky:#dce9ef;--line:#d8d9d0;--shadow:0 12px 32px #3c494017;--radius-sm:14px;--radius-md:22px;--radius-lg:32px;background:#f7f2e8;font-family:Avenir Next,Avenir,Segoe UI,Hiragino Sans,Yu Gothic UI,sans-serif}*{box-sizing:border-box}html{background:var(--cream);min-width:320px}body{background:var(--cream);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-width:320px;min-height:100dvh;margin:0}button,input{font:inherit}button{min-height:44px}button,label,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #276d9a}:is(h1,h2)[tabindex="-1"]:focus-visible{text-decoration-line:underline;-webkit-text-decoration-color:var(--sage-strong);text-decoration-color:var(--sage-strong);text-underline-offset:.14em;outline:none;text-decoration-thickness:.1em}.focused-prompt:focus-visible{outline:2px solid var(--forest);outline-offset:6px;border-radius:4px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.045em;margin-bottom:14px;font-size:clamp(2rem,8vw,4.1rem);line-height:1.02}h2{letter-spacing:-.025em;margin-bottom:10px;font-size:clamp(1.35rem,4vw,2rem);line-height:1.12}h3{margin-bottom:6px;font-size:1.08rem}p{line-height:1.62}.page-shell{width:min(100%,1120px);min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));margin-inline:auto}.surface{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow,.skill-label,.module-status{color:var(--forest);letter-spacing:.11em;text-transform:uppercase;font-size:.73rem;font-weight:800}.lede{max-width:640px;color:var(--muted);font-size:clamp(1rem,2.5vw,1.22rem)}.primary-button,.secondary-button,.text-button,.icon-button,.round-button,.audio-button,.brand-button,.profile-pill{border:0;border-radius:999px;font-weight:750}.primary-button{color:#fff;background:var(--forest);min-height:52px;box-shadow:0 7px 0 var(--forest-dark);justify-content:center;align-items:center;gap:8px;padding:13px 24px;display:inline-flex;transform:translateY(-2px)}.primary-button:active{box-shadow:0 3px 0 var(--forest-dark);transform:translateY(2px)}.secondary-button{color:var(--forest-dark);background:var(--sage);border:1px solid var(--sage-strong);padding:12px 20px}.text-button{color:var(--forest-dark);text-underline-offset:4px;background:0 0;padding:10px 12px;text-decoration:underline}.icon-button{width:46px;min-width:46px;color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:0}.round-button{color:#fff;background:var(--forest);width:48px;min-width:48px;padding:0}.full-width{width:100%}.level-chip{min-height:30px;color:var(--forest-dark);background:var(--sage);letter-spacing:.04em;white-space:nowrap;border-radius:999px;align-items:center;padding:5px 11px;font-size:.74rem;font-weight:800;display:inline-flex}.mascot{flex:none;display:block}.mascot--small{width:58px;height:58px}.mascot--large{width:min(38vw,170px);height:min(38vw,170px)}.onboarding{text-align:center;flex-direction:column;justify-content:center;gap:26px;display:flex}.welcome-copy{justify-items:center;padding-top:10px;display:grid;position:relative}.welcome-copy h1{margin-bottom:12px}.brand-mark{color:var(--forest);letter-spacing:.15em;flex-direction:column;align-items:center;margin-bottom:18px;font-size:.72rem;font-weight:900;display:inline-flex}.brand-mark span:first-child{color:#fff;background:var(--forest);border-radius:16px;place-items:center;width:48px;height:48px;margin-bottom:5px;font-size:1.3rem;display:grid}.mascot-duo{justify-content:center;align-items:end;margin:-8px 0 10px;display:flex}.mascot-duo .mascot+.mascot{margin-left:-30px;transform:scale(.88)}.privacy-note,.assessment-note,.save-note{max-width:620px;color:var(--muted);text-align:center;margin:0 auto;font-size:.82rem}.persistence-alert{width:min(100% - 36px,1084px);margin:max(12px, env(safe-area-inset-top)) auto 0;color:#592f25;border-radius:var(--radius-sm);box-shadow:var(--shadow);background:#fff0e9;border:2px solid #bd6653;gap:3px;padding:12px 16px;display:grid}.persistence-alert strong{font-size:.86rem}.persistence-alert span{font-size:.8rem;line-height:1.45}.persistence-actions{flex-wrap:wrap;gap:4px 12px;margin-top:4px;display:flex}.persistence-actions .text-button{color:#592f25;min-height:44px}.persistence-alert+.page-shell{min-height:calc(100dvh - 82px)}.local-data-note{color:#554b2f;background:var(--gold-soft);border-radius:var(--radius-sm);text-align:left;border:1px solid #dfc477;max-width:620px;margin-top:16px;padding:14px 16px}.local-data-note strong{letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}.local-data-note p{margin:5px 0 0;font-size:.82rem;line-height:1.5}.install-help{max-width:620px;color:var(--muted);text-align:left;margin-top:12px;font-size:.82rem}.install-help summary{min-height:44px;color:var(--forest-dark);cursor:pointer;align-items:center;font-weight:800;display:flex}.install-help summary:before{content:"+";width:24px;color:var(--coral);font-size:1.15rem}.install-help[open] summary:before{content:"−"}.install-help p{margin:0;padding:0 0 8px}.profile-list{gap:12px;width:min(100%,520px);margin-inline:auto;display:grid}.profile-list h2{margin-bottom:2px}.profile-entry{min-width:0;display:grid}.profile-card{width:100%;min-width:0;min-height:82px;color:var(--ink);border-radius:var(--radius-md);text-align:left;background:0 0;border:0;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:13px;padding:10px 16px 10px 10px;display:grid}.profile-card-mascot{place-items:center;display:grid}.profile-card-arrow{place-items:center;width:24px;height:24px;display:grid}.profile-card-arrow svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.profile-edit-button{justify-self:end;margin:-8px 8px 4px}.profile-card span:nth-child(2){gap:4px;min-width:0;display:grid}.learner-name{overflow-wrap:anywhere}.profile-card small,.mascot-choice small{color:var(--muted);font-weight:500;display:block}.setup-card{text-align:left;width:min(100%,560px);margin:auto;padding:clamp(24px,6vw,42px)}.setup-card h1{font-size:clamp(2rem,7vw,3rem)}.field-label{color:var(--ink);margin:18px 0 8px;font-size:.88rem;font-weight:800;display:block}.text-field{width:100%;min-height:54px;color:var(--ink);border-radius:var(--radius-sm);background:#fff;border:1.5px solid #aeb8b1;padding:13px 15px;font-size:1rem}.text-field:focus{border-color:var(--forest)}.japanese-input{font-family:Hiragino Sans,Yu Gothic,sans-serif;font-size:1.18rem}.mascot-picker,.answer-options{border:0;margin:24px 0;padding:0}.mascot-picker legend{margin-bottom:10px;font-weight:800}.mascot-choice{border:1.5px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:24px 58px 1fr;align-items:center;gap:10px;min-height:78px;margin-bottom:10px;padding:9px 13px;display:grid}.mascot-choice.is-selected{border-color:var(--forest);background:#eef5ec}.mascot-choice input,.answer-option input{width:20px;height:20px;accent-color:var(--forest)}.setup-card .text-button{margin-top:10px}.assessment,.lesson-page,.checkpoint-page{width:min(100%,790px)}.assessment-header,.lesson-header{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:13px;display:grid}.progress-meta,.lesson-header>div{gap:3px;min-width:0;display:grid}.progress-meta span,.lesson-header>div span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.progress-meta strong,.lesson-header>div strong{font-size:.92rem}.progress-track,.goal-track,.skill-track{background:#e5e5dc;border-radius:99px;height:8px;overflow:hidden}.progress-track>span,.goal-track>span,.skill-track>span{background:var(--coral);border-radius:inherit;height:100%;transition:width .25s;display:block}.question-card,.exercise-card,.micro-tutorial{margin:24px auto 18px;padding:clamp(22px,5vw,42px)}.question-card>h1,.exercise-card>h1{letter-spacing:-.02em;margin:18px 0 24px;font-size:clamp(1.45rem,5.5vw,2.35rem);line-height:1.28}.micro-tutorial{background:linear-gradient(145deg, var(--paper), var(--gold-soft));border-color:#dfc472}.micro-tutorial>h1{margin:18px 0;font-size:clamp(1.65rem,5.5vw,2.45rem);line-height:1.25}.micro-tutorial>p{margin-bottom:14px;line-height:1.7}.micro-tutorial>.primary-button{margin-top:24px}.reading-passage{color:#26352e;background:var(--gold-soft);border-left:5px solid var(--gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:18px 0;padding:18px;font-size:1.04rem;line-height:1.95}.listening-panel{background:var(--sky);border-radius:var(--radius-sm);justify-items:start;gap:8px;margin:20px 0;padding:18px;display:grid}.listening-panel small,.input-answer small{color:var(--muted);line-height:1.45}.audio-button{color:#fff;background:#356a83;min-height:50px;padding:10px 20px}.audio-button span{margin-right:6px}.answer-options{gap:11px;display:grid}.answer-option{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:#fff;grid-template-columns:20px 36px 1fr;align-items:center;gap:11px;min-height:58px;padding:10px 13px;font-weight:650;display:grid}.answer-option:hover{border-color:var(--sage-strong)}.answer-option.is-selected{border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest);background:#eef5ec}.answer-option:has(input:disabled){opacity:.76}.option-letter{width:32px;height:32px;color:var(--forest-dark);background:var(--sage);border-radius:50%;place-items:center;font-size:.78rem;font-weight:900;display:grid}.input-answer{margin:18px 0 24px}.input-answer .field-label{margin-top:0}.input-answer small{margin-top:8px;display:block}.feedback-panel{border-radius:var(--radius-sm);border:1.5px solid;margin-top:24px;padding:20px}.feedback-panel.is-correct{background:#eaf4e8;border-color:#7eaa81}.feedback-panel.is-incorrect{background:#fbede7;border-color:#d79a87}.feedback-title{align-items:center;gap:9px;margin-bottom:8px;font-size:1.16rem;font-weight:900;display:flex}.feedback-title span{background:#fff;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.feedback-panel p{margin-bottom:15px}.transcript{background:#ffffffa6;border-radius:10px;margin:16px 0;padding:14px}.transcript p{margin:6px 0 0;font-size:1.08rem}.hint{background:#fff;border-radius:10px;padding:12px}.lesson-page .save-note,.checkpoint-page .assessment-note{margin-top:16px}.result-page,.checkpoint-result{width:min(100%,820px)}.result-hero{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;min-width:0;margin:18px 0 26px;display:grid}.result-hero>div{min-width:0}.result-hero .lede{overflow-wrap:anywhere}.result-hero h1{font-size:clamp(2rem,7vw,3.5rem)}.skill-map,.recommendation,.review-list{margin-bottom:18px;padding:clamp(20px,5vw,32px)}.skill-rows{gap:19px;margin-top:22px;display:grid}.skill-row>div:first-child{justify-content:space-between;gap:12px;margin-bottom:7px;display:flex}.skill-row span{color:var(--muted);font-size:.85rem}.skill-track>span{background:var(--forest)}.recommendation{background:var(--gold-soft);border-color:#e5c982;position:relative;overflow:hidden}.recommendation h2{margin-top:15px}.recommendation>p[lang=ja]{color:var(--forest);margin-bottom:5px;font-size:1.2rem;font-weight:750}.recommendation ul{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.recommendation li{background:var(--paper);border-radius:99px;padding:7px 11px;font-size:.8rem;font-weight:700}.dashboard{padding-top:max(16px, env(safe-area-inset-top))}.app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding-bottom:22px;display:flex}.brand-button,.profile-pill{min-height:48px;color:var(--ink);text-align:left;background:0 0;align-items:center;gap:9px;padding:5px 10px;display:inline-flex}.brand-button{text-transform:uppercase;letter-spacing:.05em;flex:none;line-height:1}.brand-visible{align-items:center;gap:9px;display:inline-flex}.brand-glyph{color:#fff;background:var(--forest);border-radius:14px;place-items:center;width:42px;height:42px;font-size:1.15rem;display:grid}.profile-pill{background:var(--paper);border:1px solid var(--line);min-width:0;max-width:calc(100% - 126px)}.profile-pill .profile-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.profile-pill .mascot{width:38px;height:38px}.dashboard-greeting{grid-template-columns:1fr auto;align-items:center;gap:12px;padding:32px 0 18px;display:grid}.dashboard-greeting>div{min-width:0}.dashboard-greeting h1{overflow-wrap:anywhere;margin-top:7px;font-size:clamp(2.2rem,7vw,4.6rem)}.dashboard-greeting p{color:var(--muted)}.stats-grid{gap:12px;margin-bottom:20px;display:grid}.stat-card{align-items:center;gap:13px;min-height:80px;padding:16px;display:flex}.stat-card>div{gap:3px;display:grid}.stat-card strong{font-size:1rem}.stat-card span{color:var(--muted);font-size:.78rem}.stat-icon{border-radius:14px;flex:none;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.stat-icon.fire{color:#934939;background:var(--coral-soft)}.stat-icon.xp{color:#73561c;background:var(--gold-soft)}.goal-card{display:grid}.goal-heading{justify-content:space-between;flex-direction:row!important;display:flex!important}.goal-track{margin-top:8px}.goal-track>span{background:var(--gold)}.next-lesson{background:var(--sage);border-color:var(--sage-strong);margin:18px 0 34px;display:grid;overflow:hidden}.next-lesson-copy{padding:clamp(22px,5vw,38px)}.next-lesson h2{margin-top:14px;font-size:clamp(1.8rem,6vw,3rem)}.japanese-title{color:var(--forest);margin-bottom:12px;font-size:1.15rem;font-weight:750}.lesson-meta{color:var(--muted);flex-wrap:wrap;gap:12px;margin:18px 0 24px;font-size:.84rem;font-weight:700;display:flex}.next-lesson-art{min-height:180px;color:var(--forest-dark);background:var(--gold-soft);writing-mode:vertical-rl;justify-content:center;align-items:center;gap:8px;font-size:1.3rem;font-weight:800;display:none}.section-heading{justify-content:space-between;align-items:end;gap:15px;margin-bottom:16px;display:flex}.section-heading>span{color:var(--muted);font-size:.82rem}.module-grid{gap:11px;display:grid}.module-card{min-height:108px;box-shadow:none;grid-template-columns:44px 1fr 48px;align-items:center;gap:13px;padding:14px;display:grid}.module-card.is-current{border:2px solid var(--forest);box-shadow:var(--shadow)}.module-index{color:var(--muted);letter-spacing:.12em;font-size:.78rem;font-weight:900}.module-body p{color:var(--forest);margin:2px 0 7px;font-weight:650}.module-body small{color:var(--muted);line-height:1.35}.household-card{background:var(--coral-soft);border-color:#e4b8ac;gap:18px;margin:34px 0 20px;padding:clamp(20px,5vw,30px);display:grid}.household-card p{color:#655b56;margin-bottom:0}.household-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.challenge-badge{background:var(--paper);border-radius:99px;place-self:center start;padding:9px 14px;font-weight:850}.learner-settings{gap:18px;margin-bottom:20px;padding:clamp(20px,5vw,30px);display:grid}.learner-settings p{color:var(--muted);margin-bottom:0}.dashboard-footer{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:18px 0 0;font-size:.75rem;display:flex}.backup-actions{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.backup-import{cursor:pointer;align-items:center;min-height:44px;display:inline-flex}.backup-status{color:var(--forest-dark);background:var(--sage);border-radius:10px;padding:8px 12px;font-weight:750}.checkpoint-summary{text-align:center;justify-items:center;margin-bottom:18px;padding:clamp(24px,6vw,44px);display:grid}.checkpoint-summary.is-passed{background:#eef6eb;border-color:#9abb99}.checkpoint-summary.needs-review{background:#fcf1e8;border-color:#dfb69b}.checkpoint-summary h1{max-width:680px;font-size:clamp(2rem,7vw,3.4rem)}.checkpoint-summary>p{max-width:600px;color:var(--muted)}.score-orb{background:var(--paper);border:7px solid var(--gold);border-radius:50%;place-content:center;width:132px;height:132px;margin:10px 0 18px;display:grid}.score-orb strong{font-size:2rem;line-height:1}.score-orb span{color:var(--muted);margin-top:5px;font-size:.78rem}.review-list article{border-top:1px solid var(--line);grid-template-columns:32px 1fr;gap:12px;padding:16px 0;display:grid}.review-list article>span{width:30px;height:30px;color:var(--forest-dark);background:var(--sage);border-radius:50%;place-items:center;font-weight:900;display:grid}.review-list article p{color:var(--muted);margin:6px 0 0}@media (width>=700px){.onboarding.has-profiles{text-align:left;grid-template-columns:minmax(0,1fr) minmax(300px,480px);align-items:center;display:grid}.onboarding.has-profiles>.primary-button,.onboarding.has-profiles>.privacy-note{grid-column:1/-1;justify-self:center}.onboarding.has-profiles .welcome-copy{justify-items:start}.onboarding.has-profiles .mascot-duo{justify-content:start}.onboarding.is-empty{width:min(100%,760px)}.profile-list{width:100%}.setup-card{grid-column:1/-1}.stats-grid{grid-template-columns:repeat(3,1fr)}.next-lesson{grid-template-columns:minmax(0,1.6fr) minmax(180px,.7fr)}.next-lesson-art{display:flex}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.household-card,.learner-settings{grid-template-columns:1fr auto;align-items:center}.dashboard-footer{flex-direction:row;justify-content:space-between}}@media (width>=1024px){.dashboard{padding-inline:max(34px, env(safe-area-inset-left))}.dashboard-greeting{padding-top:42px}.question-card,.exercise-card,.micro-tutorial{padding:46px 54px}.skill-map{padding:38px 44px}}@media (width<=420px){.page-shell{padding-inline:max(14px, env(safe-area-inset-left))}.assessment-header .level-chip{display:none}.lesson-header{grid-template-columns:auto 1fr}.lesson-header>.mascot,.lesson-header>.level-chip{display:none}.answer-option{grid-template-columns:20px 30px 1fr;padding-inline:10px}.module-card{grid-template-columns:34px 1fr 44px;gap:9px}.dashboard-greeting .mascot{width:92px;height:92px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){:root{--line:#7a857f;--muted:#445149}.surface,.answer-option,.text-field{border-width:2px}}
