/* Medieval fantasy identity. Learning controls keep their familiar labels. */
:root{
  --ink:#263c33;--muted:#62685b;--blue:#285448;--blue-dark:#183b32;
  --blue-pale:#e9eee3;--paper:#fffdf6;--canvas:#f4efdf;--line:#d6cdb7;
  --gold:#e5c782;--green:#286346;--red:#9e3f35;--radius:14px;
  --forest:#173c32;--brass:#94703a;--warm-shadow:0 12px 36px #4439210a;
}
body{background:var(--canvas);color:var(--ink)}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.025em}
h1{line-height:1.14}h2{line-height:1.25}h3{letter-spacing:0}
button,select,input,textarea,button.primary,.primary{border-radius:7px}
button,select,input,textarea{background:var(--paper);color:var(--ink);border-color:var(--line)}
input[type=radio],input[type=checkbox]{accent-color:var(--blue)}
button.primary,.primary{background:var(--forest);border-color:var(--forest);font-weight:600;box-shadow:0 3px 0 #112c2520}
button:hover:not(:disabled){background:#e8e8d7}
button.primary:hover,.primary:hover{background:#285848;border-color:#285848;color:#fff}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline-color:#9a5c13}
.eyebrow{font-size:.73rem;letter-spacing:.16em;color:#4d6952}
.badge{border:1px solid #cbd3bd;background:#eaf0e1;border-radius:4px;color:#345239}
.badge.gold{border-color:#d5b776;background:#f6e8bd;color:#634c22}
.badge.green{background:#e5efdf;color:#315938;border-color:#c5d6bd}
.brand{letter-spacing:-.025em;font-family:Georgia,"Times New Roman",serif;font-weight:600}
.brandmark{background:var(--forest);border:1px solid #a1844b;border-radius:9px 9px 20px 20px;color:var(--gold);width:42px;height:46px}
.entry-page{background:radial-gradient(ellipse at 80% 10%,#e5e5ce 0,transparent 50%),var(--canvas)}
.entry-top{max-width:1240px;padding:26px 36px;border-bottom:1px solid #d7ceb4}
.entry-tools>a{text-decoration:none;color:var(--ink)}
.entry-tools>a:hover{text-decoration:underline}
.entry-tools button{background:transparent;border-color:#c7bea8}
.entry-main.welcome-main{max-width:1180px;margin:36px auto 0;padding:0 32px 48px}
.entry-welcome{position:relative;overflow:hidden;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:0;padding:0;border:1px solid #b4a482;border-radius:12px;background:var(--forest);color:#fffae8;box-shadow:0 18px 55px #263c3315}
.welcome-copy{padding:52px 40px 50px 48px;position:relative;z-index:1}
.entry-welcome .eyebrow{color:#e1c789;display:flex;align-items:center;gap:10px;letter-spacing:.2em;font-size:.7rem;margin-bottom:24px}
.entry-welcome .eyebrow::before{content:"";display:block;width:30px;height:1px;background:#b59b60}
.entry-welcome h1{font-size:clamp(2.6rem,4.6vw,4rem);max-width:620px;margin-bottom:22px;letter-spacing:-.045em}
.entry-welcome h1 em{display:block;color:#e5c782;font-weight:400}
.entry-welcome p.muted{font-size:1.05rem;line-height:1.8;color:#e0e7d9;max-width:440px}
.entry-welcome .primary{margin-top:14px;padding:13px 25px;background:#ecd197;color:#263c33;border-color:#ecd197;box-shadow:0 4px 0 #0002;gap:20px}
.entry-welcome .primary:hover{background:#f5dfae;color:#173c32;border-color:#f5dfae}
.entry-welcome button:focus-visible{outline-color:#fff5d4}
.welcome-note{font-size:.8rem!important;color:#c6d2bc!important;margin:20px 0 0;max-width:440px}
.welcome-portrait{margin:24px 24px 24px 0;position:relative;align-self:stretch;min-height:430px;overflow:hidden;border-radius:170px 170px 8px 8px;border:1px solid #cab581;background:#c5c7ad;box-shadow:0 0 0 7px #e4c8880a}
.entry-welcome .welcome-portrait img{display:block;width:100%;height:100%;min-height:430px;border-radius:0;object-fit:cover;object-position:50% 28%;position:absolute;inset:0}
.welcome-portrait figcaption{position:absolute;inset:auto 0 0;padding:70px 22px 20px;background:linear-gradient(transparent,#16362eea);color:#fdf6df}
.welcome-portrait figcaption strong{display:block;font-family:Georgia,serif;font-size:1.9rem;font-weight:400;line-height:1.2}
.welcome-portrait figcaption span{font-size:.8rem;letter-spacing:.025em;color:#e1e6cf}
.welcome-journal{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:25px 0 0;padding:0 4px;color:#676b56;font-size:.8rem}
.welcome-journal p{margin:0}.welcome-journal span{letter-spacing:.12em;text-transform:uppercase;font-size:.67rem;color:#66785d}
.journey-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:24px 0 0;border-top:1px solid #d0c6ae;border-bottom:1px solid #d0c6ae}
.journey-steps li{padding:24px 26px;display:flex;align-items:flex-start;gap:15px}
.journey-steps li:first-child{padding-left:4px}.journey-steps li+li{border-left:1px solid #d0c6ae}
.journey-number{font-family:Georgia,serif;font-size:1.7rem;color:#9a7944;line-height:1.2}
.journey-steps h2{font-size:1.2rem;margin:0 0 7px}.journey-steps p{font-size:.84rem;line-height:1.65;color:var(--muted);margin:0}
.entry-card,.lesson-card,.progress-panel,.route-detail,.resource,.lesson-row,.character,.development-card,.development-body,details{background:var(--paper);border-color:var(--line);box-shadow:var(--warm-shadow)}
.entry-card{border-top:3px solid #b69358;border-radius:10px;padding-top:32px}
.entry-card h1{font-size:2.4rem}.entry-card h2,.lesson-card h2{font-size:1.65rem}
.entry-trail{color:#69705d}.entry-trail [aria-current=step]{color:#285448}
.entry-trail li:not(:last-child):after{color:#99815c}
.entry-privacy,.save-status{color:var(--muted)}
.age-input{background:#fffef9;border-color:#a6ab92}
.topbar{background:#f8f3e8eF;border-color:var(--line)}
.content{max-width:1270px}.sidebar{background:var(--forest);border-color:#284e3f}
.sidebar .brand{color:#fff5da}.sidebar .brandmark{background:#254c3b;border-color:#ad935c}
.sidenav a{color:#dce3cc;border:1px solid transparent;border-radius:6px}
.sidenav a:hover{background:#294e40;color:#fff5da}
.sidenav a[aria-current=page]{background:#ead29a;color:#263c33;border-color:#dbc084}
.sidebar-foot{color:#d6dfc8;border-color:#55705a}.sidebar-foot .save-status{color:#c2cdb6}
.continue{background:linear-gradient(120deg,#234d3b,#183c32);border:1px solid #9f895b;border-radius:12px}
.continue h2{font-size:2rem;font-weight:400}.continue .eyebrow,.continue .muted{color:#e0e8d5}
.continue .primary{background:#e8cd8e;color:#263c33;border-color:#e8cd8e}
.continue .primary:hover{background:#f4dda6;color:#183c32}
.continue .avatar{border:1px solid #c5ad77;border-radius:80px 80px 6px 6px;object-position:50% 24%;height:180px;width:145px}
.progress-track{background:#dfdfca}.progress-track>span{background:var(--blue)}
.guide{background:#edf0e3;border:1px solid #d4d9c3;border-left:3px solid #ae8b4f;border-radius:6px}
.guide img{object-position:50% 22%;border-radius:50%;border:1px solid #bbab83;width:62px;height:62px}
.guide strong{color:#3b5e43}.guide p{color:#364a3e}
.character img{object-position:50% 23%;border:1px solid #b9a374;border-radius:70px 70px 6px 6px}
.character h2{font-size:1.7rem}.character h3{font-size:.9rem;color:#687451}
.character-grid{gap:24px}.character{border-top:3px solid #b19259}
.learning-card,.diagnostic-stimulus,.reading{background:#f1f1e3;border-color:#b4bea1}
.learning-card h2{font-size:1.8rem}.example{border-color:#8d7447}
.audio-panel,.diagnostic-audio,.production-situation,.account-identity{background:#eceede}
.fragment,.answer{background:#fffef8;border-color:#cbc4af}
.fragment.active,.answer:has(input:checked){background:#e4eada;border-color:var(--blue)}
.transcript-turn.active{background:#e5ead8;border-color:#547257}
.speaker{color:#386045}.notice{background:#e7eddc;color:#36533d;border:1px solid #d0dabf}
.notice.warn,.feedback{background:#f7edcd;color:#735226;border:1px solid #e5d5a6}
.notice.error{background:#fff0e8;color:#963c32;border-color:#e7bfb0}
.notice.success,.feedback.correct{background:#e8f0df;color:#315b39;border-color:#c9d9bc}
.step-link .num{border-color:#bdb89c}.step-link[aria-current=step]{background:#e5eada}
.step-link.done .num{background:#dfead5;color:#346039;border-color:#beceae}
.route-card{background:#fffbef;border-color:#d0c6ad}.route-icon{background:#e9e6cb;color:#596b40}
.route-card[aria-pressed=true]{border-color:#496c4b;background:#edf1e4}
.level-chip[aria-pressed=true]{background:#244b3b;border-color:#244b3b}
.development-tabs a{background:#fcf9ef}.development-tabs a[aria-current]{background:#285448;color:white}
.development-examples article{border-color:#aa8a4d}.development-stats article{background:#e8eddb}
.account-page input[type=password],.account-page input[type=text],.account-page input[name=alias],.account-page input[type=email]{background:#fffef9}
.account-privacy{background:#e9eedf}.video-practice video{background:#263c33}
.children{--blue:#356747;--blue-dark:#264c34;--blue-pale:#ecf0dc;--radius:18px}
.children .lesson-card,.children .entry-card{border-top-color:#b79a4d}
.large-text .entry-welcome h1{font-size:clamp(2.7rem,5vw,4.5rem)}
@media(min-width:901px){.sidebar{padding:32px 20px}.sidenav{gap:10px}.content{padding-top:36px}}
@media(max-width:900px){
  .entry-welcome{grid-template-columns:minmax(0,1.15fr) minmax(215px,.85fr)}
  .welcome-copy{padding:36px 25px 36px 30px}.welcome-portrait{margin:20px 20px 20px 0;min-height:385px}
  .entry-welcome .welcome-portrait img{min-height:385px}.entry-welcome h1{font-size:3rem}
  .sidebar{border-bottom:1px solid #47634b}.journey-steps li{padding:20px 16px;gap:10px}
}
@media(max-width:700px){
  .entry-top{padding:18px 20px}.entry-main.welcome-main{margin-top:20px;padding:0 18px 32px}
  .entry-welcome{grid-template-columns:1fr;gap:0;border-radius:10px}
  .welcome-copy{padding:30px 26px 26px}.entry-welcome h1,.large-text .entry-welcome h1{font-size:clamp(2.45rem,9vw,3.3rem)}
  .entry-welcome .eyebrow{font-size:.62rem;letter-spacing:.15em;margin-bottom:20px}
  .entry-welcome p.muted{font-size:1rem;line-height:1.7}
  .entry-welcome .primary{margin-top:8px;width:100%;min-height:50px}
  .welcome-note{margin-top:15px}.welcome-portrait{margin:0 26px 26px;min-height:280px;border-radius:120px 120px 6px 6px}
  .entry-welcome .welcome-portrait img{min-height:0;object-position:50% 24%}
  .welcome-portrait figcaption{padding:60px 20px 17px}.welcome-portrait figcaption strong{font-size:1.5rem}
  .welcome-journal{flex-direction:column;align-items:flex-start;gap:8px;margin-top:20px}
  .journey-steps{grid-template-columns:1fr;margin-top:20px}
  .journey-steps li,.journey-steps li:first-child{padding:20px 4px;gap:18px}
  .journey-steps li+li{border-left:0;border-top:1px solid #d0c6ae}
  .journey-steps h2{font-size:1.22rem}.journey-steps p{font-size:.9rem}
  .entry-card h1{font-size:2rem}.entry-card h2,.lesson-card h2{font-size:1.5rem}
  .continue .avatar{height:145px;max-width:100%}.continue h2{font-size:1.75rem}
  .guide{padding:15px;gap:12px}.guide img{width:52px;height:52px}
}
@media(max-width:390px){
  .entry-top{padding:16px}.entry-main.welcome-main{padding:0 12px 28px}
  .welcome-copy{padding:26px 22px 24px}.entry-welcome h1,.large-text .entry-welcome h1{font-size:2.4rem}
  .welcome-portrait{margin:0 22px 22px;min-height:250px}
  .entry-tools{gap:6px 8px}.entry-tools button{padding:8px}
}
@media(prefers-reduced-motion:reduce){.entry-welcome *,button,a{transition:none;animation:none}}
@media print{.sidebar{background:white}.sidebar .brand,.sidenav a{color:black}.entry-welcome{background:white;color:black}.entry-welcome p.muted{color:#333}}
