:root{--sg-font-sans:"Geist Variable", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;--sg-font-mono:"Cascadia Code", "SFMono-Regular", Consolas, monospace;--sg-bg:#f8f9fb;--sg-surface:#fff;--sg-subtle:#f3f5f8;--sg-text:#222b38;--sg-muted:#657080;--sg-border:#e1e6ed;--sg-input:#cbd3df;--sg-accent:#2b63b0;--sg-on-accent:#fff;--sg-selected:#edf3fb;--sg-focus:#7fa8df;--sg-danger:#b63f3f;--sg-warning:#8a5a16;--sg-signal-reference:#287342;--sg-grid:#2b63b00b;--sg-code-keyword:#7044a0;--sg-code-number:#965319;--sg-code-string:#287342;--sg-code-function:#245ea0;--sg-radius:6px;--sg-radius-panel:10px;--sg-width:1120px;--sg-gutter:32px;--sg-reading-page-width:1920px;--sg-reading-nav-width:240px;--sg-reading-toc-width:264px;--sg-reading-prose-width:64rem}.dark{--sg-bg:#15181d;--sg-surface:#1c2027;--sg-subtle:#242a33;--sg-text:#e5eaf1;--sg-muted:#a5afbd;--sg-border:#343d49;--sg-input:#4b5667;--sg-accent:#92b8ec;--sg-on-accent:#17273d;--sg-selected:#28394e;--sg-focus:#92b8ec;--sg-danger:#f09c97;--sg-warning:#dfb475;--sg-signal-reference:#99cea9;--sg-grid:#92b8ec0b;--sg-code-keyword:#c8a7ed;--sg-code-number:#e6b17d;--sg-code-string:#99cea9;--sg-code-function:#99c2f5}@media(max-width:767px){:root{--sg-gutter:20px}}@font-face{font-family:geist variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin.woff2)format("woff2")}:root{--hx-font-sans:var(--sg-font-sans);--hx-font-mono:var(--sg-font-mono);--hextra-max-page-width:1320px;--hextra-max-navbar-width:1184px;--hextra-max-footer-width:1184px;--hextra-navbar-height:64px;--thp-nav-width:var(--sg-reading-nav-width);--thp-toc-width:var(--sg-reading-toc-width);--thp-text:var(--sg-text);--thp-secondary:var(--sg-muted);--thp-muted:var(--sg-muted);--thp-border:var(--sg-border);--thp-surface:var(--sg-surface);--thp-soft:var(--sg-subtle);--thp-accent:var(--sg-accent);--thp-selected:var(--sg-selected)}.dark{--thp-text:var(--sg-text);--thp-secondary:var(--sg-muted);--thp-muted:var(--sg-muted);--thp-border:var(--sg-border);--thp-surface:var(--sg-surface);--thp-soft:var(--sg-subtle);--thp-accent:var(--sg-accent);--thp-selected:var(--sg-selected)}html{background:var(--sg-bg);scroll-padding-top:88px;scrollbar-gutter:stable}@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}body{display:flex;flex-direction:column;min-height:100vh;background:var(--sg-bg);color:var(--sg-text);font-family:var(--sg-font-sans);font-size:15px;line-height:1.65}button,input,select,textarea{font-family:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}:where(a,button,input,summary):focus-visible{outline:2px solid var(--sg-focus);outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-main{width:100%;max-width:calc(var(--sg-width) + var(--sg-gutter)*2);padding:44px var(--sg-gutter)72px;margin-inline:auto;flex:1}.hextra-nav-container{background:var(--sg-bg)}.hextra-nav-container-blur{background:var(--sg-bg)!important;box-shadow:none!important;border-bottom:1px solid var(--sg-border)}.hextra-nav-container nav{max-width:calc(var(--sg-width) + var(--sg-gutter)*2);padding-inline:var(--sg-gutter);gap:12px}body:has(.thp-doc-layout) :is(.hextra-nav-container nav,.site-footer-inner){max-width:var(--sg-reading-page-width)}.site-brand{display:flex;align-items:center;flex-shrink:0}.site-brand img{width:120px;height:auto}.hextra-nav-container nav>a:not(.site-brand){font-size:14px}.hextra-nav-container nav svg{width:20px;height:20px}.hextra-search-trigger{background:var(--sg-subtle)!important;border:1px solid var(--sg-border);color:var(--sg-muted);border-radius:var(--sg-radius);box-shadow:none;font-family:var(--sg-font-sans)}.hextra-theme-toggle{color:var(--sg-muted)}.hextra-sidebar-container{background:var(--sg-bg)}.site-footer{margin-top:auto;border-top:1px solid var(--sg-border)}.site-footer-inner{max-width:calc(var(--sg-width) + var(--sg-gutter)*2);padding:24px var(--sg-gutter);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--sg-muted);font-size:12px}.site-footer-inner>span{display:flex;flex-wrap:wrap;gap:6px 18px}.site-footer a{display:inline-flex;align-items:center;gap:6px;color:inherit}.site-footer svg{width:16px;height:16px}.site-footer a:hover{color:var(--sg-accent)}.page-heading{display:flex;align-items:center;gap:16px;margin-bottom:32px}.page-heading h1,.home-intro h1{margin:0;font-size:30px;letter-spacing:-.035em;font-weight:600;line-height:1.35}.page-heading p{margin:8px 0 0;color:var(--sg-muted);font-size:15px;line-height:1.7}.page-icon{width:48px;height:48px;display:grid;place-items:center;flex-shrink:0;border-radius:10px;background:var(--sg-selected);color:var(--sg-accent)}.page-icon svg{width:28px;height:28px}.page-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--sg-muted);margin-bottom:24px}.page-back svg{width:16px;height:16px}.page-back:hover{color:var(--sg-accent)}.home-card{display:flex;align-items:center;gap:36px;padding:40px;border:1px solid var(--sg-border);border-radius:var(--sg-radius-panel);background:var(--sg-surface)}.home-avatar{width:112px;height:112px;border-radius:50%;object-fit:cover;flex-shrink:0}.home-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px}.home-tools{margin-top:40px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-heading h2{font-size:18px;font-weight:600;margin:0}.section-heading>a{display:inline-flex;align-items:center;gap:6px;color:var(--sg-muted);font-size:13px}.section-heading svg{width:16px;height:16px}.section-heading>a:hover{color:var(--sg-accent)}.tool-catalog-controls{margin:0 0 24px;display:grid;gap:20px}.tool-search{max-width:600px;display:flex;align-items:center;gap:10px;background:var(--sg-surface);border:1px solid var(--sg-input);border-radius:var(--sg-radius);padding:0 14px;min-height:46px}.tool-search:focus-within{outline:2px solid var(--sg-focus);outline-offset:2px}.tool-search>svg{width:20px;height:20px;color:var(--sg-muted);flex-shrink:0}.tool-search input{min-width:0;flex:1;border:0;outline:none;background:0 0;color:var(--sg-text);height:44px;font-size:14px}.tool-search input:focus-visible{outline:none;box-shadow:none}.tool-search input::placeholder{color:var(--sg-muted)}.tool-search kbd{color:var(--sg-muted);border:1px solid var(--sg-border);border-radius:3px;padding:0 6px;font:12px/22px var(--sg-font-mono)}.tool-filter-list{display:flex;flex-wrap:wrap;gap:6px}.tool-filter-list button{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 12px;border-radius:var(--sg-radius);font-size:13px;background:0 0;color:var(--sg-muted);cursor:pointer}.tool-filter-list button>span{font:11px/1 var(--sg-font-mono);opacity:.8}.tool-filter-list button[aria-pressed=true]{color:var(--sg-accent);background:var(--sg-selected);font-weight:500}.tool-filter-list button:hover{background:var(--sg-subtle)}.tool-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tool-catalog-card{display:flex;gap:16px;align-items:center;min-width:0;padding:24px;min-height:122px;background:var(--sg-surface);border:1px solid var(--sg-border);border-radius:var(--sg-radius-panel);text-decoration:none;color:var(--sg-text);transition:border-color .15s,background .15s}.tool-catalog-card:hover{border-color:var(--sg-focus);background:var(--sg-surface)}.tool-card-icon{width:42px;height:42px;border-radius:8px;flex-shrink:0;background:var(--sg-selected);color:var(--sg-accent);display:grid;place-items:center}.tool-card-icon svg{width:25px;height:25px}.tool-card-copy{min-width:0;flex:1}.tool-card-copy h2{margin:0;font-size:16px;font-weight:600;line-height:1.5}.tool-card-copy p{margin:6px 0 0;color:var(--sg-muted);font-size:13px;line-height:1.7}.tool-card-arrow{color:var(--sg-muted);flex-shrink:0}.tool-card-arrow svg{width:18px;height:18px}.tool-catalog-card:hover .tool-card-arrow{color:var(--sg-accent)}.tool-empty{padding:40px 20px;text-align:center;color:var(--sg-muted)}.tool-empty button{margin-top:12px;font-size:13px;color:var(--sg-accent);cursor:pointer}.content{font-family:var(--sg-font-sans);font-size:15px;line-height:1.85}.content :where(h1){font-size:30px;font-weight:600}.content :where(h2,[data-reading-level="2"]){font-size:21px;line-height:1.5;border:0;padding:0;font-weight:600;letter-spacing:-.02em}.content :where(h3,[data-reading-level="3"]){font-size:17px;font-weight:600}.content :where(pre,code){font-family:var(--sg-font-mono)}.library-file{margin:20px 0;min-width:0}.content .library-download{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--sg-border);border-radius:var(--sg-radius);font-size:13px;color:var(--sg-text);text-decoration:none}.library-download svg{width:18px;height:18px;flex-shrink:0}.library-download:hover{border-color:var(--sg-focus);color:var(--sg-accent)}.library-source{margin-top:12px;min-width:0}.library-source>summary{cursor:pointer;color:var(--sg-muted);font-size:13px;padding:8px 0}.library-source .highlight{min-width:0;max-width:100%}.library-source pre{max-height:32rem;overflow:auto;font-size:13px;line-height:1.65}.note-code-block{margin-block:20px;min-width:0;border:1px solid var(--sg-border);border-radius:var(--sg-radius);overflow:hidden}.note-code-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 12px;background:var(--sg-subtle);border-bottom:1px solid var(--sg-border);font-size:12px}.note-code-name{margin-right:auto;min-width:0;overflow-wrap:anywhere;font-family:var(--sg-font-mono);color:var(--sg-muted)}.note-code-toolbar :is(button,a),.note-actions :is(button,a){display:inline-flex;align-items:center;gap:6px;padding:5px 7px;color:var(--sg-muted);font-size:12px;background:0 0;border:0;border-radius:var(--sg-radius);cursor:pointer;text-decoration:none}.note-code-toolbar :is(button,a):hover,.note-actions :is(button,a):hover{color:var(--sg-accent);background:var(--sg-selected)}.note-code-toolbar svg,.note-actions svg{width:16px;height:16px;flex-shrink:0}.note-code-block pre{margin:0!important;border:0;border-radius:0;max-height:32rem;overflow:auto}.note-code-block .highlight{margin:0;max-width:100%}.note-code-block .library-source{margin:0}.note-code-block .library-source>summary{padding:8px 16px}.note-copy-status{color:var(--sg-muted);font-size:12px}.note-copy-fallback{display:block;width:100%;min-width:0;height:12rem;flex-basis:100%;padding:12px;border:1px solid var(--sg-border);border-radius:var(--sg-radius);background:var(--sg-surface);color:var(--sg-text);font:12px/1.6 var(--sg-font-mono);white-space:pre;overflow:auto}.note-actions{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.note-actions button:disabled{opacity:.5;cursor:wait}.tool-content>:is(h2,h3,p,ul,ol,blockquote,table,.highlight){max-width:780px}.tool-content>h2{margin-top:40px}.tool-content>p,.tool-content>ul{color:var(--sg-muted)}.tool-content .katex-display{text-align:left}.tool-content .katex-display>.katex{text-align:left;min-width:0}.related-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;border-top:1px solid var(--sg-border);padding-top:24px;margin-top:40px;font-size:13px}.related-tools>span{color:var(--sg-muted)}.related-tools a{display:inline-flex;align-items:center;gap:7px}.related-tools svg{width:18px;height:18px;color:var(--sg-accent)}.related-tools a:hover{color:var(--sg-accent)}.thp-doc-toolbar{display:flex;flex-wrap:wrap;font-weight:400;border-bottom:0;margin-bottom:16px}.thp-resize-handle::after{opacity:0}.thp-resize-handle:hover::after,.thp-resize-handle:focus-visible::after{opacity:1}.thp-toc-footer #thp-export-note{width:auto;text-align:left;padding:0;background:0 0;color:var(--sg-muted);font-weight:400;font-size:12px}.thp-toc-footer svg{width:14px;height:14px;vertical-align:-2px;margin-left:4px}.notes-list{display:grid;gap:32px}.notes-group{padding:24px;border:1px solid var(--sg-border);background:var(--sg-surface);border-radius:var(--sg-radius-panel)}.notes-group>h2{display:flex;gap:10px;align-items:center;font-size:18px;margin:0 0 12px;font-weight:600}.notes-group>h2 svg{width:22px;height:22px;color:var(--sg-accent)}.notes-group ul{list-style:none;padding:0;margin:0}.notes-group li a{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--sg-border);padding:14px 0;font-size:14px}.notes-group li a:hover{color:var(--sg-accent)}.notes-group time{font-size:12px;color:var(--sg-muted);white-space:nowrap}@media(max-width:767px){.site-main{padding-top:28px;padding-bottom:48px}.hextra-nav-container nav{gap:8px}.site-brand img{width:104px}.page-heading{gap:12px;margin-bottom:24px}.page-heading h1,.home-intro h1{font-size:25px}.page-heading p{font-size:14px}.page-icon{width:40px;height:40px}.page-icon svg{width:24px;height:24px}.home-card{gap:22px;padding:24px;align-items:flex-start;flex-direction:column}.home-avatar{width:72px;height:72px}.home-tools{margin-top:32px}.tool-catalog-grid{grid-template-columns:1fr}.tool-catalog-card{min-height:108px;padding:20px;gap:14px}.tool-card-copy h2{font-size:15px}.tool-search input{font-size:16px}.tool-search kbd{display:none}.tool-filter-list{gap:4px}.tool-filter-list button{padding:7px 10px}.site-footer-inner{align-items:flex-start}.site-footer-inner>span{flex-direction:column}.notes-group{padding:20px}.content :where(h1){font-size:25px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.hextra-search-trigger-label,.hextra-search-trigger-kbd{white-space:nowrap}@media(min-width:768px){.hextra-search-trigger{min-width:220px}}.site-mobile-menu{display:none;position:relative}.site-mobile-menu>summary{display:flex;align-items:center;justify-content:center;width:36px;height:36px;list-style:none;cursor:pointer}.site-mobile-menu>summary::-webkit-details-marker{display:none}.site-mobile-menu>div{position:absolute;right:0;top:44px;min-width:180px;padding:8px;background:var(--sg-surface);border:1px solid var(--sg-border);border-radius:var(--sg-radius);box-shadow:0 8px 24px #0000000c}.site-mobile-menu a{display:block;padding:10px 12px;font-size:14px;border-radius:4px}.site-mobile-menu a:hover{background:var(--sg-selected);color:var(--sg-accent)}@media(max-width:767px){.site-mobile-menu{display:block}}.home-page{padding-block:44px 64px}.home-card{width:100%;padding:40px;gap:40px}.home-intro h1{font-size:28px}.home-badge{display:block;margin-bottom:12px;color:var(--sg-muted);font-size:12px}.home-description{padding:0;margin:20px 0 24px;list-style:none;color:var(--sg-muted);font-size:14px;line-height:1.9}.home-description li+li{margin-top:6px}.home-description strong{font-weight:500;color:var(--sg-text)}.home-link{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:6px 14px;border:1px solid var(--sg-border);border-radius:var(--sg-radius);font-size:14px}.home-link svg{width:18px;height:18px;color:var(--sg-accent)}.home-link:hover{border-color:var(--sg-focus);color:var(--sg-accent)}@media(max-width:767px){.home-page{padding-block:32px}.home-card{padding:24px;gap:24px}.home-intro h1{font-size:24px}}body>.hextra-max-page-width{width:100%;min-width:0}body{background-image:linear-gradient(var(--sg-grid) 1px,transparent 1px),linear-gradient(90deg,var(--sg-grid) 1px,transparent 1px);background-size:32px 32px}.page-back{min-height:44px;padding:8px 16px;gap:10px;background:var(--sg-surface);border:1px solid var(--sg-input);border-radius:var(--sg-radius);font-size:14px;font-weight:500;color:var(--sg-text)}.page-back svg{width:20px;height:20px;color:var(--sg-accent)}.page-back:hover{background:var(--sg-selected);border-color:var(--sg-focus)}.reference-table{margin:32px 0}.reference-table h2{font-size:18px;margin:0 0 16px}.reference-table>p{font-size:13px;color:var(--sg-muted);margin:12px 0}.reference-scroll{width:100%;overflow:auto;border:1px solid var(--sg-border);border-radius:var(--sg-radius);background:var(--sg-surface)}.reference-scroll table{display:table;width:100%;margin:0;border-collapse:collapse;font:13px/1.7 var(--sg-font-mono)}.reference-scroll :is(th,td){padding:8px 12px;text-align:center;white-space:nowrap;border-bottom:1px solid var(--sg-border)}.reference-scroll th{color:var(--sg-muted);background:var(--sg-subtle);font-weight:500}.reference-scroll tr:last-child td{border-bottom:0}.reference-scroll td:nth-child(2n){color:var(--sg-accent)}