:root{color-scheme:light;--paper:#faf7f0;--card:#fffdf9;--ink:#302c28;--muted:#716a60;--accent:#783c3d;--gold:#a97936;--line:#e3dccc;--green:#24634e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.7 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--accent);text-underline-offset:4px}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}input{max-width:100%;border:1px solid #c9bdac;border-radius:8px;background:white;color:var(--ink);padding:11px 13px}input[type=search]{width:100%}input[type=radio]{accent-color:var(--accent);flex-shrink:0}h1,h2,h3,h4{line-height:1.2}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400}h2{font-size:30px}h3{font-size:24px}p{margin:0 0 18px}.site-header,footer{max-width:1250px;margin:auto;padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.site-header{border-bottom:1px solid var(--line)}.brand{font-weight:800;font-size:23px;letter-spacing:-1px;text-decoration:none;color:var(--ink)}.brand span{color:var(--accent)}.site-header nav{display:flex;gap:28px;font-size:14px}.site-header nav a{text-decoration:none;color:var(--ink)}main{max-width:1250px;margin:auto;padding:0 30px}.hero{display:grid;grid-template-columns:1.65fr 1fr;gap:70px;align-items:center;padding:64px 0 48px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:750;color:var(--accent)}h1{font-size:clamp(38px,4.9vw,64px);letter-spacing:-2px;margin:18px 0 25px}h1 em{color:var(--accent);font-weight:400}.hero-copy{max-width:650px;color:var(--muted);font-size:17px}.button{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:11px 19px;text-decoration:none;background:var(--card);color:var(--ink);font-size:14px;font-weight:650}.primary{background:var(--accent);border-color:var(--accent);color:white}.button:hover{filter:brightness(.95)}.course-facts{font-size:12px;color:var(--muted);margin:16px 0 0}.hero-note{background:#eee6d7;border:1px solid #d8cab3;border-radius:180px 180px 12px 12px;text-align:center;padding:30px 20px 36px;max-width:350px;width:100%;justify-self:end}.ornament{font-family:Georgia,serif;font-size:88px;color:#a88653;line-height:1.5}.hero-note p{font-family:Georgia,serif;font-style:italic;font-size:27px;line-height:1.4}.hero-note span:not(.ornament),.hero-note small{font-size:12px;color:var(--muted)}.note-rule{width:50px;height:1px;background:#b9a784;margin:25px auto 15px}.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.level{border:1px solid var(--line);background:var(--card);text-align:left;border-radius:10px;padding:22px;color:var(--ink)}.level[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 3px var(--accent)}.level .level-number{display:block;font-size:11px;letter-spacing:2px;color:var(--accent)}.level strong{display:block;font:27px Georgia,serif;margin:12px 0}.level span.description{display:block;color:var(--muted);font-size:13px;min-height:45px}.level .level-progress{display:block;font-size:12px;color:var(--accent);margin-top:16px}.study-guide{margin:22px 0 36px;border-bottom:1px solid var(--line);padding:0 0 20px;font-size:14px}.study-guide>div{padding-top:18px;max-width:900px}summary{cursor:pointer;font-weight:650}details>p{margin-top:15px}.course-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:30px;align-items:start}.curriculum{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto;padding:3px 12px 16px 0;scrollbar-width:thin}.curriculum-heading{display:flex;justify-content:space-between;align-items:center}.curriculum-heading h2{font:700 15px system-ui,sans-serif}.curriculum-heading span{font-size:12px;color:var(--muted)}progress{width:100%;height:7px;accent-color:var(--accent);display:block;margin:10px 0 23px}.curriculum label{display:block;font-size:12px;margin-bottom:6px}.curriculum input{font-size:13px}.small{font-size:12px;color:var(--muted)}#search-count{margin:10px 0}.lesson-link{display:flex;gap:12px;color:var(--ink);font-size:13px;text-decoration:none;padding:11px 12px;border-radius:7px;margin:3px 0;line-height:1.5;border:1px solid transparent}.lesson-link .number{color:var(--muted);min-width:23px;font-variant-numeric:tabular-nums}.lesson-link[aria-current=page]{background:#eee5df;border-color:#dec9bd;color:var(--accent);font-weight:650}.lesson-link.done .number{color:var(--green)}.lesson-link:hover{background:#eee9de}.group-label{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:20px 12px 7px}#storage-note{margin:22px 12px 0}#lesson{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:36px 40px;outline:none;scroll-margin-top:20px}.lesson-meta{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:11px;color:var(--muted)}.print-button{border:0;background:none;text-decoration:underline;font:inherit;color:var(--muted);padding:5px}#lesson h2{font-size:36px;margin:16px 0 18px;letter-spacing:-.5px}.objective{border-left:3px solid var(--gold);padding:10px 16px;background:#f5efdf;font-size:14px;margin:20px 0 28px}.lesson-section{margin:30px 0}.lesson-section h3{margin:0 0 17px}.theory p{font-size:15px;line-height:1.85}.table-wrap{overflow-x:auto;margin:20px 0;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#eee8dc;font-weight:650}tr:last-child td{border-bottom:0}.example{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.example span[lang=la]{font:20px/1.5 Georgia,serif;color:var(--accent)}.example span:last-child{font-size:14px;color:var(--muted)}.vocabulary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vocabulary div{background:#f4f1e9;padding:12px;border-radius:7px;font-size:13px}.vocabulary strong{display:block;color:var(--accent)}.reading{background:#f4eedf;padding:25px;border-radius:9px}.reading blockquote{font:22px/1.8 Georgia,serif;margin:12px 0 22px}.reading .small{margin:0}.reading details{border-top:1px solid #dbcfb6;padding-top:16px;font-size:14px}.reading .analysis{color:var(--muted)}.practice-note{font-size:13px;color:var(--muted)}fieldset{min-width:0;border:1px solid var(--line);border-radius:9px;margin:20px 0;padding:18px}legend{padding:0 8px;font-size:14px;font-weight:650;max-width:100%}.answer-option{display:flex;gap:10px;align-items:baseline;padding:7px;border-radius:6px;font-size:14px;cursor:pointer}.answer-option:hover{background:#f1ecdf}.answer-input{width:100%;font-size:16px}.feedback{margin:12px 0 0;padding:12px;border-radius:7px;background:#f7e8e1;font-size:13px}.feedback.correct{background:#e6efe7;color:#174c39}.quiz-result{margin-top:18px;font-weight:650;scroll-margin-top:20px}.quiz-result:empty{display:none}.lesson-navigation{display:flex;gap:12px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:25px;margin-top:30px;flex-wrap:wrap}.source-link{font-size:12px}.lesson-badge{font-size:12px;color:var(--green)}.glossary,.resources{margin:65px 0 40px;border-top:1px solid var(--line);padding-top:35px}.glossary>div:first-child{max-width:730px}.glossary>label{display:block;font-size:13px;margin-bottom:7px}.glossary>input{max-width:500px}.word-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-height:390px;overflow:auto;padding:3px 7px 3px 3px}.word-card{padding:15px;background:var(--card);border:1px solid var(--line);border-radius:8px;font-size:13px}.word-card strong{display:block;color:var(--accent)}.word-card a{font-size:11px}.resources{font-size:14px}.resources li{margin:12px 0}.resources>p{max-width:800px}footer{border-top:1px solid var(--line);font-size:12px;color:var(--muted);margin-top:60px}.skip-link{position:absolute;top:-70px;left:20px;padding:12px;background:white;z-index:10}.skip-link:focus{top:10px}.notice{padding:20px;background:#f7e8e1}@media(max-width:960px){.hero{gap:30px}.hero-note{max-width:270px}.course-layout{grid-template-columns:235px minmax(0,1fr);gap:18px}#lesson{padding:26px}.example{grid-template-columns:1fr;gap:6px}}@media(max-width:700px){main{padding:0 18px}.site-header,footer{padding:20px 18px}.site-header nav{gap:15px;font-size:12px}.hero{grid-template-columns:1fr;padding:38px 0 28px}.hero-note{display:none}h1{letter-spacing:-1px}.hero-copy{font-size:15px}.levels{gap:8px}.level{padding:14px 10px}.level strong{font-size:19px}.level .level-number{font-size:9px;letter-spacing:.6px}.level .description{display:none!important}.level .level-progress{font-size:10px}.course-layout{grid-template-columns:1fr}.curriculum{position:static;max-height:none;padding:0}#lesson-list{max-height:245px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:5px}#storage-note{margin:14px 0}#lesson{padding:24px 19px}#lesson h2{font-size:29px}.vocabulary{grid-template-columns:1fr}.reading{padding:18px}.reading blockquote{font-size:20px}.word-list{grid-template-columns:1fr 1fr}.lesson-navigation .button{font-size:12px;padding:10px 12px}footer{flex-wrap:wrap}.glossary,.resources{margin-top:38px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{body{background:white;font-size:11pt}.site-header,.hero,.levels,.study-guide,.curriculum,.glossary,.resources,footer,.print-button,.lesson-navigation,.skip-link,.quiz button{display:none!important}main{padding:0;max-width:none}.course-layout{display:block}#lesson{border:0;padding:0}.table-wrap,.reading,fieldset{break-inside:avoid}.feedback{display:block}a{color:inherit}.reading{background:none}.lesson-section{margin:20px 0}h2{break-after:avoid}}.speak{display:inline-flex;align-items:center;justify-content:center;width:1.9em;height:1.9em;margin-left:.45em;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:.85em;line-height:1;vertical-align:middle;transition:color .15s,border-color .15s,transform .15s}.speak:hover{color:var(--accent);border-color:var(--accent)}.speak[aria-pressed=true]{color:var(--card);background:var(--accent);border-color:var(--accent);transform:scale(1.08)}blockquote[lang=la]+.speak{display:flex;margin:.35em 0 0 auto}.vocabulary strong[lang=la]+.speak,.word-card strong[lang=la]+.speak{margin-left:.35em}@media print{.speak{display:none}}/* Dark theme — same preference the rest of the site reads/writes (localStorage 'theme'),
   applied here as body.dark-theme. Overriding the page's own root variables covers most of
   the page (nearly everything above is written in terms of them); the handful of literal
   hex backgrounds below (hero note, objective callout, table header, vocabulary/word cards,
   reading passage, feedback boxes) get their own dark equivalents since they never referenced
   a variable to begin with. */
body.dark-theme{color-scheme:dark;--paper:#181410;--card:#221c15;--ink:#ece3d2;--muted:#a89c88;--accent:#d99a7c;--gold:#d1a24f;--line:#3a3124;--green:#5cbf93}
body.dark-theme input{background:#221c15;border-color:#4a4030;color:var(--ink)}
body.dark-theme .skip-link{background:#221c15;color:var(--ink)}
body.dark-theme .hero-note{background:#241d14;border-color:#453824}
body.dark-theme .ornament{color:#c19a63}
body.dark-theme .note-rule{background:#5a4a30}
body.dark-theme .lesson-link[aria-current=page]{background:#2e2417;border-color:#4a3a24}
body.dark-theme .lesson-link:hover{background:#241d14}
body.dark-theme .objective{background:#241f12}
body.dark-theme th{background:#241f12}
body.dark-theme .vocabulary div{background:#1e1911}
body.dark-theme .reading{background:#221c14}
body.dark-theme .reading details{border-top-color:#443722}
body.dark-theme .answer-option:hover{background:#221c14}
body.dark-theme .feedback{background:#3a241f;color:#f0d9d0}
body.dark-theme .feedback.correct{background:#1c3327;color:#bfe8d3}
body.dark-theme .notice{background:#3a241f}
#theme-toggle{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;width:34px;height:34px;font-size:16px;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center}
#theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
