.article-page{background:var(--paper)}.article-layout{display:grid;grid-template-columns:minmax(0,760px) 200px;gap:64px;align-items:start;padding-top:56px;padding-bottom:80px;justify-content:center}.article-document{min-width:0}.article-header{border-bottom:1px solid var(--ink);padding-bottom:36px;margin-bottom:44px}.breadcrumb{display:inline-flex;min-height:44px;align-items:center;font-size:13px;color:var(--meta);margin-bottom:22px}.article-header h1{font-size:clamp(30px,3.5vw,48px);font-weight:900;line-height:1.45;letter-spacing:-.04em;margin:16px 0 24px}.article-deck{font-family:var(--font-serif);font-size:18px;line-height:1.85;color:var(--meta)}.article-meta{display:flex;flex-wrap:wrap;gap:24px;margin-top:24px;font:12px var(--font-mono);color:var(--meta)}.article-content{font-family:var(--font-serif);font-size:19px;line-height:1.9;color:var(--body);overflow-wrap:anywhere}.article-content p{margin-bottom:1.5em}.article-content h2{font-family:var(--font-sans);font-size:28px;font-weight:700;line-height:1.5;color:var(--ink);margin:2.5em 0 1em;padding-left:18px;border-left:3px solid var(--brand-accent);scroll-margin-top:100px}.article-content h3{font-family:var(--font-sans);font-size:23px;font-weight:700;line-height:1.5;margin:2em 0 1em;scroll-margin-top:100px}.article-content h4{font-size:20px;font-weight:700;margin:1.5em 0 1em}.article-content ul,.article-content ol{padding-left:1.5em;margin-bottom:1.5em}.article-content ul{list-style:disc}.article-content ol{list-style:decimal}.article-content li{margin-bottom:.6em}.article-content blockquote{margin:2em 0;padding:24px 28px;border-left:2px solid var(--ink);background:var(--topic-band);color:var(--quote)}.article-content blockquote p:last-child{margin:0}.article-content a{color:var(--link);text-decoration:underline;text-underline-offset:4px}.article-content strong{color:var(--ink);font-weight:600}.article-content hr{border:0;border-top:1px solid var(--hairline);margin:40px 0}.article-content pre{background:var(--code-bg);border:1px solid var(--hairline);padding:20px;overflow-x:auto;max-width:100%;font:14px/1.8 var(--font-mono);margin-bottom:30px}.article-content code{font-family:var(--font-mono);font-size:.85em}.article-content img{display:block;max-width:100%;margin:24px auto;height:auto}.article-content table{display:block;overflow-x:auto;border-collapse:collapse;max-width:100%;font-size:16px;margin:24px 0}.article-content th,.article-content td{border:1px solid var(--hairline);padding:10px 14px}.article-content .article-signature{border-top:1px solid var(--hairline);margin-top:40px;padding-top:24px;font-family:var(--font-sans);font-size:15px}.article-end{border-top:1px solid var(--hairline);margin-top:56px;padding-top:28px}.article-end .text-link{margin-top:18px}.article-toc{position:sticky;top:112px;font-size:13px;max-height:calc(100vh - 150px);overflow-y:auto;border-top:1px solid var(--ink);padding-top:16px}.article-toc summary{font-weight:700;cursor:pointer;margin-bottom:16px;min-height:30px}.article-toc nav{display:flex;flex-direction:column}.article-toc a{padding:8px 12px;border-left:2px solid transparent;color:var(--meta);line-height:1.6}.article-toc a[aria-current]{color:var(--ink);border-color:var(--brand-accent);background:var(--topic-band)}.article-toc a:hover{color:var(--ink);text-decoration:underline}.article-toc .toc-sub{padding-left:24px;font-size:12px}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:110}.reading-progress span{display:block;height:100%;background:var(--brand-accent);width:0}
@media(max-width:1100px){.article-layout{grid-template-columns:minmax(0,720px);gap:28px}.article-toc{position:static;grid-row:1;max-height:none;border-block:1px solid var(--hairline);padding-block:14px}.article-toc details:not([open]) summary{margin:0}.article-toc nav{max-height:240px;overflow-y:auto}.article-header{margin-bottom:32px}.article-header h1{font-size:38px}}
@media(max-width:540px){.article-layout{padding-top:24px;padding-bottom:48px}.article-header{padding-bottom:28px}.article-header h1{font-size:29px;line-height:1.5;margin-top:12px}.article-deck{font-size:17px}.article-content{font-size:18px;line-height:1.9}.article-content h2{font-size:24px;padding-left:12px}.article-content h3{font-size:21px}.article-content blockquote{padding:20px}.article-meta{gap:16px}.article-toc{font-size:13px}.article-toc details{max-height:none}.breadcrumb{margin-bottom:12px}}

