@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Literata:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--bg:#f8f6f0;--paper:#fffdf8;--ink:#262f2a;--muted:#6c746b;--line:#dfE2d6;--accent:#28624b;--wash:#eaf0e5;--code:#eef0e8;color-scheme:light}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#181e1b;--paper:#202823;--ink:#e6e9df;--muted:#adb6ab;--line:#39463c;--accent:#9bd0ac;--wash:#2b3b30;--code:#242e28;color-scheme:dark}}
:root[data-theme=dark]{--bg:#181e1b;--paper:#202823;--ink:#e6e9df;--muted:#adb6ab;--line:#39463c;--accent:#9bd0ac;--wash:#2b3b30;--code:#242e28;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.topbar{height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:var(--bg);position:sticky;top:0;z-index:10}.brand{color:var(--ink);letter-spacing:.13em;font-size:17px}.brand b{background:var(--accent);color:var(--bg);padding:6px 8px;border-radius:5px;margin-right:5px}.brand span{font-size:12px;letter-spacing:0;color:var(--muted);margin-left:24px}.topbar button{color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:25px;padding:6px 14px}.layout{max-width:1640px;margin:auto;display:grid;grid-template-columns:260px minmax(0,1fr) 210px;gap:50px;padding:0 38px}.sidebar,.outline{position:sticky;top:80px;height:calc(100vh - 80px);overflow:auto;padding:34px 0}.sidebar{border-right:1px solid var(--line);padding-right:22px}.sidebar summary,.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:var(--accent)}.sidebar summary{cursor:pointer;margin-bottom:20px}.sidebar nav a{display:block;padding:11px 12px;color:var(--muted);font-size:12px;line-height:1.45;border-radius:5px;margin-bottom:3px}.sidebar nav a span{display:block;font-size:10px;letter-spacing:.05em;margin-bottom:4px}.sidebar nav a:hover{background:var(--wash);text-decoration:none;color:var(--ink)}.sidebar nav a[aria-current=page]{background:var(--wash);color:var(--accent);font-weight:600;box-shadow:inset 3px 0 var(--accent)}.overview{display:block;font-size:12px;padding:0 12px 24px}main{min-width:0;padding-top:52px;max-width:950px;width:100%;margin:auto}.hero{padding:0 0 42px;border-bottom:1px solid var(--line);margin-bottom:36px}.hero h1{font-size:clamp(42px,4.5vw,70px);line-height:1.12;font-weight:400;letter-spacing:-.045em;margin:24px 0}.hero h1 em{color:var(--accent);font-weight:400}.hero>p:not(.eyebrow){max-width:510px;font-size:16px;color:var(--muted);line-height:1.8}.hero-bottom{display:flex;align-items:center;gap:24px;margin-top:28px;font-size:12px;color:var(--muted)}.start{display:inline-flex;gap:40px;background:var(--accent);color:var(--bg);padding:12px 19px;border-radius:6px;font-size:13px}.index-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.index-heading h2{font-family:'Literata',Georgia,serif;font-size:22px;font-weight:500}input{width:230px;max-width:100%;padding:10px 14px;background:var(--paper);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:12px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:23px 24px 32px;color:var(--ink);position:relative;transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #00000008;text-decoration:none;border-color:var(--accent)}.card-meta{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);display:flex;justify-content:space-between;gap:8px}.card-meta span{color:var(--muted);white-space:nowrap}.card h2{font-family:'Literata',Georgia,serif;font-size:20px;font-weight:500;line-height:1.4;margin:16px 0 10px;letter-spacing:-.02em}.card p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.card-arrow{position:absolute;right:17px;bottom:10px;color:var(--accent)}[hidden]{display:none!important}#search-status{font-size:12px;color:var(--muted)}h1{font-family:'Literata',Georgia,serif}.lesson-heading{padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:35px}.lesson-heading h1{font-size:clamp(32px,3.4vw,49px);line-height:1.22;letter-spacing:-.03em;font-weight:500;margin:18px 0 5px}.eyebrow span{color:var(--muted);letter-spacing:.04em;margin-left:10px}.prose{font-family:'Literata',Georgia,serif;font-size:17px;line-height:1.9;overflow-wrap:break-word}.prose h2,.prose h3{line-height:1.4;letter-spacing:-.025em}.prose h2{font-size:27px;margin:2em 0 .7em}.prose h3{font-size:21px;margin:1.7em 0 .6em}.prose p{margin:1.2em 0}.prose a{text-decoration:underline}.prose li{padding-left:4px;margin:.35em 0}.prose blockquote{margin:25px 0;background:var(--wash);border-left:3px solid var(--accent);padding:3px 24px;font-style:italic}.prose strong{font-weight:600}.prose pre{padding:22px;overflow:auto;line-height:1.6;background:var(--code);border:1px solid var(--line);border-radius:7px;font-size:13px}.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.84em;background:var(--code);padding:.15em .3em;border-radius:3px}.prose pre code{padding:0;background:none;font-size:inherit}.prose table{display:block;overflow:auto;border-collapse:collapse;font-family:'DM Sans',sans-serif;font-size:14px}.prose th,.prose td{padding:10px 15px;border:1px solid var(--line)}.prose th{background:var(--wash)}.prose img{max-width:100%;height:auto}.prose hr{border:0;border-top:1px solid var(--line);margin:35px 0}.prose .headerlink{font-family:system-ui;font-size:.65em;margin-left:8px;opacity:0;text-decoration:none}.prose :is(h2,h3):hover .headerlink,.prose .headerlink:focus{opacity:1}div.arithmatex{overflow-x:auto;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:6px;margin:24px 0;font-size:.95em}mjx-container[display=true]{margin:.5em 0!important}.outline{font-size:12px;color:var(--muted)}.outline ul{list-style:none;padding-left:0}.outline ul ul{padding-left:12px}.outline li{margin:12px 0;line-height:1.5}.outline a{color:var(--muted)}.pagination{display:flex;gap:20px;border-top:1px solid var(--line);padding-top:30px;margin-top:50px}.pagination a{flex:1;padding:20px;background:var(--wash);border-radius:6px;font-size:14px}.pagination a span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}footer{margin-top:55px;padding:24px 0;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}footer span{float:right}.skip{position:fixed;top:-100px;left:10px;z-index:50;background:var(--paper);padding:12px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.notice{padding:15px;text-align:center}
@media(min-width:1000px){.sidebar summary{list-style:none;pointer-events:none}.sidebar summary::-webkit-details-marker{display:none}}
@media(max-width:1250px){.layout{grid-template-columns:230px minmax(0,1fr);gap:35px}.outline{display:none}}
@media(max-width:999px){.topbar{padding:0 22px;height:65px}.brand span{display:none}.layout{display:block;padding:0 22px;max-width:850px}.sidebar{position:static;height:auto;padding:18px 0;border-right:0;border-bottom:1px solid var(--line)}.sidebar summary{margin:0}.sidebar nav{max-height:50vh;overflow:auto;margin-top:15px}.overview{padding-top:18px}.sidebar details[open] summary{margin-bottom:12px}main{padding-top:30px}}
@media(max-width:600px){.cards{grid-template-columns:1fr}.index-heading{align-items:stretch;flex-direction:column;gap:0}.search input{width:100%}.hero-bottom{gap:15px;flex-wrap:wrap}.prose{font-size:16px}.pagination{flex-direction:column}.hero h1{font-size:43px}.topbar button span{display:none}.card h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}.card:hover{transform:none}}
@media print{.topbar,.sidebar,.outline,.pagination,.search,.skip{display:none}.layout{display:block;padding:0}main{max-width:none;padding:0}body{background:white;color:black}.prose{font-size:11pt}.prose pre,div.arithmatex{break-inside:avoid}.prose .headerlink{display:none}a{color:inherit}.lesson-heading h1{font-size:28pt}}
.learning-progress{border:1px solid var(--line);border-radius:8px;padding:18px 22px;margin-bottom:32px;background:var(--paper)}.progress-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:13px}.text-button{border:0;background:none;color:var(--muted);padding:4px 0;text-decoration:underline;font-size:11px}.learning-progress progress{display:block;width:100%;height:7px;border:0;border-radius:6px;overflow:hidden;background:var(--wash);accent-color:var(--accent);margin:13px 0}.learning-progress progress::-webkit-progress-bar{background:var(--wash)}.learning-progress progress::-webkit-progress-value{background:var(--accent);border-radius:6px}.learning-progress progress::-moz-progress-bar{background:var(--accent)}#progress-note{font-size:11px;color:var(--muted);margin:8px 0}.resume-lesson{display:block;margin-top:15px;font-size:15px;font-weight:600}.learning-progress #progress-message{font-size:13px;margin-bottom:0}.learning-progress #progress-message:empty{display:none}.lesson-status{display:block;font-family:'DM Sans',system-ui,sans-serif;font-size:11px;color:var(--accent);margin-top:10px}.lesson-status:empty{display:none}.sidebar .lesson-status{font-size:10px;margin-top:5px}.completion{margin-top:40px;border:1px solid var(--line);border-radius:8px;padding:22px;background:var(--paper)}.completion button{border:0}.completion p{font-size:13px;color:var(--muted)}.completion a{font-size:14px}.completion button[aria-pressed=true]{background:var(--wash);color:var(--accent)}@media(max-width:600px){.learning-progress{padding:16px}.progress-heading{align-items:baseline}.progress-heading strong{font-size:12px}.resume-lesson{font-size:14px}}@media print{.learning-progress,.completion,.lesson-status{display:none!important}}
