.error-fallback[data-astro-cid-jwuj6ym6]{max-width:42rem;margin:2rem auto;padding:2rem;background:var(--color-bg-secondary, #f8f9fa);border:1px solid var(--color-border, #dee2e6);border-radius:.5rem;text-align:center}.error-fallback-icon[data-astro-cid-jwuj6ym6]{font-size:3rem;margin-bottom:1rem}.error-fallback[data-astro-cid-jwuj6ym6] h2[data-astro-cid-jwuj6ym6]{margin:0 0 1rem;font-size:1.5rem;color:var(--color-text-primary, #212529)}.error-fallback-message[data-astro-cid-jwuj6ym6]{margin:0 0 1.5rem;color:var(--color-text-secondary, #6c757d);line-height:1.6}.error-fallback-details[data-astro-cid-jwuj6ym6]{margin:1.5rem 0;text-align:left}.error-fallback-details[data-astro-cid-jwuj6ym6] summary[data-astro-cid-jwuj6ym6]{cursor:pointer;font-weight:500;color:var(--color-text-secondary, #6c757d);padding:.5rem}.error-fallback-details[data-astro-cid-jwuj6ym6] summary[data-astro-cid-jwuj6ym6]:hover{color:var(--color-text-primary, #212529)}.error-fallback-details[data-astro-cid-jwuj6ym6] pre[data-astro-cid-jwuj6ym6]{margin:1rem 0 0;padding:1rem;background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #dee2e6);border-radius:.25rem;overflow-x:auto;font-size:.875rem;line-height:1.5}.error-fallback-stack[data-astro-cid-jwuj6ym6]{max-height:15rem;overflow-y:auto}.error-fallback-hint[data-astro-cid-jwuj6ym6]{margin:1.5rem 0 0;font-size:.875rem;color:var(--color-text-secondary, #6c757d)}.error-fallback-hint[data-astro-cid-jwuj6ym6] code[data-astro-cid-jwuj6ym6]{padding:.125rem .375rem;background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #dee2e6);border-radius:.25rem;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,Consolas,DejaVu Sans Mono,monospace;font-size:.875em}body.article-page{--article-panel-bg: var(--plane-panel-bg);--article-panel-muted: color-mix( in oklch, var(--bg-alt) 82%, var(--surface) 18% );--article-panel-border: var(--plane-panel-border);--article-panel-border-soft: color-mix( in oklch, var(--border-soft) 88%, transparent );--article-panel-shadow: var(--plane-panel-shadow);--article-panel-shadow-hover: var(--plane-panel-shadow-hover);--article-accent-soft: color-mix(in srgb, var(--link) 9%, transparent);--article-accent-border: color-mix( in srgb, var(--link) 28%, var(--border) 72% );--article-radius: var(--radius-md);--article-radius-sm: var(--radius-xs);--article-card-radius: var(--radius-md)}.article-shell,.article-footer{max-width:var(--article-width);margin-left:auto;margin-right:auto}.article-shell{padding-top:1.8rem}.article-shell,.article-content{overflow-x:visible}.article-header{position:relative;margin-bottom:var(--space-4);padding-bottom:1.25rem;border-bottom:0}.article-header:after{position:absolute;right:0;bottom:0;left:0;height:2px;border-radius:var(--radius-pill);background:var(--header-accent-rule);opacity:.94;content:""}.article-header h1{max-width:42rem;margin:0;color:var(--text);font-size:clamp(1.85rem,1.55rem + .9vw,2.2rem);font-weight:600;line-height:1.24;letter-spacing:0}.tags-array{display:inline-flex;align-items:center;gap:0;font-family:var(--font-mono);font-size:.85em;line-height:1;letter-spacing:0}.tags-bracket,.tags-quote,.tags-comma{color:color-mix(in srgb,var(--text-muted) 72%,transparent)}.tags-list{display:inline-flex;align-items:center;gap:0;flex-wrap:wrap}.tags-item{color:inherit;text-decoration:none;padding:0;margin:0;display:inline}.tags-item:hover{color:var(--link)}.tags-item:focus-visible{outline:2px solid var(--link);outline-offset:2px}.article-body{color:var(--text-body);font-size:16px;line-height:1.78;font-family:var(--font)}.article-content :is(h1,h2,h3,h4,h5,h6,p,li){line-break:strict}.article-body p{margin:.95rem 0}.article-body a{color:var(--link);text-decoration:none;background-image:linear-gradient(currentColor,currentColor),linear-gradient(color-mix(in srgb,currentColor 32%,transparent),color-mix(in srgb,currentColor 32%,transparent));background-repeat:no-repeat;background-position:0 calc(100% - .12em),0 calc(100% - .12em);background-size:0% 1px,100% 1px;transition:background-size var(--motion-slow) var(--motion-ease),color var(--motion-fast) var(--motion-ease)}.article-body a:hover{color:var(--link-hover);background-size:100% 1px,100% 1px}.article-body a>code{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--link) 42%,transparent);text-decoration-thickness:1px;text-underline-offset:3px}.article-body a:hover>code{background:color-mix(in srgb,var(--code-bg) 62%,var(--link) 38%);color:var(--link-hover)}.article-content strong{color:color-mix(in srgb,var(--text) 86%,var(--link) 14%);font-weight:650}.article-content em{color:color-mix(in srgb,var(--text) 88%,var(--link) 12%);font-family:"Kaiti SC","STKaiti","KaiTi",var(--font-serif-cjk),serif;font-style:italic}.article-content del{color:var(--text-muted);text-decoration-color:color-mix(in srgb,var(--text-muted) 58%,transparent)}.article-content ins{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--link) 46%,transparent);text-decoration-thickness:1px;text-underline-offset:.18em}.article-content sup,.article-content sub{font-size:.72em;line-height:0;vertical-align:baseline;position:relative}.article-content sup{top:-.42em}.article-content sub{top:.26em}.article-content mark{padding:.04em .3em .1em;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.18em .42em .2em .4em;background:linear-gradient(100deg,color-mix(in srgb,var(--link) 16%,var(--surface-muted) 84%),color-mix(in srgb,var(--link) 20%,var(--surface-muted) 80%));color:inherit}.article-content :not(pre)>code,.article-content .article-file-path{border:0;border-radius:var(--radius-xs);background:color-mix(in oklch,var(--code-bg) 86%,var(--text) 6%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 10%,transparent);color:color-mix(in srgb,var(--text) 86%,var(--link) 14%);font-family:var(--font-mono);font-size:.88em;line-height:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:color var(--motion-fast) var(--motion-ease),background-color var(--motion-base) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease)}.article-content :not(pre)>code{padding:.05em .3em}.article-content :not(pre)>code:hover,.article-content .article-file-path:hover{background:color-mix(in oklch,var(--code-bg) 78%,var(--link) 12%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--link) 34%,transparent);color:var(--link-hover)}.article-content code::selection,.article-content pre code::selection,.article-content pre ::selection{background:color-mix(in srgb,var(--link) 36%,transparent)}.article-content :not(pre)>code::selection{background:color-mix(in srgb,var(--link) 30%,transparent)}.article-content kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.85em;min-height:1.62em;margin:0 .06em;padding:.08em .48em .12em;border:1px solid color-mix(in srgb,var(--border) 82%,var(--text) 18%);border-radius:var(--radius-inset);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,white 2%),color-mix(in srgb,var(--surface-muted) 72%,var(--surface) 28%));box-shadow:inset 0 1px color-mix(in srgb,white 72%,transparent),inset 0 -1px color-mix(in srgb,var(--text) 8%,transparent),0 1px color-mix(in srgb,var(--text) 18%,transparent),0 2px 3px color-mix(in srgb,var(--text) 8%,transparent);color:color-mix(in srgb,var(--text) 86%,var(--text-muted) 14%);font-family:-apple-system,BlinkMacSystemFont,var(--font);font-size:.8em;font-weight:600;line-height:1.15;letter-spacing:0;vertical-align:.04em;white-space:nowrap}.article-content ul:not(.contains-task-list):not(.article-steps):not(.article-timeline):not(.file-tree),.article-content ol:not(.article-steps):not(.footnotes-list){margin:.95rem 0}.article-content ul:not(.contains-task-list):not(.article-steps):not(.article-timeline):not(.file-tree){padding-left:.35rem;list-style:none}body.article-page .article-content ul:not(.contains-task-list):not(.article-steps):not(.article-timeline):not(.file-tree)>li{position:relative;padding-left:1.45rem}.article-content ul:not(.contains-task-list):not(.article-steps):not(.article-timeline):not(.file-tree)>li:before{position:absolute;top:.74em;left:.14rem;width:5px;height:5px;border-radius:var(--radius-circle);background:color-mix(in srgb,var(--link) 58%,var(--text-muted) 42%);content:""}.article-content ul:not(.contains-task-list) ul:not(.contains-task-list)>li:before{width:4px;height:4px;background:color-mix(in srgb,var(--text-muted) 64%,transparent)}.article-content ul:not(.contains-task-list) ul:not(.contains-task-list) ul>li:before{width:3px;height:3px;border-radius:1px;background:color-mix(in srgb,var(--text-subtle) 66%,transparent)}.article-content ol:not(.article-steps):not(.footnotes-list){padding-left:1.75rem}.article-content li:not(.footnotes-item):not(.article-timeline-item):not(.file-tree-item){margin-top:.42rem;margin-bottom:0;line-height:1.68}.article-content ol:not(.article-steps):not(.footnotes-list)>li::marker{color:var(--text-muted);font-weight:600;font-variant-numeric:tabular-nums}.article-content li:not(.footnotes-item)>:is(ul,ol){margin:8px 0 0}.article-content h2{margin:3.1rem 0 var(--space-2);border-top:1px solid var(--border-soft);padding-top:1.35rem;padding-left:0;border-left:0;color:var(--text);font-size:1.48rem;font-weight:600;line-height:1.36;letter-spacing:0}.article-content h2:first-child,.article-content>h2:first-of-type{margin-top:0;border-top:0;padding-top:0}.article-content h3{margin:var(--space-4) 0 .65rem;color:var(--text);font-size:1.18rem;font-weight:600;line-height:1.42;letter-spacing:0}.article-content h4{margin:var(--space-3) 0 var(--space-1);color:var(--text);font-size:1rem;font-weight:600;line-height:1.5}.article-heading{scroll-margin-top:1.25rem}.article-heading-anchor{text-decoration:none}.article-content blockquote{position:relative;margin:1.4rem 0 1.55rem;padding:.08rem 0 .08rem 1.2rem;border:0;border-left:2px solid color-mix(in srgb,var(--link) 45%,var(--border) 55%);background:transparent;color:var(--text-body);border-radius:0;font-size:.97em;line-height:1.75;font-family:var(--font-serif);font-optical-sizing:auto}.article-content blockquote:hover{border-left-color:color-mix(in srgb,var(--link) 62%,var(--border) 38%)}.article-content blockquote>:first-child{margin-top:0}.article-content blockquote>:last-child{margin-bottom:0}.article-content blockquote blockquote{margin:.9rem 0 .2rem;padding-left:1rem;border-left-color:color-mix(in srgb,var(--border-soft) 70%,transparent);background:transparent;font-size:.98em}.article-content details:not(.admonition){margin:1.45rem 0 1.65rem;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:var(--article-panel-bg);box-shadow:var(--article-panel-shadow);overflow:hidden}.article-content summary:not(.admonition-title){cursor:pointer;padding:.72rem .9rem;color:var(--text);font-weight:600;line-height:1.55;transition:background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease)}.article-content summary:not(.admonition-title):hover{background:var(--article-accent-soft)}.article-content summary:not(.admonition-title)::marker{color:var(--text-muted)}.article-content details:not(.admonition)>:not(summary){margin-left:.9rem;margin-right:.9rem}.article-content details:not(.admonition)>:last-child{margin-bottom:.9rem}.article-content .contains-task-list{margin-left:0;padding-left:0;list-style:none}.article-content .task-list-item{display:flex;align-items:flex-start;gap:var(--space-1);margin-bottom:.44rem}.article-content .task-list-item input[type=checkbox]{flex:0 0 auto;width:.98rem;height:.98rem;margin-top:.34em;appearance:none;-webkit-appearance:none;border:1px solid color-mix(in srgb,var(--border) 72%,var(--text) 28%);border-radius:var(--radius-xs);background:var(--surface);box-shadow:inset 0 1px color-mix(in srgb,white 55%,transparent);cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.article-content .task-list-item input[type=checkbox]:hover{border-color:color-mix(in srgb,var(--link) 62%,var(--border) 38%)}.article-content .task-list-item input[type=checkbox]:checked{border-color:var(--link);background:var(--link);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:78%}.article-content .task-list-item input[type=checkbox]:checked:hover{transform:scale(.94)}.article-content .task-list-item input[type=checkbox]:focus-visible{outline:2px solid var(--link);outline-offset:2px}.article-content :is(.footnotes,section[data-footnotes]){margin-top:2.2rem;padding-top:var(--space-2);border-top:1px solid var(--border-soft);color:var(--text-muted);font-size:.82rem;line-height:1.65}.article-content :is(.footnotes,section[data-footnotes]) :is(h2,h3){margin-top:0;padding-left:0;border-left:0;color:var(--text-muted);font-size:.86rem}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.article-content :is(h2,h3,h4){animation:article-heading-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 32%}}}@keyframes article-heading-reveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){body.article-page main{view-timeline-name:--article-progress;view-timeline-axis:block}#reading-progress{width:100%;transform:scaleX(0);transform-origin:left center;animation:reading-progress linear both;animation-timeline:--article-progress;animation-range:contain 0% contain 100%}}}@keyframes reading-progress{to{transform:scaleX(1)}}.article-content .expressive-code{max-width:100%;margin:1.45rem 0 1.65rem}.article-content .expressive-code pre{font-family:var(--font-mono)}.article-content .expressive-code .frame{border:var(--ec-brdWd) solid var(--ec-brdCol);border-radius:var(--article-radius);background:var(--code-background);box-shadow:var(--article-panel-shadow);overflow:hidden}.article-content .expressive-code .frame:hover{box-shadow:var(--article-panel-shadow-hover)}.article-content .expressive-code .frame figcaption.header{border:0;border-radius:var(--header-border-radius) var(--header-border-radius) 0 0;background:color-mix(in srgb,var(--surface) 78%,var(--code-bg) 22%)}.article-content .expressive-code .frame figcaption.header:before{border:0}.article-content .expressive-code .frame pre{border:0;border-radius:0}.article-content .expressive-code .frame.is-terminal{background:var(--ec-frm-trmTtbBg)}.article-content .expressive-code .frame.is-terminal figcaption.header{border-radius:var(--header-border-radius) var(--header-border-radius) 0 0;background:var(--ec-frm-trmTtbBg)}.article-content .expressive-code .frame figcaption.header .title{border-radius:var(--tab-border-radius) var(--tab-border-radius) 0 0;background:transparent;color:var(--text-muted)}[data-scheme=dark] .article-content .expressive-code:not([data-theme=one-light]){--ec-brdCol: #3c424e;--ec-codeBg: #282c34;--ec-codeFg: #abb2bf;--ec-codeSelBg: #67769660;--ec-gtrFg: #767c89;--ec-gtrBrdCol: #767c8933;--ec-gtrHlFg: #abb2bfd2;--ec-uiSelBg: #2c313a;--ec-uiSelFg: #d7dae0;--ec-focusBrd: #3e4452;--ec-sbThumbCol: #4e566660;--ec-sbThumbHoverCol: #60697afd;--ec-tm-markBg: #264a8980;--ec-tm-insBg: #26561c80;--ec-tm-insDiffIndCol: #7eb070d0;--ec-tm-delBg: #81322b80;--ec-tm-delDiffIndCol: #e68a7ed0;--ec-frm-shdCol: #0000005b;--ec-frm-frameBoxShdCssVal: .1rem .1rem .2rem #0000005b;--ec-frm-edActTabBg: #282c34;--ec-frm-edActTabFg: #dcdcdc;--ec-frm-edActTabIndBtmCol: #b4b4b4;--ec-frm-edTabBarBg: #21252b;--ec-frm-edTabBarBrdCol: #3c424e;--ec-frm-edBg: #282c34;--ec-frm-trmTtbFg: #9da5b4;--ec-frm-trmTtbDotsFg: #9da5b4;--ec-frm-trmTtbBg: #282c34;--ec-frm-trmTtbBrdBtmCol: #3c424e;--ec-frm-trmBg: #282c34;--ec-frm-inlBtnFg: #abb2bf;--ec-frm-inlBtnBg: #abb2bf;--ec-frm-inlBtnBrd: #abb2bf;--ec-frm-tooltipSuccessBg: #5c7f42}[data-scheme=dark] .article-content .expressive-code:not([data-theme=one-light]) .ec-line :where(span[style^=--]:not([class])){color:var(--1, inherit);background-color:var(--1bg, transparent);font-style:var(--1fs, inherit);font-weight:var(--1fw, inherit);text-decoration:var(--1td, inherit)}.article-content .katex{font-size:1.02em}.article-content :not(.katex-display)>.katex{padding:0 .06em}.article-math-block{position:relative;box-sizing:border-box;margin:1.45rem 0 1.65rem;overflow:hidden;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 48%,transparent),transparent 4rem),var(--article-panel-muted);box-shadow:var(--article-panel-shadow)}.article-content .katex-display{margin:0;overflow-x:auto;overflow-y:hidden;padding:1.05rem 1.15rem;scrollbar-width:thin}.article-content .katex-display>.katex{min-width:max-content}.article-math-copy{position:absolute;top:.52rem;right:.52rem;z-index:1;min-height:1.75rem;padding:.18rem .5rem;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius-sm);background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text-muted);cursor:pointer;font-family:var(--font);font-size:.74rem;line-height:1;transition:border-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease)}.article-math-copy:hover{border-color:var(--border);background:var(--surface);color:var(--text)}.article-math-copy[data-copied]{font-size:0}.article-math-copy[data-copied=true]{color:var(--link)}.article-math-copy[data-copied=true]:after{content:"完成";font-size:.74rem}.article-math-copy[data-copied=false]{color:var(--signal, #b42318)}.article-math-copy[data-copied=false]:after{content:"失败";font-size:.74rem}.article-mermaid{position:relative;box-sizing:border-box;display:block;width:100%;max-width:100%;margin:1.45rem 0 1.65rem;overflow-x:auto;padding:var(--space-2) .85rem;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:var(--article-panel-muted);box-shadow:var(--article-panel-shadow);transition:border-color var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease)}.article-mermaid:hover{border-color:var(--article-panel-border);box-shadow:var(--article-panel-shadow-hover)}.article-mermaid-stage{display:flex;justify-content:center;min-width:0;min-height:8rem;overflow:auto}.article-mermaid[data-mermaid-align=left] .article-mermaid-stage{justify-content:flex-start}.article-mermaid[data-mermaid-align=right] .article-mermaid-stage{justify-content:flex-end}.article-mermaid:not([data-mermaid-rendered=true]):not(.is-error):before{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted);content:"加载图表...";font-size:.82rem}.article-mermaid svg{flex:0 0 auto;max-width:100%;height:auto}.article-mermaid-stage.is-zoomable{cursor:grab;touch-action:none}.article-mermaid-stage.is-dragging{cursor:grabbing}.article-mermaid-stage.is-zoomable svg{max-width:none;will-change:transform}.article-mermaid.is-error{display:block;color:var(--text-muted);font-family:var(--font-mono);font-size:.82rem;line-height:1.6;white-space:pre-wrap}.article-mermaid.is-error .article-mermaid-stage{display:block;min-height:0}.article-echarts-shell{position:relative;margin:1.45rem 0 1.65rem}.article-echarts{position:relative;box-sizing:border-box;width:100%;max-width:100%;height:360px;min-height:240px;margin:1.45rem 0 1.65rem;overflow:hidden;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:var(--article-panel-muted);box-shadow:var(--article-panel-shadow);transition:border-color var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease)}.article-echarts:hover{border-color:var(--article-panel-border);box-shadow:var(--article-panel-shadow-hover)}.article-echarts-stage{width:100%;height:100%}.article-echarts-shell .article-echarts{margin:0}.article-echarts:not([data-echarts-rendered=true]):not(.is-error){color:transparent}.article-echarts:not([data-echarts-rendered=true]):not(.is-error):before{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted);content:"加载图表...";font-size:.82rem}.article-echarts.is-error{display:block;height:auto;min-height:0;padding:.85rem .9rem;color:var(--text-muted);font-family:var(--font-mono);font-size:.82rem;line-height:1.6;white-space:pre-wrap}.article-echarts-copy{position:absolute;top:.52rem;right:.52rem;z-index:1;min-height:1.75rem;padding:.18rem .5rem;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius-sm);background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text-muted);cursor:pointer;font-family:var(--font);font-size:.74rem;line-height:1;transition:border-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease)}.article-echarts-copy:hover{border-color:var(--border);background:var(--surface);color:var(--text)}.article-echarts-copy[data-copied=true]{color:var(--link)}.article-echarts-copy[data-copied=true]:after{content:"完成"}.article-echarts-copy[data-copied=true]{font-size:0}.article-echarts-copy[data-copied=true]:after{font-size:.74rem}.article-echarts-shell.is-error .article-echarts-copy{display:none}body.article-page .article-mermaid svg .node rect{fill:#e3ecff!important;stroke:#5b7cfa!important;stroke-width:2px!important;rx:10px;ry:10px}body.article-page .article-mermaid svg .edgePaths path,body.article-page .article-mermaid svg .edgePath path{stroke:#7c8db5!important;stroke-width:1.8px!important}body.article-page .article-mermaid svg .edgeLabels .edgeLabel,body.article-page .article-mermaid svg .edgeLabel{background:transparent}[data-scheme=dark] body.article-page .article-mermaid svg .node rect{fill:#1b2a52!important;stroke:#7b9cff!important}[data-scheme=dark] body.article-page .article-mermaid svg .edgePaths path,[data-scheme=dark] body.article-page .article-mermaid svg .edgePath path{stroke:#8fa3c8!important}.article-timeline{--article-timeline-line: var(--border-soft);--article-timeline-node-color: color-mix( in srgb, var(--link) 58%, var(--text-muted) 42% );--article-timeline-node-size: .62rem;--article-timeline-line-width: 1px;--article-timeline-rail-center: .5rem;--article-timeline-content-indent: 1.7rem;--article-timeline-item-pad-top: .42rem;--article-timeline-item-pad-bottom: .7rem;--article-timeline-content-size: .95rem;--article-timeline-content-lh: 1.65;--article-timeline-timestamp-size: .78rem;--article-timeline-timestamp-lh: 1.45;--article-timeline-timestamp-gap: .18rem;--article-timeline-timestamp-block: calc( ( var(--article-timeline-timestamp-size) * var(--article-timeline-timestamp-lh) ) + var(--article-timeline-timestamp-gap) );--article-timeline-node-top: calc( var(--article-timeline-item-pad-top) + ( var(--article-timeline-content-size) * var(--article-timeline-content-lh) / 2 ) );box-sizing:border-box;max-width:100%;margin:1.45rem 0 1.65rem;padding:0;overflow:visible;list-style:none}.article-timeline-item{position:relative;display:block;margin:0;padding:var(--article-timeline-item-pad-top) 0 var(--article-timeline-item-pad-bottom) var(--article-timeline-content-indent);color:var(--text-body);list-style:none}.article-timeline-item:before,.article-timeline-item:after{position:absolute;content:""}.article-timeline-item:before{top:var(--article-timeline-node-top);left:var(--article-timeline-rail-center);z-index:2;box-sizing:border-box;width:var(--article-timeline-node-size);height:var(--article-timeline-node-size);border:2px solid var(--article-timeline-node-color);border-radius:var(--radius-pill);background:var(--bg);outline:4px solid var(--bg);transform:translate(-50%,-50%);transition:background-color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),outline-color var(--motion-fast) var(--motion-ease),outline-width var(--motion-fast) var(--motion-ease)}.article-timeline-item:after{top:0;bottom:0;left:var(--article-timeline-rail-center);z-index:1;width:var(--article-timeline-line-width);background:var(--article-timeline-line);transform:translate(-50%)}.article-timeline-item:first-child:after{top:var(--article-timeline-node-top)}.article-timeline-item:last-child:after{bottom:calc(100% - var(--article-timeline-node-top))}.article-timeline-item:only-child:after{display:none}.article-timeline-item:has(>.article-timeline-timestamp.is-top){--article-timeline-node-top: calc( var(--article-timeline-item-pad-top) + var(--article-timeline-timestamp-block) + ( var(--article-timeline-content-size) * var(--article-timeline-content-lh) / 2 ) )}.article-timeline-item:hover:before{border-color:var(--link);outline:5px solid color-mix(in srgb,var(--link) 16%,var(--bg) 84%);background:color-mix(in srgb,var(--link) 8%,var(--bg) 92%)}.article-timeline-item:hover .article-timeline-content{color:var(--text);transform:translate(2px)}.article-timeline[data-animation] .article-timeline-item:before{animation:article-timeline-node-pulse 2s var(--motion-ease) 1;animation-delay:calc(var(--article-timeline-index, 1) * .12s)}.article-timeline-item[data-node=dot]:before{background:var(--article-timeline-node-color)}.article-timeline-item[data-size=small]{--article-timeline-node-size: .5rem}.article-timeline-item[data-size=large]{--article-timeline-node-size: .76rem}.article-timeline-item[data-type=info]{--article-timeline-node-color: var(--link)}.article-timeline-item[data-type=success]{--article-timeline-node-color: #2f9e5f}.article-timeline-item[data-type=warning]{--article-timeline-node-color: #c07a25}.article-timeline-item[data-type=error],.article-timeline-item[data-type=danger]{--article-timeline-node-color: #c94b4b}.article-timeline-timestamp{color:color-mix(in srgb,var(--text-muted) 86%,var(--link) 14%);font-family:var(--font-mono);font-size:var(--article-timeline-timestamp-size);line-height:var(--article-timeline-timestamp-lh)}.article-timeline-timestamp.is-top{margin:0 0 var(--article-timeline-timestamp-gap)}.article-timeline-timestamp.is-bottom{margin:var(--article-timeline-timestamp-gap) 0 0}.article-timeline-content{color:var(--text-body);font-size:var(--article-timeline-content-size);line-height:var(--article-timeline-content-lh);transition:color var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.article-timeline-content p{margin:.45rem 0 0}.article-timeline-content p:first-child{margin-top:0}.article-timeline-content code{font-size:.88em}.article-timeline.is-error{display:block;padding:.85rem .9rem;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:var(--article-panel-muted);color:var(--text-muted);font-family:var(--font-mono);font-size:.82rem;line-height:1.6}@keyframes article-timeline-node-pulse{0%,to{border-color:var(--article-timeline-line)}50%{border-color:var(--article-timeline-node-color)}}.article-music{margin:1.45rem 0 1.65rem;padding:0}.article-music .aplayer{margin:0;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:var(--article-panel-bg);box-shadow:var(--article-panel-shadow);color:var(--text-body);font-family:var(--font);overflow:hidden;transition:border-color var(--motion-base) var(--motion-ease),background-color var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease)}.article-music .aplayer:hover{border-color:var(--article-accent-border);box-shadow:var(--article-panel-shadow-hover)}.article-music .aplayer .aplayer-info{border-bottom-color:var(--article-panel-border-soft)}.article-music .aplayer .aplayer-title{color:var(--text);font-weight:500}.article-music .aplayer .aplayer-author,.article-music .aplayer .aplayer-time,.article-music .aplayer .aplayer-list-author{color:var(--text-muted)}.article-music .aplayer .aplayer-icon path{fill:currentColor}.article-music .aplayer .aplayer-icon{color:var(--text-muted)}.article-music .aplayer .aplayer-icon:hover{color:var(--link)}.article-music .aplayer .aplayer-bar-wrap .aplayer-bar,.article-music .aplayer .aplayer-volume-bar-wrap .aplayer-volume-bar{background:color-mix(in srgb,var(--border) 72%,transparent)}.article-music .aplayer .aplayer-list{border-top-color:var(--border-soft)}.article-music .aplayer .aplayer-list ol li{border-top-color:var(--border-soft);color:var(--text-body)}.article-music .aplayer .aplayer-list ol li:hover,.article-music .aplayer .aplayer-list ol li.aplayer-list-light{background:color-mix(in srgb,var(--link) 9%,transparent)}.article-music .aplayer .aplayer-list ol li.aplayer-list-light{color:var(--text)}.article-music .aplayer .aplayer-lrc{color:var(--text-muted)}.article-music .aplayer .aplayer-lrc:before,.article-music .aplayer .aplayer-lrc:after{background:linear-gradient(180deg,var(--article-panel-bg),color-mix(in srgb,var(--article-panel-bg) 0%,transparent))}.article-music .aplayer .aplayer-lrc:after{background:linear-gradient(180deg,color-mix(in srgb,var(--article-panel-bg) 0%,transparent),var(--article-panel-bg))}.article-music .aplayer .aplayer-notice{background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text-muted)}.article-music.is-error{padding:.85rem .9rem;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:var(--article-panel-muted);color:var(--text-muted);font-family:var(--font-mono);font-size:.82rem;line-height:1.6}.article-file-tree{--file-tree-indent: 1rem;--file-tree-icon-size: 1rem;--file-tree-row-radius: 5px;margin:1.45rem 0 1.65rem;overflow-x:auto;padding:.78rem .86rem;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 42%,transparent),transparent 4.5rem),var(--article-panel-muted);color:var(--text-body);box-shadow:var(--article-panel-shadow);transition:border-color var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease)}.article-file-tree:hover{border-color:var(--article-panel-border);box-shadow:var(--article-panel-shadow-hover)}.article-file-tree.is-error{border-color:color-mix(in srgb,var(--signal, #d14) 28%,var(--border-soft) 72%)}.article-content ul.file-tree{margin:0;padding:0;list-style:none}.article-content .file-tree .file-tree{margin-left:calc(var(--file-tree-indent) + .18rem);padding-left:.68rem;border-left:1px solid color-mix(in srgb,var(--border) 58%,transparent)}.article-content .file-tree-item{margin:0;line-height:1.55}.article-content .file-tree-label{display:inline-flex;align-items:center;min-width:0;max-width:100%;min-height:1.65rem;gap:.34rem;padding:.08rem .42rem;border-radius:var(--file-tree-row-radius);color:inherit;font-family:var(--font-mono);font-size:.86rem;line-height:1.4;white-space:nowrap;transition:background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease)}.article-content button.file-tree-label{border:0;background:transparent;cursor:pointer}.article-content button.file-tree-label:hover,.article-content button.file-tree-label:focus-visible,.article-content .file-tree-item.is-highlighted>.file-tree-label{background:color-mix(in srgb,var(--link) 8%,var(--surface) 92%);color:var(--text);outline:0}.article-content button.file-tree-label:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--link) 34%,transparent)}.article-content .file-tree-item.is-highlighted>.file-tree-label{color:var(--link);font-weight:600}.file-tree-label-inner{overflow:hidden;text-overflow:ellipsis}.file-tree-twist,.file-tree-icon{display:inline-block;flex:0 0 auto;width:var(--file-tree-icon-size);height:var(--file-tree-icon-size);background:currentColor}.file-tree-twist{width:.8rem;height:.8rem;color:var(--text-muted);transform:rotate(90deg);transition:transform var(--motion-fast) var(--motion-ease);mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m9 18 6-6-6-6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat}.file-tree-folder.is-collapsed>.file-tree-toggle .file-tree-twist{transform:rotate(0)}.file-tree-file>.file-tree-label{padding-left:calc(.8rem + .38rem + .34rem)}.file-tree-file>.file-tree-label .file-tree-icon{color:color-mix(in srgb,var(--text-muted) 84%,var(--text) 16%);mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat}.file-tree-folder>.file-tree-toggle .file-tree-icon{color:color-mix(in srgb,var(--link) 66%,var(--text-muted) 34%);mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 6.5A2.5 2.5 0 0 1 5.5 4H10l2 2h6.5A2.5 2.5 0 0 1 21 8.5v9A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat}.file-tree-empty{margin:0;color:var(--text-muted);font-family:var(--font-mono);font-size:.84rem;line-height:1.6}.article-table-scroll{max-width:100%;width:100%;margin:1.35rem 0 1.6rem;overflow-x:auto}.article-content table{display:table;width:max-content;min-width:100%;max-width:none;margin:0;border:0;border-radius:0;border-collapse:collapse;border-spacing:0;background:transparent;font-size:14px;line-height:24px;box-shadow:none;transition:color var(--motion-base) var(--motion-ease),background-color var(--motion-base) var(--motion-ease)}.article-content th,.article-content td{border:1px solid var(--article-panel-border-soft);padding:.55rem .82rem;vertical-align:top;overflow-wrap:anywhere;transition:border-color var(--motion-base) var(--motion-ease),background-color var(--motion-base) var(--motion-ease),color var(--motion-base) var(--motion-ease)}.article-content tr{background:var(--surface);border-top:1px solid var(--article-panel-border-soft);transition:background-color var(--motion-base) var(--motion-ease)}.article-content tr:nth-child(2n){background:color-mix(in srgb,var(--bg-alt) 58%,var(--surface) 42%)}.article-content tbody tr:hover>td{border-color:color-mix(in srgb,var(--link) 22%,var(--article-panel-border-soft) 78%);background:color-mix(in srgb,var(--link) 8%,var(--surface) 92%);color:var(--text)}.article-content th{background:color-mix(in srgb,var(--surface-muted) 66%,var(--surface) 34%);color:var(--text);font-size:14px;font-weight:600;letter-spacing:0}.article-content td{font-size:14px}.article-content table :not(pre)>code{padding:.06em .3em;font-size:.92em;line-height:inherit;white-space:nowrap}.article-body img,.article-video{display:block;width:100%;max-width:100%;height:auto;margin:1.55rem 0 .55rem;border:1px solid var(--image-border);border-radius:var(--article-radius);background:var(--surface);padding:3px;box-shadow:var(--article-panel-shadow);transition:border-color var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),filter var(--motion-base) var(--motion-ease)}.article-body img{cursor:zoom-in}.article-body .article-figure{margin:1.55rem 0 1.65rem}.article-body .article-figure>img{margin:0}.article-body .article-figure>figcaption{width:100%;max-width:100%;margin:.5rem 0 0;color:var(--text-muted);font-size:.74rem;line-height:1.55;text-align:center}.article-body img:hover{border-color:var(--article-panel-border);box-shadow:var(--article-panel-shadow-hover)}.article-video{margin-bottom:1.65rem}.article-embed{position:relative;width:100%;max-width:var(--article-media-width);margin:1.55rem auto 1.65rem;overflow:hidden;border:1px solid var(--image-border);border-radius:var(--article-radius);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 78%,transparent),transparent 62%),var(--article-panel-muted);box-shadow:var(--article-panel-shadow);transition:border-color var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease)}.article-embed:hover{border-color:var(--article-panel-border);box-shadow:var(--article-panel-shadow-hover)}.article-embed:before{content:"";display:block;aspect-ratio:16 / 9}.article-embed iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:transparent}.article-embed-facade{position:absolute;inset:0;z-index:1;display:grid;place-content:center;justify-items:center;gap:.55rem;margin:0;border:0;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 18%,transparent),color-mix(in srgb,var(--text) 10%,transparent)),var(--article-panel-muted);color:var(--text);cursor:pointer;font-family:var(--font);transition:background-color var(--motion-base) var(--motion-ease),color var(--motion-base) var(--motion-ease)}.article-embed-facade:hover,.article-embed-facade:focus-visible{color:var(--link);outline:none;background:linear-gradient(180deg,color-mix(in srgb,var(--link) 8%,transparent),color-mix(in srgb,var(--text) 12%,transparent)),var(--article-panel-muted)}.article-embed-facade-play{display:grid;place-items:center;width:3.1rem;height:3.1rem;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:var(--article-shadow-soft, var(--article-panel-shadow))}.article-embed-facade-play:before{width:0;height:0;margin-left:.18rem;border-style:solid;border-width:.42rem 0 .42rem .7rem;border-color:transparent transparent transparent currentColor;content:""}.article-embed-facade-label{color:var(--text-muted);font-size:.82rem;font-weight:560;letter-spacing:.04em;line-height:1.3}.article-embed-facade:hover .article-embed-facade-label,.article-embed-facade:focus-visible .article-embed-facade-label{color:inherit}.article-embed-error{padding:var(--space-2) 1.1rem;color:var(--text-muted);font-size:.9rem;line-height:1.6}.article-embed-error:before{content:none}.article-mermaid,.article-echarts,.article-file-tree,.article-music,.article-tabs,.article-embed{content-visibility:auto;contain-intrinsic-size:240px 720px}.article-content .gallery{content-visibility:auto;contain-intrinsic-size:320px 320px}.article-embed-bilibili{content-visibility:auto;contain-intrinsic-size:320px 180px}.article-image-caption{width:100%;max-width:100%;margin:0 0 1.65rem;color:var(--text-muted);font-size:.74rem;line-height:1.55;text-align:center}.article-embed-bilibili .article-embed-facade.has-cover{display:block;place-content:initial;justify-items:initial;background:var(--article-panel-muted)}.article-embed-bilibili .bilibili-cover{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;transition:transform var(--motion-base) var(--motion-ease),filter var(--motion-base) var(--motion-ease)}.article-embed-bilibili .bilibili-shade{position:absolute;inset:auto 0 0;height:58%;pointer-events:none;background:linear-gradient(180deg,transparent,color-mix(in srgb,black 72%,transparent) 130%);opacity:.9;transition:opacity var(--motion-base) var(--motion-ease)}.article-embed-bilibili .bilibili-play{position:absolute;top:50%;left:50%;width:3.2rem;height:3.2rem;margin:-1.6rem 0 0 -1.6rem;display:grid;place-items:center;border-radius:var(--radius-pill);background:color-mix(in srgb,black 52%,transparent);color:#fff;pointer-events:none;transition:background-color var(--motion-base) var(--motion-ease),transform var(--motion-base) var(--motion-ease);box-shadow:0 2px 10px color-mix(in srgb,black 38%,transparent),inset 0 0 0 1px color-mix(in srgb,white 22%,transparent)}.article-embed-bilibili .bilibili-play:before{width:0;height:0;margin-left:.16rem;border-style:solid;border-width:.45rem 0 .45rem .78rem;border-color:transparent transparent transparent currentColor;content:""}.article-embed-bilibili .bilibili-meta{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:.08rem;padding:.9rem 1rem .75rem;color:#fff;text-align:left;pointer-events:none}.article-embed-bilibili .bilibili-title{font-family:var(--font);font-size:.92rem;font-weight:600;letter-spacing:.005em;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.article-embed-bilibili .bilibili-duration{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;line-height:1.5;opacity:.82}.article-embed-bilibili .article-embed-facade.has-cover:hover .bilibili-cover,.article-embed-bilibili .article-embed-facade.has-cover:focus-visible .bilibili-cover{transform:scale(1.03);filter:brightness(1.04)}.article-embed-bilibili .article-embed-facade.has-cover:hover .bilibili-play,.article-embed-bilibili .article-embed-facade.has-cover:focus-visible .bilibili-play{background:color-mix(in srgb,black 62%,transparent);transform:scale(1.08)}@media(prefers-reduced-motion:reduce){.article-embed-bilibili .article-embed-facade.has-cover:hover .bilibili-cover,.article-embed-bilibili .article-embed-facade.has-cover:focus-visible .bilibili-cover,.article-embed-bilibili .article-embed-facade.has-cover:hover .bilibili-play,.article-embed-bilibili .article-embed-facade.has-cover:focus-visible .bilibili-play{transform:none}}.article-comments,.article-footer{max-width:var(--article-width);margin-left:auto;margin-right:auto}.article-comments{margin-top:var(--space-6);padding-top:1.45rem;border-top:1px solid var(--border-soft)}.article-comments-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);margin-bottom:.85rem}.article-comments-header h2{margin:0;color:var(--text);font-size:1rem;line-height:1.4}.article-comments-header p{margin:0;color:var(--text-muted);font-size:.78rem;line-height:1.6;text-align:right}.article-comments-panel{min-height:0;color:var(--text-muted)}.article-comments-panel.is-loading:before{display:block;color:var(--text-muted);content:"评论加载中...";font-size:.82rem;line-height:2.4rem}.article-comments-panel.has-error{color:var(--text-muted);font-size:.82rem;line-height:1.7}.article-comments-load{display:inline-flex;align-items:center;justify-content:center;height:2rem;padding:0 .72rem;border:1px solid var(--article-panel-border);border-radius:var(--article-radius-sm);background:var(--surface);color:var(--text);font-family:var(--font);font-size:.82rem;line-height:1;cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.article-comments-load:hover,.article-comments-load:focus-visible{border-color:var(--article-accent-border);color:var(--link);transform:translateY(-1px)}.article-comments-hint{display:inline;margin:0 0 0 .58rem;color:var(--text-muted);font-size:.78rem;line-height:1.7}.article-footer{margin-top:2.55rem;padding-top:1.2rem;border-top:1px solid var(--border-soft)}.article-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;align-items:stretch}.article-nav-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);padding:.78rem .86rem;color:var(--text);text-decoration:none;background:var(--article-panel-bg);box-shadow:var(--article-panel-shadow);transition:border-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.article-nav-card:hover{border-color:var(--article-accent-border);color:var(--link);box-shadow:var(--article-panel-shadow-hover);transform:translateY(-1px)}.article-nav-label{display:inline-flex;align-items:center;gap:.25rem;margin-bottom:.25rem;color:var(--text-muted);font-size:.76rem;line-height:1.3}.article-nav-label svg{stroke:currentColor}.article-nav-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;line-height:1.45}.article-nav-next{text-align:right;align-items:flex-end}.article-nav-next .article-nav-label{justify-content:flex-end}.article-nav-empty{cursor:not-allowed}.article-nav-empty:hover{border-color:var(--article-panel-border-soft);box-shadow:var(--article-panel-shadow);transform:none}.article-nav-placeholder{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;line-height:1.45;color:var(--text-muted)}.article-shortcuts{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:var(--space-2, 1rem);background:#0006;animation:toc-fade-in var(--motion-fast, .15s) var(--motion-ease, ease) both}.article-shortcuts-card{position:relative;width:min(90vw,22rem);padding:1.1rem 1.2rem 1rem;border:1px solid var(--border);border-radius:var(--plane-panel-radius);background:var(--panel-bg, var(--bg, #fff));box-shadow:0 10px 40px #0003;color:var(--text)}.article-shortcuts-title{margin:0 0 .7rem;font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.article-shortcuts-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.34rem 0;border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.article-shortcuts-row:first-of-type{border-top:0}.article-shortcuts-key{padding:.18rem .4rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--text) 4%,transparent);font:600 .74rem / 1 var(--font);color:var(--text)}.article-shortcuts-desc{font-size:.82rem;color:var(--text-muted)}.article-shortcuts-close{position:absolute;top:.5rem;right:.6rem;width:1.8rem;height:1.8rem;border:0;background:transparent;color:var(--text-muted);font:1.2rem / 1 var(--font);cursor:pointer}.article-shortcuts-close:hover,.article-shortcuts-close:focus-visible{color:var(--link)}@media(prefers-reduced-motion:reduce){.article-shortcuts{animation:none}}.article-related{max-width:var(--article-width);margin:2.2rem auto 0;padding-top:1.2rem;border-top:1px solid var(--border-soft)}.article-related-head{display:flex;align-items:center;gap:.4rem;margin-bottom:.8rem;color:var(--text-muted)}.article-related-head svg{stroke:currentColor}.article-related-head h2{margin:0;color:var(--text);font-size:.92rem;font-weight:600;line-height:1.4}.article-related-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:0;padding:0;list-style:none}.article-related-card{display:flex;flex-direction:column;gap:.38rem;min-width:0;height:100%;padding:.62rem .72rem;border:1px solid var(--article-panel-border-soft);border-radius:var(--article-radius);background:var(--article-panel-bg);box-shadow:var(--article-panel-shadow);color:var(--text);text-decoration:none;transition:border-color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.article-related-card:hover,.article-related-card:focus-visible{border-color:var(--article-accent-border);box-shadow:var(--article-panel-shadow-hover);transform:translateY(-1px)}.article-related-meta{display:flex;flex-wrap:wrap;gap:.42rem;align-items:center;color:var(--text-muted);font-family:var(--font-mono);font-size:.68rem;line-height:1.3;font-variant-numeric:tabular-nums}.article-related-meta>span:last-child{color:color-mix(in srgb,var(--text-muted) 82%,var(--link) 18%);font-family:var(--font)}.article-related-title{display:-webkit-box;overflow:hidden;color:var(--text);font-size:.85rem;font-weight:560;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2;transition:color var(--motion-fast) var(--motion-ease)}.article-related-card:hover .article-related-title,.article-related-card:focus-visible .article-related-title{color:var(--link)}@media(max-width:760px){.article-related-list{grid-template-columns:1fr;gap:.5rem}}.article-content .gallery{--gallery-gap: .5rem;--gallery-columns: 2;display:grid;grid-template-columns:repeat(var(--gallery-columns),minmax(0,1fr));align-items:start;gap:var(--gallery-gap);width:100%;max-width:100%;margin:1.55rem 0 1.8rem}.article-content .gallery[data-columns="3"]{--gallery-columns: 3}.article-content .gallery .gallery-item{margin:0;min-width:0}.article-content .gallery .gallery-item>img{margin:0;padding:0}.article-content .gallery figcaption{text-align:left}.article-content .gallery[data-crop] .gallery-item>img{aspect-ratio:var(--gallery-crop, 4 / 3);object-fit:cover}.article-content .gallery[data-crop="1:1"]{--gallery-crop: 1 / 1}.article-content .gallery[data-crop="4:3"]{--gallery-crop: 4 / 3}.article-content .gallery[data-crop="3:2"]{--gallery-crop: 3 / 2}.article-content .gallery[data-crop="16:9"]{--gallery-crop: 16 / 9}.article-content .gallery[data-layout=rows]{--gallery-gap: .7rem;display:flex;flex-wrap:wrap}.article-content .gallery[data-layout=rows] .gallery-item{flex:var(--gallery-aspect, 1.4) 1 0}.article-content .gallery[data-layout=rows].gallery[data-crop] .gallery-item>img{object-fit:cover}@media(max-width:760px){.article-content .gallery{--gallery-columns: 1;margin:1.15rem 0 1.45rem}.article-content .gallery[data-columns="3"]{--gallery-columns: 1}.article-content .gallery[data-layout=rows] .gallery-item{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){.article-content .gallery .gallery-item>img,.article-content .article-figure>img{transition:none}}.poem{margin:2.4em auto;position:relative;background:var(--plane-inset-bg);border:1px solid var(--plane-inset-border);border-radius:var(--plane-inset-radius);padding:2.2em clamp(1.1em,4vw,2.2em);color:var(--text);outline:1px solid color-mix(in oklch,var(--plane-inset-border) 86%,transparent);outline-offset:4px;box-shadow:0 1px 2px color-mix(in oklch,var(--text) 6%,transparent)}.poem:not(.is-vertical){max-width:34em;text-align:center}.poem:not(.is-vertical) .poem-lines{display:flex;flex-direction:column;gap:.5em}.poem:not(.is-vertical) .poem-line{font-family:var(--font-serif-cjk);font-size:1.18em;line-height:2;letter-spacing:.05em;white-space:pre-wrap}.poem:not(.is-vertical) .poem-line:nth-child(odd){margin-bottom:.35em}.poem:not(.is-vertical) .poem-line:last-child{margin-bottom:0}.poem.is-vertical{margin:2.4em auto;width:fit-content;max-width:100%;overflow-x:auto;font-family:var(--font-serif-cjk);display:flex;flex-direction:row;align-items:flex-start;--grid-line: color-mix(in oklch, var(--text) 13%, transparent)}.poem.is-vertical .poem-lines{display:flex;flex-direction:column;gap:1.2em;justify-content:center;line-height:1.6;writing-mode:vertical-rl;text-orientation:upright}.poem.is-vertical .poem-line{font-size:1.15em;letter-spacing:.2em;white-space:nowrap;line-height:1.5;border-block-end:1px solid var(--grid-line)}.poem .poem-source{font-family:var(--font-serif-cjk);font-size:.86em;color:var(--text-subtle);text-align:center;letter-spacing:.08em}.poem:not(.is-vertical) .poem-source{margin-top:0;margin-bottom:1em}.poem.is-vertical .poem-source{writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;letter-spacing:.12em;margin:0 0 0 1.3em;order:2}.poem[data-rule=zhu]{--grid-line: color-mix(in oklab, var(--zhu) 92%, transparent)}.poem[data-rule=zhu]{outline-color:color-mix(in oklab,var(--zhu) 46%,transparent)}.poem-note{font-family:var(--font-serif-cjk);color:color-mix(in srgb,var(--text) 62%,var(--text-muted) 38%)}.poem.is-vertical .poem-note{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.1em;margin-block:.1em;font-size:max(.46em,9px);line-height:1.12;letter-spacing:.04em}.poem-note-col{white-space:nowrap}.poem:not(.is-vertical) .poem-note{font-size:max(.5em,10px);letter-spacing:.04em;vertical-align:baseline}.poem:not(.is-vertical) .poem-note-col+.poem-note-col:before{content:" "}.poem-note.is-popover{position:relative;display:inline-block;padding:0 .18em;border:1px solid color-mix(in oklab,var(--zhu) 58%,transparent);border-radius:var(--radius-xs);font-family:var(--font);font-size:.52em;line-height:1.5;cursor:help}.poem.is-vertical .poem-note.is-popover{margin-block:.1em}.poem-note.is-popover:after{position:absolute;top:calc(100% + .34rem);left:0;z-index:30;width:max-content;max-width:15rem;box-sizing:border-box;padding:.5rem .62rem;border:1px solid var(--plane-panel-border);border-radius:var(--radius-xs);background:var(--surface);box-shadow:0 12px 30px -20px color-mix(in srgb,var(--text) 46%,transparent);color:var(--text-body);content:attr(data-note);font-family:var(--font);font-size:.78rem;font-style:normal;letter-spacing:.01em;line-height:1.7;opacity:0;pointer-events:none;text-align:left;transition:opacity var(--motion-fast) var(--motion-ease);visibility:hidden;white-space:normal;writing-mode:horizontal-tb}.poem-note.is-popover:hover:after,.poem-note.is-popover:focus-visible:after{opacity:1;visibility:visible}.poem-note.is-popover.is-above:after{top:auto;bottom:calc(100% + .34rem)}.poem.is-focusing .poem-line{opacity:.32;transition:opacity var(--motion-base) var(--motion-ease)}.poem.is-focusing .poem-line.is-focus{opacity:1}.poem.is-vertical .poem-line{cursor:default}.poem-mark{position:relative}.poem-mark:after{position:absolute;width:.24em;height:.24em;border-radius:var(--radius-circle);background:color-mix(in oklab,var(--zhu) 88%,transparent);content:""}.poem.is-vertical .poem-mark:after{inset-block-start:-.42em;inset-inline-start:50%;margin-inline-start:-.11em;inset-inline-end:auto}.poem:not(.is-vertical) .poem-mark:after{top:-.12em;right:-.2em}.poem-sign{font-family:var(--font-serif-cjk);font-size:.6em;letter-spacing:.1em;color:color-mix(in srgb,var(--text) 62%,var(--text-muted) 38%)}.poem.is-vertical .poem-sign{margin-block:.42em .3em;font-size:.56em}.poem:not(.is-vertical) .poem-signature{display:flex;align-items:center;justify-content:flex-end;margin-top:.75em}.poem-colophon{position:absolute;bottom:.5rem;left:.7rem;color:var(--text-subtle);font-family:var(--font-mono);font-size:.6rem;font-variant-numeric:tabular-nums;letter-spacing:.08em;opacity:.72;pointer-events:none}@media(max-width:640px){.poem{padding:1.6em 1.1em}.poem.is-vertical{margin:1.8em auto}.poem.is-vertical .poem-lines{gap:1.05em}.poem.is-vertical .poem-source{margin-left:1em}}[data-scheme=dark] .poem{border-color:color-mix(in oklab,var(--plane-inset-border) 62%,var(--text) 38%)}body.article-page{--article-ink: color-mix(in oklch, var(--text-body) 92%, var(--text) 8%);--article-ink-strong: var(--text);--article-faint: color-mix(in oklch, var(--text-muted) 72%, transparent);--article-hairline: color-mix( in oklch, var(--border-soft) 88%, var(--border) 12% );--article-rule: linear-gradient( 90deg, transparent 0, var(--article-hairline) 12%, color-mix(in oklch, var(--border) 78%, transparent) 52%, var(--article-hairline) 88%, transparent 100% );--article-card-bg: color-mix( in oklch, var(--surface) 94%, var(--surface-muted) 6% );--article-card-bg-soft: color-mix( in oklch, var(--surface-muted) 48%, var(--surface) 52% );--article-card-border: color-mix( in oklch, var(--border) 54%, var(--border-soft) 46% );--article-card-shadow: 0 1px 0 color-mix(in oklch, white 72%, transparent), 0 14px 34px -28px color-mix(in oklch, var(--color-base-content) 22%, transparent);--article-card-shadow-hover: 0 1px 0 color-mix(in oklch, white 80%, transparent), 0 20px 42px -28px color-mix(in oklch, var(--color-base-content) 28%, transparent);--article-link-soft: color-mix(in oklch, var(--link) 10%, transparent);--article-dateplate-accent: var(--link);--article-dateplate-accent-soft: color-mix( in oklch, var(--link) 12%, var(--surface-muted) 88% );--article-accent-soft: color-mix( in oklch, var(--article-dateplate-accent) 12%, transparent )}[data-scheme=dark] body.article-page{--article-card-bg: color-mix( in oklch, var(--surface) 88%, var(--bg-alt) 12% );--article-card-bg-soft: color-mix( in oklch, var(--surface-muted) 54%, var(--surface) 46% );--article-card-shadow: 0 16px 36px -28px color-mix(in oklch, black 82%, transparent);--article-card-shadow-hover: 0 22px 48px -30px color-mix(in oklch, black 92%, transparent);--article-dateplate-accent: var(--link);--article-dateplate-accent-soft: color-mix( in oklch, var(--link) 16%, var(--surface) 84% )}body.article-page .article-shell,body.article-page .article-comments,body.article-page .article-footer{width:min(100%,var(--article-width))}body.article-page .article-shell{padding-top:2.05rem}body.article-page .article-header{margin-bottom:2.35rem;padding-bottom:1.48rem}body.article-page .article-header:after{height:2px;border-radius:var(--radius-pill);background:linear-gradient(90deg,color-mix(in srgb,var(--article-dateplate-accent) 78%,var(--border) 22%) 0 3.6rem,color-mix(in srgb,var(--article-dateplate-accent) 28%,transparent) 3.6rem 5.4rem,color-mix(in srgb,var(--border) 56%,transparent) 5.4rem,color-mix(in srgb,var(--border-soft) 34%,transparent) 64%,transparent 100%);opacity:.94}body.article-page .article-header h1{max-width:42rem;color:var(--text);font-size:clamp(1.92rem,1.7rem + .85vw,2.18rem);font-weight:700;letter-spacing:-.018em;line-height:1.18;text-wrap:balance}body.article-page .weather-condition{color:color-mix(in srgb,var(--text) 68%,currentColor 32%);font-weight:560}body.article-page .article-body{color:var(--article-ink);font-size:1rem;line-height:1.84;text-rendering:optimizeLegibility;font-kerning:normal;font-variant-numeric:oldstyle-nums proportional-nums}body.article-page .article-content>*{max-width:100%}body.article-page .article-content :is(p,ul,ol,dl,blockquote,hr,h2,h3,h4,h5,h6,.admonition):not(:has(>img)):not(.article-image-caption){max-width:var(--article-measure)}body.article-page .article-content p{margin:1.05rem 0}body.article-page .article-content>p:first-child{margin-top:0}body.article-page .article-content :is(strong,b){color:var(--article-ink-strong);font-weight:650}body.article-page .article-content :is(em,i){color:color-mix(in srgb,var(--text) 88%,var(--text-body) 12%);font-style:italic}body.article-page .article-content abbr[title]{cursor:help;text-decoration:underline dotted color-mix(in srgb,var(--link) 42%,transparent);text-underline-offset:.2em}body.article-page .article-content a{border-radius:var(--radius-xs);color:var(--link);text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,currentColor 30%,transparent);text-underline-offset:.22em;transition:background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),text-decoration-color var(--motion-fast) var(--motion-ease)}body.article-page .article-content a:hover{background:var(--article-link-soft);color:var(--link-hover);text-decoration-color:currentColor}body.article-page .article-content a:focus-visible{outline:2px solid color-mix(in srgb,var(--link) 52%,transparent);outline-offset:3px}body.article-page .article-content :not(pre)>code,body.article-page .article-content .article-file-path{overflow-wrap:anywhere}body.article-page .article-content mark{box-decoration-break:clone;-webkit-box-decoration-break:clone;background:linear-gradient(transparent 54%,color-mix(in srgb,var(--article-dateplate-accent) 24%,transparent) 0),color-mix(in srgb,var(--article-dateplate-accent) 9%,transparent)}body.article-page .article-content del{color:var(--article-faint)}body.article-page .article-content :is(h2,h3,h4,h5,h6){color:var(--article-ink-strong);letter-spacing:-.01em;text-wrap:balance}body.article-page .article-content :is(h2,h3,h4){--heading-tag-open: "<h2>";--heading-tag-close: "</h2>";--heading-accent: var(--link);position:relative;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.42rem;row-gap:.18rem;margin:2.65rem 0 .95rem;padding:0;border:0;border-radius:0;background:none;box-shadow:none}body.article-page .article-content :is(h2,h3,h4):before,body.article-page .article-content :is(h2,h3,h4):after{position:relative;top:-.02em;display:inline-block;flex:0 0 auto;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:color-mix(in srgb,var(--heading-accent) 58%,var(--text-muted) 42%);font-family:var(--font-mono);font-style:normal;font-weight:560;font-variant-ligatures:none;letter-spacing:.03em;line-height:1;white-space:nowrap;opacity:.72;transform:skew(-12deg);pointer-events:none;user-select:none}body.article-page .article-content :is(h2,h3,h4):before{order:0;content:var(--heading-tag-open)}body.article-page .article-content :is(h2,h3,h4):after{order:2;content:var(--heading-tag-close)}body.article-page .article-content :is(h2,h3,h4)>.article-heading-anchor{order:3;margin-left:.12rem}body.article-page .article-content h2{--heading-tag-open: "<h2>";--heading-tag-close: "</h2>";--heading-accent: var(--link);margin:2.85rem 0 .95rem;padding:0;background:none;background-image:none;font-weight:680;line-height:1.32}body.article-page .article-content h2:before,body.article-page .article-content h2:after{font-size:.82em}body.article-page .article-content h2:first-child,body.article-page .article-content>h2:first-of-type{margin-top:.35rem;padding-top:0}body.article-page .article-content h3{--heading-tag-open: "<h3>";--heading-tag-close: "</h3>";--heading-accent: color-mix( in srgb, var(--link) 58%, var(--text-muted) 42% );margin:2.05rem 0 .68rem;padding:0;font-size:1.14rem;font-weight:650;line-height:1.42}body.article-page .article-content :is(h2,h3,h4)+p{margin-top:1.35rem}body.article-page .article-content h3:before,body.article-page .article-content h3:after{font-size:.78em}body.article-page .article-content h4{--heading-tag-open: "<h4>";--heading-tag-close: "</h4>";--heading-accent: color-mix( in srgb, var(--text-muted) 62%, var(--link) 38% );margin:1.7rem 0 .55rem;padding:0;color:color-mix(in srgb,var(--text) 92%,var(--text-muted) 8%);font-size:1rem;font-weight:640;font-style:normal;line-height:1.45;letter-spacing:0}body.article-page .article-content h4:before,body.article-page .article-content h4:after{font-size:.74em}body.article-page .article-content :is(h5,h6){margin:1.4rem 0 .48rem;color:color-mix(in srgb,var(--text) 76%,var(--text-muted) 24%);font-family:var(--font-mono);font-size:.86rem;font-weight:600;letter-spacing:.02em;text-transform:none}body.article-page .article-content h5:before{content:"# ";color:color-mix(in srgb,var(--article-dateplate-accent) 48%,var(--text-muted) 52%);font-weight:560}body.article-page .article-content h6:before{content:"## ";color:color-mix(in srgb,var(--article-dateplate-accent) 38%,var(--text-muted) 62%);font-weight:560}body.article-page .article-content h1{margin:0 0 1rem;color:var(--article-ink-strong);font-size:clamp(1.5rem,1.35rem + .4vw,1.72rem);font-weight:700;letter-spacing:-.016em;line-height:1.22;text-wrap:balance}body.article-page .article-heading{scroll-margin-top:4.9rem}@media(max-width:640px){body.article-page .article-heading{scroll-margin-top:calc(var(--mobile-header-height, 3.35rem) + 1.5rem)}}body.article-page .article-content>p{text-wrap:pretty}body.article-page .article-content .article-heading-anchor{position:relative;top:-.04em;display:inline-grid;min-width:1.28rem;height:1.28rem;flex:0 0 auto;place-items:center;margin:0 0 0 .18rem;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:color-mix(in srgb,var(--text-muted) 78%,var(--link) 22%);font-size:0;line-height:0;text-decoration:none;text-decoration-line:none;text-underline-offset:0;opacity:0;transform:translate(-3px);transition:opacity .14s ease,transform .14s ease,color .14s ease}body.article-page .article-content .article-heading-anchor-icon{display:block;width:.96rem;height:.96rem;transition:transform .14s var(--motion-ease)}body.article-page .article-content .article-heading:hover .article-heading-anchor,body.article-page .article-content .article-heading:focus-within .article-heading-anchor,body.article-page .article-content .article-heading-anchor:focus-visible{opacity:.78;transform:translate(0)}body.article-page .article-content .article-heading-anchor:hover,body.article-page .article-content .article-heading-anchor:focus-visible{color:var(--link);opacity:1}body.article-page .article-content .article-heading-anchor:hover .article-heading-anchor-icon,body.article-page .article-content .article-heading-anchor:focus-visible .article-heading-anchor-icon{transform:rotate(8deg) scale(1.08)}@media(hover:none){body.article-page .article-content .article-heading-anchor{opacity:.42;transform:none}}body.article-page .article-content :is(ul,ol):not(.contains-task-list):not(.article-steps):not(.article-timeline):not(.file-tree):not(.footnotes-list){margin:1.02rem 0 1.16rem;padding-left:1.45rem}body.article-page .article-content li:not(.article-timeline-item):not(.file-tree-item):not(.article-steps-item):not(.footnotes-item){margin-top:.42rem;padding-left:.08rem}body.article-page .article-content li:not(.article-timeline-item):not(.file-tree-item):not(.article-steps-item):not(.footnotes-item)::marker{color:color-mix(in srgb,var(--article-dateplate-accent) 54%,var(--text-muted) 46%);font-weight:650}body.article-page .article-content li:not(.article-timeline-item):not(.footnotes-item)>p{margin:.48rem 0}body.article-page .article-content li:not(.article-timeline-item):not(.footnotes-item)>:is(ul,ol){margin-top:.48rem}body.article-page .article-content .contains-task-list{display:grid;gap:.36rem;margin:1.05rem 0 1.25rem}body.article-page .article-content .task-list-item{min-height:1.9rem;margin:0;padding:.24rem 0 .24rem .1rem}body.article-page .article-content .task-list-item input[type=checkbox]{width:1rem;height:1rem;margin-top:.38em;accent-color:var(--article-dateplate-accent)}body.article-page .article-content blockquote{position:relative;margin:1.7rem 0 1.9rem;padding:.1rem 0 .1rem 1.3rem;border:0;border-left:2px solid color-mix(in srgb,var(--article-dateplate-accent) 42%,var(--border) 58%);border-radius:0;background:transparent;box-shadow:none;color:color-mix(in srgb,var(--article-ink) 86%,var(--text-muted) 14%);font-family:var(--font-serif);font-optical-sizing:auto}body.article-page .article-content blockquote:before{content:none}body.article-page .article-content blockquote:hover{border-left-color:color-mix(in srgb,var(--article-dateplate-accent) 58%,var(--border) 42%)}body.article-page .article-content blockquote>:first-child{margin-top:0}body.article-page .article-content blockquote>:last-child{margin-bottom:0}body.article-page .article-content blockquote blockquote{margin:.9rem 0 .2rem;padding-left:1.1rem;border-left-color:color-mix(in srgb,var(--border-soft) 66%,transparent);font-size:.97em}body.article-page .article-content hr{height:1px;margin:2.5rem 0;border:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--border-soft) 72%,transparent) 18%,color-mix(in srgb,var(--border-soft) 72%,transparent) 82%,transparent)}body.article-page .article-math-block,body.article-page .article-mermaid,body.article-page .article-echarts,body.article-page .article-file-tree,body.article-page .article-music .aplayer,body.article-page .article-content details:not(.admonition),body.article-page .article-link-card{border-color:var(--article-card-border);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 34%,transparent),transparent 5rem),var(--article-card-bg);box-shadow:var(--article-card-shadow);border-radius:var(--article-card-radius)}body.article-page .article-math-block:hover,body.article-page .article-mermaid:hover,body.article-page .article-echarts:hover,body.article-page .article-file-tree:hover,body.article-page .article-music .aplayer:hover,body.article-page .article-link-card:hover{border-color:color-mix(in srgb,var(--article-dateplate-accent) 26%,var(--border) 74%);box-shadow:var(--article-card-shadow-hover)}body.article-page .article-content table{font-size:.88rem;line-height:1.6;border-collapse:collapse}body.article-page .article-content th{color:color-mix(in srgb,var(--text) 88%,var(--article-dateplate-accent) 12%);font-family:var(--font-mono);font-size:.8rem;font-weight:600;letter-spacing:.02em;background:linear-gradient(180deg,color-mix(in srgb,var(--article-dateplate-accent) 6%,transparent),transparent),var(--article-card-bg-soft)}body.article-page .article-content th,body.article-page .article-content td{padding:.62rem .86rem;border-bottom:1px solid color-mix(in srgb,var(--border-soft) 78%,transparent);font-variant-numeric:tabular-nums}body.article-page .article-content tbody tr:hover>td{background:color-mix(in srgb,var(--article-dateplate-accent) 7%,var(--surface) 93%)}body.article-page .article-body img,body.article-page .article-video,body.article-page .article-embed{border:1px solid color-mix(in srgb,var(--image-border) 84%,transparent);border-radius:var(--article-card-radius);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 58%,transparent),transparent),var(--surface);box-shadow:var(--article-card-shadow);transition:border-color var(--motion-base) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),transform var(--motion-base) var(--motion-ease)}body.article-page .article-body img.is-image-fading{opacity:0;transition:opacity .4s var(--motion-ease)}body.article-page .article-body img.is-image-fading.is-image-loaded{opacity:1}@media(prefers-reduced-motion:reduce){body.article-page .article-body img.is-image-fading{opacity:1}}body.article-page .article-body img:hover,body.article-page .article-video:hover,body.article-page .article-embed:hover{border-color:color-mix(in srgb,var(--article-dateplate-accent) 28%,var(--image-border) 72%);box-shadow:var(--article-card-shadow-hover);transform:translateY(-2px)}body.article-page .article-image-caption,body.article-page .article-body .article-figure>figcaption{display:flex;align-items:center;justify-content:center;gap:.7rem;margin-top:.42rem;color:color-mix(in srgb,var(--text-muted) 90%,transparent);font-size:.76rem;line-height:1.5}body.article-page .article-image-caption:before,body.article-page .article-image-caption:after,body.article-page .article-body .article-figure>figcaption:before,body.article-page .article-body .article-figure>figcaption:after{flex:0 1 3rem;min-width:1.1rem;height:1px;content:""}body.article-page .article-image-caption:before{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--article-dateplate-accent) 40%,var(--border) 60%))}body.article-page .article-image-caption:after{background:linear-gradient(90deg,color-mix(in srgb,var(--article-dateplate-accent) 40%,var(--border) 60%),transparent)}body.article-page .article-content pre{scrollbar-color:color-mix(in srgb,var(--text-muted) 36%,transparent) transparent;scrollbar-width:thin}body.article-page .article-content kbd{position:relative;top:-.02em;display:inline-flex;align-items:center;justify-content:center;min-width:1.95em;min-height:1.72em;margin:0 .1em;padding:.12em .52em .18em;border:1px solid color-mix(in srgb,var(--border) 72%,var(--text) 28%);border-bottom-color:color-mix(in srgb,var(--text) 22%,var(--border) 78%);border-radius:var(--radius-inset);background:linear-gradient(180deg,color-mix(in srgb,white 78%,var(--surface) 22%),color-mix(in srgb,var(--surface) 92%,var(--surface-muted) 8%) 38%,color-mix(in srgb,var(--surface-muted) 58%,var(--surface) 42%));box-shadow:inset 0 1px color-mix(in srgb,white 88%,transparent),inset 0 -1px color-mix(in srgb,var(--text) 10%,transparent),inset 1px 0 color-mix(in srgb,white 28%,transparent),inset -1px 0 color-mix(in srgb,var(--text) 6%,transparent),0 1px color-mix(in srgb,var(--text) 14%,transparent),0 2px color-mix(in srgb,var(--text) 10%,transparent),0 3px 4px -1px color-mix(in srgb,var(--text) 14%,transparent);color:color-mix(in srgb,var(--text) 90%,var(--text-muted) 10%);font-family:-apple-system,BlinkMacSystemFont,var(--font);font-size:.78em;font-weight:650;letter-spacing:.01em;line-height:1.1;vertical-align:.08em;white-space:nowrap;transform:translateY(-1px)}body.article-page .article-content kbd:active{top:0;border-bottom-color:color-mix(in srgb,var(--border) 78%,var(--text) 22%);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-muted) 52%,var(--surface) 48%),color-mix(in srgb,var(--surface) 88%,var(--surface-muted) 12%));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--text) 12%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--text) 4%,transparent),0 1px color-mix(in srgb,var(--text) 8%,transparent);transform:translateY(1px)}[data-scheme=dark] body.article-page .article-content kbd{border-color:color-mix(in srgb,var(--border) 70%,white 12%);border-bottom-color:color-mix(in srgb,#000 55%,var(--border) 45%);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 78%,white 10%),color-mix(in srgb,var(--surface) 88%,var(--surface-muted) 12%) 42%,color-mix(in srgb,var(--surface-muted) 72%,#000 10%));box-shadow:inset 0 1px color-mix(in srgb,white 14%,transparent),inset 0 -1px color-mix(in srgb,#000 35%,transparent),inset 1px 0 color-mix(in srgb,white 6%,transparent),inset -1px 0 color-mix(in srgb,#000 18%,transparent),0 1px color-mix(in srgb,#000 40%,transparent),0 2px color-mix(in srgb,#000 28%,transparent),0 3px 5px -1px color-mix(in srgb,#000 55%,transparent);color:color-mix(in srgb,var(--text) 92%,white 8%)}[data-scheme=dark] body.article-page .article-content kbd:active{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-muted) 70%,#000 12%),color-mix(in srgb,var(--surface) 82%,var(--surface-muted) 18%));box-shadow:inset 0 1px 3px color-mix(in srgb,#000 45%,transparent),0 1px color-mix(in srgb,#000 25%,transparent)}body.article-page .article-content details:not(.admonition){margin:1.55rem 0 1.8rem;overflow:hidden;border:1px solid var(--article-card-border)}body.article-page .article-content details:not(.admonition)>:not(summary){margin-left:1rem;margin-right:1rem}body.article-page .article-content summary:not(.admonition-title){position:relative;padding:.78rem 1rem;color:var(--article-ink-strong);font-weight:620;transition:background-color .14s ease,color .14s ease}body.article-page .article-content summary:not(.admonition-title):hover{background:color-mix(in srgb,var(--article-dateplate-accent) 7%,transparent);color:color-mix(in srgb,var(--article-dateplate-accent) 62%,var(--text) 38%)}body.article-page .article-content summary:not(.admonition-title)::marker{color:var(--article-dateplate-accent)}body.article-page .article-file-tree{padding:.88rem .9rem;font-family:var(--font-mono);font-size:.84rem}body.article-page .article-file-tree,body.article-page .article-mermaid,body.article-page .article-echarts,body.article-page .article-math-block{margin:1.55rem 0 1.8rem;border:1px solid var(--article-card-border)}body.article-page .admonition{margin:1.6rem 0 1.8rem;padding:0;border:0;border-radius:calc(var(--article-card-radius) - 2px);background:color-mix(in srgb,var(--admonition-accent, var(--article-dateplate-accent)) 6%,transparent);box-shadow:none;color:var(--article-ink);font-size:.94em;line-height:1.72}body.article-page .admonition:hover{background:color-mix(in srgb,var(--admonition-accent, var(--article-dateplate-accent)) 9%,transparent)}body.article-page .admonition-title{display:flex;align-items:center;gap:.5rem;padding:.62rem .9rem .1rem;margin:0;color:color-mix(in srgb,var(--admonition-accent, var(--article-dateplate-accent)) 86%,var(--text) 14%);font-family:var(--font);font-size:.9rem;font-weight:650;letter-spacing:.01em;line-height:1.4;text-transform:none;background:transparent}body.article-page .admonition-title::-webkit-details-marker{display:none}body.article-page .admonition-title::marker{content:none}body.article-page .admonition-title .admonition-icon{color:var(--admonition-accent, var(--article-dateplate-accent))}body.article-page .admonition :is(p,ul,ol):last-child{margin-bottom:0}body.article-page .admonition .admonition-content{padding:.42rem .9rem .68rem}body.article-page .article-music{--article-music-cover: 6.75rem;--article-music-pad-x: 1.05rem;--article-music-pad-top: .95rem;--article-music-pad-bottom: .85rem;margin:1.55rem 0 1.8rem}body.article-page .article-music .aplayer{margin:0;overflow:hidden;border:1px solid var(--article-card-border);border-radius:var(--article-card-radius);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 40%,transparent),transparent 5.5rem),var(--article-card-bg);box-shadow:var(--article-card-shadow);color:var(--article-ink);font-family:var(--font);font-size:.92rem;line-height:1.5;transition:border-color .14s ease,box-shadow .14s ease}body.article-page .article-music .aplayer:hover{border-color:color-mix(in srgb,var(--article-dateplate-accent) 26%,var(--border) 74%);box-shadow:var(--article-card-shadow-hover)}body.article-page .article-music .aplayer .aplayer-body{min-height:var(--article-music-cover)}body.article-page .article-music .aplayer .aplayer-pic{width:var(--article-music-cover)!important;height:var(--article-music-cover)!important;border-right:1px solid color-mix(in srgb,var(--border-soft) 78%,transparent);background-color:var(--article-card-bg-soft)!important;background-size:cover}body.article-page .article-music .aplayer .aplayer-info{margin-left:var(--article-music-cover)!important;height:var(--article-music-cover)!important;box-sizing:border-box;padding:var(--article-music-pad-top) var(--article-music-pad-x) var(--article-music-pad-bottom)!important;border-bottom:0;border-bottom-color:transparent;display:flex;flex-direction:column;justify-content:center;gap:.28rem;overflow:hidden}body.article-page .article-music .aplayer .aplayer-info .aplayer-music{margin:0 0 .12rem!important;height:auto!important;min-height:1.55rem;padding-right:.35rem;overflow:hidden;line-height:1.35}body.article-page .article-music .aplayer .aplayer-title{color:var(--article-ink-strong);font-size:.98rem;font-weight:620;letter-spacing:.005em;line-height:1.35}body.article-page .article-music .aplayer .aplayer-author,body.article-page .article-music .aplayer .aplayer-time,body.article-page .article-music .aplayer .aplayer-list-author{color:var(--text-muted);font-size:.78rem;line-height:1.35}body.article-page .article-music .aplayer .aplayer-controller{display:flex;align-items:center;min-height:1.35rem;margin-top:.18rem}body.article-page .article-music .aplayer .aplayer-icon{color:color-mix(in srgb,var(--text-muted) 88%,var(--article-dateplate-accent) 12%);opacity:.92;transition:color .14s ease,opacity .14s ease}body.article-page .article-music .aplayer .aplayer-icon:hover{color:var(--article-dateplate-accent);opacity:1}body.article-page .article-music .aplayer .aplayer-icon path{fill:currentColor}body.article-page .article-music .aplayer .aplayer-bar-wrap{margin:.12rem 0 0;padding:.28rem 0}body.article-page .article-music .aplayer .aplayer-bar-wrap .aplayer-bar,body.article-page .article-music .aplayer .aplayer-volume-bar-wrap .aplayer-volume-bar{background:color-mix(in srgb,var(--border) 58%,transparent)}body.article-page .article-music .aplayer .aplayer-played,body.article-page .article-music .aplayer .aplayer-volume{background:var(--article-dateplate-accent)!important}body.article-page .article-music .aplayer .aplayer-thumb{background:var(--article-dateplate-accent)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--surface) 70%,transparent)}body.article-page .article-music .aplayer .aplayer-thumb:before,body.article-page .article-music .aplayer .aplayer-thumb .aplayer-loading-icon{border-color:var(--article-dateplate-accent)!important}body.article-page .article-music .aplayer .aplayer-time{top:0;height:auto;line-height:1.35;padding-left:.45rem}body.article-page .article-music .aplayer .aplayer-list{border-top:1px solid color-mix(in srgb,var(--border-soft) 86%,transparent);background:color-mix(in srgb,var(--article-card-bg-soft) 42%,var(--surface) 58%)}body.article-page .article-music .aplayer .aplayer-list ol li{padding:.62rem .95rem!important;border-top-color:color-mix(in srgb,var(--border-soft) 78%,transparent);color:var(--article-ink);font-size:.86rem;line-height:1.45;transition:background-color .14s ease,color .14s ease}body.article-page .article-music .aplayer .aplayer-list ol li:hover,body.article-page .article-music .aplayer .aplayer-list ol li.aplayer-list-light{background:color-mix(in srgb,var(--article-dateplate-accent) 8%,transparent)}body.article-page .article-music .aplayer .aplayer-list ol li.aplayer-list-light{color:color-mix(in srgb,var(--article-dateplate-accent) 42%,var(--text) 58%);font-weight:560}body.article-page .article-music .aplayer .aplayer-list ol li .aplayer-list-cur{background-color:var(--article-dateplate-accent)!important}body.article-page .article-music .aplayer .aplayer-lrc{color:var(--text-muted);font-size:.8rem;text-align:left;margin-bottom:.2rem}body.article-page .article-music .aplayer .aplayer-lrc p{color:inherit}body.article-page .article-music .aplayer .aplayer-lrc:before,body.article-page .article-music .aplayer .aplayer-lrc:after{background:linear-gradient(180deg,var(--article-card-bg),color-mix(in srgb,var(--article-card-bg) 0%,transparent))}body.article-page .article-music .aplayer .aplayer-lrc:after{background:linear-gradient(180deg,color-mix(in srgb,var(--article-card-bg) 0%,transparent),var(--article-card-bg))}body.article-page .article-music .aplayer .aplayer-notice{background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text-muted);border-radius:var(--radius-inset)}body.article-page .article-music.is-error{margin:1.55rem 0 1.8rem;padding:.82rem .95rem;border:1px solid var(--article-card-border);border-radius:var(--article-card-radius);background:var(--article-card-bg-soft);box-shadow:var(--article-card-shadow);color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem;line-height:1.55}body.article-page .article-embed,body.article-page .article-video{margin:1.55rem 0 1.8rem}body.article-page .article-embed-facade{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 42%,transparent),color-mix(in srgb,var(--article-dateplate-accent) 8%,transparent)),var(--article-card-bg);color:var(--article-ink-strong)}body.article-page .article-embed-facade:hover,body.article-page .article-embed-facade:focus-visible{color:var(--article-dateplate-accent);background:linear-gradient(180deg,color-mix(in srgb,var(--article-dateplate-accent) 10%,transparent),color-mix(in srgb,var(--text) 8%,transparent)),var(--article-card-bg)}body.article-page .article-embed-facade-play{border-color:color-mix(in srgb,var(--article-card-border) 78%,var(--article-dateplate-accent) 22%);background:color-mix(in srgb,var(--surface) 90%,var(--article-card-bg) 10%);box-shadow:var(--article-card-shadow)}body.article-page .article-embed-facade-label{color:color-mix(in srgb,var(--text-muted) 90%,var(--article-dateplate-accent) 10%);letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;font-weight:620}body.article-page .article-embed-bilibili .article-embed-facade.has-cover{background:none}body.article-page .article-embed-bilibili .article-embed-facade.has-cover:hover,body.article-page .article-embed-bilibili .article-embed-facade.has-cover:focus-visible{background:none;color:#fff}body.article-page .article-embed-bilibili .bilibili-cover{border-radius:0;box-shadow:none}body.article-page .article-mermaid,body.article-page .article-echarts,body.article-page .article-file-tree,body.article-page .article-music,body.article-page .article-tabs,body.article-page .article-embed{content-visibility:auto;contain-intrinsic-size:280px 760px}body.article-page .article-embed-bilibili{content-visibility:auto;contain-intrinsic-size:320px 180px}body.article-page .footnotes,body.article-page .footnotes-section,body.article-page .article-content :is(.footnotes,section[data-footnotes]){margin-top:2.4rem;padding:1rem 1.05rem 1.1rem;border:1px solid var(--article-hairline);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 28%,transparent),transparent 4rem),color-mix(in srgb,var(--article-card-bg) 88%,transparent);box-shadow:none;color:color-mix(in srgb,var(--text-muted) 92%,var(--text) 8%);font-size:.82rem;line-height:1.65}body.article-page .footnotes ol,body.article-page .footnotes-list,body.article-page .article-content .footnotes ol,body.article-page .article-content .footnotes-list,body.article-page .article-content .footnotes ol:not(.article-steps){list-style:none!important;margin:0;padding:0!important;counter-reset:none}body.article-page .footnotes li,body.article-page .footnotes-item,body.article-page .article-content .footnotes li,body.article-page .article-content .footnotes-item{display:grid;grid-template-columns:1.45rem minmax(0,1fr);column-gap:.5rem;align-items:start;margin:0 0 .72rem;padding:0;line-height:1.65;list-style:none;counter-increment:none}body.article-page .footnotes li:last-child,body.article-page .footnotes-item:last-child,body.article-page .article-content .footnotes li:last-child,body.article-page .article-content .footnotes-item:last-child{margin-bottom:0}body.article-page .footnotes li::marker,body.article-page .footnotes-item::marker,body.article-page .article-content .footnotes li::marker,body.article-page .article-content .footnotes-item::marker,body.article-page .footnotes li:before,body.article-page .footnotes-item:before,body.article-page .article-content .footnotes li:before,body.article-page .article-content .footnotes-item:before{content:none!important;display:none!important}body.article-page .footnote-index{width:1.45rem;color:color-mix(in srgb,var(--article-dateplate-accent) 72%,var(--link) 28%);font-family:var(--font-mono);font-size:.78rem;font-weight:650;letter-spacing:0;line-height:1.55;text-align:left}body.article-page .footnote-body{min-width:0}body.article-page .footnotes li p,body.article-page .footnotes-item p,body.article-page .footnote-body p,body.article-page .article-content .footnotes li p,body.article-page .article-content .footnotes-item p{display:inline;margin:0}body.article-page .article-content :is(.footnotes,section[data-footnotes]) :is(h2,h3){display:block;margin:0 0 .8rem;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:color-mix(in srgb,var(--text) 72%,var(--text-muted) 28%);font-family:var(--font-mono);font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}body.article-page .article-content :is(.footnotes,section[data-footnotes]) :is(h2,h3):before,body.article-page .article-content :is(.footnotes,section[data-footnotes]) :is(h2,h3):after{display:none;content:none}body.article-page .footnote-ref a{border-radius:var(--radius-xs);color:var(--link);font-family:var(--font-mono);font-size:.78em;text-decoration:none}body.article-page .footnote-ref a:hover{background:color-mix(in srgb,var(--article-dateplate-accent) 10%,transparent)}body.article-page .footnote-tooltip{border:1px solid var(--article-card-border);border-radius:var(--radius-md);background:var(--article-card-bg);box-shadow:var(--article-card-shadow-hover)}body.article-page .article-timeline{--article-timeline-line: color-mix( in srgb, var(--article-dateplate-accent) 24%, var(--border) 76% );--article-timeline-node-color: color-mix( in srgb, var(--article-dateplate-accent) 72%, var(--text-muted) 28% );--article-timeline-node-size: .56rem;--article-timeline-line-width: 1px;--article-timeline-rail-center: .48rem;--article-timeline-content-indent: 1.55rem;--article-timeline-item-pad-top: .42rem;--article-timeline-item-pad-bottom: .72rem;--article-timeline-content-size: .94rem;--article-timeline-content-lh: 1.62;--article-timeline-timestamp-size: .74rem;--article-timeline-timestamp-lh: 1.4;--article-timeline-timestamp-gap: .16rem;margin:1.55rem 0 1.85rem;padding:0}body.article-page .article-timeline-item:before{border-width:1.5px;border-color:color-mix(in srgb,var(--article-timeline-node-color) 88%,var(--border) 12%);background:var(--bg);outline:3px solid var(--bg);box-shadow:0 0 0 1px color-mix(in srgb,var(--article-timeline-node-color) 12%,transparent)}body.article-page .article-timeline-item:after{background:linear-gradient(180deg,color-mix(in srgb,var(--article-timeline-line) 42%,transparent),var(--article-timeline-line) 18%,var(--article-timeline-line) 82%,color-mix(in srgb,var(--article-timeline-line) 42%,transparent))}body.article-page .article-timeline-item:hover:before{border-color:var(--article-dateplate-accent);background:color-mix(in srgb,var(--article-dateplate-accent) 12%,var(--bg) 88%);outline:4px solid color-mix(in srgb,var(--article-dateplate-accent) 10%,var(--bg) 90%);box-shadow:0 0 0 1px color-mix(in srgb,var(--article-dateplate-accent) 18%,transparent)}body.article-page .article-timeline-item:hover .article-timeline-content{color:var(--article-ink-strong);transform:translate(1px)}body.article-page .article-timeline-item[data-node=dot]:before{background:var(--article-timeline-node-color);box-shadow:none}body.article-page .article-timeline-item[data-type=info]{--article-timeline-node-color: var(--article-dateplate-accent)}body.article-page .article-timeline-item[data-type=success]{--article-timeline-node-color: #4f8f6e}body.article-page .article-timeline-item[data-type=warning]{--article-timeline-node-color: #b8863a}body.article-page .article-timeline-item[data-type=error],body.article-page .article-timeline-item[data-type=danger]{--article-timeline-node-color: #c94b4b}body.article-page .article-timeline-timestamp{color:color-mix(in srgb,var(--text-muted) 82%,var(--article-dateplate-accent) 18%);font-variant-numeric:tabular-nums;letter-spacing:.02em}body.article-page .article-timeline-content{color:var(--article-ink)}body.article-page .article-math-block{margin:1.55rem 0 1.8rem;overflow:hidden;border:1px solid var(--article-card-border);border-radius:var(--article-card-radius);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 48%,transparent),transparent 4.2rem),color-mix(in srgb,var(--article-card-bg) 88%,var(--article-dateplate-accent-soft) 12%);box-shadow:var(--article-card-shadow)}body.article-page .article-math-block:hover{border-color:color-mix(in srgb,var(--article-dateplate-accent) 22%,var(--border) 78%);box-shadow:var(--article-card-shadow-hover)}body.article-page .article-content .katex-display{display:block;margin:0;overflow-x:auto;overflow-y:hidden;padding:1.05rem 1.15rem 1.1rem;text-align:center;scrollbar-width:thin}body.article-page .article-content .katex-display>.katex{display:block;max-width:none;text-align:center;white-space:nowrap}body.article-page .article-content .katex,body.article-page .article-content .katex *{max-width:none}body.article-page .article-content .katex svg{max-width:none;height:inherit}body.article-page .article-content .katex-mathml{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;border:0!important;white-space:nowrap!important;user-select:none!important;-webkit-user-select:none!important;pointer-events:none!important}body.article-page .article-content .katex .vlist-s{user-select:none!important;-webkit-user-select:none!important}body.article-page .article-math-copy{user-select:none}body.article-page .article-content :not(.katex-display)>.katex{padding:.02em .1em;border-radius:var(--radius-xs);background:color-mix(in srgb,var(--article-dateplate-accent) 5%,transparent)}body.article-page .article-footer{margin-top:2.35rem;padding-top:1.35rem;border-top:1px solid var(--article-hairline)}body.article-page .article-nav-card{position:relative;overflow:hidden;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease,color .14s ease}body.article-page .article-nav-card:before{position:absolute;top:0;bottom:0;width:2px;background:color-mix(in srgb,var(--article-dateplate-accent) 58%,transparent);opacity:0;content:"";transition:opacity .14s ease}body.article-page .article-nav-prev:before{left:0}body.article-page .article-nav-next:before{right:0}body.article-page .article-nav-card:hover{border-color:color-mix(in srgb,var(--article-dateplate-accent) 34%,var(--border) 66%);color:var(--text)}body.article-page .article-nav-card:hover:before{opacity:1}body.article-page .article-nav-card:hover .article-nav-title{color:color-mix(in srgb,var(--article-dateplate-accent) 72%,var(--text) 28%)}body.article-page .article-nav-label{margin-bottom:.32rem;color:color-mix(in srgb,var(--text-muted) 88%,transparent);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}body.article-page .article-nav-title{color:var(--article-ink-strong);font-size:.92rem;font-weight:560;line-height:1.4;transition:color .14s ease}body.article-page .article-nav-empty{opacity:.72}body.article-page .article-nav-empty:hover{border-color:var(--article-card-border);box-shadow:var(--article-card-shadow);transform:none}body.article-page .article-nav-empty:hover:before{opacity:0}body.article-page .article-nav-empty:hover .article-nav-title{color:inherit}body.article-page .article-nav-placeholder{color:color-mix(in srgb,var(--text-muted) 86%,transparent);font-size:.88rem}body.article-page .reading-progress{height:2px;background:linear-gradient(90deg,color-mix(in srgb,var(--article-dateplate-accent) 92%,white 8%),color-mix(in srgb,var(--article-dateplate-accent) 62%,var(--link) 38%));box-shadow:0 0 10px color-mix(in srgb,var(--article-dateplate-accent) 28%,transparent)}@media(max-width:720px){body.article-page .article-nav{grid-template-columns:1fr}}@media(max-width:640px){body.article-page .article-header:after{height:2px;background:linear-gradient(90deg,color-mix(in srgb,var(--article-dateplate-accent) 78%,var(--border) 22%) 0 2.5rem,color-mix(in srgb,var(--article-dateplate-accent) 24%,transparent) 2.5rem 3.8rem,color-mix(in srgb,var(--border) 48%,transparent) 3.8rem,transparent 100%)}body.article-page .article-body{font-size:1rem;line-height:1.82}body.article-page .article-content p{margin:1rem 0}body.article-page .article-content h2{margin-top:2.55rem;font-size:1.34rem}body.article-page .article-content h2:first-child,body.article-page .article-content>h2:first-of-type{margin-top:.35rem;padding-top:0}body.article-page .article-content h3{margin-top:1.85rem;font-size:1.12rem}body.article-page .article-content blockquote{padding:.15rem .2rem .15rem 1rem}body.article-page .article-content :is(ul,ol):not(.contains-task-list):not(.article-steps):not(.article-timeline):not(.file-tree):not(.footnotes-list){padding-left:1.28rem}body.article-page .article-content pre,body.article-page .article-table-scroll,body.article-page .article-content .expressive-code,body.article-page .article-math-block,body.article-page .article-mermaid,body.article-page .article-echarts,body.article-page .article-file-tree,body.article-page .admonition{margin-right:0;margin-left:0;border-radius:var(--radius-md)}body.article-page .article-content pre{padding:.95rem}body.article-page .article-content table{display:table;width:max-content;min-width:100%;white-space:normal}body.article-page .article-body img,body.article-page .article-video,body.article-page .article-embed{border-radius:var(--radius-md);padding:2px}body.article-page .article-image-caption{margin-bottom:1.45rem}body.article-page .footnotes{padding:1rem;border-right:1px solid var(--article-card-border);border-left:1px solid var(--article-card-border);border-radius:var(--radius-md)}body.article-page .article-nav-card{box-shadow:none}}body.article-page{--article-code-window: var(--color-base-200);--article-code-toolbar: var(--color-base-300);--article-code-toolbar-top: var(--color-base-100);--article-code-border: color-mix( in oklch, var(--border) 78%, var(--link) 10% );--article-code-divider: color-mix( in oklch, var(--border-soft) 86%, transparent );--article-code-text: var(--color-base-content);--article-code-muted: var(--text-muted);--article-code-button: color-mix( in oklch, var(--surface) 90%, var(--surface-muted) 10% );--article-code-button-hover: var(--surface);--article-code-button-active: color-mix( in oklch, var(--ad-tip) 12%, var(--surface) 88% );--article-code-button-active-text: var(--ad-tip);--article-code-shadow: 0 1px 0 color-mix(in oklch, white 70%, transparent), 0 16px 42px -34px color-mix(in oklch, var(--color-base-content) 22%, transparent)}[data-scheme=dark] body.article-page{--article-code-window: var(--color-base-100);--article-code-toolbar: var(--color-base-200);--article-code-toolbar-top: var(--color-base-300);--article-code-border: color-mix( in oklch, var(--border) 78%, var(--color-base-content) 12% );--article-code-divider: color-mix(in oklch, var(--border) 82%, transparent);--article-code-text: var(--color-base-content);--article-code-muted: var(--text-muted);--article-code-button: color-mix( in oklch, var(--surface-muted) 82%, var(--code-bg) 18% );--article-code-button-hover: var(--border);--article-code-button-active: color-mix( in oklch, var(--ad-tip) 18%, var(--code-bg) 82% );--article-code-button-active-text: var(--ad-tip);--article-code-shadow: 0 18px 46px -32px color-mix(in oklch, black 86%, transparent)}body.article-page .article-content .expressive-code{margin:1.75rem 0 2.05rem}body.article-page .article-content :is(.expressive-code,.article-mermaid,.article-echarts)+:is(.expressive-code,.article-mermaid,.article-echarts){margin-top:.9rem}body.article-page .article-content .expressive-code .frame{position:relative;overflow:hidden;border:1px solid var(--article-code-border);background:var(--article-code-window)}body.article-page .article-content .expressive-code .frame figcaption.header{position:relative;border:0}body.article-page .article-content .expressive-code .frame figcaption.header:before{position:absolute;top:50%;left:.82rem;width:.66rem;height:.66rem;border:0;border-radius:var(--radius-circle);background:#ff5f57;box-shadow:1rem 0 #febc2e,2rem 0 #28c840;content:"";transform:translateY(-50%)}body.article-page .article-content .expressive-code .frame figcaption.header .title{min-width:0;padding:0;overflow:hidden;background:transparent;font-family:var(--font);font-size:.76rem;font-weight:650;letter-spacing:0;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}body.article-page .article-content .expressive-code .frame figcaption.header .title:before,body.article-page .article-content .expressive-code .frame figcaption.header .title:after{display:none;content:none}body.article-page .article-content .expressive-code .frame pre{margin:0;border:0;border-radius:0;background:transparent;color:var(--article-code-text);scrollbar-color:color-mix(in srgb,var(--article-code-muted) 36%,transparent) transparent}body.article-page .article-content .expressive-code .frame pre code{display:block;padding:1.02rem 0 1.08rem}body.article-page .article-content .expressive-code .ec-line{min-height:1.48rem}body.article-page .article-content .expressive-code .ec-line .code{padding-right:1.28rem;padding-left:1.28rem}[data-scheme=light] body.article-page .article-content .expressive-code .ec-line :where(span[style^=--]:not([class])){color:var(--0, inherit);background-color:var(--0bg, transparent);font-style:var(--0fs, inherit);font-weight:var(--0fw, inherit);text-decoration:var(--0td, inherit)}[data-scheme=dark] body.article-page .article-content .expressive-code .ec-line :where(span[style^=--]:not([class])){color:var(--1, inherit);background-color:var(--1bg, transparent);font-style:var(--1fs, inherit);font-weight:var(--1fw, inherit);text-decoration:var(--1td, inherit)}body.article-page .article-content .expressive-code .copy{position:absolute;z-index:4;bottom:auto;left:auto;width:auto;height:auto}body.article-page .article-content .expressive-code .copy>div[aria-live]{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);white-space:nowrap}body.article-page .article-content .expressive-code .copy button{display:inline-flex;inline-size:auto!important;min-inline-size:2.95rem;block-size:1.48rem!important;align-items:center;justify-content:center;gap:.04rem;padding:0 .3rem;border:1px solid color-mix(in srgb,var(--article-code-border) 82%,transparent);border-radius:var(--radius-inset);background:var(--article-code-button);box-shadow:inset 0 1px color-mix(in srgb,#fff 34%,transparent),0 1px 1px color-mix(in srgb,#000 8%,transparent);color:var(--article-code-muted);font-family:var(--font);font-size:.67rem;font-weight:650;line-height:1;opacity:.86;transition:border-color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),opacity var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}body.article-page .article-content .expressive-code .copy button:after{position:static;display:inline;width:auto;height:auto;background:transparent;color:currentColor;content:attr(data-copy-label);mask:none;-webkit-mask:none}body.article-page .article-content .expressive-code .copy button:before{position:static;display:block;width:.7rem;height:.7rem;background:currentColor;content:"";opacity:.82;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='4' width='11' height='13' rx='2'/%3E%3Cpath d='M5 8v10a2 2 0 0 0 2 2h8'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='4' width='11' height='13' rx='2'/%3E%3Cpath d='M5 8v10a2 2 0 0 0 2 2h8'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat}body.article-page .article-content .expressive-code .copy button:hover,body.article-page .article-content .expressive-code .copy button:focus-visible{background:var(--article-code-button-hover);color:var(--article-code-text);opacity:1;transform:translateY(-1px)}body.article-page .article-content .expressive-code .copy button:focus-visible{outline:2px solid color-mix(in srgb,var(--link) 48%,transparent);outline-offset:2px}body.article-page .article-content .expressive-code .frame[data-copy-state=copying] .copy button,body.article-page .article-content .expressive-code .frame[data-copy-state=copied] .copy button{background:var(--article-code-button-active);color:var(--article-code-button-active-text);opacity:1}body.article-page .article-content .expressive-code .frame[data-copy-state=copied] .copy button:before{mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5 12 4 4 10-10' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5 12 4 4 10-10' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}body.article-page .article-content .expressive-code .frame[data-copy-state=failed] .copy button{background:color-mix(in srgb,#ff5f57 12%,var(--article-code-button) 88%);color:color-mix(in srgb,#ff5f57 72%,var(--article-code-text) 28%);opacity:1}body.article-page .article-content .expressive-code .copy button div{display:none}@media(max-width:640px){body.article-page .article-content .expressive-code{margin:1.45rem 0 1.72rem}body.article-page .article-content .expressive-code .frame figcaption.header:before{left:.72rem;width:.58rem;height:.58rem;box-shadow:.86rem 0 #febc2e,1.72rem 0 #28c840}body.article-page .article-content .expressive-code .frame figcaption.header .title{max-width:calc(100% - 3.9rem);font-size:.72rem}body.article-page .article-content .expressive-code .copy button{position:relative;min-inline-size:2.5rem;block-size:2.5rem!important;align-items:center;justify-content:center;gap:0;padding:0;border-radius:var(--radius-md);font-size:0;line-height:0}body.article-page .article-content .expressive-code .copy button:before{position:absolute;inset:0;display:block;width:.94rem;height:.94rem;margin:auto;transform:translateY(1px);opacity:.88;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8.5' y='3.5' width='11' height='13' rx='2'/%3E%3Cpath d='M5.5 7.5v10a2 2 0 0 0 2 2h8'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8.5' y='3.5' width='11' height='13' rx='2'/%3E%3Cpath d='M5.5 7.5v10a2 2 0 0 0 2 2h8'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat}body.article-page .article-content .expressive-code .copy button:after{display:none;content:none}body.article-page .article-content .expressive-code .frame[data-copy-state=copied] .copy button:before{mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5.5 12.5 4 4 9-9' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5.5 12.5 4 4 9-9' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}body.article-page .article-content .expressive-code .copy button:hover,body.article-page .article-content .expressive-code .copy button:focus-visible{transform:none}body.article-page .article-content .expressive-code .ec-line .code{padding-right:1rem;padding-left:1rem}}body.article-page{--article-card-shadow: none;--article-card-shadow-hover: none}body.article-page .article-header :is(.weather-part-label,.tags-bracket,.tags-quote,.tags-comma,.tags-item){font-size:var(--text-2xs)}body.article-page .article-content h2{font-size:1.34rem;letter-spacing:-.012em}body.article-page .article-content h3{letter-spacing:-.008em}body.article-page .article-content .expressive-code .frame{border-radius:var(--radius-md);box-shadow:none}body.article-page .article-content .expressive-code .frame:hover{box-shadow:none}body.article-page .article-content .expressive-code .frame figcaption.header{min-height:2.1rem;border-bottom:1px solid var(--article-code-border);border-radius:calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px) 0 0;background:var(--article-code-toolbar)}body.article-page .article-content .expressive-code .frame figcaption.header:before{display:none}body.article-page .article-content .expressive-code .frame figcaption.header .title{margin-left:.9rem;color:var(--article-code-muted);text-align:left}body.article-page .article-content .expressive-code .copy{top:.28rem;right:.3rem}body.article-page .article-mermaid{contain-intrinsic-size:280px 320px}body.article-page .article-mermaid[data-mermaid-rendered=true],body.article-page .article-echarts[data-echarts-rendered=true]{content-visibility:visible}body.article-page .article-echarts{contain-intrinsic-size:280px 420px}body.article-page :is(.article-file-tree,.article-tabs){contain-intrinsic-size:280px 240px}body.article-page .article-music{contain-intrinsic-size:280px 160px}body.article-page .article-nav{gap:0;border-top:1px dashed var(--rule-dashed);border-bottom:1px dashed var(--rule-dashed)}body.article-page .article-nav-card{min-height:4rem;padding:.8rem .9rem;border:0;border-radius:0;background:transparent;box-shadow:none}body.article-page .article-nav-card+.article-nav-card{border-left:1px solid var(--border-soft)}body.article-page .article-nav-card:before{display:none}body.article-page .article-nav-card:hover{box-shadow:none;transform:none}@media(max-width:640px){body.article-page .article-content h2{padding-top:.9rem}body.article-page .article-music .aplayer .aplayer-button.aplayer-play{width:2.5rem;height:2.5rem}body.article-page .article-music .aplayer .aplayer-volume-wrap{display:none}body.article-page .article-content .expressive-code .frame{border-radius:var(--radius-md)}body.article-page .article-content .expressive-code .frame figcaption.header{min-height:3rem;border-radius:calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px) 0 0}body.article-page .article-content .expressive-code .copy{top:.25rem;right:.22rem}body.article-page .article-nav{display:grid;grid-template-columns:1fr}body.article-page .article-nav-card+.article-nav-card{border-top:1px solid var(--border-soft);border-left:0}}@media(prefers-reduced-motion:reduce){body.article-page .article-body img,body.article-page .article-video,body.article-page .article-embed{transition:none}body.article-page .article-body img:hover,body.article-page .article-video:hover,body.article-page .article-embed:hover{transform:none}}body.article-page .article-content .expressive-code .frame figcaption.header{display:flex;justify-content:flex-start;align-items:center;gap:.5rem;padding-inline:.55rem}body.article-page .article-content .expressive-code .frame figcaption.header .title{flex:0 1 auto}body.article-page .article-content .expressive-code .frame figcaption.header .copy{position:static;inset:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:0}.article-content .expressive-code .ec-toolbar{position:absolute;top:50%;right:.55rem;transform:translateY(-50%);display:inline-flex;align-items:center;gap:.1rem}.article-content .expressive-code .ec-toolbar .ec-btn{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;padding:0;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--text-muted);cursor:pointer;transition:color .14s ease,background .14s ease}.article-content .expressive-code .ec-toolbar .ec-btn svg{width:15px;height:15px}.article-content .expressive-code .ec-toolbar .ec-btn:hover{color:var(--text);background:color-mix(in srgb,var(--text) 8%,transparent)}.article-content .expressive-code .ec-toolbar .ec-btn:focus-visible{outline:2px solid var(--link);outline-offset:1px}.article-content .expressive-code .ec-toolbar .ec-btn[aria-pressed=true]{color:var(--link)}.article-content .expressive-code .ec-toolbar .ec-btn[data-ec-action=collapse] svg{transition:transform .18s ease}.article-content .expressive-code .frame.collapsed .ec-toolbar .ec-btn[data-ec-action=collapse] svg{transform:rotate(180deg)}.article-content .expressive-code .frame.collapsed pre{max-height:9em;overflow:hidden}.article-content .expressive-code .frame.collapsed:after{content:"";position:absolute;inset-inline:0;bottom:0;height:3.2em;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--code-background) 88%,transparent));pointer-events:none}.article-content .expressive-code .frame.ln pre>code{counter-reset:ec-ln}.article-content .expressive-code .frame.ln pre .ec-line{display:grid;grid-template-columns:2.4em minmax(0,1fr)}.article-content .expressive-code .frame.ln pre .ec-line:before{content:counter(ec-ln);counter-increment:ec-ln;grid-column:1;padding-inline:.6em .9em;text-align:right;color:var(--ec-gtrFg, var(--text-subtle));font-variant-numeric:tabular-nums;user-select:none}.article-content .expressive-code .frame.wrap pre,.article-content .expressive-code .frame.wrap pre .code{white-space:pre-wrap;overflow-wrap:anywhere}.article-content .expressive-code .frame.wrap pre{overflow-x:hidden}.ec-backdrop{position:fixed;inset:0;z-index:1390;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}body.article-page .article-content .expressive-code .frame.fullscreen{position:fixed;inset:max(1.2rem,env(safe-area-inset-top)) max(1.2rem,env(safe-area-inset-right)) max(1.2rem,env(safe-area-inset-bottom)) max(1.2rem,env(safe-area-inset-left));z-index:1400;display:flex;flex-direction:column;width:auto;height:auto;max-width:none;max-height:none;box-shadow:0 40px 90px -40px color-mix(in srgb,#000 70%,transparent)}.article-content .expressive-code .frame.fullscreen pre{flex:1 1 auto;min-height:0;overflow:auto}body.is-code-fullscreen{overflow:hidden}@media(prefers-reduced-motion:reduce){.ec-toolbar .ec-btn,.ec-toolbar .ec-btn[data-ec-action=collapse] svg{transition:none}}@media(min-width:641px){body.article-page .article-content .expressive-code .frame figcaption.header .copy button{inline-size:1.7rem!important;block-size:1.7rem!important;min-inline-size:0;padding:0;border:0;border-radius:var(--radius-xs);background:transparent;box-shadow:none;color:var(--text-muted);opacity:.9;transform:none}body.article-page .article-content .expressive-code .frame figcaption.header .copy button:before{display:block;width:15px;height:15px;opacity:1;transform:none}body.article-page .article-content .expressive-code .frame figcaption.header .copy button:after{content:none}body.article-page .article-content .expressive-code .frame figcaption.header .copy button:hover,body.article-page .article-content .expressive-code .frame figcaption.header .copy button:focus-visible{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text);transform:none}}body.article-page .article-content .expressive-code .frame figcaption.header .title{display:inline-flex;align-items:center;gap:.45rem;margin:0;max-width:none}.article-content .expressive-code .frame figcaption.header .title .ec-lang-icon{width:14px;height:14px;flex:none;border-radius:var(--radius-xs)}.article-content .expressive-code .ec-lang-icon path{fill:var(--lang-color, currentColor)}[data-scheme=light] .article-content .expressive-code .ec-lang-icon[data-brand=javascript] path,[data-scheme=light] .article-content .expressive-code .ec-lang-icon[data-brand=json] path,[data-scheme=light] .article-content .expressive-code .ec-lang-icon[data-brand=markdown] path,[data-scheme=light] .article-content .expressive-code .ec-lang-icon[data-brand=gnubash] path{fill:color-mix(in srgb,var(--lang-color) 62%,#1a1a2e)}.article-content .expressive-code .frame .ec-badge{display:none;align-items:center;gap:.35rem;margin-left:.35rem;color:var(--text-subtle);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.02em;white-space:nowrap}.article-content .expressive-code .frame.fullscreen .ec-badge{display:inline-flex}.article-content .expressive-code .frame.fullscreen .ec-badge:before{content:"";width:1px;height:.9em;background:color-mix(in srgb,var(--border) 70%,transparent)}.article-content .expressive-code .frame pre{transition:max-height .26s cubic-bezier(.25,.46,.45,.94)}body.article-page .article-content .expressive-code .frame.is-terminal figcaption.header .title{padding-left:4.15rem}body.article-page .article-content .expressive-code .frame.is-terminal figcaption.header:before{display:block;width:.78rem;height:.78rem;left:.9rem;top:50%;transform:translateY(-50%);background:#ff5f57;border-radius:var(--radius-circle);box-shadow:1.17rem 0 #febc2e,2.34rem 0 #28c840;opacity:1;-webkit-mask-image:none;mask-image:none}body.article-page .article-content .expressive-code .frame:hover{border-color:color-mix(in srgb,var(--link) 38%,var(--border) 62%)}body.article-page .article-content .expressive-code .frame figcaption.header:after{position:absolute;inset-inline:0;top:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--link) 24%,transparent) 50%,transparent);content:"";opacity:0;transition:opacity .16s ease}body.article-page .article-content .expressive-code .frame:hover figcaption.header:after{opacity:1}@media(prefers-reduced-motion:reduce){.article-content .expressive-code .frame pre{transition:none}}body.article-page .article-toc[hidden]{display:none}body.article-page .article-toc{position:fixed;top:6.4rem;left:calc(50% + (var(--article-media-width) / 2) + 1.75rem);width:var(--article-toc-width);max-height:calc(100vh - 8rem);margin:0;padding:.72rem .55rem .76rem;overflow:auto;border:1px solid var(--article-hairline);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 34%,transparent),transparent 68%),color-mix(in srgb,var(--article-card-bg) 78%,transparent);box-shadow:0 10px 28px -30px color-mix(in srgb,var(--text) 52%,transparent);backdrop-filter:blur(12px);color:var(--text-muted);font-size:.8rem;line-height:1.45;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 24%,transparent) transparent}body.article-page .article-toc-title{position:relative;display:flex;align-items:center;justify-content:center;margin:0 0 .4rem;padding:0 .28rem;color:color-mix(in srgb,var(--text) 68%,var(--text-muted) 32%);font-family:var(--font-mono);font-size:.68rem;font-weight:560;letter-spacing:.1em;text-align:center;text-transform:uppercase;gap:.34rem}body.article-page .article-toc-title svg{flex:0 0 auto;color:color-mix(in srgb,var(--article-dateplate-accent) 56%,var(--text-muted) 44%)}body.article-page .article-toc-progress{position:relative;display:block;height:2px;margin:0 .28rem .52rem;overflow:hidden;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--border-soft) 72%,transparent)}body.article-page .article-toc-progress:after{position:absolute;inset:0 auto 0 0;width:var(--toc-progress, 0%);border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--article-dateplate-accent) 92%,white 8%),color-mix(in srgb,var(--article-dateplate-accent) 62%,var(--link) 38%));content:"";transition:width 80ms linear}body.article-page .article-toc-list{list-style:none;margin:0;padding:0}body.article-page .article-toc-item{margin:0}body.article-page .article-toc-link{display:grid;grid-template-columns:1.7rem minmax(0,1fr);gap:.28rem;position:relative;padding:.24rem .3rem .24rem .42rem;border-radius:var(--radius-inset);color:color-mix(in srgb,var(--text-muted) 92%,var(--text) 8%);text-decoration:none;transition:color .14s ease,background-color .14s ease}body.article-page .article-toc-number{color:color-mix(in srgb,var(--article-dateplate-accent) 34%,var(--text-subtle) 66%);font-family:var(--font-mono);font-size:.68rem;font-variant-numeric:tabular-nums;line-height:1.7;text-align:right;transition:color .14s ease}body.article-page .article-toc-label{display:block;min-width:0;overflow-wrap:break-word;line-height:inherit}body.article-page .article-toc-h3 .article-toc-link{padding-left:.9rem;font-size:.75rem;color:color-mix(in srgb,var(--text-muted) 82%,var(--text-subtle) 18%)}body.article-page .article-toc-h3 .article-toc-number{color:color-mix(in srgb,var(--text-subtle) 72%,transparent);font-size:.64rem}body.article-page .article-toc-link:hover,body.article-page .article-toc-link:focus-visible{color:color-mix(in srgb,var(--article-dateplate-accent) 68%,var(--text) 32%)}body.article-page .article-toc-link:hover .article-toc-number,body.article-page .article-toc-link:focus-visible .article-toc-number{color:color-mix(in srgb,var(--article-dateplate-accent) 52%,var(--text-subtle) 48%)}body.article-page .article-toc-link.is-active{color:var(--accent-ink);background:color-mix(in srgb,var(--article-dateplate-accent) 8%,transparent);font-weight:560}body.article-page .article-toc-link.is-active:before{position:absolute;top:.32rem;bottom:.32rem;left:.14rem;width:3px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--article-dateplate-accent) 88%,transparent);box-shadow:0 0 8px color-mix(in srgb,var(--article-dateplate-accent) 30%,transparent);content:""}body.article-page .article-toc-link.is-active .article-toc-number{color:var(--article-dateplate-accent);font-weight:700}@media(max-width:1180px){body.article-page .article-toc{position:static;top:auto;left:auto;width:auto;max-height:7.2rem;margin:.9rem 0 1.45rem;padding:.62rem .7rem .66rem}body.article-page .article-toc-progress{margin-right:0;margin-left:0}body.article-page .article-toc-list{display:flex;gap:.28rem;overflow-x:auto;padding-bottom:.04rem;scrollbar-width:none}body.article-page .article-toc-list::-webkit-scrollbar{display:none}body.article-page .article-toc-item{flex:0 0 auto}body.article-page .article-toc-h3 .article-toc-link{padding-left:0}body.article-page .article-toc-link{grid-template-columns:auto minmax(0,1fr);gap:.3rem;max-width:12rem;padding:.2rem .54rem .2rem .42rem;border:1px solid transparent;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface-muted) 26%,transparent);font-size:.74rem}body.article-page .article-toc-number{text-align:left;line-height:1.5}body.article-page .article-toc-link.is-active{border-color:color-mix(in srgb,var(--article-dateplate-accent) 28%,transparent);background:color-mix(in srgb,var(--article-dateplate-accent) 10%,transparent)}body.article-page .article-toc-link.is-active:before{display:none}}@media(max-width:640px){body.article-page .article-toc{display:none;max-height:6.6rem;margin:.15rem 0 1.15rem;padding:.52rem .58rem .58rem;border-radius:var(--radius-md)}}body.article-page.is-toc-sheet-open .article-toc:not([hidden]){display:block;position:fixed;inset:auto 0 0;z-index:110;width:auto;max-height:62vh;margin:0;padding:.6rem .78rem calc(.78rem + env(safe-area-inset-bottom,.4rem));overflow:auto;border:0;border-top:1px solid var(--mobile-border);border-radius:var(--plane-panel-radius) var(--plane-panel-radius) 0 0;background:var(--panel-bg, var(--bg, #fff));box-shadow:0 -8px 30px #0000002e;transform:translateY(var(--sheet-drag, 0px));transition:transform var(--motion-base, .22s) var(--motion-ease, ease);@starting-style{transform:translateY(100%)}}body.article-page.is-toc-sheet-open .article-toc.is-sheet-dragging:not([hidden]){transition:none}body.article-page.is-toc-sheet-open .article-toc-list{display:block;overflow:visible;scrollbar-width:auto}body.article-page.is-toc-sheet-open .article-toc-list::-webkit-scrollbar{display:block}body.article-page.is-toc-sheet-open .article-toc-item{flex:initial}body.article-page.is-toc-sheet-open .article-toc-h3 .article-toc-link{padding-left:.9rem}@media(min-width:641px){.article-toc-trigger{display:none}}@media(max-width:640px){.article-toc-trigger:not([hidden]){display:inline-flex;position:fixed;left:max(.9rem,env(safe-area-inset-left,.25rem));bottom:max(.9rem,env(safe-area-inset-bottom,.4rem));z-index:50;align-items:center;min-height:var(--control-touch, 2.75rem);gap:.34rem;padding:.46rem .74rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-bg, var(--bg, #fff));color:var(--text-muted);font:500 .76rem / 1 var(--font);letter-spacing:.04em;box-shadow:0 2px 12px #0000001f;cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease, ease),color var(--motion-fast) var(--motion-ease, ease)}.article-toc-trigger:hover,.article-toc-trigger:focus-visible{border-color:var(--link);color:var(--link)}.article-toc-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:105;background:#0006;animation:toc-fade-in var(--motion-fast, .15s) var(--motion-ease, ease) both}}@keyframes toc-fade-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){body.is-toc-sheet-open .article-toc,.article-toc-backdrop{animation:none}}@media(min-width:1181px){body.article-page .article-toc:not([hidden]){display:flex;flex-direction:column;overflow:hidden}body.article-page .article-toc-list{min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 24%,transparent) transparent}body.article-page .article-toc.is-scrollable .article-toc-list{padding-bottom:.5rem;-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 1rem),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 1rem),transparent)}}.footnote-ref{display:inline;position:relative}.footnote-ref a{color:var(--link);text-decoration:none;font-size:.82em;font-weight:600;border-bottom:1px dashed transparent;transition:all var(--motion-fast) var(--motion-ease);margin-left:.1em}.footnote-ref a:hover{border-bottom-color:var(--link);color:var(--link-hover)}.footnote-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);max-width:320px;width:max-content;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-inset);padding:.7rem .85rem;font-size:.88rem;line-height:1.6;color:var(--text-body);box-shadow:0 4px 12px color-mix(in srgb,var(--text) 12%,transparent);opacity:0;visibility:hidden;transition:all var(--motion-fast) var(--motion-ease);z-index:100;pointer-events:none;white-space:normal}.footnote-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border)}.footnote-tooltip:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--surface);z-index:1}.footnote-ref:hover .footnote-tooltip,.footnote-ref.is-active .footnote-tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(0);transition-delay:.3s}.footnote-ref.align-left .footnote-tooltip{left:auto;right:0;transform:translate(0) translateY(4px)}.footnote-ref.align-left .footnote-tooltip:after,.footnote-ref.align-left .footnote-tooltip:before{left:auto;right:12px;transform:none}.footnote-ref.align-right .footnote-tooltip{left:0;right:auto;transform:translate(0) translateY(4px)}.footnote-ref.align-right .footnote-tooltip:after,.footnote-ref.align-right .footnote-tooltip:before{left:12px;right:auto;transform:none}.footnote-ref.flip-below .footnote-tooltip{bottom:auto;top:calc(100% + 8px);transform:translate(-50%) translateY(-4px)}.footnote-ref.flip-below .footnote-tooltip:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--border)}.footnote-ref.flip-below .footnote-tooltip:before{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--surface)}.footnote-ref.align-left:hover .footnote-tooltip,.footnote-ref.align-right:hover .footnote-tooltip,.footnote-ref.align-left.is-active .footnote-tooltip,.footnote-ref.align-right.is-active .footnote-tooltip{transform:translate(0) translateY(0)}.footnote-ref.flip-below:hover .footnote-tooltip,.footnote-ref.flip-below.is-active .footnote-tooltip{transform:translate(-50%) translateY(0)}@media(max-width:640px){.footnote-ref:hover .footnote-tooltip{opacity:0;visibility:hidden}.footnote-ref.is-active .footnote-tooltip{opacity:1;visibility:visible;transition-delay:0ms}.footnotes{padding:1.2rem 1.3rem}.footnotes li,.footnotes-item{font-size:.85rem}.footnote-tooltip{max-width:calc(100vw - 2rem)}}.footnotes-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-soft)}.footnotes-title{text-align:center;font-size:.8rem;color:var(--text-muted);letter-spacing:.1em;margin-bottom:1.5rem;text-transform:uppercase;font-weight:600}.footnotes{background:var(--bg-alt);border-radius:var(--article-radius, 8px);padding:1.5rem 2rem;border:1px solid var(--border-soft)}.footnotes ol,.footnotes-list{list-style:none;margin:0;padding:0}.footnotes li,.footnotes-item{display:grid;grid-template-columns:1.5rem minmax(0,1fr);column-gap:.55rem;align-items:start;margin:0 0 .8rem;padding:0;font-size:.9rem;line-height:1.65;list-style:none}.footnotes li:before,.footnotes li::marker,.footnotes-item:before,.footnotes-item::marker{content:none;display:none}.footnotes li:last-child,.footnotes-item:last-child{margin-bottom:0}.footnote-index{display:block;width:1.5rem;color:var(--link);font-family:var(--font-mono);font-size:.82rem;font-weight:650;line-height:1.55;text-align:left;user-select:none}.footnote-body{min-width:0}.footnotes li p,.footnotes-item p,.footnote-body p{display:inline;margin:0}.footnotes li p+p,.footnotes-item p+p,.footnote-body p+p{display:block;margin-top:.5rem}.footnotes li code,.footnotes-item code,.footnote-body code{font-size:.88em}.footnote-backref{color:var(--text-muted);text-decoration:none;margin-left:.35rem;font-size:.9rem;display:inline-block;transition:all var(--motion-fast) var(--motion-ease)}.footnote-backref:hover{color:var(--link);transform:translate(-2px)}.footnote-backref-list{display:inline;margin-left:.35rem;white-space:nowrap}.footnote-backref-list .footnote-backref{margin-left:.2rem;font-size:.75rem;vertical-align:super}.footnote-backref-list .footnote-backref:first-child{margin-left:.35rem}.footnotes li:target,.footnotes-item:target{background:color-mix(in srgb,var(--link) 8%,transparent);border-radius:var(--radius-xs);padding:.3rem .5rem;margin-left:-.5rem;margin-right:-.5rem;animation:footnote-highlight 2s ease-out}@keyframes footnote-highlight{0%{background:color-mix(in srgb,var(--link) 15%,transparent)}to{background:transparent}}.footnote-ref a:target{animation:footnote-ref-highlight 1s ease-out}@keyframes footnote-ref-highlight{0%,50%{background:color-mix(in srgb,var(--link) 20%,transparent);border-radius:var(--radius-xs);padding:.1rem .2rem;margin:-.1rem -.2rem}to{background:transparent}}.article-content h2+ul:has(>li>a[href^=http]),.article-content section.references ul{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:.6rem}.article-content h2+ul:has(>li>a[href^=http]) li,.article-content section.references li{position:relative;padding:.7rem .9rem .7rem 2.2rem;background:var(--bg-alt);border:1px solid var(--border-soft);border-left:3px solid var(--link);border-radius:var(--article-radius, 6px);transition:all var(--motion-fast) var(--motion-ease);line-height:1.6}.article-content h2+ul:has(>li>a[href^=http]) li:before,.article-content section.references li:before{content:"📎";position:absolute;left:.7rem;top:.75rem;font-size:1rem}.article-content h2+ul:has(>li>a[href^=http]) li:hover,.article-content section.references li:hover{background:var(--surface);border-left-color:var(--link-hover);box-shadow:0 2px 8px color-mix(in srgb,var(--text) 6%,transparent);transform:translate(2px)}.article-content h2+ul:has(>li>a[href^=http]) li a,.article-content section.references li a{color:var(--text);text-decoration:none;font-weight:500}.article-content h2+ul:has(>li>a[href^=http]) li a:hover,.article-content section.references li a:hover{color:var(--link)}body.article-page .article-shell{padding-top:1.35rem}body.article-page .article-breadcrumb{min-width:0;margin-bottom:1.55rem;color:var(--text-subtle);font-family:var(--font);font-size:.72rem;line-height:1.4}body.article-page .article-breadcrumb ol{display:flex;min-width:0;align-items:center;gap:0;margin:0;padding:0;list-style:none}body.article-page .article-breadcrumb li{display:inline-flex;min-width:0;align-items:center;white-space:nowrap}body.article-page .article-breadcrumb li+li:before{margin-inline:.58rem;color:color-mix(in srgb,var(--text-subtle) 58%,transparent);content:"/"}body.article-page .article-breadcrumb li[aria-current=page]{overflow:hidden;color:color-mix(in srgb,var(--text-muted) 80%,var(--text) 20%);text-overflow:ellipsis}body.article-page .article-breadcrumb a{color:inherit;text-decoration:none}body.article-page .article-breadcrumb-home{display:inline-flex;align-items:center;gap:.25rem}body.article-page .article-masthead-meta .tags-item,body.article-page .article-masthead-meta .article-fact-values a{position:relative}body.article-page .article-masthead-meta .tags-item:after,body.article-page .article-masthead-meta .article-fact-values a:after{position:absolute;inset:-.5rem -.16rem;content:""}body.article-page .article-breadcrumb-home svg{width:.68rem;height:.68rem;stroke-width:1.7}body.article-page .article-breadcrumb a:hover,body.article-page .article-breadcrumb a:focus-visible{color:var(--link)}body.article-page .article-header{margin-bottom:2.55rem;padding-bottom:1.22rem;overflow:visible}body.article-page .article-header:after{height:1px;border-radius:0;background:var(--dash-rule)}body.article-page .article-masthead-meta{position:relative;display:grid;min-width:0;align-items:start;row-gap:.5rem}body.article-page .article-meta-rows{position:relative;display:grid;min-width:0;align-items:start;row-gap:.5rem;padding:.9rem 1.05rem .95rem;border-radius:var(--plane-inset-radius);background:var(--plane-inset-bg)}body.article-page .article-header h1{max-width:46rem;margin:0 0 .72rem;color:var(--text);font-family:var(--font);font-size:2.125rem;font-weight:680;line-height:1.24;letter-spacing:0;text-wrap:pretty}body.article-page .article-masthead-row{min-width:0}body.article-page .article-facts{display:flex;min-width:0;flex-wrap:wrap;align-items:center;column-gap:.88rem;row-gap:.2rem;font-family:var(--font);font-size:.74rem;line-height:1.42}body.article-page .article-fact{display:inline-flex;min-width:0;align-items:center;gap:.3rem;white-space:nowrap}body.article-page .article-fact-values,body.article-page .article-weather [data-weather-text]{display:inline-flex;align-items:baseline}body.article-page .article-fact-values>*+*:before,body.article-page .article-weather [data-weather-text]>*+*:before{margin-inline:.38rem;color:color-mix(in srgb,var(--text-subtle) 52%,transparent);content:"·";font-weight:400}body.article-page .article-facts svg,body.article-page .article-archive-ledger>svg,body.article-page .article-masthead-tags>svg{flex:0 0 auto;width:.76rem;height:.76rem;color:color-mix(in srgb,var(--link) 52%,var(--text-subtle) 48%);stroke-width:1.65;opacity:.92}body.article-page .article-facts-context{color:color-mix(in srgb,var(--text-muted) 78%,var(--text) 22%);font-size:.8rem;font-weight:450;letter-spacing:.005em}body.article-page .article-fact-calendar{font-variant-numeric:tabular-nums}body.article-page .article-fact-date{color:color-mix(in srgb,var(--text) 58%,var(--text-muted) 42%);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:520}body.article-page .article-fact-lunar,body.article-page .article-fact-term{color:color-mix(in srgb,var(--text-muted) 88%,var(--text-subtle) 12%);font-weight:430}body.article-page .article-weather.is-ready{color:color-mix(in srgb,var(--text-muted) 70%,var(--text) 30%)}body.article-page .article-weather.is-loading,body.article-page .article-weather.has-error{display:none}body.article-page .article-weather .weather-condition{color:color-mix(in srgb,var(--text) 64%,currentColor 36%);font-weight:560;letter-spacing:.01em}body.article-page .article-weather [data-weather-text]{flex-wrap:nowrap}body.article-page .article-weather{cursor:help}body.article-page .article-weather:focus-visible{border-radius:var(--radius-xs);outline:1px dashed color-mix(in oklch,var(--link) 58%,transparent);outline-offset:.16rem}body.article-page .article-weather:after{position:absolute;top:calc(100% + .42rem);left:0;z-index:30;width:max-content;max-width:100%;padding:.34rem .55rem;border:1px solid var(--plane-panel-border);border-radius:var(--radius-xs);background:var(--plane-panel-bg);box-shadow:var(--plane-panel-shadow);color:var(--text-muted);content:attr(data-weather-detail);font-family:var(--font-mono);font-size:.66rem;font-variant-numeric:tabular-nums;line-height:1.45;opacity:0;pointer-events:none;transform:translateY(-.2rem);transition:opacity .14s ease-out,transform .14s ease-out;white-space:normal}body.article-page .article-weather:hover:after,body.article-page .article-weather:focus:after,body.article-page .article-weather:active:after{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){body.article-page .article-weather:after{transform:none;transition:none}}body.article-page .article-archive-ledger{display:flex;min-width:0;align-items:center;gap:.32rem;margin:0;color:var(--text-subtle);font-family:var(--font-mono);font-size:.68rem;font-variant-numeric:tabular-nums;line-height:1.4;letter-spacing:.01em}body.article-page .article-archive-ledger>svg{width:.7rem;height:.7rem;color:color-mix(in srgb,var(--link) 42%,var(--text-subtle) 58%);stroke-width:1.55;opacity:.88}body.article-page .article-archive-fields{display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;gap:.1rem .82rem;margin:0}body.article-page .article-archive-fields>div,body.article-page .article-archive-field{display:inline-flex;align-items:baseline;gap:.28rem;white-space:nowrap}body.article-page .article-archive-fields :is(dt,dd){margin:0}body.article-page .article-archive-fields dt{color:color-mix(in srgb,var(--text-subtle) 68%,transparent);font-size:.9em;font-weight:450;letter-spacing:.02em}body.article-page .article-archive-fields dd{color:color-mix(in srgb,var(--text-muted) 86%,var(--text-subtle) 14%);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500}body.article-page .article-archive-number-field{margin-right:.02rem}body.article-page .article-record-number{display:inline-flex;align-items:baseline;gap:.26rem;line-height:1}body.article-page .article-record-prefix{color:color-mix(in srgb,var(--text-subtle) 74%,transparent);font-size:.6rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}body.article-page .article-record-number-value{min-width:calc(var(--archive-number-digits, 3) * 1ch);color:var(--signal);font-size:.76rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.01em}body.article-page .article-facts-primary{align-items:baseline;column-gap:1rem;color:color-mix(in srgb,var(--text-muted) 80%,var(--text) 20%);font-size:.73rem;font-variant-numeric:tabular-nums;font-weight:450}body.article-page .article-facts-primary a{color:inherit;font-weight:600;text-decoration:none}body.article-page .article-facts-primary a:hover,body.article-page .article-facts-primary a:focus-visible{color:var(--link);text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 38%,transparent);text-underline-offset:.2em}body.article-page .article-fact-words,body.article-page .article-fact-minutes{color:color-mix(in srgb,var(--text-muted) 88%,var(--text-subtle) 12%);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:450}body.article-page .article-masthead-tags{display:inline-flex;min-width:0;align-items:center;gap:.26rem;margin:0;color:var(--text-subtle);font-size:.69rem;line-height:1.35}body.article-page .article-masthead-tags>svg{width:.68rem;height:.68rem;color:color-mix(in srgb,var(--link) 44%,var(--text-subtle) 56%);opacity:.86}body.article-page .article-masthead-tags .tags-array{display:inline-flex;min-width:0;align-items:center;color:color-mix(in srgb,var(--text-subtle) 90%,var(--text-muted) 10%);font-family:var(--font-mono);font-size:.94em;font-weight:450;line-height:1;letter-spacing:0}body.article-page .article-masthead-tags .tags-list,body.article-page .article-masthead-tags .tags-pair{display:inline-flex;min-width:0;align-items:center}body.article-page .article-masthead-tags :is(.tags-bracket,.tags-quote,.tags-comma){flex:0 0 auto;color:color-mix(in srgb,var(--text-subtle) 54%,transparent);font-weight:400;white-space:pre}body.article-page .article-masthead-tags a{color:color-mix(in srgb,var(--text-subtle) 86%,var(--text-muted) 14%);font-weight:450;text-decoration:none;white-space:nowrap}body.article-page .article-masthead-tags a:hover,body.article-page .article-masthead-tags a:focus-visible{color:var(--link)}@media(max-width:640px){body.article-page .article-shell{padding-top:.82rem}body.article-page .article-breadcrumb{margin-bottom:1.18rem;font-size:.68rem}body.article-page .article-breadcrumb li+li:before{margin-inline:.42rem}body.article-page .article-breadcrumb li:last-child{flex:1 1 auto}body.article-page .article-header{margin-bottom:1.65rem;padding-bottom:1rem}body.article-page .article-header h1{max-width:none;margin-bottom:.48rem;font-size:1.58rem;line-height:1.24;letter-spacing:0}body.article-page .article-meta-rows{row-gap:.4rem;padding:.7rem .8rem .75rem}body.article-page .article-facts{column-gap:.7rem;row-gap:.16rem;font-size:.7rem;line-height:1.45}body.article-page .article-facts-context{font-size:.71rem}body.article-page .article-fact-values>*+*:before,body.article-page .article-weather [data-weather-text]>*+*:before{margin-inline:.3rem}body.article-page .article-archive-ledger{font-size:.64rem}body.article-page .article-archive-fields{gap:.08rem .56rem}body.article-page .article-archive-fields>.article-archive-field-updated,body.article-page .article-archive-fields>.article-archive-field-revision{display:none}body.article-page .article-facts-primary{column-gap:.72rem;font-size:.7rem}body.article-page .article-masthead-tags{font-size:.66rem}body.article-page .article-masthead-tags .tags-array{max-width:calc(100vw - 3.2rem);overflow:hidden;text-overflow:ellipsis}}