/* 中文正文：19px × 37 字；手机保留容器两侧 20px 留白。 */
:where(html:lang(zh)) .article-layout{grid-template-columns:minmax(0,703px) 200px;gap:56px}
:where(html:lang(zh)) .article-content{max-width:var(--reading-measure);line-height:var(--reading-leading)}
:where(html:lang(zh)) .article-header{padding-bottom:var(--reading-block);margin-bottom:var(--reading-section)}
:where(html:lang(zh)) .article-header h1{line-height:1.4;letter-spacing:-.02em;margin-block:var(--reading-heading-gap) var(--reading-block)}
:where(html:lang(zh)) .article-deck{line-height:var(--reading-leading)}
:where(html:lang(zh)) .article-content :is(p,ul,ol){margin-block:0 var(--reading-paragraph)}
:where(html:lang(zh)) .article-content li{margin-bottom:.5em}
:where(html:lang(zh)) .article-content :is(h1,h2,h3,h4){font-family:var(--font-sans);font-weight:700;line-height:1.5;letter-spacing:0;margin-block:var(--reading-section) var(--reading-heading-gap);scroll-margin-top:100px}
:where(html:lang(zh)) .article-content h1{font-size:32px}
:where(html:lang(zh)) .article-content :is(blockquote,figure,pre,table,hr){margin-block:var(--reading-block)}
:where(html:lang(zh)) .article-content blockquote{padding:var(--reading-heading-gap) 1.5rem}
:where(html:lang(zh)) .article-content img{margin-block:var(--reading-block)}
:where(html:lang(zh)) .article-content figure img{margin-block:0}
:where(html:lang(zh)) .article-content figcaption{font:14px/var(--reading-leading) var(--font-sans);color:var(--text-secondary);margin-top:var(--reading-heading-gap)}
:where(html:lang(zh)) .article-content li>:is(ul,ol){margin-block:.5em 0}
:where(html:lang(zh)) .article-content>:first-child{margin-top:0}
:where(html:lang(zh)) .article-content>:last-child{margin-bottom:0}
@media(max-width:1100px){:where(html:lang(zh)) .article-layout{grid-template-columns:minmax(0,703px);gap:28px}}
@media(max-width:540px){
 :where(html:lang(zh)) .article-page{--reading-section:2rem;--reading-block:1.5rem}
 :where(html:lang(zh)) .article-header h1{line-height:1.45}
 :where(html:lang(zh)) .article-content h1{font-size:28px}
}

.article-note{padding:var(--reading-heading-gap);margin-bottom:var(--reading-block);border:1px solid var(--brand-black);font-size:1rem;line-height:var(--reading-leading)}
.related-reading{border:1px solid var(--ink);padding:var(--reading-heading-gap);margin-bottom:var(--reading-block)}
.related-reading h2{font:700 20px/1.5 var(--font-sans);margin:0 0 var(--reading-heading-gap)}
.related-reading ul{list-style:none;margin:0;padding:0}
.related-reading li+li{border-top:1px solid var(--hairline)}
.related-reading a{display:block;padding:12px 0;line-height:var(--reading-leading);overflow-wrap:anywhere;color:var(--ink)}
.related-reading a:hover{color:var(--link);text-decoration:underline;text-underline-offset:4px}
