:root{--ink:#1e3430;--muted:#66776d;--teal:#185e50;--teal2:#dfeee5;--bg:#f6f8f4;--card:#fff;--border:#dce4dc;--gold:#af9655;--danger:#a43a3a;--shadow:0 9px 36px rgba(29,64,55,.055);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.55;-webkit-text-size-adjust:100%}button,input,textarea,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #d1a958;outline-offset:2px}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--teal)}.site-wrap{max-width:970px;margin:0 auto;padding:0 clamp(16px,4vw,36px) 32px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0 24px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;background:#173e36;border-radius:14px;color:#fff;font-size:26px;font-family:Georgia,serif}.brand-name{font-size:18px;font-weight:760;letter-spacing:-.4px}.brand-tag{font-size:11px;color:var(--muted);letter-spacing:.4px}nav{display:flex;gap:4px;flex-wrap:wrap}nav button{border:0;border-radius:11px;background:transparent;color:var(--muted);font-size:14px;font-weight:650;padding:9px 12px}nav button.active{background:#e5efe7;color:#174e43}main{padding:26px 0 36px;min-height:66vh}.footer{padding:10px 0 25px;border-top:1px solid var(--border);font-size:12px;text-align:center;color:var(--muted)}h1{font-size:clamp(28px,4.3vw,43px);letter-spacing:-1.35px;line-height:1.19;margin:0 0 14px}h2{font-size:22px;letter-spacing:-.5px;margin:0 0 8px}h3{font-size:17px;margin:0 0 9px}p{margin:0 0 13px}.subtle{color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:1.6px;font-weight:750;color:var(--teal);margin-bottom:10px}.lead{max-width:670px;color:#53695f;font-size:17px}.hero{padding:24px 0 18px}.pill{font-size:11px;font-weight:750;border:1px solid #cddfd3;background:#edf5eb;color:#24604e;border-radius:50px;padding:5px 10px;display:inline-flex;align-items:center;gap:6px}.panel{background:var(--card);border:1px solid var(--border);border-radius:19px;padding:clamp(18px,3vw,29px);box-shadow:var(--shadow);margin-top:18px}.panel.soft{background:#f0f5ef}.grid-2,.grid-3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{border:1px solid var(--border);padding:18px;border-radius:15px;background:#fff}.stat strong{display:block;font-size:28px;line-height:1.2;letter-spacing:-1px}.stat span{font-size:12px;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}.btn{border:1px solid var(--border);border-radius:12px;color:var(--ink);font-weight:700;background:white;min-height:47px;padding:11px 16px}.btn.primary{background:var(--teal);color:white;border-color:var(--teal)}.btn.secondary{background:var(--teal2);color:#195447;border-color:var(--teal2)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger);border-color:#f0c9c5}.btn.full{width:100%}.mode-card{text-align:left;border:1px solid var(--border);background:#fff;border-radius:17px;padding:22px;width:100%;min-height:137px;display:block}.mode-card:hover{border-color:#92b5a4}.mode-card strong{display:block;font-size:19px;letter-spacing:-.2px}.mode-card span{display:block;color:var(--muted);font-size:13px;margin-top:5px}.mode-icon{display:inline-grid;background:#e6f1e9;width:30px;height:30px;border-radius:9px;place-items:center;margin-bottom:11px;color:var(--teal)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row.wrap{flex-wrap:wrap}.tiny{font-size:12px;color:var(--muted)}.section-head{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:28px;margin-bottom:10px}.divider{border:0;border-top:1px solid var(--border);margin:20px 0}.field{margin-top:13px}.field label,.input-label{display:block;font-size:13px;font-weight:740;margin-bottom:7px}.input,.textarea,.select{width:100%;border:1px solid #cbd7ce;background:#fff;border-radius:12px;padding:12px 13px;color:var(--ink);min-height:48px}.textarea{min-height:106px;resize:vertical;line-height:1.6}.input:focus,.textarea:focus{border-color:#3b8269}.practice-top{display:flex;justify-content:space-between;gap:14px;align-items:center}.timer{font-size:22px;font-variant-numeric:tabular-nums;font-weight:750;letter-spacing:-.7px}.time-goal{font-size:12px;color:var(--muted)}.bar-track{height:7px;background:#e6ece6;border-radius:20px;overflow:hidden;margin:16px 0}.bar-fill{height:100%;background:#4b9980;transition:width .3s}.question-label{font-size:12px;color:var(--teal);text-transform:uppercase;font-weight:760;letter-spacing:1.2px}.question{font-size:clamp(21px,3.9vw,29px);line-height:1.48;letter-spacing:-.45px;overflow-wrap:anywhere;margin:20px 0 16px}.answer-card{margin-top:19px;padding:18px;border:1px solid #c8dfce;background:#f1f7f2;border-radius:15px}.answer-card strong{font-size:20px}.answer-card p{margin:6px 0 0}.self-btn{border:1px solid var(--border);border-radius:12px;padding:13px 9px;min-height:72px;background:#fff;flex:1;text-align:center}.self-btn strong{display:block;font-size:23px}.self-btn small{display:block;font-size:11px;color:var(--muted)}.self-btn.k{border-color:#a4cfb0;background:#f0f9ee}.self-btn.v{border-color:#e5d4a5;background:#fffae8}.self-btn.n{border-color:#ebc3bc;background:#fff2ef}.hint{margin-top:10px;padding:10px 13px;background:#f4f6f1;border-radius:10px;font-size:13px;color:#435649}.chip{display:inline-block;border-radius:20px;background:#eff4ef;color:#47645a;padding:4px 10px;font-size:12px;font-weight:690}.list{list-style:none;padding:0;margin:0}.list li{padding:12px 0;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.list li:first-child{border-top:0}.item-title{font-size:14px;font-weight:650;overflow-wrap:anywhere}.item-sub{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.empty{padding:34px 14px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:14px}.preview-list{max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;padding:0 12px}.notice{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:11px 17px;border-radius:12px;background:#173e36;color:white;box-shadow:var(--shadow);font-weight:650;font-size:13px;max-width:calc(100% - 32px);z-index:50}.notice[hidden]{display:none}.skip-link{position:absolute;top:-100px;left:10px}.skip-link:focus{top:10px;padding:8px;background:#fff;z-index:100}.tagline{font-size:13px;color:var(--muted)}.danger-text{color:var(--danger)}.small-block{font-size:13px;color:var(--muted);padding:11px;background:#f4f6f2;border-radius:10px}.head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.nowrap{white-space:nowrap}.label-counter{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted)}.error{color:#a33b3b}.success{color:#24604e}.setup-options{display:flex;gap:15px;flex-wrap:wrap;margin:10px 0;font-size:13px}.setup-options label{display:flex;align-items:center;gap:6px;cursor:pointer}.setup-options input{accent-color:var(--teal)}
@media(max-width:640px){.site-header{align-items:flex-start;flex-direction:column;gap:14px;padding:17px 0 14px}nav{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}nav button{background:#edf2ec;border-radius:10px;padding:10px 8px}main{padding-top:16px}.grid-2{grid-template-columns:1fr}.grid-3{gap:8px}.stat{padding:13px 11px}.stat strong{font-size:23px}.stat span{font-size:11px}.panel{padding:18px;border-radius:17px}.row{gap:9px}.btn{min-height:48px}.actions>.btn{flex:1}.practice-top{align-items:flex-start}.question{font-size:22px}.self-btn small{font-size:10px}.hero{padding-top:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
/* English Cultivation design tokens and restrained immortal-aperture theme */
:root{--ink-green:#142821;--dark-jade:#20392f;--muted-jade:#365044;--antique-gold:#d8bf83;--parchment:#f2e8d1;--mist-green:#a8beae;--theme-bg:#f2e8d1;--theme-card:#fffaf0;--theme-border:#d7cbb0;--theme-text:#1d2d26;--theme-muted:#5c6d61}
html[data-theme="day"]{color-scheme:light}html[data-theme="night"]{color-scheme:dark;--theme-bg:#142821;--theme-card:#20392f;--theme-border:#496456;--theme-text:#f2e8d1;--theme-muted:#b8cabe}
body{background:var(--theme-bg);color:var(--theme-text);overflow-x:hidden}body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;background:linear-gradient(90deg,transparent 0 8%,rgba(216,191,131,.12) 8.1% 8.25%,transparent 8.35% 91.65%,rgba(216,191,131,.12) 91.75% 91.9%,transparent 92%);z-index:-1}.site-header{border-color:var(--theme-border)}.brand-mark{background:var(--dark-jade);color:var(--antique-gold);border:1px solid rgba(216,191,131,.45);box-shadow:inset 0 0 0 2px rgba(216,191,131,.08)}.brand-name{color:var(--theme-text)}.brand-tag,.footer,.subtle,.tiny,.stat span,.item-sub,.time-goal{color:var(--theme-muted)}nav button{color:var(--theme-muted)}nav button.active{background:var(--dark-jade);color:var(--parchment)}.panel,.stat,.mode-card{background:var(--theme-card);border-color:var(--theme-border)}.panel.soft{background:color-mix(in srgb,var(--theme-card) 86%,var(--muted-jade))}.stat strong,.item-title,h1,h2,h3,p{color:var(--theme-text)}.lead{color:var(--theme-muted)}.btn{background:var(--theme-card);border-color:var(--theme-border);color:var(--theme-text)}.btn.primary{background:var(--dark-jade);border-color:var(--antique-gold);color:var(--parchment)}.btn.secondary{background:color-mix(in srgb,var(--mist-green) 35%,var(--theme-card));color:var(--theme-text);border-color:var(--mist-green)}.btn.danger{color:#b85e54}.input,.textarea,.select{background:var(--theme-card);border-color:var(--theme-border);color:var(--theme-text)}.input::placeholder,.textarea::placeholder{color:var(--theme-muted)}.answer-card{background:color-mix(in srgb,var(--mist-green) 22%,var(--theme-card));border-color:var(--mist-green)}.hint,.small-block{background:color-mix(in srgb,var(--mist-green) 18%,var(--theme-card));color:var(--theme-muted)}.bar-track{background:color-mix(in srgb,var(--theme-border) 70%,transparent)}.bar-fill{background:var(--antique-gold)}.mode-icon{background:color-mix(in srgb,var(--mist-green) 28%,var(--theme-card));color:var(--dark-jade)}.footer{border-color:var(--theme-border)}.theme-toggle{border:1px solid var(--theme-border);background:transparent;color:var(--theme-muted);border-radius:999px;padding:4px 8px;margin-left:5px}.self-btn{background:var(--theme-card);border-color:var(--theme-border);color:var(--theme-text)}.self-btn.k{background:color-mix(in srgb,#a4cfb0 22%,var(--theme-card))}.self-btn.v{background:color-mix(in srgb,#e5d4a5 22%,var(--theme-card))}.self-btn.n{background:color-mix(in srgb,#ebc3bc 18%,var(--theme-card))}.chip,.pill{background:color-mix(in srgb,var(--mist-green) 25%,var(--theme-card));color:var(--theme-text)}.notice{background:var(--dark-jade);border:1px solid var(--antique-gold)}
@media(max-width:640px){nav{grid-template-columns:repeat(4,minmax(0,1fr))}.site-wrap{padding-bottom:24px}.actions>.btn{min-width:0}.theme-toggle{font-size:12px}}
@media(prefers-reduced-motion:reduce){body::before{display:none}}
/* Chinese operation layer and touch-safe answer affordances */
.mode-english{font-size:12px!important;color:var(--theme-muted)!important;letter-spacing:.2px}.cloze-question{cursor:text;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:var(--antique-gold);text-underline-offset:5px}.answer-input{font-size:18px;min-height:54px}.input-help{font-size:14px;color:var(--theme-muted);margin-top:16px;margin-bottom:5px}.daily-pack-panel{border:1px solid var(--antique-gold);background:color-mix(in srgb,var(--antique-gold) 12%,var(--theme-card));border-radius:19px;padding:clamp(18px,3vw,29px);box-shadow:var(--shadow);margin-top:18px}.switch-backdrop{position:fixed;inset:0;background:rgba(10,20,16,.55);display:grid;place-items:center;padding:18px;z-index:100}.switch-dialog{max-width:560px;width:100%;margin:0;background:var(--theme-card);border-color:var(--antique-gold)}.guide-dialog p{font-size:15px}.switch-dialog .actions{display:grid;grid-template-columns:1fr;align-items:stretch}.switch-dialog .actions .btn{width:100%}
.answer-input,.textarea{scroll-margin-bottom:180px}.retry-box{margin-top:16px;padding:16px;border:1px solid var(--antique-gold);border-radius:14px;background:color-mix(in srgb,var(--antique-gold) 10%,var(--theme-card))}.hint-stack{display:grid;gap:4px;margin-top:8px}
.reading-article{margin-top:16px;padding:20px;background:var(--theme-card);border:1px solid var(--theme-border);border-radius:16px}.reading-paragraph{font-size:18px;line-height:1.85;user-select:text;-webkit-user-select:text}.reading-article h2{margin-bottom:12px}@media(max-width:640px){nav{grid-template-columns:repeat(5,minmax(0,1fr))}nav button{font-size:12px;padding:9px 4px}}

/* V4.1 mobile-first design system: quiet jade surfaces, clear hierarchy, touch-safe rhythm. */
:root{
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;
  --radius-sm:10px;--radius-md:16px;--radius-lg:24px;--touch:48px;
  --surface-elevated:color-mix(in srgb,var(--theme-card) 94%,var(--antique-gold));
}
html{background:var(--theme-bg)}
body{min-height:100svh}
.site-wrap{padding-bottom:calc(48px + env(safe-area-inset-bottom))}
.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--theme-bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.site-header{backdrop-filter:none;-webkit-backdrop-filter:none}
.brand-mark{width:46px;height:46px;border-radius:16px}
.brand-name{font-size:19px}
.mobile-nav{align-items:stretch}
.mobile-nav button{min-width:var(--touch);min-height:var(--touch);display:flex;align-items:center;justify-content:center;gap:6px}
.nav-icon{font-size:16px;line-height:1;font-weight:800;color:var(--antique-gold)}
main{padding-top:var(--space-7)}
.home-hero{margin-top:0;padding:clamp(20px,4vw,34px);border:1px solid var(--theme-border);border-radius:var(--radius-lg);background:linear-gradient(135deg,color-mix(in srgb,var(--dark-jade) 94%,var(--theme-card)),var(--dark-jade));box-shadow:0 18px 50px rgba(20,40,33,.14)}
.home-hero h1,.home-hero p,.home-hero .eyebrow{color:var(--parchment)}
.home-hero .lead{max-width:590px;color:color-mix(in srgb,var(--parchment) 78%,var(--mist-green))}
.home-hero .eyebrow{color:var(--antique-gold)}
.today-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-6)}
.today-summary .stat{background:rgba(242,232,209,.1);border-color:rgba(216,191,131,.34);padding:var(--space-4)}
.today-summary .stat strong,.today-summary .stat span{color:var(--parchment)}
.today-summary .stat strong{font-size:clamp(20px,4vw,28px)}
.home-primary{min-width:min(100%,210px)}
.section-head{margin-top:var(--space-7)}
.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.feature-card{min-height:148px;padding:var(--space-5);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.feature-card:hover,.feature-card:focus-visible{transform:translateY(-2px);border-color:var(--antique-gold);box-shadow:0 10px 24px rgba(20,40,33,.1)}
.feature-card .mode-icon{width:36px;height:36px;border-radius:12px;font-size:17px}
.feature-card strong{font-size:19px}
.feature-card span:last-child{line-height:1.45}
.progress-strip,.resume-card,.training-queue,.settings-card{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--theme-border);border-radius:var(--radius-md);background:var(--surface-elevated)}
.progress-strip h3{margin-bottom:var(--space-2)}
.compact-pack{margin-top:var(--space-5)}
.empty.home-empty{margin-top:var(--space-5);background:var(--surface-elevated)}
.practice-top{padding:var(--space-4);border:1px solid var(--theme-border);border-radius:var(--radius-md);background:var(--surface-elevated)}
.practice-top h2{margin-bottom:var(--space-1)}
.practice-top + .bar-track{margin-top:var(--space-3)}
.question-label{letter-spacing:1.4px}
.question{max-width:760px;margin-top:var(--space-5);font-weight:610}
.answer-card,.retry-box{box-shadow:0 8px 20px rgba(20,40,33,.06)}
.answer-feedback{font-weight:700}
.answer-feedback.correct,.answer-feedback.case_or_punctuation{color:#2b7359}
.answer-feedback.minor_spelling{color:#8a6c20}
.answer-feedback.incorrect,.answer-feedback.blank{color:#9d4b43}
.answer-input{scroll-margin-bottom:calc(220px + env(safe-area-inset-bottom));padding:14px 15px;border-width:2px}
.compact-answer-input{height:56px;min-height:56px;max-height:56px;resize:none;overflow-y:hidden;line-height:24px}
.answer-input:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--antique-gold) 28%,transparent)}
.self-btn{min-height:78px;transition:transform .15s ease}
.self-btn:active,.btn:active{transform:scale(.98)}
.reading-article{max-width:760px;margin-inline:auto;padding:clamp(22px,5vw,38px);box-shadow:0 14px 30px rgba(20,40,33,.07)}
.reading-page{padding-top:var(--space-4);scroll-margin-top:calc(88px + env(safe-area-inset-top))}
.reading-mark{background:color-mix(in srgb,var(--antique-gold) 42%,var(--theme-card));color:var(--theme-text);border-radius:4px;padding:0 2px;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:var(--antique-gold);text-underline-offset:3px}
.reading-article h2{font-size:clamp(24px,5vw,34px);line-height:1.25}
.reading-paragraph{font-size:clamp(18px,4.5vw,21px);line-height:1.9;letter-spacing:.01em;margin-bottom:1.2em}
.reading-paragraph:last-child{margin-bottom:0}
.reading-toolbar{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));z-index:5;display:flex;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2);border:1px solid var(--theme-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--theme-card) 94%,transparent);backdrop-filter:blur(10px)}
.library-section{margin-top:var(--space-5)}
.import-preview-card{border:1px solid var(--antique-gold);border-radius:var(--radius-md);padding:var(--space-4);background:color-mix(in srgb,var(--antique-gold) 10%,var(--theme-card))}
.report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}
.report-summary .stat{padding:var(--space-4)}
.mobile-nav button span:last-child{font-size:12px}
@media(min-width:641px){.mobile-nav{gap:var(--space-2)}.mobile-nav button{padding-inline:var(--space-4)}.site-header{border-bottom-color:var(--theme-border)}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){
  .site-wrap{padding:0 14px calc(82px + env(safe-area-inset-bottom))}
  .site-header{padding:14px 0 12px;display:block;border-bottom:0}
  .site-header .brand{padding-inline:2px}
  .mobile-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:7px max(8px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--theme-border);background:color-mix(in srgb,var(--theme-bg) 94%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 -8px 24px rgba(20,40,33,.1)}
  .mobile-nav button{flex-direction:column;gap:3px;border-radius:12px;padding:7px 2px;color:var(--theme-muted)}
  .mobile-nav button.active{background:var(--dark-jade);color:var(--parchment)}
  .mobile-nav .nav-icon{font-size:15px}
  main{padding-top:var(--space-4);padding-bottom:var(--space-6)}
  .home-hero{border-radius:20px;padding:20px 17px}
  .home-hero .actions{display:grid;grid-template-columns:1fr 1fr}
  .home-hero .actions .btn{width:100%}
  .today-summary{gap:6px;margin-top:18px}
  .today-summary .stat{padding:12px 8px;border-radius:12px}
  .today-summary .stat span{font-size:10px}
  .feature-grid{grid-template-columns:1fr 1fr;gap:9px}
  .feature-card{min-height:142px;padding:15px 13px;border-radius:15px}
  .feature-card strong{font-size:17px}
  .feature-card span:last-child{font-size:12px}
  .progress-strip,.resume-card,.training-queue,.settings-card{padding:16px;border-radius:15px}
  .report-summary{grid-template-columns:1fr 1fr}
  .reading-toolbar{bottom:calc(70px + env(safe-area-inset-bottom))}
  .actions{gap:8px}
  .actions>.btn{min-width:0}
}
@media(max-width:360px){.feature-grid{grid-template-columns:1fr}.home-hero .actions{grid-template-columns:1fr}.mobile-nav button span:last-child{font-size:11px}}

