/* The blog layout owns its reading column, contents rail and contextual notes. */
.post-surface{--post-body:680px;--post-rail:172px;--post-gap:28px;width:var(--reading-width);margin:0 auto;scroll-margin-top:88px}.post-layout{display:grid;grid-template-columns:var(--post-rail) minmax(0,var(--post-body)) var(--post-rail);gap:var(--post-gap);align-items:start}.post-toc{position:sticky;top:105px;padding-top:8px;margin-top:56px;max-height:calc(100dvh - 130px);overflow-y:auto;font:14px/1.65 var(--sans)}.post-toc summary{list-style:none;color:var(--muted);font-size:13px;margin-bottom:16px;pointer-events:none}.post-toc summary::-webkit-details-marker{display:none}.post-toc nav{display:flex;flex-direction:column;border-left:1px solid var(--hair);gap:4px}.post-toc a{display:block;padding:7px 0 7px 15px;margin-left:-1px;border-left:2px solid transparent;color:var(--muted);text-decoration:none}.post-toc a:hover{color:var(--ink)}.post-toc a[aria-current]{color:var(--blue);border-left-color:var(--blue)}.post-article{grid-column:2;min-width:0;padding:52px 0 64px}.post-heading{max-width:680px;margin:0 0 10px}.post-heading h1{font:400 42px/1.45 var(--display);letter-spacing:-.6px;margin:0 0 22px;text-wrap:balance}.post-byline{font:15px/1.5 var(--sans);display:flex;gap:25px;color:var(--muted);margin:0 0 28px}.post-byline a{color:var(--soft);text-decoration-color:var(--hair)}.post-intro{font:19px/1.9 var(--sans);color:var(--soft);margin:0}.article-loading{font:16px var(--sans);color:var(--muted);padding-top:50px}
.post-article .main-chapter{padding-top:48px;margin:0 0 10px}.post-article .main-prose{width:100%;margin:0 0 24px}.post-article .main-prose h2{max-width:680px;font-size:29px;line-height:1.5;margin-bottom:20px;letter-spacing:0}.post-article .main-prose p{width:min(680px,100%);font-size:17px;line-height:1.95;margin:0 0 20px;color:var(--soft)}.post-article .main-prose p:last-child{margin-bottom:0}.noted-paragraph{display:grid;grid-template-columns:minmax(0,var(--post-body)) var(--post-rail);gap:var(--post-gap);width:calc(100% + var(--post-gap) + var(--post-rail));margin-bottom:20px}.noted-paragraph p{margin-bottom:0!important}.sidenote{font:13px/1.8 var(--sans);color:var(--muted);padding-top:5px}.sidenote>span{color:var(--blue);font-variant-numeric:tabular-nums;margin-right:5px}.note-ref{font:12px/1 var(--sans);text-decoration:none;padding:0 4px;color:var(--blue)}.noted-paragraph:has(.note-ref:focus-visible) .sidenote{color:var(--ink)}
body[data-layout=flow] .post-article .article-case{width:100%;margin:28px 0 30px}.post-article .method-diagram,.post-article .target-diagram{width:100%;margin:30px 0}.post-article .article-case-title{font-size:21px}.post-article .main-resources{padding:40px 0 0}.post-article .main-resources>h2{font:400 26px/1.5 var(--display);margin:0 0 22px}.post-article .resource-links{width:100%;margin:0;gap:24px}.post-article .resource-links strong{font-size:16px}.post-article .resource-links span{font-size:14px}.post-endnotes{max-width:680px;font:14px/1.8 var(--sans);color:var(--muted);border-top:1px solid var(--hair);margin-top:48px;padding-top:24px}.post-endnotes h2{font:400 24px var(--display);color:var(--ink);margin:0 0 20px}.post-endnotes ol{padding-left:22px;margin:0}.post-endnotes li{padding-left:5px;margin-bottom:14px;scroll-margin-top:90px}.post-endnotes li:target{color:var(--ink);background:var(--deep)}.note-back{font-size:12px;white-space:nowrap}.article-retry{border:0;border-bottom:1px solid var(--hair);background:none;padding:6px 0;color:var(--blue)}
@media(min-width:1160px){.post-endnotes{display:none}.post-endnotes:has(li:target){display:block}}
@media(max-width:1159px){.post-layout{display:block}.post-surface{max-width:var(--post-body)}.noted-paragraph{display:block;width:100%}.sidenote{display:none}.post-toc{position:static;margin:24px 0 0;max-height:none;padding:0}.post-toc summary{pointer-events:auto;cursor:pointer;margin:0;padding:8px 0;border-bottom:1px solid var(--hair)}.post-toc summary::after{content:'＋';float:right}.post-toc details[open] summary::after{content:'−'}.post-toc nav{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:0 20px;border-left:0}.post-toc a{padding:6px 0;border:0;margin:0}.post-article{padding-top:28px}.post-heading h1{font-size:38px}.post-article .main-prose h2{font-size:27px}.post-intro{font-size:18px}.post-article .main-chapter{padding-top:38px}}

@media(max-width:600px){.post-heading h1{font-size:30px}.post-heading{margin-top:4px}.post-intro{font-size:17px}.post-article .main-prose h2{font-size:25px}.post-article .main-prose p{font-size:16px;line-height:1.95}.post-byline{font-size:14px;gap:20px}.post-article .article-case-title{font-size:20px}.post-article .method-diagram,.post-article .target-diagram{margin-block:24px}.post-article .resource-links{grid-template-columns:1fr}.post-endnotes{font-size:13px}}

.sidenote:focus{outline:none;background:var(--deep);color:var(--ink)}

/* The article's lead uses the same quiet blue wash as the homepage TL;DR. */
.post-tldr{background:color-mix(in srgb,var(--blue) 6%,var(--paper));padding:20px 24px}
.post-tldr-label{font:13px/1.5 var(--sans);letter-spacing:.04em;color:var(--blue);margin:0 0 8px}
.post-tldr .post-intro{font-size:18px;line-height:1.9;margin:0}
@media(max-width:600px){.post-tldr{padding:16px 18px}.post-tldr .post-intro{font-size:16px}.post-tldr-label{font-size:12px}}
/* Bilingual editorial text: the document language selects one copy. */
html[lang=en] .post-surface [data-lang=zh],html:not([lang=en]) .post-surface [data-lang=en]{display:none}

/* A shared, selectable citation closes both continuous reading routes. */
.paper-citation{margin-top:24px;padding-top:28px;border-top:1px solid var(--hair);scroll-margin-top:88px}
.paper-citation h2{font:400 26px/1.5 var(--display);margin:0 0 16px}
.citation-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;font:14px/1.5 var(--sans);margin-bottom:14px}
.citation-actions a{color:var(--blue);text-underline-offset:3px}
.citation-actions button{margin-left:auto;border:1px solid var(--hair);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit;padding:5px 12px;cursor:pointer}
.citation-actions button:hover{background:var(--deep)}
.paper-citation pre{margin:0;padding:20px;border:1px solid var(--hair);border-radius:4px;background:var(--deep);color:var(--soft);font:13px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2}
.paper-citation code{font:inherit}
