:root{--bg:#f9fafb;--panel:#fff;--panel2:#f1f5f9;--edge:#e2e8f0;--text:#1e293b;--heading:#13295f;--muted:#334155;--dim:#94a3b8;--accent:#eb5c24;--accent2:#d94f1c;--accent-soft:#eb5c241a;--good:#13295f;--good-edge:#cbd5e1;--water:#13295f;--topbar-bg:#fffffff0;--font:"Helvetica","Helvetica Neue",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--wrap:1080px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}.topbar{z-index:20;background:var(--topbar-bg);backdrop-filter:blur(9px);border-bottom:1px solid var(--edge);position:sticky;top:0}.topbar .inner{max-width:var(--wrap);flex-wrap:wrap;align-items:center;gap:10px;margin:0 auto;padding:12px 22px;display:flex}.crumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.crumb a:hover{color:var(--accent)}.crumb .sep{color:var(--dim)}.crumb .here{color:var(--heading)}.topbar .spacer{flex:1}.topbar .mark{letter-spacing:.9px;text-transform:uppercase;color:var(--accent);font-size:12.5px;font-weight:700}.wrap{max-width:var(--wrap);margin:0 auto;padding:34px 22px 80px}.hero{border-bottom:1px solid var(--edge);margin-bottom:30px;padding:46px 0 26px}.kicker{letter-spacing:1.3px;text-transform:uppercase;color:var(--accent);margin:0 0 9px;font-size:11.5px;font-weight:700}h1{color:var(--heading);letter-spacing:-.2px;margin:0 0 12px;font-size:34px;line-height:1.15}h2{color:var(--heading);letter-spacing:-.1px;margin:0 0 10px;font-size:24px}h3{letter-spacing:1.1px;text-transform:uppercase;color:var(--accent);margin:0 0 10px;font-size:12px}.lede{color:var(--muted);max-width:64ch;margin:0;font-size:16px;line-height:1.6}.stats{flex-wrap:wrap;gap:30px;margin:26px 0 0;display:flex}.stat .n{color:var(--heading);letter-spacing:-.5px;font-size:26px;font-weight:700}.stat .l{letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);font-size:11px}.stat.ready .n{color:var(--good)}.filter{margin:0 0 26px}.filter input{background:var(--panel);width:100%;max-width:420px;color:var(--text);border:1px solid var(--edge);border-radius:9px;padding:10px 13px;font-family:inherit;font-size:14px}.filter input:focus{border-color:var(--accent);outline:none}.filter input::placeholder{color:var(--dim)}.area{border-top:1px solid var(--edge);padding:26px 0 6px}.area-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.area-head h2{margin:0;font-size:21px}.area-head h2 a:hover{color:var(--accent)}.area-head .tag{letter-spacing:1.1px;text-transform:uppercase;color:var(--dim);border:1px solid var(--edge);border-radius:20px;padding:2px 9px;font-size:10.5px}.area-head .count{color:var(--muted);margin-left:auto;font-size:12.5px}.area>p.blurb{color:var(--muted);max-width:70ch;margin:0 0 14px;font-size:14px}.lessons{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:9px;margin:0 0 8px;padding:0;list-style:none;display:grid}.lessons li{margin:0}.lesson{border:1px solid var(--edge);background:var(--panel);border-radius:10px;height:100%;padding:11px 13px;transition:border-color .13s,background .13s,transform .13s;display:block}.lesson:hover{border-color:var(--accent);background:var(--panel2)}.lesson .row{align-items:baseline;gap:9px;display:flex}.lesson .n{color:var(--accent);min-width:20px;font-size:11px;font-weight:700}.lesson .t{color:var(--heading);flex:1;font-size:14px;line-height:1.35}.lesson .meta{color:var(--dim);margin:5px 0 0 29px;font-size:11.5px;display:block}.lesson.ready{border-color:var(--good-edge)}.lesson.ready .n{color:var(--good)}.lesson.ready:hover{border-color:var(--good)}.pill{letter-spacing:.9px;text-transform:uppercase;white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700}.pill.ready{color:var(--good);background:var(--panel2);border:1px solid var(--good-edge)}.pill.outline{color:var(--dim);border:1px solid var(--edge);background:0 0}ol.subs{counter-reset:sub;margin:0;padding:0;list-style:none}ol.subs li{margin:0 0 7px}ol.subs a{border:1px solid var(--edge);background:var(--panel);border-radius:10px;align-items:baseline;gap:13px;padding:11px 14px;transition:border-color .13s,background .13s;display:flex}ol.subs a:hover{border-color:var(--accent);background:var(--panel2)}ol.subs a.ready{border-color:var(--good-edge)}ol.subs a.ready:hover{border-color:var(--good)}ol.subs .n{counter-increment:sub;color:var(--accent);min-width:22px;font-size:11px;font-weight:700}ol.subs .n:before{content:counter(sub,decimal-leading-zero)}ol.subs a.ready .n{color:var(--good)}ol.subs .t{flex:1;font-size:14.5px}.card{border:1px solid var(--edge);background:var(--panel);border-radius:12px;margin:22px 0;padding:18px 20px}.card p{color:var(--muted);margin:0 0 10px;font-size:14px}.card p:last-child{margin-bottom:0}.card ul{color:var(--muted);margin:0;padding-left:19px;font-size:14px}.card li{margin:0 0 6px}.card.todo{background:0 0;border-style:dashed}.card.deck{border-color:var(--good-edge)}.btn{border:1px solid var(--edge);background:var(--panel2);border-radius:9px;padding:9px 16px;font-size:13.5px;transition:border-color .13s;display:inline-block}.btn:hover{border-color:var(--accent)}.btn.go{border-color:var(--good-edge);color:var(--good)}.btn.go:hover{border-color:var(--good)}.pager{border-top:1px solid var(--edge);flex-wrap:wrap;gap:12px;margin-top:34px;padding-top:18px;display:flex}.pager a{color:var(--muted);max-width:46%;font-size:13.5px}.pager a:hover{color:var(--accent)}.pager .spacer{flex:1}footer.site{border-top:1px solid var(--edge);color:var(--dim);text-align:center;margin-top:60px;padding:20px 22px;font-size:12.5px}.empty{color:var(--dim);padding:18px 0;font-size:14px}@media (width<=640px){h1{font-size:27px}.lessons{grid-template-columns:1fr}.pager a{max-width:100%}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}.lesson-index{counter-reset:none}.lesson-shell{max-width:1180px}.lesson-hero{margin-bottom:34px}.lesson-grid{grid-template-columns:minmax(210px,270px) minmax(0,760px);align-items:start;gap:clamp(32px,6vw,76px);display:grid}.lesson-toc{border-left:1px solid var(--edge);max-height:calc(100vh - 100px);padding-left:18px;position:sticky;top:74px;overflow-y:auto}.toc-label{color:var(--accent);letter-spacing:1.1px;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.lesson-toc ol{margin:0;padding:0;list-style:none}.lesson-toc li{margin:0 0 8px}.lesson-toc a{color:var(--muted);font-size:12.5px;line-height:1.35}.lesson-toc a:hover{color:var(--accent)}.lesson-toc .toc-depth-3{border-left:1px solid var(--edge);margin-left:12px;padding-left:12px}.lesson-toc .toc-depth-3 a{font-size:12px}.lesson-toc .toc-depth-4{border-left:1px solid var(--edge);margin-left:24px;padding-left:12px}.lesson-toc .toc-depth-4 a{color:var(--dim);font-size:11.5px}.lesson-content{min-width:0;color:var(--text);font-size:16px;line-height:1.75}.lesson-content>:first-child{margin-top:0}.lesson-content h1{display:none}.lesson-content h2,.lesson-content h3,.lesson-content h4{color:var(--heading);text-transform:none;letter-spacing:normal;scroll-margin-top:82px}.lesson-content h2{border-top:1px solid var(--edge);margin:54px 0 14px;padding-top:18px;font-size:25px}.lesson-content h3{margin:32px 0 10px;font-size:19px}.lesson-content h4{color:var(--accent);margin:24px 0 8px;font-size:16px}.lesson-content p{margin:0 0 18px}.lesson-content ul,.lesson-content ol{margin:0 0 20px;padding-left:24px}.lesson-content li{margin-bottom:7px}.lesson-content strong{color:var(--heading)}.lesson-content blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:22px 0;padding:4px 0 4px 18px}.lesson-content table{border-collapse:collapse;width:100%;margin:24px 0 30px;font-size:14px;display:block;overflow-x:auto}.lesson-content th,.lesson-content td{border:1px solid var(--edge);vertical-align:top;padding:10px 12px}.lesson-content th{background:var(--panel2);color:var(--accent);text-align:left}.lesson-content td{background:var(--panel)}.lesson-content code{border:1px solid var(--edge);background:var(--panel);border-radius:5px;padding:2px 5px}@media (width<=780px){.lesson-grid{grid-template-columns:1fr}.lesson-toc{border:1px solid var(--edge);background:var(--panel);border-radius:10px;max-height:none;padding:16px 18px;position:static}}
