/* Local, original refinement inspired by Lingo, Qwerty Learner and Lute. */
:root,[data-theme=light]{--muted:#5e6b80;--bg:#f6f8fc;--line:#dce3ee}
body{font-size:16px;line-height:1.8}
body[data-page] p{font-size:16px;line-height:1.8}
body[data-page] small,body[data-page] .subheading{font-size:14px;line-height:1.75}
[hidden]{display:none!important}
.eyebrow{display:none}
.site-header{padding-top:14px;padding-bottom:14px;gap:24px}
.brand{font-size:20px}.brand small{font-size:14px;letter-spacing:.25px;color:var(--muted)}
.site-header nav a{font-size:14px;min-height:44px}.header-note{font-size:14px;color:var(--muted)}
button,.button,.btn{font-size:16px;background:var(--accent-dark);border-color:var(--accent-dark);border-bottom-color:color-mix(in srgb,var(--accent-dark) 78%,#182e50);border-radius:12px}
.secondary,.quiet{font-size:14px;background:#fff;border:1px solid var(--line);color:var(--ink);box-shadow:none}
.secondary:hover,.quiet:hover{background:var(--tint);color:var(--accent-dark)}
.buttons button,.buttons .button{font-size:16px}
.buttons .secondary,.help-actions button,.sentence button{font-size:14px}
main{padding-top:28px;max-width:1240px}
.studio-kicker{display:flex;gap:9px;align-items:center;font-size:14px;font-weight:650;color:#526887;margin-bottom:18px}
.studio-hero{align-items:center;gap:36px;margin-bottom:38px;min-height:0}
.hero-copy{padding:4px 0}.hero h1{font-size:46px;line-height:1.35;letter-spacing:-1px;margin-bottom:18px}
.hero h1 em{font-style:normal}.hero p{color:var(--muted)}
.hero-art{min-height:325px;border-radius:28px;background:linear-gradient(135deg,#eef4ff,#e3ecff);border-color:#d4e1f8}
.world-stamp{font-size:14px;padding:10px 13px}.world-stamp small{color:var(--muted)}
.hero-caption{font-size:14px;line-height:1.8;color:var(--muted)}
.resume-card.continue-card{display:block;padding:20px;margin:24px 0 0;border-radius:18px;background:white;border-left:4px solid var(--accent);max-width:550px}
.resume-heading{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--accent-dark);font-weight:650}
.resume-heading>span{font-size:14px}
.resume-heading .continue-icon{width:32px;height:32px;border-radius:10px}.resume-heading svg{width:18px;height:18px}
.resume-card h2{font-size:20px;line-height:1.6;margin:12px 0 6px}.resume-card p{margin:0 0 16px;color:var(--muted)}
.resume-card .primary-continue{display:inline-flex;align-items:center;gap:10px}
.section-heading{gap:16px;margin:28px 0 20px}.section-heading h2{font-size:26px}.section-heading p{color:var(--muted)}
.context-grid{gap:20px}.context-card{border-radius:20px;border-bottom:4px solid color-mix(in srgb,var(--accent) 36%,white)}
.context-art{height:190px;background:linear-gradient(145deg,var(--tint),color-mix(in srgb,var(--accent) 15%,white))}
.scene-label{font-size:14px;letter-spacing:0;top:14px}
.context-body{padding:22px}.context-body h3{font-size:24px;line-height:1.5}.context-body p{color:var(--muted);min-height:58px}
.card-bottom{font-size:14px;gap:12px}.card-bottom .arrow{width:34px;height:34px;border-radius:10px}
.progress-strip{display:flex;align-items:center;flex-wrap:wrap;gap:20px;padding:24px;border-radius:20px}
.progress-strip>div{min-width:0}.progress-strip>p{flex:1;min-width:230px;color:var(--muted)}.progress-strip .button{font-size:14px}
.progress-strip .progress-caveat{flex-basis:100%;color:var(--muted)}
.page-title h1{font-size:32px}.page-title p,.toolbar label,.toolbar select,.toolbar input{color:var(--muted);font-size:14px}
.toolbar button{font-size:14px;min-height:44px}.toolbar select{max-width:100%}.toolbar input{width:70px}
.journey-layout{grid-template-columns:minmax(0,1fr) 290px;gap:24px}.stage-groups{margin-top:0}
.map-chapter{margin:0 0 18px;padding:0;scroll-margin-top:24px;border:1px solid var(--line);border-radius:20px}
.map-chapter>.group-head{list-style:none;padding:20px 22px;margin:0;display:flex;gap:14px;min-height:80px;border-bottom:0;color:var(--ink)}
.map-chapter>.group-head::-webkit-details-marker{display:none}
.map-chapter>.group-head::after{content:'＋';font-size:24px;color:var(--accent-dark);flex-shrink:0}
.map-chapter[open]>.group-head::after{content:'−'}
.map-chapter[open]>.group-head{border-bottom:1px solid var(--line)}
.group-head .chapter-title{min-width:0;flex:1;color:var(--ink);letter-spacing:0;font-size:18px;font-weight:700}
.chapter-title>small{display:block;color:var(--accent-dark);font-weight:400}
.chapter-title>span{font-size:inherit;color:inherit;letter-spacing:0}
.group-head .chapter-count{font-size:14px;color:var(--accent-dark);letter-spacing:0;white-space:nowrap}
.group-head .chapter-index{font-size:20px;letter-spacing:0;color:white}
.stage-grid{padding:25px 22px;display:block}.stage-card{flex-direction:row;min-height:108px;height:108px;gap:18px}
.stage-copy h3{font-size:17px;line-height:1.6;margin-bottom:5px}.stage-copy>small{color:var(--muted);font-size:14px}
.stage-top{justify-content:flex-start;gap:9px}.stage-top .status,.here-label{font-size:14px}.stage-number{font-size:14px}
.journey-score p,.chapter-link,.journey-note p{font-size:14px}.chapter-link{min-height:48px;line-height:1.7;padding:8px 4px;white-space:normal}
.chapter-link span{font-size:14px}.chapter-links h3{font-size:16px}.journey-note{padding:18px}
.learning-heading .toolbar{flex-wrap:wrap}.back-link,.learning-heading a,.tag{font-size:14px}
.learning-heading{margin-bottom:16px}.lesson-layout{display:block;max-width:none}
.lesson-rail{position:static;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px 22px;padding:20px 24px 14px;margin:0 0 20px;border-radius:20px}
.lesson-title h1{font-size:28px;margin:0 0 6px;line-height:1.5}.lesson-title p{margin:0;color:var(--muted)}
.lesson-progress>span,.lesson-progress b{font-size:14px;color:var(--muted)}.lesson-progress b{color:var(--accent-dark)}
.step-nav.steps{display:flex;flex-direction:row;grid-auto-flow:unset;grid-column:1/-1;gap:4px;justify-content:space-between;padding-top:12px;margin-top:0;overflow-x:auto;scrollbar-width:thin}
.step-nav.steps .step{display:block;flex:1;min-width:0;grid-template:unset;grid-column:auto;grid-row:auto}
.step-nav button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;font-size:14px;padding:9px 5px;border:0;border-bottom:0}
.step-nav button span{border:0;font-size:14px;width:24px;height:24px}.step-nav button.current{background:var(--tint);color:var(--accent-dark)}
.study-workspace{display:block;min-width:0}.lesson-panel{max-width:900px;margin:0 auto;padding:26px 30px;border-radius:20px;min-width:0}
.learn-controls{font-size:14px;gap:12px;color:var(--muted);margin-bottom:22px;padding-bottom:14px;align-items:center}
.learn-controls label,.learn-controls select,#voice-status{font-size:14px;color:var(--muted)}.learn-controls select{min-height:40px}
.learn-controls label:last-of-type{margin-left:0}#voice-status{flex-basis:100%}
.lesson-panel h2{font-size:26px}.lesson-panel h3{font-size:20px;line-height:1.6}
.task-overview,.practical-outcomes,.callout,.contrast-card,.info-card,.notice,.goal-list,.flow-times span,.scene-cue,.confirmed-facts{font-size:16px;line-height:1.8}
.task-overview,.contrast-card{padding:18px;border-radius:14px}.practical-outcomes{background:var(--tint);border:1px solid var(--line);border-left:3px solid var(--accent);padding:18px}
.practical-outcomes b,.info-card strong,.contrast-card b,.lesson-kit>summary,.fitness-reference>summary{font-size:16px}
.flow-times span{font-size:14px}.lesson-kit{margin:18px 0}.fitness-reference{margin:0 0 20px;font-size:16px;padding:13px 16px}
.fitness-reference h3,.oral-practice h3{font-size:18px}.phrase-card{font-size:16px;padding:12px}.phrase-card button{font-size:14px;min-height:44px}
.info-card{color:var(--ink);background:#f8faff;border:0;border-left:3px solid var(--line);padding:12px 16px;margin:18px 0}
.info-card strong{font-size:14px;color:var(--muted);letter-spacing:0}
.question-top .tag,.question-top small,.speaker.chat-header,.exercise-label{font-size:14px;color:var(--muted)}
.speaker .avatar{width:36px;height:36px;font-size:16px}.partner-en>span{font-size:24px;line-height:1.65}
.partner-en.chat-bubble{padding:18px 20px;border:0;border-radius:0 16px 16px 16px;min-height:70px}
.partner-en button{min-width:44px;min-height:44px;width:44px;height:44px;font-size:16px}
.dialogue-bubble .translation,.translation{font-size:16px;color:var(--muted)}
.response-heading{font-size:18px;margin-top:24px}.response-heading span{display:none}
.exercise-label{font-weight:500}.input-line{font-size:20px;min-height:56px;padding:12px 14px}.input-line::placeholder{font-size:16px;color:#64758c}
.word-bank button,.order-answer button{font-size:18px;color:var(--ink);border-color:var(--line);border-bottom-color:#ced8e7}
.order-answer:empty::before{font-size:14px}.cloze-line{font-size:24px}.choice{font-size:18px;padding:14px 16px}
.help-actions button{font-size:14px;min-height:44px;border:1px solid var(--line);color:var(--muted);padding:8px 11px}
.exercise-actions{gap:10px}.exercise-actions button[type=submit]{min-width:150px}.exercise-actions button:disabled{font-size:14px}
.feedback,.hint-panel{font-size:16px}.feedback.correct{color:#275a40}.feedback{color:#805529}
.conversation-history summary,.task-reference summary,#word-help>summary{font-size:14px;color:var(--muted)}
.conversation-history li{font-size:16px}.conversation-history,.task-reference{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:14px 0}
.sentence-note{background:transparent;border:0;padding:0;margin:12px 0 20px;border-radius:0}
.sentence-note .note-summary{font-size:16px;margin:0 0 5px;color:var(--muted)}
.sentence-note summary{font-size:14px;min-height:44px;display:list-item;padding:7px 0;line-height:1.8;color:var(--accent-dark)}
.note-body{margin:8px 0 0;padding:16px;background:#f8faff;border-radius:14px;min-width:0;overflow-wrap:anywhere}
.note-source{font-size:14px;color:var(--accent-dark);font-weight:650;margin-bottom:6px}
.sentence,.note-body .note-original{font-size:24px;line-height:1.65;font-weight:650;color:var(--ink)}
.note-body .note-original{display:block;margin:0 0 16px;font-size:20px}
.sentence-note h4,.note-body h4{font-size:16px;margin:20px 0 9px}
.note-segments{display:block;margin:8px 0}
.note-segments>div{display:grid;grid-template-columns:minmax(0,40%) minmax(0,1fr);gap:12px;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0;align-items:start}
.note-segments b{font-size:16px;color:#274d79;font-weight:600}.note-segments span{font-size:14px;margin:0;color:var(--ink);line-height:1.8}
.note-rule{padding:12px;background:#fff;border-radius:0 10px 10px 0}.note-rule-label{font-size:14px}
.sentence-note details p,.note-body p{font-size:16px;line-height:1.8}
.sentence-note .note-more,.note-body .note-more{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:white}
.sentence-note .note-more>summary,.note-body .note-more>summary{font-size:14px;padding:9px 0}
.note-more>summary span{font-size:14px;color:var(--muted)}.note-points{font-size:16px}
.note-body .note-error,.note-body .note-replace{border:0;border-top:1px solid var(--line);background:none;border-radius:0;padding:10px 0 0;margin-top:16px}
.note-body .note-error>summary,.note-body .note-replace>summary{font-size:16px;font-weight:650;padding:0}
.note-body .note-error>p[lang=en]{font-size:18px;color:#805529}.note-ahead{font-size:14px!important;background:transparent;padding:0;color:var(--muted);border-radius:0}
.note-variant{font-size:18px!important}.note-side-message{font-size:14px!important;color:var(--muted)}
.explanation-sidebar{display:none;min-width:0;background:white;border:1px solid var(--line);border-radius:20px;padding:20px}
.explanation-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;border-bottom:1px solid var(--line);padding-bottom:12px}
.explanation-heading h2{font-size:18px;margin:0}.explanation-heading button{min-height:44px;font-size:14px;padding:6px 10px}
.explanation-empty{padding:26px 0;color:var(--muted)}.explanation-empty>svg{width:36px;height:36px;color:var(--accent);margin-bottom:15px}
.explanation-empty h3{font-size:18px;color:var(--ink)}.explanation-empty p{font-size:16px}.explanation-empty small{display:block;font-size:14px}
.explanation-sidebar .note-body{background:none;padding:0;margin:0}.explanation-sidebar .note-original{font-size:20px}
.explanation-sidebar summary{min-height:44px;font-size:14px;color:var(--accent-dark);line-height:1.8}
.explanation-sidebar .note-error>summary,.explanation-sidebar .note-replace>summary{font-size:16px}
.example-tabs{display:flex;gap:8px;margin:20px 0;flex-wrap:wrap}.example-tabs button{font-size:16px;min-height:44px;border:1px solid var(--line);border-bottom-width:1px;color:var(--muted);background:white;flex:1}
.example-tabs button[aria-selected=true]{background:var(--tint);color:var(--accent-dark);border-color:var(--accent)}
.example{border:0;background:none;padding:0;margin:0 0 20px;border-radius:0}.example-purpose{font-size:16px;color:var(--accent-dark);margin-bottom:14px}
.completion-banner{padding:22px;margin-bottom:18px;border-radius:16px}.completion-banner h2{font-size:26px}.completion-banner small{color:var(--accent-dark)}
.summary-primary{padding:12px 0;margin-top:20px}.summary-review{margin-top:24px}.summary-review>summary,.next-context>summary{font-size:16px}
.score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.score-grid small{font-size:14px}.score-grid strong{font-size:28px;color:var(--accent-dark)}
.outcome{font-size:20px}.outcome small{font-size:16px}.same-stage h3{font-size:18px}.switch-next a{font-size:14px;padding:14px 10px;line-height:1.8;color:var(--accent-dark)}
.oral-practice{margin-top:24px;font-size:16px}.oral-practice>p,.oral-practice summary{font-size:16px}
.grammar-card{padding:24px;border-radius:18px}.grammar-card h2{font-size:22px}.grammar-card .ref-en{font-size:24px;color:var(--accent-dark)}.grammar-card a{font-size:14px}
.guide-panel{max-width:900px;padding:28px}.guide-panel h2{font-size:24px}.guide-panel summary{font-size:16px}
.review-item{padding:22px}.review-item b{font-size:18px}.review-item button{font-size:14px}
.vocab span,.vocab small,.chunk b,.label-switch,.label-switch button{font-size:14px}.chunk .en{font-size:18px}
footer{font-size:14px;color:var(--muted);padding:24px 0;max-width:1184px}#toast{font-size:14px;background:#304668}
@media(min-width:1100px){.study-workspace.has-notes{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.study-workspace.has-notes .lesson-panel{width:100%;max-width:none}.study-workspace.has-notes .explanation-sidebar{display:block;position:sticky;top:20px;max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}}
@media(max-width:1099px){.step-nav.steps .step{flex:0 0 auto}.step-nav.steps{justify-content:flex-start}.step-nav button{padding:9px 12px}}
@media(max-width:800px){.hero{grid-template-columns:1fr 1fr;gap:24px}.hero h1{font-size:36px}.hero-art{min-height:260px}.world-stamp{font-size:14px}.world-stamp small{display:none}.journey-layout{grid-template-columns:1fr}.journey-sidebar{position:static;display:block}.journey-score{padding:18px 20px}.chapter-links{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:0;padding:12px 18px;gap:8px}.chapter-link{font-size:14px}.journey-scene,.journey-note{display:none}.context-grid{grid-template-columns:1fr}.context-card{display:grid;grid-template-columns:180px minmax(0,1fr)}.context-art{height:100%;min-height:185px}.context-body p{min-height:0}.lesson-rail{grid-template-columns:minmax(0,1fr) 180px}.section-heading{align-items:start;flex-direction:column;gap:8px}.lesson-title h1{font-size:26px}}
@media(max-width:540px){main{padding:22px 16px 40px}.site-header{padding:14px 16px 10px;gap:12px}.brand{font-size:18px}.brand small{font-size:14px}.site-header nav{gap:4px;width:100%}.site-header nav a{font-size:14px;padding:8px 9px;min-height:44px}.hero.studio-hero{grid-template-columns:1fr;margin-bottom:26px;gap:0}.hero h1{font-size:34px;margin-bottom:14px}.studio-kicker{font-size:14px;margin-bottom:12px;gap:6px}.hero p{margin-bottom:0}.hero-art{display:none}.hero-bottom{display:block;margin-top:18px}.hero-caption{display:block;margin-top:12px}.resume-card.continue-card{margin-top:20px;padding:16px;border-radius:16px}.resume-card h2{font-size:20px}.resume-card p{margin-bottom:14px}.resume-card .primary-continue{width:100%;justify-content:center}.section-heading h2{font-size:24px}.context-card{grid-template-columns:98px minmax(0,1fr);border-radius:18px}.context-art{min-height:200px;padding:0}.context-art svg{width:160px;margin-left:-29px;height:auto}.scene-label{display:none}.context-body{padding:18px 15px}.context-body h3{font-size:21px;margin-bottom:8px}.context-body p{margin-bottom:14px}.card-bottom{font-size:14px;gap:5px}.card-bottom .arrow{width:28px;height:28px;flex-shrink:0}.progress-strip{padding:18px;gap:14px}.progress-strip>p{flex-basis:100%;min-width:0}.progress-strip .button{width:100%}.progress-strip .radial-progress{--size:3.8rem!important}.page-title h1{font-size:28px}.map-heading .toolbar{gap:8px;width:100%;align-items:center}.map-heading .toolbar>label:first-child{flex-basis:100%}.toolbar select{font-size:14px}.group-head .chapter-index{width:34px;height:34px;font-size:18px;flex-shrink:0}.map-chapter>.group-head{padding:16px 13px;gap:9px;flex-wrap:wrap}.group-head .chapter-title{font-size:17px;flex:1}.group-head .chapter-count{font-size:14px;flex-basis:100%;padding-left:43px;order:4}.map-chapter>.group-head::after{font-size:22px}.stage-grid{padding:20px 10px}.route-line{top:20px;left:10px;transform:scaleX(.62)}.stage-card{margin-left:calc(var(--bend)*.62);gap:12px;padding-right:0;height:108px}.stage-orb{width:56px;height:56px;box-shadow:0 0 0 5px white;flex-shrink:0}.stage-number{font-size:14px;bottom:5px}.stage-orb>svg{width:18px;height:18px}.stage-copy h3{font-size:16px;margin-bottom:4px;line-height:1.55}.stage-copy>small{font-size:14px;line-height:1.5}.stage-top{gap:4px;flex-wrap:wrap;margin-bottom:4px}.stage-top .status,.here-label{font-size:14px}.here-label{display:none}.node-arrow{display:none}.journey-score strong{font-size:26px}.chapter-links{padding:12px;gap:4px 8px}.chapter-link{padding:8px 2px;gap:7px;font-size:14px}.chapter-link>svg{display:none}.learning-heading .toolbar{width:100%;justify-content:flex-start}.lesson-rail{display:block;padding:18px 16px 10px;margin-bottom:16px;border-radius:18px}.lesson-title h1{font-size:24px;line-height:1.5}.lesson-progress{margin-top:14px}.step-nav.steps{margin-top:14px;padding-top:12px;gap:4px}.step-nav button{font-size:14px;padding:8px 10px}.step-nav button span{font-size:14px;width:23px;height:23px}.lesson-panel{padding:20px 16px}.learn-controls{font-size:14px;gap:9px;margin-bottom:18px}.learn-controls label{font-size:14px;flex-wrap:wrap}.learn-controls select{font-size:14px}.lesson-panel h2{font-size:24px}.lesson-panel h3{font-size:20px}.partner-en>span,.sentence{font-size:22px}.partner-en.chat-bubble{padding:16px;gap:10px}.sentence button{padding:8px;min-height:44px}.question-top{gap:8px;align-items:flex-start}.question-top .tag{font-size:14px}.question-top small{white-space:nowrap;font-size:14px}.input-line{font-size:20px;padding:12px}.response-heading{font-size:18px}.choice{font-size:18px;padding:12px}.word-bank button,.order-answer button{font-size:17px;padding:9px 12px}.cloze-line{font-size:22px;padding:12px}.buttons>button,.buttons>.button{flex:1;min-width:0;font-size:16px;white-space:normal}.exercise-actions button[type=submit]{min-width:0}.exercise-actions button:disabled{font-size:14px}.help-actions button{font-size:14px;min-height:44px;flex:0 1 auto}.note-body{padding:14px}.note-segments>div{gap:10px;grid-template-columns:minmax(0,40%) minmax(0,1fr)}.note-segments b{font-size:16px}.note-original{font-size:20px}.note-body .note-original{font-size:20px}.example-tabs{gap:6px}.example-tabs button{font-size:16px;padding:9px 8px}.completion-banner{padding:18px 14px;gap:14px}.completion-banner h2{font-size:24px}.completion-mark{width:54px;height:54px;border-radius:17px}.score-grid{grid-template-columns:1fr}.score-grid div{display:flex;align-items:center;gap:18px;padding:12px 16px}.score-grid strong{font-size:25px;min-width:54px}.switch-next{grid-template-columns:1fr}.same-stage .switch-next{grid-template-columns:1fr}.switch-next a{font-size:16px;padding:12px}.outcome{font-size:20px;gap:10px}.outcome small{font-size:16px}.outcome .tick{font-size:14px}.grammar-card .ref-en{font-size:22px}.guide-panel{padding:22px 18px}.review-item{flex-wrap:wrap;padding:18px}.review-item button{font-size:14px}footer{margin:0 16px;font-size:14px;padding:22px 0}.exercise-actions{position:static}#exercise-form:has(#answer):focus-within .exercise-actions{position:sticky;bottom:calc(8px + var(--keyboard-inset,0px));background:white;box-shadow:0 -8px 12px white;z-index:3}.hint-panel,.feedback{font-size:16px}}
@media print{.explanation-sidebar{display:none!important}.study-workspace.has-notes{display:block}.example[hidden]{display:block!important}.note-body{background:white}}
