:root{--paper:#f6f5f0;--ink:#182d2b;--muted:#526760;--line:#d6dcd2;--green:#185b47;--mint:#dcebcf;--orange:#b24b2d;--white:#fffefa;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--green);text-underline-offset:4px}a:hover{color:var(--orange)}button,input{font:inherit}button,a,input{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}.skip{position:fixed;top:-80px;left:20px;z-index:99;background:var(--ink);color:white;padding:10px}.skip:focus{top:10px}.topbar{position:sticky;top:0;z-index:20;background:rgba(246,245,240,.97);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1500px;margin:auto;min-height:76px;display:flex;align-items:center;gap:28px;padding:0 4vw}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:750;letter-spacing:-.5px;text-decoration:none;white-space:nowrap}.brand svg{width:28px;height:28px}.top-links{margin-left:auto;display:flex;align-items:center;gap:25px;font-size:13px}.top-links a{text-decoration:none;color:var(--muted)}.language{border-left:1px solid var(--line);padding-left:24px}.mode{font:10px/1.4 var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--green);padding:5px 8px;border:1px solid #aebfb2;background:#edf3e7}.menu-button{display:none;border:1px solid var(--line);background:var(--white);padding:6px 10px;color:var(--ink)}.shell{max-width:1500px;margin:auto;display:grid;grid-template-columns:225px minmax(0,1fr);padding:0 4vw;gap:44px}.sidebar{padding:34px 20px 32px 0;border-right:1px solid var(--line);position:sticky;top:77px;height:calc(100vh - 77px);overflow-y:auto}.small-label,.eyebrow{font:11px/1.6 var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--green)}.sidebar .small-label{margin:0 0 18px 12px}.chapter-nav{display:flex;flex-direction:column;gap:4px}.chapter-nav a{display:flex;gap:12px;font-size:14px;text-decoration:none;color:var(--muted);padding:9px 12px;border-radius:3px}.chapter-nav .num{font:11px/24px var(--mono);color:#718278}.chapter-nav a[aria-current]{background:var(--mint);color:var(--ink);font-weight:650}.sidebar-note{margin:36px 12px 0;border-top:1px solid var(--line);padding-top:18px;color:var(--muted);font-size:12px;line-height:1.7}.sidebar-note a{display:block;margin-top:10px}.page{min-width:0;padding:45px 0 80px}.breadcrumbs{font:11px/1.4 var(--mono);color:var(--muted);margin-bottom:28px}.page-header{border-bottom:1px solid var(--line);padding-bottom:28px;max-width:1100px}.page-header .eyebrow{margin:0 0 14px}.page-header h1{font-size:clamp(36px,4.2vw,59px);font-weight:650;line-height:1.08;letter-spacing:-2.4px;max-width:850px;margin:0 0 22px}.intro{font-size:18px;line-height:1.75;max-width:780px;color:var(--muted);margin:0}.home .page-header{border:0;padding-bottom:32px}.home .page-header h1{max-width:750px;font-size:clamp(44px,5.8vw,78px);letter-spacing:-3.6px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:27px}.button{display:inline-flex;align-items:center;gap:18px;padding:11px 18px;background:var(--green);color:white;border:1px solid var(--green);text-decoration:none;font-size:13px;font-weight:600}.button:hover{background:#104532;color:white}.button.secondary{background:transparent;color:var(--green);border-color:#b1c1b6}.flow-figure{margin:2px 0 38px;background:var(--ink);padding:26px 30px 24px;color:#eef6ec;border-radius:4px;position:relative;overflow:hidden}.flow-figure figcaption{display:flex;justify-content:space-between;gap:12px;font:10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:1.1px;color:#bdd2c4;margin-bottom:22px}.flow-line{display:grid;grid-template-columns:1fr 32px 1fr 32px 1fr;align-items:center;gap:6px}.flow-node{padding:17px 14px;border:1px solid #607970;min-width:0}.flow-node b{display:block;font-size:19px;font-weight:550;letter-spacing:-.4px}.flow-node span{display:block;font:10px/1.6 var(--mono);color:#bdd2c4;margin-top:6px}.flow-node.highlight{border-color:#d5e5aa;background:#29483c}.flow-node.highlight b{color:#e1efbb}.arrow{font:24px/1 var(--mono);text-align:center;color:#bbd48f}.flow-branches{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 0 25%;position:relative}.branch{border-top:1px solid #6f8979;padding:12px 0 0;font-size:13px}.branch small{display:block;font:10px/1.6 var(--mono);color:#bdd2c4;margin-top:6px}.diagram-note{margin:20px 0 0;font-size:11px;color:#bed0c5}.article-grid{display:grid;grid-template-columns:minmax(0,780px) 175px;gap:38px}.article-body{min-width:0}.toc{position:sticky;top:110px;align-self:start;border-left:1px solid var(--line);padding-left:17px;font-size:12px;margin-top:32px}.toc p{margin:0 0 12px;font:10px/1.6 var(--mono);letter-spacing:1px}.toc a{display:block;text-decoration:none;color:var(--muted);line-height:1.5;margin-bottom:12px}.content-section{padding:32px 0;border-bottom:1px solid var(--line);scroll-margin-top:100px}.content-section h2{font-size:25px;letter-spacing:-.8px;line-height:1.25;margin:0 0 20px;display:flex;gap:14px}.section-index{font:11px/28px var(--mono);color:var(--orange);flex-shrink:0}.content-section p{margin:0 0 16px;max-width:75ch}.content-section ul{padding-left:20px;margin:16px 0}.content-section li{padding-left:4px;margin:10px 0}.content-section li::marker{color:var(--green)}.content-section pre{background:#e9ede4;border-left:3px solid var(--green);padding:20px;overflow:auto;font:12px/1.8 var(--mono);margin:22px 0;position:relative}.code-block{position:relative}.copy-button{position:absolute;right:7px;top:7px;border:1px solid #a7b6aa;background:var(--paper);color:var(--green);font:10px/1.4 var(--mono);padding:4px 7px;cursor:pointer}.code-block pre{padding-top:35px}table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.6;min-width:480px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:13px 12px 13px 0}th{font:11px/1.5 var(--mono);color:var(--muted);background:#edf0e8}th:first-child{padding-left:10px}td:first-child{font-weight:600}.table-wrap{overflow:auto;margin:22px 0}.references{display:flex;gap:10px 20px;flex-wrap:wrap;margin-top:20px;font-size:13px}.chapter-grid{margin:8px 0 36px;border-top:1px solid var(--line)}.chapter-card{display:grid;grid-template-columns:35px minmax(0,1fr) 30px;gap:14px;text-decoration:none;padding:22px 0;border-bottom:1px solid var(--line)}.chapter-card .num{font:11px/24px var(--mono);color:var(--orange)}.chapter-card strong{font-size:18px;font-weight:600;color:var(--ink)}.chapter-card p{color:var(--muted);font-size:13px;margin:6px 0 0;max-width:74ch}.chapter-card:hover strong{color:var(--orange)}.chapter-card .end-arrow{align-self:center;color:var(--green)}.evidence-panel{margin:25px 0;padding:22px;border:1px solid #becabc;background:#edf2e7}.evidence-panel strong{display:block;font-size:17px;margin-bottom:7px}.evidence-panel p{margin:0 0 10px;font-size:14px;color:var(--muted)}.pager{display:flex;gap:25px;justify-content:space-between;margin-top:36px}.pager a{text-decoration:none;font-size:14px;max-width:48%}.pager small{display:block;color:var(--muted);font:10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:1px;margin-bottom:5px}.pager a:last-child{text-align:right;margin-left:auto}.site-footer{padding:24px 4vw;border-top:1px solid var(--line);font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.site-footer p{margin:0}.site-footer a{color:var(--muted)}.status-line{font:10px/1.6 var(--mono);margin-top:18px;color:var(--muted)}.mobile-label{display:none}
@media(min-width:1600px){.topbar-inner,.shell{padding-left:50px;padding-right:50px}}
@media(max-width:1200px){.article-grid{grid-template-columns:minmax(0,1fr)}.toc{display:none}.shell{grid-template-columns:190px minmax(0,1fr);gap:30px}.sidebar{padding-right:12px}.top-links{gap:18px}.flow-node b{font-size:17px}}
@media(max-width:800px){.topbar-inner{min-height:65px;gap:14px;padding:0 20px}.brand{font-size:15px}.brand svg{width:22px}.top-links{gap:14px}.top-links .external-home,.mode{display:none}.language{padding-left:12px}.menu-button{display:block;font-size:12px}.shell{display:block;padding:0 22px}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:18px 0;display:none}.sidebar.open{display:block}.sidebar-note{display:none}.sidebar .small-label{display:none}.chapter-nav{display:grid;grid-template-columns:1fr 1fr}.chapter-nav a{font-size:13px;padding:8px}.page{padding-top:27px}.breadcrumbs{margin-bottom:24px}.page-header h1{font-size:43px;letter-spacing:-1.9px}.home .page-header h1{font-size:55px;letter-spacing:-2.7px}.intro{font-size:16px}.flow-figure{padding:22px 20px}.flow-line{grid-template-columns:1fr 20px 1fr 20px 1fr;gap:4px}.flow-node{padding:12px 10px}.flow-node b{font-size:15px}.flow-node span{font-size:9px}.flow-branches{margin-left:15%}.content-section{padding:28px 0}.content-section h2{font-size:23px}.site-footer{padding:20px 22px}}
@media(max-width:480px){body{font-size:15px}.topbar-inner{padding:0 16px;gap:8px}.top-links{gap:9px;font-size:12px}.brand{font-size:14px}.language{padding-left:9px}.shell{padding:0 20px}.home .page-header h1{font-size:46px;letter-spacing:-2px}.page-header h1{font-size:36px;letter-spacing:-1.5px}.flow-line{grid-template-columns:1fr}.flow-node{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px}.flow-node span{margin:0}.arrow{font-size:19px;transform:rotate(90deg)}.flow-branches{margin-left:0;gap:12px}.flow-figure figcaption span:last-child{display:none}.hero-actions .button{font-size:12px;padding:10px 13px}.content-section pre{font-size:11px}.content-section h2{font-size:21px}.chapter-card{grid-template-columns:27px minmax(0,1fr) 20px;gap:10px}.chapter-card strong{font-size:17px}.pager{gap:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.topbar,.sidebar,.toc,.pager,.copy-button,.hero-actions{display:none}.shell,.article-grid{display:block;padding:0}.page{padding:0}.content-section{break-inside:avoid}body{background:white;color:black}.flow-figure{print-color-adjust:exact}.site-footer{padding:15px 0}}
