/* Reading-size layer: keep the existing learning flow, give its text room to breathe. */
html{font-size:18px}
body{font-size:1rem;line-height:1.65}
main,.header-inner{max-width:1360px}
.btn,.nav-btn,.auth-tab,.auth-submit,.option-btn,.placement-option,.course-tab,.extra-link{font-size:1rem;line-height:1.45}
.btn,.nav-btn,.option-btn,.placement-option{min-height:52px}
.btn{white-space:normal;text-wrap:pretty}
.section-title{font-size:1.28rem}
.section-copy,.page-desc,.hero p,.course-copy,.phrase-instruction,.study-hint,.guide-lead{font-size:1rem;line-height:1.65}
.eyebrow,.phase-label,.hero-kicker,.phrase-mode,.course-head-row strong,.review-head strong{font-size:.86rem}
.stat-label,.stat-sub,.metric-pill,.plan-item small,.score-box small,.mission-item small,.route-step small,.consolidation-stat small,.review-result-grid small{font-size:.85rem;line-height:1.5}
.plan-item strong,.mission-item strong,.route-step strong,.consolidation-stat strong,.known-summary strong{font-size:1.05rem;line-height:1.45}
.consolidation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-block:18px}
.consolidation-stat:first-child{grid-column:1/-1}
.consolidation-stat{min-height:64px;padding:12px 15px}
.consolidation-stat strong{font-size:1.15rem}
.consolidation-loop{flex:0;align-content:initial;margin:8px 0 18px}
.consolidation-loop span{font-size:.88rem;line-height:1.45;min-height:82px}
.consolidation-action{margin-top:auto}
.progress-meta,.coach-note,.route-next p,.consolidation-action p,.grammar-mission-copy,.phrase-mission-copy,.phrase-adaptive p{font-size:.96rem}
.guide-step strong,.extra-link strong,.course-tab strong,.grammar-unit strong{font-size:1rem;line-height:1.4}
.guide-step p,.guide-rule,.extra-link small,.extras-footer p,.grammar-unit small,.course-tab small,.course-tab b{font-size:.84rem;line-height:1.55}
.header-inner .nav-btn{font-size:.92rem;padding-inline:15px}
.brand h1{font-size:1.13rem}
.brand p,.student-user,.student-logout,.header-inner .today-chip{font-size:.83rem}
.journey-caption strong,.typing-routine strong{font-size:.88rem}
.journey-caption small,.typing-routine small,.journey-step small{font-size:.78rem}
.journey-step strong{font-size:.86rem}
.journey-number{font-size:.77rem}
.journey-context,.journey-context button{font-size:.91rem;line-height:1.5}
.journey-track{gap:3px}
.journey-step{gap:6px;padding:7px 5px;min-height:62px}
.auth-story p,.auth-point,.auth-form-copy,.auth-field label,.auth-error,.auth-help{font-size:.94rem;line-height:1.6}
.auth-shell{width:min(100%,1020px)}
.auth-input,.text-input,.course-textarea{font-size:1.06rem;line-height:1.5}
.auth-input,.text-input{min-height:56px}
.quiz-meta,.quiz-sentence,.think-gate p,.feedback p,.quiz-support p,.recall-label,.input-help,.countdown,.rule-list li,.grammar-concept p,.grammar-examples span,.grammar-cue,.course-feedback,.prompt-box small,.listen-stage p,.reading-question,.evidence-box p,.speak-focus,.speech-status,.speech-result p,.review-cue,.review-feedback,.phrase-context,.phrase-feedback{font-size:1rem;line-height:1.65}
.quiz-q,.grammar-question strong,.course-title,.prompt-box strong,.review-prompt{font-size:clamp(1.3rem,2.4vw,1.7rem);line-height:1.5}
.reading-passage{font-size:1.12rem}
.pos-card summary strong,.pos-compare strong,.pos-skeleton strong,.pos-key strong{font-size:1.04rem}
.pos-card summary span,.pos-card-body,.pos-skeleton,.pos-key,.pos-compare-grid span{font-size:.96rem;line-height:1.65}
.pos-step,.tag,.route-badge,.consolidation-badge,.known-summary-kicker,.phrase-level-map span{font-size:.84rem}
.known-summary small,.placement-summary,.known-pending-copy,.voice-pack-card small,.voice-pack-progress,.bank-summary,.word-index,.word-level,.status-pill,.phrase-bank-head,.phrase-bank-item small,.phrase-bank-item em,.phrase-source{font-size:.84rem;line-height:1.55}
.word-name{font-size:1.14rem;line-height:1.4}
.word-mean-cell,.phrase-bank-item p{font-size:1rem;line-height:1.5}
.pronunciation-btn,.meaning-reveal,.known-check{font-size:.9rem;min-height:44px}
.pronunciation-btn{min-width:66px}
.word-row{grid-template-columns:50px minmax(180px,1fr) minmax(170px,1.25fr) 72px 94px 118px;min-height:78px;padding-block:13px}
.study-ipa{font-size:1.1rem}
.phrase-bank-phrase strong{font-size:1.14rem}
.calendar-month,.calendar-week,.calendar-day,.calendar-summary{font-size:.82rem}
.calendar-nav button{width:38px;height:38px}
.toast,.pronunciation-status,.guardian-note,.source-note,.guide-step b,.no-copy-note,.celebration-card p{font-size:.9rem;line-height:1.5}
.grammar-layout{grid-template-columns:300px minmax(0,1fr)}
.course-layout{grid-template-columns:280px minmax(0,1fr)}
.study-layout{grid-template-columns:minmax(0,1fr) 300px}
.grammar-body,.course-panel,.study-center{max-width:850px}
/* The live lesson uses a dark, focused view; labels there need the same legibility. */
#view-live .eyebrow,#view-live .holo-label{font-size:14px}
#view-live .live-main>p:not(.eyebrow),#view-live .listening-status,#view-live #live-status{font-size:18px;line-height:1.7}
#view-live #live-chapter,#view-live details,#view-live .recording-panel,#view-live #live-save,#view-live .live-disclosure,#view-live .live-main>p.live-disclosure{font-size:16px;line-height:1.65}
#view-live .btn{font-size:17px}
#view-live .live-main h1{font-size:clamp(30px,2.7vw,42px)}
#view-live #live-clock{font-size:38px}
@media(max-width:1120px){
  .journey-track{overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}
  .journey-track li{flex:0 0 112px}
  .journey-step{min-height:66px}
  .journey-step strong{white-space:normal}
  .journey-step small{white-space:normal}
  .mobile-nav .nav-btn{font-size:.88rem;min-height:54px}
}
@media(max-width:940px){
  .study-layout,.grammar-layout,.course-layout{grid-template-columns:1fr}
  .course-menu{overflow-x:auto}
  .course-tab{min-height:80px}
  .word-row{grid-template-columns:50px minmax(170px,1fr) minmax(160px,1.2fr) 86px;gap:9px}
  .word-row .word-level,.word-row .status-pill{display:none}
}
@media(max-width:760px){
  html{font-size:17px}
  body{line-height:1.6}
  main{padding-inline:16px}
  .brand h1{font-size:1rem}
  .student-user{font-size:.82rem}
  .student-logout{font-size:.78rem;min-height:38px}
  .journey-inner{padding:10px 14px}
  .journey-caption strong,.journey-caption small{font-size:.86rem}
  .journey-track li{flex-basis:94px}
  .journey-step{min-height:68px;padding:6px 4px}
  .journey-step strong{font-size:.84rem;line-height:1.3}
  .journey-number{width:25px;height:25px;font-size:.76rem}
  .journey-context,.journey-context button{font-size:.87rem}
  .mobile-nav .nav-btn{font-size:.79rem;line-height:1.25;min-height:60px}
  .mobile-nav .nav-btn span{font-size:1.2rem}
  .page-title{font-size:1.8rem}
  .section-title{font-size:1.2rem}
  .hero h2,#view-dashboard .hero h2{font-size:clamp(1.9rem,6vw,2.45rem)}
  .option-btn,.placement-option{min-height:62px}
  .word-row{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"index word known" "index meaning meaning";padding:13px;gap:9px}
  .word-name{font-size:1.1rem}
  .known-check{font-size:.84rem;padding:6px 8px;white-space:nowrap}
  .pronunciation-btn{min-width:44px}
  .meaning-reveal{font-size:.91rem}
  .course-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .course-tab{min-height:68px;padding:7px;line-height:1.3}
  .course-tab strong{font-size:.88rem}
  .course-tab-icon{display:none}
  .phrase-bank-tools,.bank-tools{grid-template-columns:1fr}
  #view-live .live-main h1{font-size:30px}
}
@media(max-width:390px){
  .brand h1{font-size:.91rem}
  .student-user{padding:4px 6px}
  .student-logout{font-size:.75rem}
  .mobile-nav .nav-btn{font-size:.75rem}
  .word-cell{gap:5px}
  .word-name{font-size:1.02rem}
  .course-tab strong{font-size:.82rem}
}
