:root{
  --navy:#13254A; --navy-deep:#0B1830; --gold:#C9952B; --gold-soft:#E4C77E;
  --wine:#6B1D2F; --wine-deep:#4E1422;
  --paper:#FFFFFF; --mist:#F3F4F8; --ink:#1B2233; --ink-soft:#4A5268; --line:#D9DCE6;
  --ok:#2E6B3F; --ok-bg:#EAF4EC; --warn:#8A5A00; --warn-bg:#FBF3E2; --bad:#8E1F2F; --bad-bg:#F9ECEE;
  --display:"Cinzel","Trajan Pro",Georgia,serif;
  --body:"EB Garamond",Garamond,Georgia,serif;
  --ui:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--mist);color:var(--ink);font-family:var(--body);font-size:1.15rem;line-height:1.6}
a{color:var(--wine)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
header.top a:focus-visible,header.top button:focus-visible{outline-color:var(--gold-soft)}
h1[tabindex="-1"]:focus{outline:none}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--gold);color:var(--navy-deep);font-family:var(--ui);font-weight:600;padding:10px 16px;border-radius:5px;text-decoration:none}
.skip:focus{left:16px}
h1,h2,h3{font-family:var(--display);color:var(--navy);line-height:1.2;margin:0 0 .5em;font-weight:600;text-wrap:balance}
h1{font-size:clamp(1.6rem,4vw,2.2rem)} h2{font-size:1.35rem;margin-top:1.4em} h3{font-family:var(--body);font-size:1.2rem;font-weight:600;margin-top:1.2em}
p{margin:0 0 .9em}
header.top{background:var(--navy-deep);color:#fff;border-bottom:3px solid var(--gold);position:sticky;top:0;z-index:5}
header.top .in{max-width:1080px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.brand img{width:44px;height:44px}
.brand b{font-family:var(--display);letter-spacing:.08em;display:block;font-size:1.02rem}
.brand small{font-family:var(--display);font-size:.58rem;letter-spacing:.14em;color:var(--gold-soft);display:block}
.topnav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-family:var(--ui);font-size:.88rem}
.topnav a,.topnav button{color:#DCE2EF;background:none;border:0;font:inherit;cursor:pointer;text-decoration:none;padding:6px 8px;border-radius:4px}
.topnav a:hover,.topnav button:hover{color:var(--gold-soft)}
main{max-width:1080px;margin:0 auto;padding:24px 16px 64px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:24px;margin-bottom:18px}
.narrow{max-width:460px;margin:32px auto}
.reading{max-width:760px}
.eyebrow{font-family:var(--ui);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);margin:0 0 6px}
.muted{color:var(--ink-soft)}
.small{font-size:.95rem}
label{display:block;font-family:var(--ui);font-size:.9rem;font-weight:600;margin:14px 0 6px;color:var(--navy)}
input[type=text],input[type=email],input[type=password],textarea,select{width:100%;font:inherit;font-size:1.05rem;padding:10px 12px;border:1px solid #7A8398;border-radius:5px;background:#fff;color:var(--ink)}
textarea{min-height:240px;line-height:1.55;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--ui);font-weight:600;font-size:.95rem;padding:11px 18px;border-radius:5px;border:1px solid transparent;cursor:pointer;text-decoration:none;min-height:44px}
.btn.navy{background:var(--navy);color:#fff} .btn.navy:hover{background:var(--navy-deep)}
.btn.gold{background:var(--gold);color:var(--navy-deep)} .btn.gold:hover{background:#b8861f}
.btn.wine{background:var(--wine);color:#fff} .btn.wine:hover{background:var(--wine-deep)}
.btn.ghost{background:#fff;color:var(--navy);border-color:#B9C0D0} .btn.ghost:hover{border-color:var(--navy)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.msg{font-family:var(--ui);font-size:.92rem;padding:10px 14px;border-radius:5px;margin:12px 0}
.msg.ok{background:var(--ok-bg);color:var(--ok)} .msg.bad{background:var(--bad-bg);color:var(--bad)} .msg.info{background:var(--warn-bg);color:var(--warn)}
.tag{display:inline-block;font-family:var(--ui);font-size:.75rem;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap}
.tag.ok{background:var(--ok-bg);color:var(--ok)} .tag.wait{background:var(--warn-bg);color:var(--warn)} .tag.bad{background:var(--bad-bg);color:var(--bad)} .tag.none{background:var(--mist);color:var(--ink-soft)} .tag.lock{background:#ECEDF1;color:#596073}
.bar{height:10px;background:#E6E8EF;border-radius:6px;overflow:hidden} .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#d8ad4f)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.list{list-style:none;padding:0;margin:0}
.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}
.list a{font-weight:500}
.callout{border-left:5px solid var(--navy);border-radius:4px;padding:14px 18px;margin:18px 0}
.callout .lab{font-family:var(--ui);font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.callout.terms{background:#EAF0FA;border-color:var(--navy)} .callout.terms .lab{color:var(--navy)}
.callout.fact{background:#FBF5E8;border-color:var(--gold)} .callout.fact .lab{color:#82600F}
.callout.words{background:#F7EDEF;border-color:var(--wine)} .callout.words .lab{color:var(--wine)}
.callout.practice{background:#EEF4EC;border-color:#3E6B4A} .callout.practice .lab{color:#2E5A3A}
.callout .q{font-style:italic;color:var(--wine);font-size:1.18rem} .callout .who{text-align:right;color:var(--ink-soft);font-size:.95rem}
.quiz ol{padding-left:1.3em} .quiz li{margin-bottom:16px}
.quiz .opt{display:flex;gap:10px;align-items:flex-start;padding:6px 8px;border-radius:5px;cursor:pointer;font-weight:400;font-family:var(--body);font-size:1.08rem;color:var(--ink);margin:2px 0}
.quiz .opt:hover{background:var(--mist)} .quiz .opt input{margin-top:6px}
.quiz li.wrong{background:var(--bad-bg);border-radius:6px;padding:6px 8px}
.quiz .wrongnote{display:block;font-family:var(--ui);font-size:.82rem;font-weight:700;color:var(--bad);margin:0 0 4px}
.crumbs{font-family:var(--ui);font-size:.85rem;margin-bottom:12px} .crumbs a{text-decoration:none}
table.t{width:100%;border-collapse:collapse;font-family:var(--ui);font-size:.9rem}
table.t th,table.t td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
table.t th{color:var(--ink-soft);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.tabs button{font-family:var(--ui);font-weight:600;font-size:.92rem;padding:10px 16px;border-radius:5px;border:1px solid var(--line);background:#fff;color:var(--navy);cursor:pointer;min-height:44px}
.tabs button[aria-selected=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
.answer{background:#FAFAFC;border:1px solid var(--line);border-radius:5px;padding:14px 16px;max-height:420px;overflow:auto}
details summary{cursor:pointer;font-family:var(--ui);font-size:.9rem;color:var(--navy);font-weight:600}
.badge{display:inline-block;min-width:22px;padding:1px 7px;border-radius:12px;background:var(--wine);color:#fff;font-size:.78rem;text-align:center;margin-left:4px}
@media (max-width:880px), (max-height:500px){header.top{position:static}}
@media (max-width:640px){.card{padding:18px} .brand small{display:none} .list li{flex-direction:column;align-items:flex-start}}

/* Textbook layout: lessons with margin notes and pictures */
.lessonpage{max-width:1080px}
.lessonpage .reading{max-width:760px}
figure{margin:0}
figure img{display:block;width:100%;height:auto;border-radius:4px}
figcaption{font-style:italic;font-size:.92rem;color:var(--ink-soft);margin-top:6px;line-height:1.4}
.opener{margin:-4px 0 18px}
.opener img{max-height:460px;object-fit:cover}
.lessonno{margin-top:26px;color:var(--wine)}
.sec{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:start;border-top:1px solid var(--line);padding-top:6px;margin-top:6px}
.sec:first-of-type{border-top:0}
.sec .main{max-width:720px}
.sec .side .callout{margin:14px 0;font-size:.95rem}
.side-fig{margin:14px 0}
figure.wide{margin:22px 0}
.callout.listen,.callout.watch{background:#F1EEF7;border-color:#5B4A8B} .callout.listen .lab,.callout.watch .lab{color:#4A3A78}
.callout .play{margin:6px 0 0;font-family:var(--ui);font-size:.88rem}
.callout a{color:inherit;text-decoration:underline}
@media (max-width:860px){.sec{grid-template-columns:1fr;gap:0}.sec .side{border-left:0}}
