@font-face{font-family:"Source Sans 3";src:url("fonts/source-sans.woff") format("woff");font-weight:300 800;font-display:swap}@font-face{font-family:Lora;src:url("fonts/lora.woff") format("woff");font-weight:400 700;font-display:swap}
:root{--paper:#f4f1eb;--white:#fff;--ink:#35424a;--muted:#66737b;--burgundy:#7d2737;--blue:#778895;--blue-light:#e5eaed;--line:#cbd1d3;--max:1260px;--read:720px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.62 "Source Sans 3",Arial,sans-serif}img{display:block;max-width:100%;height:auto}a{color:var(--burgundy);text-underline-offset:.2em}a:hover{color:#541824}:focus-visible{outline:3px solid var(--burgundy);outline-offset:4px}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.7rem 1rem;z-index:20}.shell{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
.site-header{background:var(--paper);border-bottom:1px solid var(--line)}.header-row{height:76px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{font:700 1.25rem/1 Lora,serif;color:var(--ink);text-decoration:none}.brand span{color:var(--burgundy)}.top-nav{display:flex;align-items:center;gap:1.3rem;font-size:.9rem}.top-nav a{text-decoration:none;color:var(--ink)}.top-nav a[aria-current="page"]{color:var(--burgundy);font-weight:700}.mobile-nav{display:none}.mobile-nav summary{cursor:pointer;font-weight:700}.mobile-nav nav{display:grid;padding:1rem 0}.mobile-nav a{padding:.45rem 0}
h1,h2,h3{font-family:Lora,Georgia,serif;line-height:1.16;margin-top:0}h1{font-size:clamp(2.65rem,5.8vw,5.6rem);letter-spacing:-.045em;max-width:12ch;margin-bottom:1.25rem}h2{font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.025em;margin-bottom:1rem}h3{font-size:1.2rem;margin-bottom:.45rem}p{margin-top:0}.label{font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;color:var(--burgundy);margin-bottom:.7rem}.lead{font-size:clamp(1.15rem,1.8vw,1.38rem);color:var(--muted);max-width:60ch}
.home-hero{padding:clamp(3rem,6vw,6rem) 0}.home-split{display:grid;grid-template-columns:minmax(400px,.92fr) minmax(0,1.08fr);gap:clamp(3rem,7vw,7rem);align-items:center}.home-visual{aspect-ratio:4/3;overflow:hidden;background:#ece9e3;border:1px solid var(--line)}.home-visual img{width:100%;height:100%;object-fit:cover}.start-link{display:inline-flex;align-items:center;gap:.65rem;font-weight:800;text-decoration:none;border-bottom:3px solid var(--burgundy);padding-bottom:.25rem}
.chapter-section{background:#fff;border-block:1px solid var(--line);padding:4.5rem 0}.chapter-head{display:grid;grid-template-columns:.7fr 1.3fr;gap:4rem;margin-bottom:2rem}.chapter-head p{color:var(--muted);max-width:60ch}.chapter-map{list-style:none;margin:0;padding:0;border-top:3px solid var(--ink)}.chapter-map li{border-bottom:1px solid var(--line)}.chapter-map a{display:grid;grid-template-columns:90px .8fr 1.2fr 42px;gap:1.2rem;align-items:center;padding:1.45rem 0;text-decoration:none;color:var(--ink)}.chapter-map a:hover{background:linear-gradient(to right,transparent,var(--blue-light),transparent)}.chapter-no{font:700 1.35rem Lora,serif;color:var(--burgundy)}.chapter-title{font-weight:800}.chapter-desc{color:var(--muted)}.chapter-arrow{font-size:1.5rem;color:var(--burgundy)}
.course-note{padding:2.5rem 0}.course-note .shell{display:grid;grid-template-columns:210px 1fr;gap:2rem}.course-note p{margin:0;color:var(--muted)}
.lesson-hero{padding:clamp(2.8rem,5vw,5rem) 0 3rem}.lesson-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(370px,.88fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}.lesson-grid.visual-first{grid-template-columns:minmax(370px,.88fr) minmax(0,1fr)}.lesson-grid.visual-first .lesson-visual{order:-1}.lesson-visual{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);background:#ece9e3}.lesson-visual.wide{aspect-ratio:16/7}.lesson-visual img{width:100%;height:100%;object-fit:cover}.hypo{font-size:.8rem;color:var(--muted);margin:.6rem 0 0}
.lesson-body{padding:1rem 0 6rem}.lesson-layout{display:grid;grid-template-columns:220px minmax(0,var(--read));gap:clamp(2.5rem,7vw,7rem);align-items:start}.lesson-rail{position:sticky;top:1.5rem}.lesson-rail ol{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}.lesson-rail li{border-bottom:1px solid var(--line)}.lesson-rail a{display:block;padding:.75rem 0;text-decoration:none;color:var(--muted);font-size:.92rem}.lesson-rail a[aria-current="step"]{color:var(--burgundy);font-weight:800}.prereq{margin-top:1.5rem;font-size:.88rem;color:var(--muted)}
.reading h2:not(:first-child){margin-top:3rem}.reading p{max-width:68ch}.parts{margin:2rem 0;border-top:2px solid var(--ink)}.part{display:grid;grid-template-columns:180px 1fr;gap:1.5rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}.part strong{font-family:Lora,serif}.part p{margin:0;color:var(--muted)}.steps{counter-reset:step;list-style:none;padding:0}.steps li{counter-increment:step;display:grid;grid-template-columns:48px 1fr;gap:1rem;padding:1.2rem 0;border-top:1px solid var(--line)}.steps li::before{content:counter(step);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--burgundy);color:#fff;font-weight:800}.steps p:last-child{margin-bottom:0}
.caveat{border-left:5px solid var(--burgundy);background:#fff;padding:1.2rem 1.4rem;margin:2rem 0}.caveat strong{display:block;margin-bottom:.25rem}.caveat p{margin:0}.blue-note{border-left-color:var(--blue)}
.compare{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);margin:2rem 0}.compare section{padding:1.3rem;background:#fff}.compare section+section{border-left:1px solid var(--line)}.compare p{color:var(--muted);margin:0}.sequence-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3.5rem}.sequence-nav a{padding:1rem;border-top:2px solid var(--ink);text-decoration:none}.sequence-nav span{display:block;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.sequence-nav a:last-child{text-align:right}
.source-list{padding-left:1.2rem}.source-list li{margin:1rem 0}.source-list a{overflow-wrap:anywhere}.site-footer{background:var(--ink);color:#fff;padding:3rem 0}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}.site-footer a{color:#fff}.site-footer p{color:#d7dfe2}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:.45rem 1rem}
.error-page{min-height:calc(100vh - 77px);display:grid;align-items:center;padding:5rem 0}.error-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:center}.error-chart{aspect-ratio:4/3;background:#fff;border:1px solid var(--line);display:grid;place-items:center}.error-chart span{font:700 clamp(5rem,12vw,9rem)/1 Lora,serif;color:var(--burgundy)}
@media(max-width:980px){.home-split,.lesson-grid,.lesson-grid.visual-first{grid-template-columns:1fr;gap:2rem}.home-copy{max-width:800px}.lesson-grid.visual-first .lesson-visual{order:0}.lesson-visual{aspect-ratio:16/8}.lesson-layout{grid-template-columns:1fr}.lesson-rail{position:static}.lesson-rail ol{display:grid;grid-template-columns:repeat(4,1fr)}.lesson-rail li+li{border-left:1px solid var(--line)}.lesson-rail a{padding:.8rem}.prereq{max-width:var(--read)}.chapter-head{grid-template-columns:1fr;gap:1rem}.footer-grid{gap:2rem}}
@media(max-width:720px){body{font-size:17px}.shell{width:min(calc(100% - 32px),var(--max))}.header-row{height:68px}.top-nav{display:none}.mobile-nav{display:block}.home-hero{padding:3rem 0}.home-split{display:flex;flex-direction:column}.home-copy{order:-1}.home-visual,.lesson-visual,.lesson-visual.wide{aspect-ratio:4/3}.chapter-section{padding:3.2rem 0}.chapter-map a{grid-template-columns:48px 1fr 26px;gap:.7rem}.chapter-desc{grid-column:2/4}.course-note .shell{grid-template-columns:1fr;gap:.45rem}.lesson-hero{padding:3rem 0 2.4rem}.lesson-rail ol{grid-template-columns:1fr 1fr}.part{grid-template-columns:1fr;gap:.3rem}.compare{grid-template-columns:1fr}.compare section+section{border-left:0;border-top:1px solid var(--line)}.sequence-nav{grid-template-columns:1fr}.sequence-nav a:last-child{text-align:left}.footer-grid,.error-grid{grid-template-columns:1fr}.footer-nav{grid-template-columns:1fr 1fr}.error-page{min-height:auto}}
@media(max-width:390px){.shell{width:min(calc(100% - 24px),var(--max))}.lesson-rail ol,.footer-nav{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
