body.article-page{background:#fafaf8;color:var(--ink)}
.article-page>.wrap{max-width:1100px}
.article-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid var(--rule)}
.article-header nav{display:flex;align-items:center;gap:28px;font-size:14px}.article-header nav a{text-decoration:none}
.article-header .wordmark img{width:27px;height:27px}.article-header .btn{--bg:var(--ink);--fg:#fff;height:40px}
.article-hero{padding:80px 0 56px;max-width:none;margin-inline:0}.article-meta{font:13px/1.6 var(--sans);color:var(--ink-faint);margin-bottom:24px}
.article-hero h1{font-size:clamp(1.35rem,5.2vw,5rem);font-weight:460;letter-spacing:-.045em;line-height:1.08;white-space:nowrap;max-width:none}
.article-deck{font-size:clamp(19px,2vw,25px);line-height:1.5;letter-spacing:-.015em;color:var(--ink-soft);max-width:55ch;margin-top:30px}
.article-context{margin-top:24px;font-size:13px;color:var(--ink-faint);max-width:80ch}
.article-cover{max-width:1100px;margin:0 auto 72px}.article-cover .cover-frame{padding:0;border-radius:18px;overflow:hidden}.article-cover img{display:block;width:100%;height:auto;max-height:none;border-radius:0}
figcaption{font-size:12px;line-height:1.6;color:var(--ink-faint);margin-top:14px;max-width:95ch}
.article-grid{display:block;width:100%;max-width:780px;margin-inline:auto;padding-bottom:100px}
.article-toc{position:sticky;top:32px;display:grid;gap:12px;font-size:13px;line-height:1.5;padding-bottom:20px}.article-toc strong{font-size:10px;font-family:var(--mono);font-weight:400;letter-spacing:.09em;color:var(--ink-faint);margin-bottom:8px}.article-toc a{color:var(--ink-soft);text-decoration:none;padding:3px 0}.article-toc a:hover{color:var(--ink)}
.article-body{min-width:0}.article-body section{scroll-margin-top:32px;margin-bottom:64px}.article-body h2{font-size:clamp(28px,3vw,39px);font-weight:470;line-height:1.18;letter-spacing:-.025em;margin:0 0 26px;text-wrap:balance}.article-body h3{font-size:21px;font-weight:520;line-height:1.35;margin:32px 0 14px;letter-spacing:-.015em}
.article-body p,.article-body li{font-size:17px;line-height:1.85;color:#505057}.article-body p+p{margin-top:20px}.article-body strong{color:var(--ink);font-weight:550}.article-body ul,.article-body ol{padding-left:23px;margin:22px 0;list-style:disc}.article-body ol{list-style:decimal}.article-body li+li{margin-top:10px}
.article-body a{color:var(--ink)}.article-body code{font:12px/1.6 var(--mono);background:#ededeb;padding:3px 6px;border-radius:5px;overflow-wrap:anywhere}
.article-callout{border-left:2px solid #7d8583;padding:4px 0 4px 24px;margin:28px 0}.article-callout p{font-size:15px}.article-callout strong{display:block;margin-bottom:8px;font-size:13px}
.article-figure{margin:32px 0 40px}.diagram-scroll{overflow:auto;border:1px solid var(--rule);border-radius:18px;background:#f0f1ee}.diagram-scroll svg{display:block;width:100%;min-width:650px;height:auto}
.worked-example{background:#111114;color:#f3f2ef;border-radius:18px;padding:clamp(22px,3vw,36px);margin:28px 0}.worked-example .example-label{font:10px var(--mono);letter-spacing:.1em;color:#aaa9b0;margin-bottom:20px}.worked-example p{color:#c1c0c8;font-size:15px}.worked-example strong{color:#efefeb}.worked-example .equation{font-size:clamp(23px,3vw,32px);letter-spacing:-.02em;line-height:1.45;color:#efefeb;margin:16px 0}.example-row{display:grid;grid-template-columns:35px 1fr;gap:16px;padding:15px 0;border-bottom:1px solid #ffffff12}.example-row:last-child{border:0}.example-row>span{font:11px var(--mono);color:#85858e;padding-top:5px}
.article-table-wrap{overflow:auto;margin:26px 0}.article-body table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.7;text-align:left}.article-body th{font-weight:550;color:#222;padding:14px 16px 14px 0;border-bottom:1px solid #babbb7}.article-body td{vertical-align:top;padding:18px 20px 18px 0;border-bottom:1px solid var(--rule);color:var(--ink-soft)}
.references li{font-size:14px;line-height:1.7}.source-note{padding-top:22px;border-top:1px solid var(--rule);margin-top:32px}.source-note p{font-size:13px}
.related-news{padding:64px 0 72px;border-top:1px solid var(--rule)}.related-news h2{font-size:30px;font-weight:470;letter-spacing:-.025em;margin-bottom:28px}.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.related-grid a{padding:26px;border:1px solid var(--rule);border-radius:14px;text-decoration:none;background:#fff}.related-grid small{display:block;color:var(--ink-faint);font:10px var(--mono);letter-spacing:.08em;margin-bottom:12px}.related-grid strong{display:block;font-size:22px;line-height:1.3;font-weight:480;letter-spacing:-.02em}.related-grid a:hover{border-color:#b7b8b2}
.article-footer{border-top:1px solid var(--rule);padding:28px 0 40px;display:flex;justify-content:space-between;gap:20px;color:var(--ink-faint);font-size:12px}.article-footer nav{display:flex;gap:20px}
@media(max-width:900px){.article-grid{grid-template-columns:1fr;gap:40px}.article-toc{position:static;border-block:1px solid var(--rule);padding:24px 0;grid-template-columns:repeat(2,minmax(0,1fr))}.article-toc strong{grid-column:1/-1}.article-hero{padding-top:56px}.article-cover{margin-bottom:40px}}
@media(max-width:600px){.article-header{padding-block:18px}.article-header nav{gap:16px}.article-header .btn{display:none}.article-hero{padding:44px 0 32px}.article-hero h1{font-size:clamp(2.6rem,11vw,4rem)}.article-cover .cover-frame{border-radius:16px}.article-grid{padding-bottom:32px}.article-body section{margin-bottom:48px}.article-body p,.article-body li{font-size:16px;line-height:1.8}.article-toc{font-size:12px;column-gap:20px}.related-grid{grid-template-columns:1fr}.article-footer{flex-direction:column}.diagram-scroll svg{min-width:600px}}
@media(prefers-reduced-motion:no-preference){html:has(.article-page){scroll-behavior:smooth}}
.example-row>div{min-width:0}
.worked-example .equation{font-size:clamp(20px,2.2vw,28px);letter-spacing:normal;overflow-x:auto;overflow-y:hidden;max-width:100%;padding-block:8px}
.equation .katex-display{margin:0;text-align:left}
.equation .katex-display>.katex{text-align:left}
.article-body .katex{font-size:1.08em}
@media(max-width:600px){.article-hero h1{font-size:clamp(1.2rem,5.5vw,2.1rem)}}
