:root{--paper:#f8f7f3;--ink:#26352d;--muted:#58685e;--line:#d7ddd3;--forest:#315f49;--soft:#e9efe8;--gold:#b28a4b;--code:#eff2eb}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 Georgia,"Times New Roman",serif}a{color:var(--forest);text-underline-offset:.18em}a:hover{color:#1e4430}
.site-header{border-bottom:1px solid var(--line);background:#fffefb}.site-header-inner{max-width:1130px;margin:auto;padding:16px 28px;display:flex;gap:24px;align-items:center;justify-content:space-between}.brand{font:700 15px/1.2 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}.header-note{font:14px system-ui,sans-serif;color:var(--muted)}
.layout{max-width:1130px;margin:auto;display:grid;grid-template-columns:215px minmax(0,1fr);gap:58px;padding:50px 28px 100px}.toc{align-self:start;position:sticky;top:22px;font:14px/1.45 system-ui,sans-serif}.toc strong{display:block;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:12px;margin-bottom:14px}.toc ol{list-style:none;margin:0;padding:0}.toc li{margin:0 0 9px}.toc a{text-decoration:none;color:#4f6658}.toc a:hover{text-decoration:underline}
main{max-width:790px;min-width:0}.eyebrow{font:700 12px system-ui,sans-serif;text-transform:uppercase;letter-spacing:.15em;color:var(--forest);margin:0 0 10px}.hero h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.08;letter-spacing:-.04em;margin:0 0 20px}.lead{font-size:1.22rem;color:#425247;max-width:660px;margin:0 0 22px}.meta{font:14px system-ui,sans-serif;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-bottom:45px}
h2{font-size:2rem;line-height:1.22;letter-spacing:-.025em;margin:0 0 16px}h3{font-size:1.25rem;line-height:1.3;margin:25px 0 9px}p{margin:0 0 16px}section.task{border-top:1px solid var(--line);padding-top:42px;margin-top:44px;scroll-margin-top:24px}.task-number{font:700 13px system-ui,sans-serif;text-transform:uppercase;letter-spacing:.12em;color:var(--forest);margin-bottom:8px}.checkpoint{background:var(--soft);border-left:4px solid var(--forest);padding:16px 20px;margin:24px 0;font-size:16px}.checkpoint strong{font-family:system-ui,sans-serif;font-size:14px}.aside{background:#f6efdf;border-left:4px solid var(--gold);padding:16px 20px;margin:24px 0;font-size:16px}
pre{overflow:auto;background:var(--code);border:1px solid var(--line);border-radius:7px;padding:16px 18px;margin:16px 0 24px;font:14px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}code{font:0.9em ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--code);padding:.08em .25em;border-radius:3px}pre code{background:none;padding:0;font-size:1em}ol,ul{padding-left:1.4em;margin:0 0 18px}li{margin:7px 0}table{border-collapse:collapse;width:100%;font:15px/1.45 system-ui,sans-serif;margin:18px 0 24px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 12px}th{background:var(--soft);font-weight:700}.figure{margin:22px 0 24px}.figure img{display:block;width:100%;background:#f8f6f0;border:1px solid var(--line);border-radius:10px}.figure figcaption{font:14px/1.5 system-ui,sans-serif;color:var(--muted);margin-top:8px}.tiny{font-size:14px;color:var(--muted)}.footer{border-top:1px solid var(--line);padding:24px 0 0;margin-top:60px;color:var(--muted);font:14px/1.5 system-ui,sans-serif}
@media(max-width:850px){.layout{display:block;padding:32px 22px 70px}.toc{position:static;margin-bottom:38px;padding-bottom:20px;border-bottom:1px solid var(--line)}.toc ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 16px}.hero h1{font-size:2.65rem}}
@media(max-width:540px){.site-header-inner{padding:14px 20px}.header-note{display:none}.toc ol{grid-template-columns:1fr}body{font-size:16px}h2{font-size:1.75rem}table{font-size:13px}}