/* V4.3 unified English journey: progress, timer and four module preview */
.daily-journey-card{margin-block:var(--space-4);padding:clamp(17px,4vw,26px);border:1px solid var(--theme-border);border-radius:var(--radius-lg);background:var(--theme-card);box-shadow:0 8px 20px rgba(20,40,33,.045)}
.daily-journey-card h2{margin:6px 0 10px}
.daily-journey-card .timer{margin:12px 0;font-variant-numeric:tabular-nums}
.journey-stages{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.journey-stages .chip{border:1px solid var(--theme-border);padding:8px 11px;border-radius:999px;font-size:13px}
@media(max-width:640px){.daily-journey-card{padding:17px 15px}.journey-stages .chip{flex:1 1 calc(50% - 8px);text-align:center}.daily-journey-card .actions .btn{width:100%}}

/* Optional ink-wash visual layer. Missing/unlicensed files fall back to calm CSS placeholders. */
.visual-frame{position:relative;overflow:hidden;border:1px solid var(--theme-border);border-radius:var(--radius-md);background:linear-gradient(135deg,color-mix(in srgb,var(--parchment) 78%,var(--theme-card)),var(--theme-card));min-height:54px;display:grid;place-items:center}.visual-frame img{display:block;width:100%;height:100%;object-fit:cover;opacity:.96}.visual-frame:not(.has-image) img{visibility:hidden}.visual-placeholder{display:grid;place-items:center;gap:2px;padding:12px;text-align:center;color:var(--theme-muted);min-height:54px;width:100%}.visual-frame.has-image .visual-placeholder{display:none}.visual-placeholder-title{font-family:Georgia,'Songti SC',serif;color:var(--muted-jade);font-weight:700}.visual-frame-button{padding:0;cursor:pointer;text-align:left}.visual-frame-button:focus-visible{outline:3px solid var(--antique-gold);outline-offset:3px}.visual-tile-title{position:absolute;left:9px;right:9px;bottom:7px;padding:4px 7px;border-radius:8px;background:rgba(20,40,33,.78);color:var(--parchment);font-size:12px;font-weight:700}.home-hero-visual{position:relative;margin:-20px -17px 20px;min-height:150px;max-height:270px;aspect-ratio:1220/627;overflow:hidden;background:linear-gradient(140deg,#244337,#11241e)}.home-hero-visual .visual-frame{height:100%;border:0;border-radius:0;background:transparent}.home-hero-visual .visual-frame img{object-position:center 54%;filter:saturate(.78) contrast(.96)}.home-hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,40,33,.06) 20%,rgba(20,40,33,.76) 100%);pointer-events:none}.home-hero-visual .visual-caption{position:absolute;left:18px;bottom:15px;z-index:1;color:var(--parchment);font-size:11px;letter-spacing:1.2px;font-weight:700}.training-visual-strip{height:66px;margin-bottom:var(--space-4);overflow:hidden;border-radius:var(--radius-md);opacity:.86}.training-visual-strip .visual-frame{height:100%;border-radius:var(--radius-md)}.training-visual-strip .visual-frame img{object-position:center 46%;filter:saturate(.65) contrast(.9)}.growth-visual-card{display:grid;grid-template-columns:minmax(110px,22%) 1fr;gap:var(--space-5);align-items:center;margin-block:var(--space-5);padding:var(--space-4);border:1px solid var(--theme-border);border-radius:var(--radius-lg);background:var(--surface-elevated)}.growth-visual-card .visual-frame{height:150px}.growth-visual-copy h2{margin-top:4px}.quote-visual-card{display:grid;grid-template-columns:minmax(150px,34%) 1fr;gap:var(--space-4);align-items:center;margin-top:var(--space-5);padding:var(--space-3);border:1px solid var(--theme-border);border-radius:var(--radius-md);background:var(--surface-elevated)}.quote-visual-card .visual-frame{max-height:130px}.visual-scroll-panel{margin-top:var(--space-5);padding:var(--space-4);border:1px solid var(--theme-border);border-radius:var(--radius-md);background:var(--surface-elevated)}.visual-scroll-panel summary{cursor:pointer;font-weight:750;color:var(--theme-text);padding:4px}.visual-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-3)}.visual-gallery .visual-frame{min-height:130px}.visual-dialog-frame{max-height:min(66vh,560px);min-height:180px}.visual-dialog-frame img{object-fit:contain;background:var(--theme-bg)}
@media(max-width:640px){.home-hero-visual{margin:-20px -17px 18px;min-height:146px}.training-visual-strip{height:58px}.growth-visual-card{grid-template-columns:96px 1fr;gap:var(--space-3);padding:var(--space-3)}.growth-visual-card .visual-frame{height:128px}.quote-visual-card{grid-template-columns:1fr;padding:var(--space-3)}.quote-visual-card .visual-frame{max-height:110px}.visual-dialog-frame{max-height:60vh}.visual-gallery .visual-frame{min-height:116px}}
@media(prefers-reduced-motion:reduce){.visual-frame img{transition:none}}

/* V4.5 Quiet Mastery: a single calm visual layer for the existing learning surfaces. */
:root{
  --quiet-ivory:#f5f3ed;
  --quiet-card:#fdfcf8;
  --quiet-jade:#234a3d;
  --quiet-jade-deep:#16372c;
  --quiet-ink:#1e3029;
  --quiet-muted:#68766c;
  --quiet-gold:#d3be91;
  --quiet-border:#dfe5dd;
  --quiet-shadow:0 18px 48px rgba(22,55,44,.09);
  --quiet-radius:18px;
  --quiet-display:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
html[data-theme="day"]{
  --theme-bg:var(--quiet-ivory);
  --theme-card:var(--quiet-card);
  --theme-border:var(--quiet-border);
  --theme-text:var(--quiet-ink);
  --theme-muted:var(--quiet-muted);
  --dark-jade:var(--quiet-jade);
  --ink-green:var(--quiet-ink);
  --antique-gold:var(--quiet-gold);
}
html[data-theme="night"]{
  --theme-bg:#14241e;
  --theme-card:#20342b;
  --theme-border:#3d5a4c;
  --theme-text:#f1eddf;
  --theme-muted:#b8c8bd;
  --dark-jade:#2e5d4d;
  --ink-green:#f1eddf;
  --antique-gold:#dfc98e;
}
body{font-family:var(--quiet-display);letter-spacing:-.01em}
body::before{opacity:.045;background:linear-gradient(90deg,transparent 0 10%,color-mix(in srgb,var(--quiet-gold) 30%,transparent) 10.1% 10.2%,transparent 10.3% 89.7%,color-mix(in srgb,var(--quiet-gold) 30%,transparent) 89.8% 89.9%,transparent 90%)}
.site-wrap{max-width:1120px;padding-inline:clamp(18px,4vw,46px);padding-bottom:calc(64px + env(safe-area-inset-bottom))}
.site-header{padding-block:22px 18px;border-bottom:0;align-items:center}
.brand{gap:13px}.brand-mark{width:44px;height:44px;border-radius:14px;font-size:25px;box-shadow:0 8px 18px rgba(22,55,44,.13)}
.brand-name{font-size:18px;letter-spacing:-.55px}.brand-tag{font-size:10px;letter-spacing:1.15px;text-transform:uppercase}
.mobile-nav{gap:4px}.mobile-nav button{min-height:44px;border:1px solid transparent;transition:background-color .18s ease,color .18s ease,transform .18s ease}
.mobile-nav button{background:transparent}
.mobile-nav button:hover{color:var(--theme-text)}.mobile-nav button:active{transform:translateY(1px)}
.mobile-nav button.active{background:color-mix(in srgb,var(--mist-green) 27%,var(--theme-card));color:var(--quiet-jade);border-color:color-mix(in srgb,var(--mist-green) 42%,var(--theme-border))}
html[data-theme="night"] .mobile-nav button.active{color:var(--theme-text);background:color-mix(in srgb,var(--dark-jade) 62%,var(--theme-card));border-color:var(--theme-border)}
.nav-icon{width:21px;height:21px;display:block;flex:0 0 auto;font-size:0;color:currentColor;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;fill:none}
main{padding-top:var(--space-6);padding-bottom:var(--space-7)}
h1{font-size:clamp(30px,4.6vw,48px);letter-spacing:-1.65px;line-height:1.12}h2{letter-spacing:-.75px}p{line-height:1.65}.eyebrow{letter-spacing:1.8px;color:var(--quiet-jade)}
.home-hero{padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--quiet-jade) 22%,var(--theme-border));border-radius:26px;background:var(--quiet-jade-deep);box-shadow:var(--quiet-shadow);display:grid;gap:0}
.home-hero-visual{margin:0;min-height:214px;max-height:none;aspect-ratio:auto;grid-area:visual}
.home-hero-visual .visual-frame{height:100%;min-height:214px}.home-hero-visual .visual-frame img{object-position:center 54%;filter:saturate(.72) contrast(.98)}
.home-hero-visual::after{background:linear-gradient(180deg,rgba(20,40,33,.05),rgba(20,40,33,.7))}
.home-hero-copy{grid-area:copy;padding:26px 24px 0}.home-hero-copy .eyebrow{margin-bottom:12px;color:var(--quiet-gold)}
.home-hero h1{margin-bottom:13px;color:#f5f3ed}.home-hero .lead{color:color-mix(in srgb,#f5f3ed 78%,#a8beae);font-size:16px;max-width:31rem}
.today-summary{grid-area:summary;margin:20px 24px 0;gap:9px}.today-summary .stat{padding:14px 12px;border-radius:14px;background:rgba(245,243,237,.08);border-color:rgba(211,190,145,.28)}
.today-summary .stat strong{font-size:clamp(22px,4vw,30px);color:#f5f3ed}.today-summary .stat span{color:color-mix(in srgb,#f5f3ed 68%,#a8beae)}
.home-hero-actions{grid-area:actions;margin:20px 24px 26px}.home-hero-actions .btn{min-height:48px}.home-primary{min-width:190px}.home-hero-actions .btn.primary{background:#f5f3ed;color:var(--quiet-jade);border-color:#f5f3ed}.home-hero-actions .btn.secondary{background:rgba(245,243,237,.1);border-color:rgba(211,190,145,.38);color:#f5f3ed}
.daily-journey-card{border-radius:20px;box-shadow:0 12px 32px rgba(22,55,44,.06)}
.panel,.stat,.mode-card,.progress-strip,.resume-card,.training-queue,.settings-card,.visual-scroll-panel,.daily-pack-panel{box-shadow:0 10px 30px rgba(22,55,44,.055)}
.feature-card{border-radius:17px}.feature-card:hover,.feature-card:focus-visible{transform:translateY(-1px);box-shadow:0 12px 26px rgba(22,55,44,.1)}
.reading-article{border-radius:20px;box-shadow:0 12px 34px rgba(22,55,44,.06)}
.reading-article h2{font-size:clamp(25px,5vw,36px)}.reading-paragraph{line-height:1.88;max-width:68ch}
.answer-input,.textarea,.select{border-radius:13px}.answer-input:focus,.textarea:focus,.select:focus{border-color:var(--quiet-gold)}
.footer{border-top:0;padding-top:18px}
@media(min-width:860px){
  .home-hero{grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);grid-template-areas:"visual copy" "visual summary" "visual actions";min-height:430px}
  .home-hero-visual{min-height:430px}.home-hero-visual .visual-frame{min-height:430px}.home-hero-copy{padding:54px 38px 0}.today-summary{margin:12px 38px 0}.home-hero-actions{margin:20px 38px 34px}
  .mobile-nav{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:30;padding:7px 9px;border:1px solid var(--theme-border);border-radius:19px;background:color-mix(in srgb,var(--theme-card) 94%,transparent);box-shadow:0 16px 36px rgba(22,55,44,.13);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .mobile-nav button{padding:8px 15px;border-radius:12px;flex-direction:column;gap:3px}.mobile-nav button span:last-child{font-size:11px}
}
@media(max-width:859px){.home-hero{grid-template-columns:1fr;grid-template-areas:"visual" "copy" "summary" "actions"}.home-hero-actions{display:grid;grid-template-columns:1fr 1fr}.home-hero-actions .btn{width:100%}}
@media(max-width:640px){
  .site-wrap{padding-inline:14px;padding-bottom:calc(92px + env(safe-area-inset-bottom))}.site-header{padding-block:15px 10px}.brand-mark{width:42px;height:42px}.brand-name{font-size:17px}
  main{padding-top:var(--space-4)}.home-hero{border-radius:23px}.home-hero-copy{padding:22px 18px 0}.home-hero h1{font-size:clamp(29px,8vw,39px)}.home-hero .lead{font-size:15px}.today-summary{margin:17px 18px 0;gap:6px}.today-summary .stat{padding:12px 8px}.today-summary .stat span{font-size:10px}.home-hero-actions{margin:18px 18px 22px;gap:8px}.home-primary{min-width:0}.mobile-nav{padding:7px max(8px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));box-shadow:0 -9px 26px rgba(22,55,44,.11)}.mobile-nav .nav-icon{width:20px;height:20px}.mobile-nav button{gap:3px;padding:7px 2px}.mobile-nav button span:last-child{font-size:11px}
  .reading-toolbar{bottom:calc(78px + env(safe-area-inset-bottom));padding:8px}.reading-toolbar .btn{flex:1 1 calc(50% - 8px)}
}
@media(max-width:360px){.home-hero-actions{grid-template-columns:1fr}.mobile-nav button span:last-child{font-size:10px}}
@media(prefers-reduced-motion:reduce){.mobile-nav button,.feature-card{transition:none}.home-hero-visual img{filter:none}}

/* V4.5 contrast and fixed-navigation clearance corrections. */
html[data-theme="night"] .mode-card span,
html[data-theme="night"] .mode-english,
html[data-theme="night"] .self-btn small,
html[data-theme="night"] .question-label,
html[data-theme="night"] .hint,
html[data-theme="night"] .chip,
html[data-theme="night"] .input-help,
html[data-theme="night"] .label-counter{color:var(--theme-muted)!important}
html[data-theme="night"] .question-label{color:var(--quiet-gold)!important}
@media(min-width:860px){.site-wrap{padding-bottom:calc(128px + env(safe-area-inset-bottom))}}

/* V5 transfer room, source traceability and speaking controls. */
.transfer-room-card,.transfer-group,.transfer-practice,.transfer-analytics,.recording-panel,.source-trace{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--theme-border);border-radius:var(--radius-md);background:var(--surface-elevated);box-shadow:0 10px 28px rgba(22,55,44,.05)}
.transfer-room-card{background:linear-gradient(135deg,color-mix(in srgb,var(--dark-jade) 94%,var(--theme-card)),var(--dark-jade));color:var(--parchment)}.transfer-room-card h2,.transfer-room-card p{color:var(--parchment)}.transfer-room-card .btn.primary{background:var(--parchment);color:var(--dark-jade);border-color:var(--parchment)}
.transfer-group h2{margin-bottom:4px}.transfer-group .list li{padding-block:14px}.transfer-practice h1{margin-bottom:8px}.source-trace{padding:12px 14px;margin-block:var(--space-3);background:color-mix(in srgb,var(--mist-green) 12%,var(--theme-card));box-shadow:none}.source-trace .eyebrow{margin-bottom:4px;font-size:10px}.source-link{display:inline-flex;align-items:center;min-height:40px;margin-top:4px;color:var(--theme-text);font-weight:750;text-decoration:underline;text-underline-offset:3px}.recording-panel{padding:16px;background:color-mix(in srgb,var(--quiet-gold) 10%,var(--theme-card));box-shadow:none}.recording-panel h3{margin-bottom:5px}.recording-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:9px;margin-top:9px;border-top:1px solid var(--theme-border)}.recording-row .btn{min-height:40px;padding:8px 11px}.transfer-analytics .stat{min-height:88px}.transfer-analytics .stat strong{font-size:22px}
@media(max-width:640px){.transfer-room-card,.transfer-group,.transfer-practice,.transfer-analytics{padding:16px}.recording-row{align-items:flex-start;flex-wrap:wrap}.recording-row .tiny{flex:1 1 100%}.recording-panel .actions>.btn{flex:1}.source-trace{padding:12px}}
@media(prefers-reduced-motion:reduce){.transfer-room-card,.transfer-group,.transfer-practice,.recording-panel{transition:none}}

/* V5.1 Daily Learning Overview and task-specific transfer surfaces. */
.daily-overview{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--theme-border);border-radius:var(--radius-lg);background:var(--surface-elevated);box-shadow:0 10px 28px rgba(22,55,44,.05)}
.daily-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-4)}.daily-module-card{display:grid;gap:6px;align-content:start;padding:15px;border:1px solid var(--theme-border);border-radius:15px;background:var(--theme-card)}.daily-module-count{font-size:24px;font-weight:800;color:var(--quiet-jade)}.daily-module-card .btn{margin-top:5px;min-height:42px}.transfer-challenge .recording-panel{margin-top:var(--space-4)}
@media(max-width:640px){.daily-overview{padding:16px;border-radius:18px}.daily-module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.daily-module-card{padding:12px}.daily-module-count{font-size:21px}}

