@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400-normal-27e1b5c3.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400-normal-b1b0412a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400-normal-fe142708.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400-normal-ab7c1a7e.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400-normal-ba16536d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400-normal-480c0625.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500-normal-27e1b5c3.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500-normal-b1b0412a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500-normal-fe142708.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500-normal-ab7c1a7e.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500-normal-ba16536d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500-normal-480c0625.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-700-normal-27e1b5c3.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-700-normal-b1b0412a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-700-normal-fe142708.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-700-normal-ab7c1a7e.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-700-normal-ba16536d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-700-normal-480c0625.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/space-grotesk-500-normal-7c5c586c.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/space-grotesk-500-normal-611be241.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/space-grotesk-500-normal-ecea81d5.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/space-grotesk-700-normal-7c5c586c.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/space-grotesk-700-normal-611be241.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/space-grotesk-700-normal-ecea81d5.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sidebar-bg:#eee;--sidebar-border:#e2e2e2;--header-bg:#2f3131;--header-text:#f1f1f1;--accent:#f7931a;--accent-deep:#b5650c;--text-dark:#1a1c1c;--text-brown:#554335;--topbar-bg:#f3f3f3;--content-bg:#fff;--text-body:#2b2b2b;--text-muted:#8a8a8a;--font-logo:"Space Grotesk", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Consolas, monospace;--font-cn:"WenQuanYi Zen Hei", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--sidebar-w:260px;--bar-h:64px}*{box-sizing:border-box}html,body{height:100%}body{font-family:var(--font-cn);color:var(--text-body);background:var(--content-bg);margin:0;font-size:16px;line-height:1.6;display:flex;overflow:hidden}a{color:inherit}.sidebar__nav::-webkit-scrollbar{width:10px}.content::-webkit-scrollbar{width:10px}.sidebar__nav::-webkit-scrollbar-thumb{background:#d4d4d4 padding-box content-box;border:2px solid #0000;border-radius:6px}.content::-webkit-scrollbar-thumb{background:#d4d4d4 padding-box content-box;border:2px solid #0000;border-radius:6px}.sidebar__nav::-webkit-scrollbar-track{background:0 0}.content::-webkit-scrollbar-track{background:0 0}.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.sidebar__brand{height:var(--bar-h);background:var(--header-bg);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:0 20px;text-decoration:none;transition:background .15s;display:flex}.sidebar__brand:hover{background:#383a3a}.sidebar__brand-name{font-family:var(--font-logo);letter-spacing:.2px;color:var(--header-text);white-space:nowrap;font-size:24px;font-weight:700;line-height:32px}.sidebar__brand-icon{flex-shrink:0;width:22px;height:22px}.sidebar__nav{flex:1;min-height:0;padding:24px 0;overflow:hidden auto}.nav-item{color:var(--text-brown);font-family:var(--font-cn);letter-spacing:.28px;cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;display:block}.nav-item:hover{color:var(--accent)}.nav-item.is-active{color:var(--accent);font-weight:700}.chev{flex-shrink:0;transition:transform .15s}.section--accent>.section-head{background:var(--sidebar-border);border-left:4px solid var(--accent);align-items:center;gap:12px;padding:8px 20px;display:flex}.section--accent>.section-head .section-head__label{font-family:var(--font-mono);letter-spacing:.28px;color:var(--text-dark);font-size:14px;font-weight:500}.section--accent>.section-head .chev{width:4.17px;height:8.33px}.section--plain>.section-head{align-items:center;gap:12px;padding:12px 20px;display:flex}.section--plain>.section-head .section-head__label{font-family:var(--font-cn);letter-spacing:.28px;color:var(--text-brown);font-size:14px;font-weight:500}.section--plain>.section-head .chev{width:4.17px;height:8.33px}.nav-row--bordered{border-top:1px solid var(--sidebar-border);border-bottom:1px solid var(--sidebar-border)}.nav-row--border-bottom{border-bottom:1px solid var(--sidebar-border)}.section--indented>.section-head{padding-left:52px;padding-right:20px}.section--indented>.section-head .section-head__icon{width:13.33px;height:16.67px}.section--indented>.section-head .section-head__icon--tools{width:15px;height:15px}.section--plain>.section-head[data-route]{text-decoration:none}.section--plain>.section-head[data-route] .section-head__label{transition:color .15s}.section--plain>.section-head[data-route]:hover .section-head__label{color:var(--accent)}.section--plain>.section-head[data-route].is-active .section-head__label{color:var(--accent);font-weight:700}.section.has-children.is-collapsed>.section-children{display:none}.section.has-children.is-collapsed>.section-head .chev{transform:rotate(0)}.section.has-children:not(.is-collapsed)>.section-head .chev{transform:rotate(90deg)}.section-children{border-left:1px solid var(--sidebar-border);margin-left:40px;padding-left:16px}.subsection{letter-spacing:.28px;color:var(--text-brown);-webkit-user-select:none;user-select:none;padding:6px 16px;font-size:14px;font-weight:500}.subsection--link{cursor:pointer;text-decoration:none;transition:color .15s;display:block}.subsection--link:hover{color:var(--accent)}.subsection.is-active{color:var(--accent);font-weight:700}.subsection-nested{margin-top:4px}.subsection-nested>.subsection{padding-top:2px;padding-bottom:2px}.subsection-children{border-left:1px solid var(--sidebar-border);margin-left:16px;padding-left:17px}.nav-leaf{font-family:var(--font-cn);letter-spacing:.28px;color:var(--text-brown);padding:4px 16px;font-size:12px;font-weight:400;line-height:1.5;text-decoration:none;display:block}.nav-leaf:hover{color:var(--accent)}.nav-leaf.is-active{color:var(--accent);background:#f7931a14;border-radius:4px;font-weight:700}.nav-leaf--mono{font-family:var(--font-mono);font-weight:400}.main{background:var(--content-bg);flex-direction:column;flex:1;min-width:0;height:100vh;display:flex}.topbar{height:var(--bar-h);background:var(--topbar-bg);border-bottom:1px solid var(--sidebar-border);flex-shrink:0;justify-content:flex-end;align-items:center;padding:0 24px;display:flex}.topbar__btn{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;transition:background .15s;display:inline-flex}.topbar__btn:hover{background:#0000000d}.topbar__btn img{width:20px;height:20px}.content{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.container{flex:1 0 auto;width:100%;max-width:1200px;margin:0 auto;padding:48px 24px}.page-title{font-family:var(--font-cn);letter-spacing:.4px;color:var(--text-dark);margin:0 0 20px;font-size:26px;font-weight:700;line-height:1.4}.md{letter-spacing:.2px;max-width:760px;color:var(--text-body);font-size:16px;line-height:1.9}.md h1,.md h2,.md h3,.md h4{color:var(--text-dark);margin:1.6em 0 .7em;line-height:1.4}.md h1{font-size:28px}.md h2{border-bottom:1px solid var(--sidebar-border);padding-bottom:.35em;font-size:22px}.md h3{font-size:18px}.md h4{font-size:16px}.md p{margin:0 0 1.1em}.md a{color:var(--accent-deep);text-underline-offset:3px;text-decoration:underline}.md a:hover{color:var(--accent)}.md strong{color:var(--text-dark);font-weight:700}.md ul,.md ol{margin:0 0 1.1em;padding-left:1.6em}.md li{margin-bottom:.35em}.md li::marker{color:var(--accent-deep)}.md blockquote{border-left:4px solid var(--accent);color:var(--text-dark);background:#fdf7ef;border-radius:4px;margin:1.2em 0;padding:.6em 1em}.md blockquote p:last-child{margin-bottom:0}.md code{font-family:var(--font-mono);background:#f1f1f1;border-radius:4px;padding:.12em .35em;font-size:.88em}.md pre{background:#222;border-radius:8px;margin:1.2em 0;padding:14px 16px;overflow-x:auto}.md pre code{color:#f1f1f1;background:0 0;padding:0;font-size:13px;line-height:1.7}.md table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:14px}.md th,.md td{border:1px solid var(--sidebar-border);text-align:left;padding:8px 12px}.md th{background:#f7f7f7;font-weight:700}.md img{border-radius:8px;max-width:100%}.md hr{border:none;border-top:1px solid var(--sidebar-border);margin:2em 0}.md input[type=checkbox]{margin-right:.4em}.page-empty{flex-direction:column;align-items:flex-start;gap:16px;min-height:320px;display:flex}.page-placeholder{border:1.5px dashed var(--sidebar-border);width:100%;min-height:200px;color:var(--text-muted);letter-spacing:1px;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:flex}.footer{border-top:1px solid var(--sidebar-border);flex-shrink:0;align-items:center;min-height:105px;margin-top:96px;display:flex}.footer__inner{width:100%;max-width:1200px;color:var(--text-muted);letter-spacing:.3px;margin:0 auto;padding:0 24px;font-size:13px}.section-head[role=button]{cursor:pointer;-webkit-user-select:none;user-select:none}.topbar__actions{align-items:center;gap:8px;display:flex}.topbar__search{border:1px solid var(--sidebar-border);height:36px;color:var(--text-brown);font-family:var(--font-cn);letter-spacing:.3px;cursor:pointer;background:#fff;border-radius:18px;align-items:center;gap:7px;padding:0 14px;font-size:14px;transition:border-color .15s,color .15s;display:inline-flex}.topbar__search:hover{border-color:var(--accent);color:var(--accent)}.reading-progress{background:var(--accent);z-index:999;width:0;height:3px;transition:width 80ms linear;position:fixed;top:0;left:0}.breadcrumb{margin:0 0 20px;font-size:13px}.breadcrumb ol{flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.breadcrumb li{color:var(--text-muted);align-items:center;gap:6px;display:flex}.breadcrumb li+li:before{content:"›";color:#bbb}.breadcrumb a{color:var(--accent-deep);text-decoration:none}.breadcrumb a:hover{color:var(--accent);text-decoration:underline}.breadcrumb [aria-current=page]{color:var(--text-dark);font-weight:600}.toc{border:1px solid var(--sidebar-border);background:#f7f7f7;border-radius:8px;max-width:760px;margin:0 0 28px;padding:12px 16px}.toc summary{cursor:pointer;color:var(--text-dark);-webkit-user-select:none;user-select:none;font-weight:700}.toc ul{margin:10px 0 0;padding:0;list-style:none}.toc li{margin:0 0 6px}.toc a{color:var(--accent-deep);text-decoration:none}.toc a:hover{color:var(--accent);text-decoration:underline}.toc--d3{padding-left:1.1em}.prevnext{grid-template-columns:1fr 1fr;gap:16px;max-width:760px;margin-top:56px;display:grid}.prevnext__item{border:1px solid var(--sidebar-border);border-radius:10px;flex-direction:column;gap:4px;padding:14px 18px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.prevnext__item:hover{border-color:var(--accent);background:#fffaf2}.prevnext__item--next{text-align:right;align-items:flex-end}.prevnext__item--empty{pointer-events:none;border-color:#0000}.prevnext__hint{color:var(--text-muted);letter-spacing:.3px;font-size:12px}.prevnext__label{color:var(--text-dark);font-weight:600}.quick-links{margin-top:56px}.quick-links__title{color:var(--text-muted);letter-spacing:.5px;margin:0 0 16px;font-size:15px;font-weight:600}.quick-links__grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;max-width:760px;display:grid}.quick-links__card{border:1px solid var(--sidebar-border);background:#fff;border-radius:10px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.quick-links__card:hover{border-color:var(--accent);box-shadow:0 4px 14px #f7931a1f}.quick-links__icon{flex-shrink:0;width:15px;height:15px}.quick-links__label{color:var(--text-dark);font-weight:600}.search-modal{z-index:1000;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.search-modal[hidden]{display:none}.search-modal__backdrop{background:#00000073;position:absolute;inset:0}.search-modal__panel{background:#fff;border-radius:12px;width:min(680px,92vw);max-height:70vh;padding:20px;position:relative;overflow:auto;box-shadow:0 12px 40px #00000038}.search-modal__panel .pagefind-ui__search-input{font-family:var(--font-cn)}@media (width<=820px){:root{--sidebar-w:220px}.sidebar__brand-name{font-size:20px}.container,.footer__inner{padding-left:16px;padding-right:16px}.topbar__search span{display:none}.topbar__search{padding:0 10px}}
