.article-body section>p+p{margin-top:18px}.article-anchor{font-family:var(--mono);color:var(--muted);margin-left:12px;padding:8px;font-size:14px}.article-body blockquote{border-left:2px solid var(--accent);background:var(--surface);margin:30px 0;padding:12px 22px}.article-body blockquote p{color:var(--ink);margin:0;font-size:18px}.article-table-wrap{max-width:100%;margin-block:28px;overflow-x:auto}.article-table-wrap table{border-collapse:collapse;width:100%;min-width:440px;font-size:14px;line-height:1.8}.article-table-wrap caption{text-align:left;color:var(--muted);margin-bottom:10px;font-size:12px}.article-table-wrap th,.article-table-wrap td{text-align:left;border-bottom:1px solid var(--line);padding:14px}.article-table-wrap th{background:var(--surface);font-weight:600}.article-callout{border:1px solid var(--line);background:var(--surface);margin:28px 0;padding:22px}.article-callout p{margin:10px 0 0}.article-figure{margin:30px 0}.article-image-trigger{cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block;position:relative}.article-figure img,.article-image-dialog img{width:100%;height:auto;display:block}.article-image-trigger>span{background:var(--paper);color:var(--ink);align-items:center;gap:8px;padding:10px;font-size:12px;display:flex;position:absolute;bottom:14px;right:14px}.article-figure figcaption{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.8}.article-reference{margin-top:30px;font-size:14px}.article-reference a{color:var(--accent);padding:8px}.article-footnotes{border-top:1px solid var(--line);margin-block:42px;padding-top:24px}.article-footnotes h2{font-size:18px}.article-footnotes ol{padding-left:22px}.article-footnotes li{overflow-wrap:anywhere;font-size:14px;line-height:1.9}.article-footnotes a{color:var(--accent)}.article-footnotes li,.article-body section{scroll-margin-top:100px}.footnote-back{padding:8px;display:inline-block}.mdx-content{overflow-wrap:anywhere;min-width:0}.mdx-content h2,.mdx-content h3{scroll-margin-top:110px}.reading-page .mdx-content h2{margin-top:48px}.reading-page .mdx-content h3{margin-top:32px;margin-bottom:16px;font-size:21px;line-height:1.6}.mdx-content p+p{margin-top:18px}.mdx-content ul,.mdx-content ol{margin-block:20px;padding-left:24px;line-height:1.9}.mdx-content li+li{margin-top:8px}.mdx-content hr{border:0;border-top:1px solid var(--line);margin-block:36px}.mdx-content :not(pre)>code{font-family:var(--mono);background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:.12em .35em;font-size:.87em}.mdx-content a:not(.article-anchor){color:var(--accent)}.mdx-content input[type=checkbox]{accent-color:var(--accent);margin-right:8px}.mdx-content .contains-task-list{list-style:none}.mdx-content [data-footnotes]{border-top:1px solid var(--line);margin-top:42px;padding-top:16px}.mdx-content [data-footnotes] h2{margin-top:0;font-size:18px}.mdx-content [data-footnotes] li{scroll-margin-top:110px;font-size:14px}.mdx-content [data-footnote-backref]{padding:8px;display:inline-block}.mdx-gallery,.mdx-code-compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.mdx-gallery .article-figure,.mdx-code-compare .article-code{min-width:0}.mdx-architecture{margin-block:30px}.mdx-architecture ol{flex-wrap:wrap;gap:12px;padding:0;list-style:none;display:flex}.mdx-architecture li{border:1px solid var(--line);background:var(--surface);margin:0;padding:16px}.mdx-architecture li+li:before{content:"→";color:var(--accent);margin-right:12px}.mdx-architecture figcaption{color:var(--muted);font-size:12px}.mdx-repo,.mdx-metric{background:var(--surface);border:1px solid var(--line);margin-block:24px;padding:22px}.mdx-metric strong{font-size:32px;display:block}.mdx-metric span{font-family:var(--mono);color:var(--muted);font-size:12px}.article-callout.callout-warning{border-left:3px solid var(--accent)}.article-callout.callout-tip{border-left:3px solid var(--ink)}.article-callout.callout-info{border-left:3px solid var(--muted)}.article-toc nav a[data-level="3"]{padding-left:14px;font-size:12px}.code-line{min-width:100%;min-height:1.8em;display:block}.code-line-highlight{background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:-16px 0 color-mix(in srgb, var(--accent) 14%, transparent)}.token-keyword{color:var(--accent);font-weight:600}.token-string{color:var(--ink)}.token-comment{color:var(--muted);font-style:italic}.token-number{color:var(--accent)}.article-code figcaption strong{text-transform:none;font-weight:500}.draft-preview-label{border:1px dashed var(--accent);color:var(--accent);font-size:12px;font-family:var(--mono);padding:14px 18px}@media (max-width:540px){.mdx-gallery,.mdx-code-compare{grid-template-columns:minmax(0,1fr)}.reading-page .mdx-content h2{margin-top:38px}.mdx-architecture ol{flex-direction:column}.mdx-architecture li+li:before{content:"↓"}}.reading-page .mdx-content [data-footnotes] p{font-size:14px;line-height:1.9}
.writing-article{--article-measure:720px;--article-side:190px;padding-bottom:clamp(72px,10vw,150px)}.writing-article>.back-link{min-height:40px;margin:34px 0 clamp(45px,7vw,86px);font-size:12px;transition:color .18s}.writing-article>.back-link:hover{color:var(--accent)}.writing-article-hero,.writing-article .article-layout,.writing-article-after{width:min(100%, calc(var(--article-measure) + var(--article-side) + 80px));max-width:none;margin-inline:auto}.writing-article .page-intro{width:100%;max-width:none;margin:0;padding:0}.writing-article .page-intro .eyebrow{color:var(--accent);margin-bottom:22px}.writing-article .page-intro h1{max-width:var(--article-measure);letter-spacing:-.035em;text-wrap:balance;-webkit-line-clamp:unset;overflow-wrap:break-word;font-family:Songti SC,Noto Serif CJK SC,Source Han Serif SC,SimSun,serif;font-size:clamp(36px,5vw,62px);font-weight:600;line-height:1.27;display:block;overflow:visible}.writing-article .page-intro>p:last-child{max-width:var(--article-measure);color:var(--muted);margin-top:22px;font-size:clamp(16px,1.5vw,19px);line-height:1.8}.writing-article-byline{max-width:var(--article-measure);border-block:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 30px;margin-top:clamp(28px,4vw,46px);padding-block:18px;display:flex}.writing-article .article-meta{font:12px/1.6 var(--mono);color:var(--muted);margin:0}.writing-article .article-meta>*+:before{content:"·";color:var(--line);margin-right:18px}.writing-article-tags{color:var(--accent);flex-wrap:wrap;gap:6px 16px;font-size:12px;display:flex}.writing-article-tags a,.writing-article .mdx-content a,.writing-article-after a{text-underline-offset:.22em}.writing-article-tags a:hover,.writing-article .mdx-content a:hover{text-decoration:underline}.writing-article .article-layout{grid-template-columns:minmax(0, var(--article-measure)) minmax(0, var(--article-side));align-items:start;gap:80px;margin-top:30px;margin-bottom:0;display:grid}.writing-article .article-body{width:100%;max-width:var(--article-measure);min-width:0}.writing-article .article-actions{margin:0 0 48px}.writing-article .mdx-content{overflow-wrap:break-word;min-width:0;max-width:100%}.writing-article .article-body section{margin:0}.writing-article .mdx-content h2,.writing-article .mdx-content h3,.writing-article .mdx-content h4{color:var(--ink);text-wrap:pretty;scroll-margin-top:110px}.writing-article .mdx-content h2{border-top:1px solid var(--line);letter-spacing:-.025em;margin:64px 0 21px;padding-top:25px;font:600 clamp(25px,3vw,31px)/1.5 Songti SC,Noto Serif CJK SC,SimSun,serif}.writing-article .mdx-content h3{font:600 clamp(20px, 2.2vw, 23px)/1.55 var(--sans);margin:43px 0 16px}.writing-article .mdx-content h4{font:600 18px/1.6 var(--sans);margin:32px 0 13px}.writing-article .mdx-content>section>:first-child{margin-top:0}.writing-article .mdx-content p,.writing-article .mdx-content li{letter-spacing:.006em;max-width:100%;color:var(--ink);font-size:18px;line-height:1.85}.writing-article .mdx-content p{margin:0 0 1.35em}.writing-article .mdx-content ul,.writing-article .mdx-content ol{margin:0 0 1.5em;padding-left:1.5em}.writing-article .mdx-content li+li{margin-top:.45em}.writing-article .mdx-content blockquote{border-left:2px solid var(--accent);background:0 0;margin:37px 0;padding:16px 0 16px 23px}.writing-article .mdx-content blockquote p{color:var(--muted);margin:0}.writing-article .article-callout{border-radius:4px;margin:36px 0;padding:22px 26px}.writing-article .article-callout strong{font-size:14px}.writing-article .article-callout p{margin:9px 0 0;font-size:16px}.writing-article .article-code,.writing-article .article-table-wrap,.writing-article .article-figure{margin-block:34px}.writing-article .article-code pre,.writing-article .article-table-wrap{overscroll-behavior-inline:contain;max-width:100%;overflow-x:auto}.writing-article .article-code pre{font-size:13px;line-height:1.8}.writing-article .article-table-wrap table{min-width:520px}.writing-article .article-table-wrap th,.writing-article .article-table-wrap td{vertical-align:top}.writing-article .article-figure figcaption{font-size:13px;line-height:1.75}.writing-article .mdx-content [data-footnotes]{margin-top:70px;padding-top:24px}.writing-article .mdx-content [data-footnotes] li{scroll-margin-top:110px;font-size:14px;line-height:1.8}.writing-article .mdx-content [data-footnotes] p{margin-bottom:0;font-size:14px;line-height:1.8}.writing-article .article-toc{align-self:start;width:100%;max-height:calc(100vh - 135px);position:sticky;top:110px;overflow-y:auto}.writing-article .article-toc nav a{padding-block:9px}.writing-article-after{border-top:1px solid var(--line);margin-top:clamp(74px,9vw,118px)}.writing-article-neighbors{border-bottom:1px solid var(--line);background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.writing-article-neighbor{background:var(--paper);align-content:center;min-height:148px;padding:25px clamp(20px,3vw,36px);transition:background .18s;display:grid}.writing-article-neighbor:last-child{text-align:right}.writing-article-neighbor:only-child{text-align:left;grid-column:1/-1}.writing-article-neighbor:hover,.writing-article-related-grid a:hover{background:var(--surface)}.writing-article-neighbor span,.writing-article-related-grid a>span{font:11px/1.6 var(--mono);color:var(--accent)}.writing-article-neighbor strong{margin-top:12px;font-size:clamp(16px,1.8vw,21px);font-weight:500;line-height:1.5}.writing-article-related{padding-top:54px}.writing-article-related-heading h2{margin:12px 0 24px;font:600 27px/1.4 Songti SC,Noto Serif CJK SC,SimSun,serif}.writing-article-related-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.writing-article-related-grid a{border:1px solid var(--line);padding:27px 27px 60px;transition:background .18s;display:block;position:relative}.writing-article-related-grid strong{margin-top:14px;font-size:20px;font-weight:500;line-height:1.5;display:block}.writing-article-related-grid p{color:var(--muted);margin:10px 0 0;font-size:14px;line-height:1.8}.writing-article-related-grid svg{color:var(--accent);position:absolute;bottom:26px;right:27px}@media (max-width:900px){.writing-article{--article-measure:720px}.writing-article .article-layout{flex-direction:column;gap:25px;display:flex}.writing-article .article-toc{order:-1;max-height:none;position:static;overflow:visible}.writing-article .article-toc-mobile{display:block}.writing-article .article-toc-desktop{display:none}.writing-article .article-body{margin-inline:0}}@media (max-width:600px){.writing-article .article-table-wrap:before{content:"左右滑动查看完整表格";color:var(--muted);margin-bottom:10px;font-size:12px;display:block}.writing-article>.back-link{margin:20px 0 40px}.writing-article .page-intro h1{font-size:clamp(32px,8vw,42px);line-height:1.32}.writing-article-byline{margin-top:28px;padding-block:16px}.writing-article .article-meta{gap:5px 12px}.writing-article .article-meta>*+:before{margin-right:12px}.writing-article .article-actions{margin-bottom:32px}.writing-article .mdx-content h2{margin-top:49px;font-size:25px}.writing-article .mdx-content h3{margin-top:36px;font-size:21px}.writing-article .mdx-content p,.writing-article .mdx-content li{font-size:17px;line-height:1.9}.writing-article .article-callout{padding:19px}.writing-article-neighbors,.writing-article-related-grid{grid-template-columns:minmax(0,1fr)}.writing-article-neighbor{min-height:105px;text-align:left!important}}@media (prefers-reduced-motion:reduce){.writing-article .back-link,.writing-article-after a{transition:none}}