/* Optional neural speech playback: stay above the existing bottom navigation. */
.neural-audio-tray{position:fixed;z-index:80;left:12px;right:12px;bottom:calc(86px + env(safe-area-inset-bottom));margin:0 auto;max-width:700px;background:var(--surface, #f8f9f6);border:1px solid #cad6ca;border-radius:16px;padding:12px 14px;box-shadow:0 10px 36px #152e2533;color:var(--text, #1a342b)}
.neural-audio-tray[hidden]{display:none!important}
.neural-audio-tray audio{width:100%;max-width:100%;display:block}
.neural-audio-status{margin:0 0 6px;font-size:.84rem;line-height:1.4;overflow-wrap:anywhere}
.neural-audio-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.neural-audio-actions button{font-size:.88rem;padding:8px 12px}
@media(min-width:760px){.neural-audio-tray{bottom:20px}}
.neural-model-progress{display:block;width:100%;height:8px;margin:8px 0 3px;accent-color:#3c7861}.neural-model-progress-text{min-height:1.2em;font-size:.78rem;color:var(--muted,#5f7468);font-variant-numeric:tabular-nums}.neural-audio-progress{display:block;width:100%;height:7px;margin:6px 0 2px;accent-color:#3c7861}.neural-audio-progress-text{display:block;color:var(--muted,#5f7468);font-size:.76rem}
