:root{color-scheme:light;--bg:#f5f6fa;--surface:#fff;--ink:#202d42;--muted:#63718a;--line:#e2e7ef;--brand:#5550c9;--soft:#eeecff;--green:#206b50;--greenbg:#e8f5ed;--orange:#805626;--orangebg:#fff3de;--shadow:0 8px 30px #202d4209}
:root[data-theme=dark]{color-scheme:dark;--bg:#151923;--surface:#202634;--ink:#f1f4fa;--muted:#a8b3c8;--line:#353f51;--brand:#b2aaff;--soft:#302d49;--green:#a0debc;--greenbg:#203d34;--orange:#edc48c;--orangebg:#403323;--shadow:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid var(--brand);outline-offset:4px}.app{max-width:600px;margin:auto;padding:max(14px,env(safe-area-inset-top)) 20px max(16px,env(safe-area-inset-bottom))}header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0 24px}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);font-size:13px;line-height:1.3}.brand b{display:block;font-size:16px}.logo{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--brand);color:var(--surface);font-size:23px;font-weight:750}.subject,.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.4px;color:var(--muted)}h1{font-size:30px;line-height:1.18;letter-spacing:-1px;margin:12px 0}h2{font-size:22px;line-height:1.3;margin:0 0 12px}h3{font-size:17px;margin:0 0 8px}p{margin:8px 0 18px}.muted{color:var(--muted);font-size:14px}.greeting{margin-bottom:24px}.hero{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow)}.hero h2{max-width:260px}.hero-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.door-art{background:var(--soft);border-radius:22px 22px 12px 12px;width:66px;min-width:66px;height:80px;display:grid;place-items:center;color:var(--brand);font-size:34px;font-weight:750;border:5px solid var(--surface);outline:1px solid var(--line)}.pill{display:inline-block;border-radius:20px;background:var(--soft);color:var(--brand);font-size:12px;font-weight:600;padding:5px 10px}.primary{width:100%;background:var(--brand);border:0;border-radius:14px;padding:16px 20px;color:var(--surface);font-weight:650;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px}.secondary{border:1px solid var(--line);color:var(--ink);background:var(--surface);border-radius:14px;padding:14px 18px;min-height:50px}.wide{width:100%}.facts{display:flex;gap:18px;margin:20px 0;color:var(--muted);font-size:13px}.facts strong{color:var(--ink)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 0 12px}.section-heading h3{margin:0}.summary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px}.stat strong{font-size:27px;display:block;letter-spacing:-.5px}.stat span{color:var(--muted);font-size:12px}.small-note{font-size:12px;color:var(--muted);margin:18px 0}.route{position:relative;margin:22px 0}.route:before{content:"";position:absolute;left:24px;top:24px;bottom:24px;width:2px;background:var(--line)}.step{position:relative;display:flex;align-items:center;gap:16px;margin:0 0 18px;width:100%;text-align:left;border:0;background:transparent;color:var(--ink);padding:0}.step-no{z-index:1;min-width:50px;height:56px;display:grid;place-items:center;border:1px solid var(--line);border-radius:18px 18px 12px 12px;background:var(--surface);font-weight:750;color:var(--muted)}.step.current .step-no{background:var(--brand);color:var(--surface);border:0}.step-content{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;flex:1}.step-content strong{display:block;font-size:15px}.step-content small{color:var(--muted);font-size:12px}.step:disabled{cursor:default;opacity:.65}.lesson{white-space:pre-line;color:var(--muted);line-height:1.8}.lesson strong{color:var(--ink)}.task-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.back{background:transparent;border:0;color:var(--muted);min-height:44px;padding:4px 0}.progress{height:7px;background:var(--line);border-radius:20px;overflow:hidden;margin:8px 0 24px}.progress span{display:block;height:100%;background:var(--brand);transition:width .2s}.question{background:var(--surface);border:1px solid var(--line);border-radius:24px;text-align:center;padding:35px 16px;margin:18px 0}.equation{font-size:44px;letter-spacing:-1px;font-weight:700;margin:16px 0}.answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answer{border:1px solid var(--line);border-bottom-width:3px;background:var(--surface);color:var(--ink);border-radius:16px;font-size:26px;font-weight:650;min-height:76px}@media (hover:hover) and (pointer:fine){.answer:hover{background:var(--soft);border-color:var(--brand)}}.feedback{padding:16px 18px;border-radius:16px;background:var(--orangebg);color:var(--orange);margin:16px 0}.success{padding:10px 14px;background:var(--greenbg);color:var(--green);border-radius:12px;margin-bottom:14px;font-weight:600}.score{text-align:center;margin:24px 0;font-size:64px;font-weight:750;letter-spacing:-3px;color:var(--brand)}.stack{display:grid;gap:12px}.line{padding:16px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px}.line span{color:var(--muted)}nav{display:flex;justify-content:space-around;background:var(--surface);border:1px solid var(--line);border-radius:20px;margin:28px 0 0;padding:8px 4px}nav button{background:transparent;color:var(--muted);border:0;min-height:54px;font-size:11px;padding:3px 12px;border-radius:12px}nav button span{display:block;font-size:22px;line-height:1.2;margin-bottom:3px}nav button[aria-current=page]{color:var(--brand);background:var(--soft)}.loading{text-align:center;padding:60px 0;color:var(--muted)}#notice{background:var(--orangebg);color:var(--orange);padding:12px 16px;border-radius:14px;margin-top:16px;font-size:14px}.outside{text-align:center;padding:40px 10px}.outside a{display:inline-block;text-decoration:none;margin-top:16px}.outside .primary{justify-content:center}.wait{color:var(--muted);font-size:12px;text-align:center;min-height:18px;margin:12px 0 0}@media(min-width:600px){.app{padding-top:28px}main{min-height:480px}}@media(max-width:350px){.app{padding:12px}.subject{display:none}h1{font-size:27px}.hero{padding:20px}.equation{font-size:38px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

[hidden]{display:none!important}

/* Consistent, readable typography with extended Latin glyph support. */
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.6;font-kerning:normal;-webkit-font-smoothing:antialiased}
h1{font-size:28px;line-height:1.3;letter-spacing:-.02em;font-weight:650;text-wrap:balance}
h2{font-size:22px;line-height:1.4;letter-spacing:-.01em;font-weight:650}
h3{font-weight:600;line-height:1.4}
.primary,.secondary{line-height:1.45;font-weight:600}
.eyebrow,.subject{letter-spacing:.08em;line-height:1.6}
.muted{font-size:14px;line-height:1.65}
.equation,.score,.stat strong{font-variant-numeric:tabular-nums;letter-spacing:0}
nav button{font-size:12px;line-height:1.5}

.admin-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:24px 0}.admin-tools .primary{width:auto}.admin-form{display:grid;gap:16px}.admin-form label{display:grid;gap:8px;font-weight:600}.admin-form input,.admin-form textarea,.admin-form select,.admin-tools select{font:inherit;color:inherit;background:var(--bg,#fff);border:1px solid #9996;border-radius:12px;padding:12px;width:100%;box-sizing:border-box}.admin-form textarea{min-height:90px;resize:vertical}.admin-tools select{width:auto}.admin-row{text-align:left;border:1px solid #9994;border-radius:14px;padding:16px;background:transparent;color:inherit;display:grid;gap:8px;overflow-wrap:anywhere}.admin-row small{opacity:.65}.admin-form .feedback{overflow-wrap:anywhere}.equation{overflow-wrap:anywhere;font-size:clamp(24px,6vw,40px)}

.daily-goal{margin-bottom:18px}.goal-options{display:flex;gap:8px}.goal-options button{flex:1;padding:12px 8px}.goal-options [aria-pressed=true]{border-color:var(--brand);background:var(--soft);color:var(--brand)}

.topic-results{margin:18px 0}.topic-result{border-top:1px solid var(--line);padding:16px 0}.topic-result p{font-size:14px;color:var(--muted)}

.topic-results h2{margin-bottom:4px}.topic-info{margin-bottom:16px;color:var(--muted);font-size:12px}.topic-info summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px}.topic-info summary::-webkit-details-marker{display:none}.topic-info summary span{font-size:19px}.topic-info summary:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:6px}.topic-info p{margin:0 0 12px}.topic-result{padding:16px 0}.topic-result:last-child{padding-bottom:0}.topic-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.topic-heading h3{font-size:16px;margin:0}.topic-heading strong{font-size:18px;font-variant-numeric:tabular-nums}.topic-badge{display:inline-block;margin-top:8px;padding:3px 8px;border-radius:8px;background:var(--soft);color:var(--brand);font-size:11px;font-weight:600}.topic-meter{display:block;appearance:none;-webkit-appearance:none;border:0;width:100%;height:6px;margin:12px 0;background:var(--line);border-radius:8px;overflow:hidden;color:#259b84}.topic-meter::-webkit-progress-bar{background:var(--line);border-radius:8px}.topic-meter::-webkit-progress-value{background:#259b84;border-radius:8px}.topic-meter::-moz-progress-bar{background:#259b84;border-radius:8px}.topic-recommended .topic-meter{color:var(--brand)}.topic-recommended .topic-meter::-webkit-progress-value{background:var(--brand)}.topic-recommended .topic-meter::-moz-progress-bar{background:var(--brand)}.topic-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.topic-bottom p{margin:0;font-size:12px}.topic-bottom small{display:block;font-size:11px}.topic-practice{width:auto;min-height:44px;padding:10px 12px;font-size:12px;white-space:nowrap;border-radius:11px;flex-shrink:0}

/* Approved adventure design: the same layout across all three appearances. */
:root,:root[data-theme=calm]{color-scheme:light;--bg:#f6f8f4;--surface:#fff;--ink:#20372e;--muted:#617366;--line:#dfe7de;--brand:#286a50;--soft:#e3efe2;--bright:#e7f19a;--button-ink:#fff;--route:#cadcc4;--warm:#f5e6ca;--shadow:none}
:root[data-theme=colour]{color-scheme:light;--bg:#f8f6ff;--surface:#fff;--ink:#312455;--muted:#776788;--line:#e6dff2;--brand:#7551d8;--soft:#eee6ff;--bright:#f6d27c;--button-ink:#fff;--route:#d9c9ee;--warm:#fce6db}
:root[data-theme=night]{color-scheme:dark;--bg:#151e2c;--surface:#202d3d;--ink:#edf0fc;--muted:#a4b2c5;--line:#334256;--brand:#b9a2ff;--soft:#34334e;--bright:#edcf88;--button-ink:#241b3b;--route:#46526b;--warm:#3c3547;--green:#a0debc;--greenbg:#203d34;--orange:#edc48c;--orangebg:#403323;--shadow:none}
.app{max-width:540px}.primary,.logo{color:var(--button-ink)}.appearance-settings{margin:0 0 20px;color:var(--muted);font-size:12px}.appearance-settings summary{display:flex;align-items:center;justify-content:space-between;min-height:40px;cursor:pointer;list-style:none}.appearance-settings summary::-webkit-details-marker{display:none}.appearance-options{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}.appearance-options button{padding:10px 12px;min-height:44px;border-radius:24px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.appearance-options [aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--button-ink)}.appearance-settings label{display:flex;gap:8px;align-items:center;min-height:44px}summary:focus-visible{outline:3px solid var(--brand);outline-offset:4px}header{padding-bottom:4px}.greeting h1{font-size:32px;letter-spacing:-1.2px}.greeting p{margin:0}.hero{box-shadow:none}.adventure-hero{background:var(--soft);padding:24px;overflow:hidden;min-height:270px;border:0}.adventure-hero:before{content:'';position:absolute;width:160px;height:160px;right:-35px;top:14px;border-radius:50%;background:var(--surface);opacity:.45}.adventure-hero h2{font-size:27px;letter-spacing:-.8px;max-width:62%;position:relative;margin:14px 0 12px}.adventure-hero .eyebrow{color:var(--brand);position:relative}.adventure-hero p{max-width:60%;font-size:12px;position:relative;margin-bottom:26px}.adventure-hero .primary{position:relative}.mascot{width:142px;height:160px;position:absolute;right:-3px;top:35px;animation:zehn-float 4s ease-in-out infinite;pointer-events:none}.spark .body{fill:var(--bright)}.spark .face{fill:#34362d}.spark .blush{fill:#e69b70}.spark .limb{stroke:#34362d;stroke-width:5;stroke-linecap:round;fill:none}.section-heading h2{font-size:18px;margin:0}.daily-goal{padding:16px 20px}.daily-goal .line{padding:0;border:0;font-size:13px}.daily-goal .line strong{font-size:22px}.goal-meter{display:block;width:100%;height:8px;appearance:none;-webkit-appearance:none;border:0;border-radius:10px;overflow:hidden;background:var(--line);margin:14px 0 10px;color:var(--brand)}.goal-meter::-webkit-progress-bar{background:var(--line)}.goal-meter::-webkit-progress-value{background:var(--brand);border-radius:10px}.goal-meter::-moz-progress-bar{background:var(--brand)}.daily-goal .small-note{margin:10px 0}.goal-settings summary{font-size:12px;color:var(--muted);cursor:pointer;min-height:36px;padding:8px 0}.goal-options{margin-top:10px}.journey-link{border:0;background:transparent;color:var(--ink);display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:10px 0 24px}.journey-link>span:last-child{margin-left:auto}.journey-link strong,.journey-link small{display:block}.journey-link small{font-size:12px;color:var(--muted)}.journey-icon{width:44px;height:44px;border-radius:14px;background:var(--warm);display:grid;place-items:center;font-size:24px;flex-shrink:0}.route{padding:15px 0}.route:before{left:calc(50% - 2px);width:4px;top:40px;bottom:55px;background:var(--route);border-radius:6px}.step{min-height:74px;margin-bottom:28px;gap:0}.step-no{margin-left:calc(50% - 32px);width:64px;height:64px;border-radius:23px;border:0;border-bottom:4px solid #0002;font-size:22px;background:var(--surface)}.step:nth-child(even){flex-direction:row-reverse}.step:nth-child(even) .step-no{margin-left:0;margin-right:calc(50% - 32px)}.step-content{position:absolute;left:calc(50% + 48px);width:calc(50% - 48px);padding:0;background:transparent;border:0}.step:nth-child(even) .step-content{left:auto;right:calc(50% + 48px);text-align:right}.step-content strong{font-size:13px}.step-content small{display:block;font-size:11px;margin-top:5px}.step.done .step-no{background:var(--soft);color:var(--brand)}.step.current{margin-top:36px;margin-bottom:36px}.step.current .step-no{outline:7px solid var(--soft);color:var(--button-ink)}.step.current .step-content strong{color:var(--brand)}.question{padding:24px 16px;background:var(--surface);border:1px solid var(--line);border-radius:25px;margin-top:20px}.equation{margin:18px 0}.count-visual{display:flex;justify-content:center;align-items:center;gap:16px;margin:24px 0 12px}.count-cluster{display:grid;grid-template-columns:repeat(2,19px);gap:6px}.count-block{width:19px;height:19px;border-radius:6px;background:var(--brand)}.count-visual>span:last-child .count-block{background:#d99439}.answer{border-radius:18px;min-height:70px}.result-companion{position:relative;height:150px}.result-companion .mascot{top:0;left:calc(50% - 71px)}.feedback-companion{position:relative;height:100px}.feedback-companion .mascot{width:100px;height:100px;left:0;top:0}.success{animation:zehn-arrive .25s ease-out}.admin-form input,.admin-form textarea,.admin-form select,.admin-tools select{border-color:var(--line)}.admin-row{border-color:var(--line);background:var(--surface)}nav button[aria-current=page]{background:var(--soft);border-radius:14px}nav button{min-height:54px}.quiet *, .quiet *:before{animation:none!important;transition:none!important}@keyframes zehn-float{50%{transform:translateY(-6px) rotate(3deg)}}@keyframes zehn-arrive{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}@media(max-width:360px){.adventure-hero{padding:20px 16px}.adventure-hero h2{font-size:24px}.mascot{width:112px;right:-5px}.adventure-hero p{max-width:65%}.step-content{left:calc(50% + 42px);width:calc(50% - 42px)}.step:nth-child(even) .step-content{right:calc(50% + 42px)}.step-content strong{font-size:12px}.step-content small{font-size:10px}}
.app{padding-bottom:calc(112px + env(safe-area-inset-bottom))}nav{position:fixed;z-index:10;bottom:max(10px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:500px;margin:0;box-shadow:0 4px 20px #0000000b}nav button{flex:1;min-width:0;padding:4px 6px}nav svg{display:block;width:22px;height:22px;margin:0 auto 4px;fill:none;stroke:currentColor;stroke-width:1.7}.score{animation:zehn-arrive .4s ease-out}

.learner-form{display:grid;gap:14px}.learner-form label{font-weight:650}.learner-form input,.learner-form select{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:12px;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:12px}.learner-form .small-note{margin:0 0 8px}.learner-form :focus-visible{outline:3px solid var(--brand);outline-offset:3px}

.profile-trigger{border:0;background:transparent;padding:0;min-width:48px;min-height:48px;display:grid;place-items:center}.profile-trigger[hidden]{display:none}.avatar-circle{position:relative;display:grid;place-items:center;overflow:hidden;width:44px;height:44px;border-radius:50%;background:var(--soft);color:var(--brand);font-weight:700;border:2px solid var(--line)}.avatar-circle img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.avatar-large{width:88px;height:88px;font-size:30px}.avatar-settings{display:grid;justify-items:center;gap:12px;margin:20px 0}.avatar-settings .small-note{text-align:center;margin:0}.photo-picker{position:relative;overflow:hidden;cursor:pointer}.photo-picker input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.photo-picker:focus-within{outline:3px solid var(--brand);outline-offset:3px}#profile-appearance{margin:20px 0}#profile-appearance .appearance-settings{margin:0}.personal-details>summary{font-size:18px;font-weight:650;padding:18px 0;cursor:pointer}.personal-details .learner-form{margin-top:16px}

.profile-summary{display:flex;align-items:center;gap:14px;margin:22px 0}.profile-summary strong{overflow-wrap:anywhere}.profile-menu{display:grid;gap:12px}.profile-menu-item{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;width:100%;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink)}.profile-menu-item strong{display:block;font-size:17px}.profile-menu-item small{display:block;color:var(--muted);margin-top:4px}.profile-menu-item>span:last-child{font-size:28px;color:var(--brand)}

#notice.saved-toast{position:fixed;top:max(16px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:100;max-width:calc(100% - 32px);margin:0;padding:12px 22px;border-radius:14px;background:var(--greenbg);color:var(--green);box-shadow:var(--shadow);font-weight:650;pointer-events:none}

.diagnostic-card{margin:20px 0}

.report-links{display:flex;gap:10px;margin-bottom:22px}.report-links button{flex:1;padding:12px 10px}.achievement .line{gap:10px;align-items:start}.achievement h2{font-size:19px;margin:0}.award-status{font-size:12px;white-space:nowrap;color:var(--muted)}.achievement.earned{border-color:var(--green)}.earned .award-status{color:var(--green);font-weight:650}.weekly-days{margin:20px 0}.week-day{display:grid;grid-template-columns:48px minmax(0,1fr) 38px;gap:12px;align-items:center;margin:14px 0;font-size:13px}.week-day strong{text-align:right}.week-day .goal-meter{margin:0}

#reminder-form input[type=checkbox]{width:20px;min-height:20px;vertical-align:middle;margin-right:8px}

/* UX audit: readable content and persistent, dismissible feedback. */
.avatar-settings>strong,.greeting [data-literal],.line span,.profile-menu-item strong{overflow-wrap:anywhere;min-width:0}.avatar-settings>strong{max-width:100%;text-align:center}.learner-form,.avatar-settings{min-width:0}.word-question{font-size:22px;line-height:1.55;text-align:left;overflow-wrap:normal}.word-answer{font-size:18px;line-height:1.4;overflow-wrap:anywhere;padding:14px 10px}.answers{grid-template-columns:repeat(2,minmax(0,1fr))}.answer{min-width:0}#notice:not([hidden]){position:fixed;z-index:100;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:500px;margin:0;box-shadow:0 4px 20px #0002;display:flex;align-items:center;gap:12px}#notice>span{flex:1;min-width:0;overflow-wrap:anywhere}#notice>button{flex:none;min-width:44px;min-height:44px;border:0;border-radius:10px;background:transparent;color:inherit;font-size:26px}#notice.saved-toast{width:auto;min-width:140px;text-align:center}.goal-settings summary,.appearance-settings summary{min-height:44px}.photo-picker:has(input:disabled){opacity:.5;cursor:wait}
[data-literal]{overflow-wrap:anywhere}
.competition-create,.competition-play{margin:20px 0}.competition-row{text-align:left;display:grid;gap:6px}.competition-row small{color:var(--muted)}.room-code{display:block;width:100%;min-width:0;margin:10px 0;background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:14px;font:700 22px/1.4 monospace;letter-spacing:.05em}.competition-board .line{font-size:14px;align-items:center}.competition-board .line>strong{flex:none;font-size:12px}.competition-board .line:last-child{border-bottom:0}
