.ArticlePage_page__Zv11r.ArticlePage_page__Zv11r{--bg:var(--home-bg);--card:var(--home-card);--text:var(--home-text);--muted:var(--home-muted);--line:var(--home-line);--primary:var(--home-accent);--primary-soft:var(--home-accent-soft);--article-display:var(--font-site-sans);background:var(--home-bg)}.ArticlePage_page__Zv11r .ArticlePage_articleMain__l0p8Y{--article-sidebar:220px;--article-gap:40px;min-width:0;width:min(1180px,calc(100% - 48px));margin:0 auto;animation:none!important}.ArticlePage_articleHeader__5d_Ng{width:calc(100% - var(--article-sidebar) - var(--article-gap));margin:0 0 0 auto;padding-top:28px}.ArticlePage_back__ufsIv{display:inline-flex;align-items:center;gap:9px;color:var(--home-muted);font-size:14px}.ArticlePage_back__ufsIv:hover{color:var(--home-accent)}.ArticlePage_articleHeader__5d_Ng h1{position:relative;margin:38px 0 25px;padding-left:18px;font-family:var(--article-display);font-size:clamp(32px,3.15vw,46px);font-weight:700;line-height:1.35;letter-spacing:-.025em;overflow-wrap:anywhere}.ArticlePage_articleHeader__5d_Ng h1:before{content:"";position:absolute;left:0;top:.2em;width:5px;height:.85em;border-radius:4px;background:var(--home-accent)}.ArticlePage_meta__oKDab{display:flex;flex-wrap:wrap;align-items:center;gap:9px 22px;color:var(--home-muted);font-size:14px}.ArticlePage_meta__oKDab>span,.ArticlePage_readingStats__Tm2Xm>span{display:inline-flex;align-items:center;gap:8px}.ArticlePage_meta__oKDab svg,.ArticlePage_readingStats__Tm2Xm svg{flex:none}.ArticlePage_readingStats__Tm2Xm{display:flex;flex-wrap:wrap;gap:20px;padding:15px 0;margin-top:25px;border-top:1px solid var(--home-line);border-bottom:1px solid var(--home-line);color:var(--home-muted);font-size:14px}.ArticlePage_readingLayout__JGlD8{position:relative;display:grid;grid-template-columns:var(--article-sidebar) minmax(0,1fr);gap:var(--article-gap);width:100%;margin:44px 0 0}.ArticlePage_progressSidebar__CWWmM{--toc-accent:var(--home-accent);min-width:0}.ArticlePage_toc__e8PIG{position:sticky;top:100px;display:flex;flex-direction:column;max-height:calc(100dvh - 130px);padding:0 4px}.ArticlePage_tocTitle__2gC8u{flex:none;margin:0 0 17px;color:var(--home-muted);font-family:var(--article-display);font-size:13px;font-weight:400;letter-spacing:.28em}.ArticlePage_tocList__qahFb{min-height:0;margin:0;padding:0;overflow-y:auto;list-style:none;scrollbar-width:thin;scrollbar-color:var(--home-line) transparent}.ArticlePage_tocList__qahFb li{margin:0 0 9px;padding-left:calc(var(--toc-depth) * 20px)}.ArticlePage_tocLink__9lzjY{position:relative;display:block;padding:2px 0 2px 19px;color:var(--home-muted);font-size:15px;font-weight:400;line-height:1.7;overflow-wrap:anywhere;transition:color .2s}.ArticlePage_tocLink__9lzjY:before{content:"";position:absolute;top:.58em;left:2px;width:6px;height:9px;border-left:1.5px solid color-mix(in srgb,var(--home-muted) 60%,transparent);border-bottom:1.5px solid color-mix(in srgb,var(--home-muted) 60%,transparent)}.ArticlePage_tocLink__9lzjY.ArticlePage_tocActive__gmU10,.ArticlePage_tocLink__9lzjY:hover{color:var(--home-text)}.ArticlePage_tocLink__9lzjY.ArticlePage_tocActive__gmU10:before{border-color:var(--toc-accent)}.ArticlePage_tocEmpty__taywz{margin:0;color:var(--home-muted);font-size:13px;line-height:1.7}.ArticlePage_tocProgress__neqSU{flex:none;display:flex;align-items:center;gap:12px;margin-top:28px}.ArticlePage_tocProgressTrack__w_Nk6{flex:1;height:18px;overflow:hidden;background:radial-gradient(circle,color-mix(in srgb,var(--home-muted) 40%,transparent) .6px,transparent .8px) 0 0 /3px 3px}.ArticlePage_tocProgressTrack__w_Nk6>span{display:block;height:100%;background:repeating-conic-gradient(var(--toc-accent) 0 25%,transparent 0 50%) 0 0 /3px 3px;transition:width .18s ease-out}.ArticlePage_tocProgressValue__3iZTy{min-width:3ch;color:var(--home-muted);font-size:13px;line-height:1;font-variant-numeric:tabular-nums}.ArticlePage_prose__sGI25{min-width:0;width:100%;min-height:220px;color:var(--home-text);font-size:17px;font-weight:400;line-height:1.95;overflow-wrap:anywhere}.ArticlePage_prose__sGI25>:first-child{margin-top:0}.ArticlePage_prose__sGI25 p{margin:0 0 25px}.ArticlePage_prose__sGI25 strong{font-weight:600}.ArticlePage_prose__sGI25 :is(h2,h3,h4){color:var(--home-text);font-family:var(--article-display);font-weight:700;line-height:1.5;scroll-margin-top:105px;overflow-wrap:anywhere}.ArticlePage_prose__sGI25 h2{margin:48px 0 18px;font-size:29px}.ArticlePage_prose__sGI25 h3{margin:30px 0 15px;font-size:23px}.ArticlePage_prose__sGI25 h4{margin:28px 0 14px;font-size:20px}.ArticlePage_prose__sGI25 a{color:var(--home-accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--home-accent) 35%,transparent);text-underline-offset:4px}.ArticlePage_prose__sGI25 a:hover{text-decoration-color:currentColor}.ArticlePage_prose__sGI25 a.ArticlePage_headingAnchor__CmzNI{display:inline-block;margin-left:8px;color:var(--home-accent);font-family:var(--font-display-sans);font-size:.7em;font-weight:400;text-decoration:none}.ArticlePage_prose__sGI25 :is(ul,ol){padding-left:28px;margin:18px 0 28px}.ArticlePage_prose__sGI25 li{margin:9px 0;padding-left:3px}.ArticlePage_prose__sGI25 li::marker{color:var(--home-accent)}.ArticlePage_prose__sGI25 li>p{margin-bottom:8px}.ArticlePage_prose__sGI25 blockquote{margin:24px 0 34px;padding:0 0 0 17px;border-left:2px solid var(--home-accent);color:var(--home-text);font-style:normal}.ArticlePage_prose__sGI25 blockquote p{margin:8px 0}.ArticlePage_prose__sGI25 img{display:block;width:auto;max-width:100%;height:auto;max-height:900px;margin:28px auto;border-radius:10px;object-fit:contain}.ArticlePage_prose__sGI25 pre{max-width:100%;overflow:auto;margin:25px 0;padding:20px 22px;border:1px solid var(--home-line);border-radius:11px;background:var(--home-soft);font-size:13px;line-height:1.75;tab-size:2}.ArticlePage_prose__sGI25 code{padding:2px 5px;border-radius:4px;background:var(--home-soft);color:var(--home-text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.ArticlePage_prose__sGI25 pre code{padding:0;background:transparent;font-size:inherit}.ArticlePage_prose__sGI25 hr{margin:40px 0;border:0;border-top:1px solid var(--home-line)}.ArticlePage_prose__sGI25 table{display:block;max-width:100%;overflow:auto;margin:24px 0;border-collapse:collapse}.ArticlePage_prose__sGI25 :is(td,th){padding:10px 14px;border:1px solid var(--home-line)}.ArticlePage_status__IKLYW{padding:40px 0;color:var(--home-muted);font-size:14px}.ArticlePage_comments__T2NMH{width:calc(100% - var(--article-sidebar) - var(--article-gap));margin:70px 0 65px auto}.ArticlePage_comments__T2NMH .twikoo-host{background:var(--home-card);border-color:var(--home-line);box-shadow:none}.ArticlePage_comments__T2NMH .section-title h2{font-size:22px}.ArticlePage_missing__3otEF{width:min(720px,calc(100% - 48px));margin:100px auto;text-align:center}.ArticlePage_missing__3otEF h1{font-size:28px;margin-bottom:18px}.ArticlePage_missing__3otEF a{color:var(--home-accent)}@media (max-width:1320px){.ArticlePage_page__Zv11r .ArticlePage_articleMain__l0p8Y{--article-sidebar:200px;--article-gap:32px}}@media (max-width:1120px){.ArticlePage_page__Zv11r .ArticlePage_articleMain__l0p8Y{--article-sidebar:180px;--article-gap:28px}}@media (max-width:980px){.ArticlePage_page__Zv11r .ArticlePage_articleMain__l0p8Y{width:min(820px,calc(100% - 48px))}.ArticlePage_articleHeader__5d_Ng,.ArticlePage_comments__T2NMH{width:100%}.ArticlePage_readingLayout__JGlD8{display:block}.ArticlePage_progressSidebar__CWWmM{position:static;width:100%;margin-bottom:32px}.ArticlePage_toc__e8PIG{position:static;max-height:none;padding:0}.ArticlePage_tocList__qahFb{max-height:200px}}@media (max-width:680px){.ArticlePage_page__Zv11r .ArticlePage_articleMain__l0p8Y{width:calc(100% - 40px)}.ArticlePage_articleHeader__5d_Ng,.ArticlePage_comments__T2NMH,.ArticlePage_readingLayout__JGlD8{width:100%}.ArticlePage_articleHeader__5d_Ng{padding-top:24px}.ArticlePage_articleHeader__5d_Ng h1{margin-top:28px;margin-bottom:21px;padding-left:14px;font-size:30px;line-height:1.45}.ArticlePage_articleHeader__5d_Ng h1:before{width:4px;top:.24em}.ArticlePage_meta__oKDab{gap:7px 14px;font-size:12px}.ArticlePage_readingStats__Tm2Xm{margin-top:20px;padding:12px 0;font-size:12px}.ArticlePage_readingLayout__JGlD8{margin-top:30px}.ArticlePage_prose__sGI25{font-size:15px;line-height:1.95}.ArticlePage_prose__sGI25 p{margin-bottom:22px}.ArticlePage_prose__sGI25 h2{margin-top:36px;font-size:25px}.ArticlePage_prose__sGI25 h3{font-size:21px}.ArticlePage_prose__sGI25 img{margin:22px auto}.ArticlePage_prose__sGI25 pre{padding:16px;font-size:12px}.ArticlePage_comments__T2NMH{margin-top:45px}}@media (max-width:420px){.ArticlePage_articleHeader__5d_Ng h1{font-size:28px}.ArticlePage_prose__sGI25 :is(h2,h3,h4){scroll-margin-top:135px}}@media (prefers-reduced-motion:reduce){.ArticlePage_page__Zv11r *,.ArticlePage_page__Zv11r :after,.ArticlePage_page__Zv11r :before{animation:none!important;transition:none!important}}.ArticlePage_prose__sGI25 blockquote *{font-style:normal}.ArticlePage_codeBlock__evWYZ{--code-bg:#fafafa;--code-text:#383a42;--code-border:#e2e4e8;--code-muted:#696c77;--code-keyword:#a626a4;--code-string:#50a14f;--code-red:#e45649;--code-blue:#4078f2;--code-orange:#986801;--code-yellow:#986801;--code-cyan:#0184bc;min-width:0;max-width:100%;margin:28px 0;overflow:hidden;border:1px solid var(--code-border);border-radius:12px;background:var(--code-bg);color:var(--code-text);color-scheme:light}html[data-theme=dark] .ArticlePage_codeBlock__evWYZ{--code-bg:#282c34;--code-text:#abb2bf;--code-border:#3b4048;--code-muted:#5c6370;--code-keyword:#c678dd;--code-string:#98c379;--code-red:#e06c75;--code-blue:#61afef;--code-orange:#d19a66;--code-yellow:#e5c07b;--code-cyan:#56b6c2;color-scheme:dark}.ArticlePage_codePanel__HK4Ui{min-width:0;margin:0;padding:24px 28px 26px}.ArticlePage_prose__sGI25 .ArticlePage_codeBlock__evWYZ pre{position:static;max-width:100%;margin:0;padding:0;overflow-x:auto;border:0;border-radius:0;background:transparent;color:var(--code-text);box-shadow:none;font-size:14px;font-style:normal;line-height:1.8;scrollbar-width:thin;scrollbar-color:var(--code-border) transparent}.ArticlePage_prose__sGI25 .ArticlePage_codeBlock__evWYZ pre code{display:block;width:max-content;min-width:100%;padding:0;background:transparent;color:inherit;font-size:inherit;font-style:normal}.ArticlePage_codeBlock__evWYZ .hljs-comment,.ArticlePage_codeBlock__evWYZ .hljs-quote{color:var(--code-muted)}.ArticlePage_codeBlock__evWYZ .hljs-keyword,.ArticlePage_codeBlock__evWYZ .hljs-selector-tag{color:var(--code-keyword)}.ArticlePage_codeBlock__evWYZ .hljs-addition,.ArticlePage_codeBlock__evWYZ .hljs-meta .hljs-string,.ArticlePage_codeBlock__evWYZ .hljs-string{color:var(--code-string)}.ArticlePage_codeBlock__evWYZ .hljs-attr,.ArticlePage_codeBlock__evWYZ .hljs-deletion,.ArticlePage_codeBlock__evWYZ .hljs-name,.ArticlePage_codeBlock__evWYZ .hljs-selector-id,.ArticlePage_codeBlock__evWYZ .hljs-template-variable,.ArticlePage_codeBlock__evWYZ .hljs-variable{color:var(--code-red)}.ArticlePage_codeBlock__evWYZ .hljs-meta,.ArticlePage_codeBlock__evWYZ .hljs-section,.ArticlePage_codeBlock__evWYZ .hljs-title{color:var(--code-blue)}.ArticlePage_codeBlock__evWYZ .hljs-attribute,.ArticlePage_codeBlock__evWYZ .hljs-built_in,.ArticlePage_codeBlock__evWYZ .hljs-selector-class,.ArticlePage_codeBlock__evWYZ .hljs-title.class_,.ArticlePage_codeBlock__evWYZ .hljs-type{color:var(--code-yellow)}.ArticlePage_codeBlock__evWYZ .hljs-bullet,.ArticlePage_codeBlock__evWYZ .hljs-literal,.ArticlePage_codeBlock__evWYZ .hljs-number,.ArticlePage_codeBlock__evWYZ .hljs-symbol{color:var(--code-orange)}.ArticlePage_codeBlock__evWYZ .hljs-operator,.ArticlePage_codeBlock__evWYZ .hljs-regexp,.ArticlePage_codeBlock__evWYZ .hljs-selector-pseudo{color:var(--code-cyan)}.ArticlePage_codeBlock__evWYZ .hljs-params,.ArticlePage_codeBlock__evWYZ .hljs-punctuation,.ArticlePage_codeBlock__evWYZ .hljs-subst,.ArticlePage_codeBlock__evWYZ .hljs-tag{color:var(--code-text)}.ArticlePage_codeBlock__evWYZ .hljs-emphasis{font-style:italic}.ArticlePage_codeBlock__evWYZ .hljs-strong{font-weight:700}@media (max-width:680px){.ArticlePage_codeBlock__evWYZ{margin:22px 0;border-radius:10px}.ArticlePage_codePanel__HK4Ui{padding:18px 18px 20px}.ArticlePage_prose__sGI25 .ArticlePage_codeBlock__evWYZ pre{font-size:12px}}.ArticlePage_authorTag__uCmf7{display:inline-flex;align-items:center;gap:7px;color:var(--home-text);font-weight:500;transition:color .18s ease}.ArticlePage_authorTag__uCmf7:hover{color:var(--home-accent)}.ArticlePage_authorTagAvatar__olv0D{display:block;width:20px;height:20px;border:1px solid var(--home-line);border-radius:50%;object-fit:cover;background:var(--home-soft)}