@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_d7bf65{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_d7bf65{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/fe4c52824bfaed3e-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e8ab5100a4aa694-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b78b37b810acce9f-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/027647acf05c7ff8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1f3fe8c6df3d47c1-s.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/fe4c52824bfaed3e-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e8ab5100a4aa694-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b78b37b810acce9f-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/027647acf05c7ff8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1f3fe8c6df3d47c1-s.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Merriweather Fallback;src:local("Times New Roman");ascent-override:80.59%;descent-override:22.36%;line-gap-override:0.00%;size-adjust:122.09%}.__className_390154{font-family:Merriweather,Merriweather Fallback;font-style:normal}.__variable_390154{--font-merriweather:"Merriweather","Merriweather Fallback"}@font-face{font-family:wenyuanRounded;src:url(/_next/static/media/f34caba829969f58-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:wenyuanRounded;src:url(/_next/static/media/965a316da8606624-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:wenyuanRounded Fallback;src:local("Arial");ascent-override:105.77%;descent-override:26.26%;line-gap-override:0.00%;size-adjust:109.67%}.__className_2f4827{font-family:wenyuanRounded,wenyuanRounded Fallback}.__variable_2f4827{--font-wenyuan-rounded:"wenyuanRounded","wenyuanRounded Fallback"}@font-face{font-family:"wenyuanSerif";src:url(/_next/static/media/3981b99d823f5566-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:"wenyuanSerif";src:url(/_next/static/media/4017572912863c0c-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:"wenyuanSerif Fallback";src:local("Arial");ascent-override:107.26%;descent-override:26.63%;line-gap-override:0.00%;size-adjust:108.15%}.__className_7525f5{font-family:"wenyuanSerif","wenyuanSerif Fallback"}.__variable_7525f5{--font-wenyuan-serif:"wenyuanSerif","wenyuanSerif Fallback"}:root,[data-theme=light]{--bg-primary:#ffffff;--bg-secondary:#f8f7f4;--bg-hover:#f0ede8;--bg-active:#e8e4de;--border-subtle:#e5e2dc;--border-strong:#ccc8c0;--text-primary:#1a1917;--text-secondary:#6b6862;--text-muted:#9c9892;--text-link:#b06a2f;--accent-primary:#b06a2f;--accent-subtle:#f5ede4;--syntax-bg:#f6f3ef;--syntax-border:#e8e4dc;--scrollbar-thumb:#d4d0c8;--selection-bg:rgba(176,106,47,0.15);--shiki-color-text:#1a1917;--shiki-color-background:#f6f3ef;--shiki-token-constant:#a8522a;--shiki-token-string:#6b8c3a;--shiki-token-comment:#9c9892;--shiki-token-keyword:#7c4dbd;--shiki-token-parameter:#1a1917;--shiki-token-function:#2563a8;--shiki-token-string-expression:#6b8c3a;--shiki-token-punctuation:#6b6862;--shiki-token-link:#b06a2f}[data-theme=sepia]{--bg-primary:#f7f3e9;--bg-secondary:#f1ebda;--bg-hover:#e9e0c9;--bg-active:#e0d5b8;--border-subtle:#e6ddc4;--border-strong:#d3c39e;--text-primary:#3a2f22;--text-secondary:#6b5c46;--text-muted:#93815f;--text-link:#8a5a2b;--accent-primary:#8a5a2b;--accent-subtle:#f3ead4;--syntax-bg:#f0e9d6;--syntax-border:#e6ddc4;--scrollbar-thumb:#ddd0ac;--selection-bg:rgba(138,90,43,0.18);--shiki-color-text:#3a2f22;--shiki-color-background:#f0e9d6;--shiki-token-constant:#9c5a26;--shiki-token-string:#5f7a35;--shiki-token-comment:#93815f;--shiki-token-keyword:#7a5296;--shiki-token-parameter:#3a2f22;--shiki-token-function:#38618c;--shiki-token-string-expression:#5f7a35;--shiki-token-punctuation:#6b5c46;--shiki-token-link:#8a5a2b}[data-theme=rust]{--bg-primary:#1d1412;--bg-secondary:#251a17;--bg-hover:#2e201c;--bg-active:#3a2820;--border-subtle:#3d2820;--border-strong:#5c3828;--text-primary:#e8d5c4;--text-secondary:#b09080;--text-muted:#806858;--text-link:#e8944a;--accent-primary:#e8944a;--accent-subtle:#3a2015;--syntax-bg:#221816;--syntax-border:#3d2820;--scrollbar-thumb:#4a3028;--selection-bg:rgba(232,148,74,0.2);--shiki-color-text:#e8d5c4;--shiki-color-background:#221816;--shiki-token-constant:#e8944a;--shiki-token-string:#a8c47a;--shiki-token-comment:#806858;--shiki-token-keyword:#c47adb;--shiki-token-parameter:#e8d5c4;--shiki-token-function:#7ab8e8;--shiki-token-string-expression:#a8c47a;--shiki-token-punctuation:#b09080;--shiki-token-link:#e8944a}[data-theme=coal]{--bg-primary:#18191a;--bg-secondary:#1e1f21;--bg-hover:#26282b;--bg-active:#2e3033;--border-subtle:#2e3033;--border-strong:#404347;--text-primary:#c8c9ca;--text-secondary:#8a8c8e;--text-muted:#606264;--text-link:#6ab0f5;--accent-primary:#6ab0f5;--accent-subtle:#1e2a38;--syntax-bg:#1a1b1c;--syntax-border:#2e3033;--scrollbar-thumb:#3a3d40;--selection-bg:rgba(106,176,245,0.18);--shiki-color-text:#c8c9ca;--shiki-color-background:#1a1b1c;--shiki-token-constant:#79c0ff;--shiki-token-string:#a5d6a7;--shiki-token-comment:#606264;--shiki-token-keyword:#d2a8ff;--shiki-token-parameter:#c8c9ca;--shiki-token-function:#6ab0f5;--shiki-token-string-expression:#a5d6a7;--shiki-token-punctuation:#8a8c8e;--shiki-token-link:#6ab0f5}[data-theme=navy]{--bg-primary:#0d1117;--bg-secondary:#131920;--bg-hover:#1a2332;--bg-active:#1e2b3d;--border-subtle:#1e2b3d;--border-strong:#2a3f5f;--text-primary:#cdd9e5;--text-secondary:#7d8fa3;--text-muted:#4d6075;--text-link:#58a6ff;--accent-primary:#58a6ff;--accent-subtle:#0d2044;--syntax-bg:#0d1117;--syntax-border:#1e2b3d;--scrollbar-thumb:#253b55;--selection-bg:rgba(88,166,255,0.18);--shiki-color-text:#cdd9e5;--shiki-color-background:#0d1117;--shiki-token-constant:#79c0ff;--shiki-token-string:#a5d6a7;--shiki-token-comment:#4d6075;--shiki-token-keyword:#d2a8ff;--shiki-token-parameter:#cdd9e5;--shiki-token-function:#58a6ff;--shiki-token-string-expression:#a5d6a7;--shiki-token-punctuation:#7d8fa3;--shiki-token-link:#58a6ff}[data-theme=ayu]{--bg-primary:#0b0e14;--bg-secondary:#0f1319;--bg-hover:#171c24;--bg-active:#1d2430;--border-subtle:#1d2430;--border-strong:#2a3447;--text-primary:#bfbdb6;--text-secondary:#6e7a8a;--text-muted:#3d4a5c;--text-link:#ffb454;--accent-primary:#ffb454;--accent-subtle:#2a1f0a;--syntax-bg:#0d1017;--syntax-border:#1d2430;--scrollbar-thumb:#253040;--selection-bg:rgba(255,180,84,0.15);--shiki-color-text:#bfbdb6;--shiki-color-background:#0d1017;--shiki-token-constant:#ffb454;--shiki-token-string:#aad94c;--shiki-token-comment:#3d4a5c;--shiki-token-keyword:#f29668;--shiki-token-parameter:#bfbdb6;--shiki-token-function:#ffb454;--shiki-token-string-expression:#aad94c;--shiki-token-punctuation:#6e7a8a;--shiki-token-link:#ffb454}.prose{color:var(--text-primary);font-size:var(--font-size-base,17px);line-height:var(--line-height,1.75);font-family:var(--font-body)}.prose>*+*{margin-top:1.25em}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--text-primary);font-weight:600;line-height:1.3;letter-spacing:-.015em;scroll-margin-top:5rem}.prose h1{font-size:2em;margin-top:0;margin-bottom:.75em;font-weight:700;letter-spacing:-.025em}.prose h2{font-size:1.4em;margin-top:2em;margin-bottom:.75em;padding-bottom:.35em;border-bottom:1px solid var(--border-subtle)}.prose h3{font-size:1.2em;margin-top:1.75em;margin-bottom:.5em}.prose h4{font-size:1em;margin-top:1.5em;margin-bottom:.5em}.prose h1 a,.prose h2 a,.prose h3 a,.prose h4 a{color:inherit;text-decoration:none}.prose h2 .heading-anchor,.prose h3 .heading-anchor,.prose h4 .heading-anchor{opacity:0;margin-left:.4em;color:var(--text-muted);font-weight:400;transition:opacity .15s ease}.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor,.prose h4:hover .heading-anchor{opacity:1}.prose p{margin-top:0;margin-bottom:0}.prose p+p{margin-top:1.25em}.prose a{color:var(--text-link);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--text-link) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--text-link) 40%,transparent);text-underline-offset:3px;transition:-webkit-text-decoration-color .15s ease;transition:text-decoration-color .15s ease;transition:text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}.prose a:hover{-webkit-text-decoration-color:var(--text-link);text-decoration-color:var(--text-link)}.prose strong{font-weight:600;color:var(--text-primary)}.prose em{font-style:italic}.prose ol,.prose ul{padding-left:1.5em}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li,.prose li>ol,.prose li>ul{margin-top:.35em;margin-bottom:.35em}.prose ul.contains-task-list{list-style:none;padding-left:.25em}.prose .task-list-item{display:flex;align-items:flex-start;gap:.5em}.prose .task-list-item input[type=checkbox]{margin-top:.35em;accent-color:var(--accent-primary)}.prose blockquote{border-left:3px solid var(--accent-primary);padding-left:1.25em;margin-left:0;color:var(--text-secondary);font-style:italic}.prose blockquote>*+*{margin-top:.75em}.prose code:not(pre code){font-family:var(--font-mono);font-size:.875em;background:var(--syntax-bg);color:var(--text-primary);border:1px solid var(--syntax-border);border-radius:4px;padding:.15em .4em;white-space:nowrap}.prose figure[data-rehype-pretty-code-figure]{margin:1.5em 0;border-radius:8px;overflow:hidden;border:1px solid var(--syntax-border);background:var(--syntax-bg)}.prose figure[data-rehype-pretty-code-figure] figcaption{font-family:var(--font-mono);font-size:.8em;color:var(--text-muted);padding:.6em 1em;border-bottom:1px solid var(--syntax-border);background:var(--bg-secondary)}.prose pre{margin:0;overflow-x:auto;padding:1.25em 1.5em;background:var(--syntax-bg)!important;font-family:var(--font-mono);font-size:.875em;line-height:1.65}.prose pre code{background:transparent;border:none;padding:0;font-size:inherit;white-space:pre}.prose code[data-theme],.prose code[data-theme] span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}[data-theme=ayu] .prose code[data-theme],[data-theme=ayu] .prose code[data-theme] span,[data-theme=coal] .prose code[data-theme],[data-theme=coal] .prose code[data-theme] span,[data-theme=navy] .prose code[data-theme],[data-theme=navy] .prose code[data-theme] span,[data-theme=rust] .prose code[data-theme],[data-theme=rust] .prose code[data-theme] span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}.prose pre [data-line-numbers]{counter-reset:line}.prose pre [data-line-numbers]>[data-line]:before{counter-increment:line;content:counter(line);display:inline-block;width:2.5em;margin-right:1em;text-align:right;color:var(--text-muted);-webkit-user-select:none;-moz-user-select:none;user-select:none}.prose pre [data-highlighted-line]{background:color-mix(in srgb,var(--accent-primary) 10%,transparent);border-left:2px solid var(--accent-primary);padding-left:calc(1.5em - 2px)}.prose table{width:100%;border-collapse:collapse;font-size:.9em;overflow:hidden;border-radius:6px;border:1px solid var(--border-subtle)}.prose thead{background:var(--bg-secondary)}.prose th{font-weight:600;text-align:left;padding:.65em 1em;color:var(--text-primary);border-bottom:1px solid var(--border-strong)}.prose td{padding:.6em 1em;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.prose tr:last-child td{border-bottom:none}.prose tbody tr:hover td{background:var(--bg-hover)}.prose hr{border:none;border-top:1px solid var(--border-subtle);margin:2.5em 0}.prose img{max-width:100%;border-radius:6px;border:1px solid var(--border-subtle)}.prose dt{font-weight:600;color:var(--text-primary);margin-top:1em}.prose dd{padding-left:1.5em;color:var(--text-secondary)}.prose kbd{font-family:var(--font-mono);font-size:.8em;background:var(--bg-secondary);border:1px solid var(--border-strong);border-radius:4px;padding:.1em .4em;box-shadow:0 1px 0 var(--border-strong)}:root{--sidebar-width:260px;--toc-width:220px;--topbar-height:52px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--transition:150ms ease;--font-system:system-ui,-apple-system,sans-serif;--font-mono:var(--font-geist-mono,"JetBrains Mono","Fira Code",ui-monospace,monospace);--font-body:var(--font-noto-sans,"Noto Sans SC",system-ui,sans-serif);--font-size-base:17px;--line-height:1.75;--content-width:720px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--text-2xs:10.5px;--text-xs:11px;--text-sm:12px;--text-base:12.5px;--text-md:13.5px;--z-drawer-backdrop:30;--z-drawer:40;--z-fab:45;--z-progress-bar:49;--z-header:50;--z-popover:60;--z-popover-trigger:61;--z-dropdown:90;--z-modal-backdrop:100;--z-modal:101}@media (max-width:767px){:root{--topbar-height:48px;--font-size-base:16px;--line-height:1.7;--content-width:100%}.kb-shortcut,.toc-aside{display:none}}*,:after,:before{box-sizing:border-box}html{text-size-adjust:100%}body{margin:0;background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition),color var(--transition)}::selection{background:var(--selection-bg);color:var(--text-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:2px}html{scroll-behavior:smooth}.sidebar-transition{transition:transform var(--transition),opacity var(--transition)}.panel-enter{animation:panelEnter .15s ease}@keyframes panelEnter{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-enter{animation:modalEnter .15s ease}@keyframes modalEnter{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.hover-surface{background:transparent}.hover-surface:hover{background:var(--bg-hover)}.hover-surface-alt{background:var(--bg-primary)}.hover-surface-alt:hover{background:var(--bg-hover)}.hover-text{color:var(--text-secondary)}.hover-text:hover{color:var(--text-primary)}.hover-text-secondary{color:var(--text-muted)}.hover-text-secondary:hover{color:var(--text-secondary)}.hover-border{border-color:var(--border-subtle)}.hover-border:hover{border-color:var(--border-strong)}[data-font=noto-sans]{--font-body:var(--font-noto-sans,"Noto Sans SC",system-ui,sans-serif)}[data-font=noto-serif]{--font-body:var(--font-noto-serif,"Noto Serif SC",Georgia,serif);font-weight:500}[data-font=mono]{--font-body:var(--font-geist-mono,"JetBrains Mono",ui-monospace,monospace);letter-spacing:-.01em}[data-font=merriweather]{--font-body:var(--font-merriweather,"Merriweather","Noto Serif SC",Georgia,serif)}[data-font=georgia]{--font-body:Georgia,var(--font-noto-serif,"Noto Serif SC"),serif}[data-font=wenyuan-rounded]{--font-body:var(--font-wenyuan-rounded,"WenYuan Rounded","Noto Sans SC",system-ui,sans-serif);font-weight:500}[data-font=wenyuan-serif]{--font-body:var(--font-wenyuan-serif,"WenYuan Serif","Noto Serif SC",Georgia,serif);font-weight:500}