*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--sidebar-w:280px;--header-h:56px;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Liberation Sans", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Source Code Pro", "DejaVu Sans Mono", "Liberation Mono", Consolas, monospace;--bg:#0d1117;--bg-soft:#161b22;--bg-muted:#1c2128;--text:#e6edf3;--text-soft:#a8b2c1;--text-muted:#6b7b8d;--border:#30363d;--sidebar-bg:#0f172a;--sidebar-text:#cbd5e1;--sidebar-heading:#f8fafc;--sidebar-hover:#6366f11f;--sidebar-active:#6366f138;--sidebar-accent:#818cf8;--sidebar-border:#1e293b;--primary:#6366f1;--primary-soft:#6366f126;--primary-hover:#818cf8;--green:#3fb950;--green-soft:#3fb95026;--amber:#d29922;--amber-soft:#d2992226;--red:#f85149;--red-soft:#f8514926;--code-bg:#161b22;--code-text:#e6edf3;--inline-code-bg:#6366f11f;--inline-code-text:#a5b4fc;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--radius:8px;--radius-sm:6px}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.7;overflow-x:hidden}.site-header{height:var(--header-h);background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-border);z-index:1000;align-items:center;gap:16px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.header-brand{color:#fff;white-space:nowrap;align-items:center;gap:10px;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}.header-brand .logo{background:linear-gradient(135deg, var(--primary), #a78bfa);color:#fff;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:800;display:flex}.header-brand-row{align-items:center;gap:12px;display:flex}.version-selector-wrap{flex-direction:column;align-items:flex-start;display:flex}.version-selector{color:var(--text);border:1px solid var(--sidebar-border);background:#ffffff08;border-radius:8px;width:auto;min-width:64px;padding:6px 8px;font-size:.85rem}.version-selector:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #6366f11f}.version-description{color:var(--text-soft);max-width:420px;margin-top:4px;font-size:.78rem;line-height:1.1}.header-nav{align-items:center;gap:4px;margin-left:auto;display:flex}.header-nav a{color:var(--sidebar-text);border-radius:var(--radius-sm);padding:6px 14px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s}.header-nav a:hover,.header-nav a.active{color:#fff;background:var(--sidebar-hover)}.header-nav a.active{background:var(--sidebar-active)}.header-search{flex:1;max-width:400px;margin:0 auto;position:relative}.header-search-icon{width:16px;height:16px;color:var(--sidebar-text);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}#header-search{border:1px solid var(--sidebar-border);border-radius:var(--radius-sm);color:#fff;background:#ffffff14;outline:none;width:100%;padding:7px 12px 7px 34px;font-family:inherit;font-size:.875rem;transition:all .15s}#header-search:focus{border-color:var(--primary);background:#ffffff1f;box-shadow:0 0 0 2px #6366f140}#header-search::placeholder{color:var(--sidebar-text);opacity:.6}.search-results{background:var(--sidebar-bg);border:1px solid var(--sidebar-border);border-radius:var(--radius);z-index:1001;max-height:400px;display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.search-hit{color:#fff;border-bottom:1px solid var(--sidebar-border);padding:10px 14px;text-decoration:none;transition:all .1s;display:block}.search-hit:last-child{border-bottom:none}.search-hit:hover{background:var(--sidebar-hover)}.search-hit strong{margin-bottom:2px;font-size:.875rem;display:block}.search-hit span{color:var(--sidebar-text);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;display:block;overflow:hidden}.search-no-results{color:var(--sidebar-text);text-align:center;padding:12px 14px;font-size:.875rem}.menu-toggle{color:#fff;cursor:pointer;background:0 0;border:none;padding:4px;display:none}.menu-toggle svg{width:24px;height:24px}.sidebar{top:var(--header-h);width:var(--sidebar-w);height:calc(100vh - var(--header-h));background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:900;will-change:transform;padding:16px 0;transition:transform .25s;position:fixed;left:0;overflow-y:auto}@media (width>=1025px){.sidebar,.sidebar.open{transform:translate(0)}}@media (width<=1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}.sidebar-section{margin-bottom:6px}.sidebar-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);cursor:pointer;user-select:none;align-items:center;gap:6px;padding:8px 20px 4px;font-size:.7rem;font-weight:700;display:flex}.sidebar-heading:before{content:"";border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);flex-shrink:0;width:5px;height:5px;transition:transform .2s;display:inline-block;transform:rotate(45deg)}.sidebar-heading.collapsed:before{transform:rotate(-45deg)}.sidebar-links{opacity:1;max-height:600px;transition:max-height .25s,opacity .2s;overflow:hidden}.sidebar-heading.collapsed+.sidebar-links{opacity:0;max-height:0}.sidebar-links{margin:0 0 4px;padding:0;list-style:none}.sidebar-links a{color:var(--sidebar-text);border-left:2px solid #0000;padding:5px 20px 5px 28px;font-size:.835rem;text-decoration:none;transition:all .15s;display:block}.sidebar-links a:hover{color:#fff;background:var(--sidebar-hover);border-left-color:#6366f166}.sidebar-links a.active{color:var(--sidebar-accent);background:var(--sidebar-active);border-left-color:var(--sidebar-accent);font-weight:600}.toc-sub{opacity:0;max-height:0;margin:0;padding:0;list-style:none;transition:max-height .25s,opacity .2s;overflow:hidden}.toc-sub.expanded{opacity:1}.toc-sub a{color:var(--sidebar-text);border-left:2px solid #0000;padding:4px 20px 4px 40px;font-size:.8rem;text-decoration:none;transition:all .15s;display:block}.toc-sub a:hover{color:#fff;background:var(--sidebar-hover);border-left-color:#6366f166}.toc-sub a.active{color:var(--sidebar-accent);background:var(--sidebar-active);border-left-color:var(--sidebar-accent);font-weight:600}.sidebar-overlay{z-index:899;background:#00000080;display:none;position:fixed;inset:0}.main{margin-left:var(--sidebar-w);margin-top:var(--header-h);min-height:calc(100vh - var(--header-h))}.content{max-width:860px;margin:0 auto;padding:40px 48px 80px}h1{letter-spacing:-.02em;margin-bottom:12px;font-size:2.2rem;font-weight:800;line-height:1.2}h2{border-bottom:1px solid var(--border);scroll-margin-top:calc(var(--header-h) + 24px);margin:56px 0 16px;padding-bottom:10px;font-size:1.55rem;font-weight:700}h3{color:var(--text);margin:32px 0 10px;font-size:1.15rem;font-weight:650}h4{color:var(--text-soft);margin:24px 0 8px;font-size:1rem;font-weight:600}p{margin:0 0 16px}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.subtitle{color:var(--text-soft);margin-bottom:32px;font-size:1.15rem;line-height:1.6}h2 .anchor,h3 .anchor{opacity:0;color:var(--text-muted);margin-left:6px;font-weight:400;text-decoration:none;transition:all .15s}h2:hover .anchor,h3:hover .anchor{opacity:1}h2 .anchor:hover,h3 .anchor:hover{color:var(--primary)}.badge{text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;border-radius:4px;margin-left:6px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.badge-async{background:var(--primary-soft);color:var(--primary)}.badge-sync{background:var(--green-soft);color:var(--green)}.badge-class{background:var(--amber-soft);color:var(--amber)}.badge-enum{color:#a855f7;background:#9333ea26}.badge-decorator{background:var(--red-soft);color:var(--red)}.badge-new{color:#58a6ff;background:#388bfd26}code{font-family:var(--font-mono);background:var(--inline-code-bg);color:var(--inline-code-text);border-radius:4px;padding:2px 6px;font-size:.85em}a.copy-inline-command{text-underline-offset:2px;text-decoration:underline dotted;text-decoration-color:var(--primary);color:var(--inline-code-text);cursor:pointer;position:relative}a.copy-inline-command code{background:var(--inline-code-bg);color:var(--inline-code-text);border-radius:4px;padding:2px 6px}a.copy-inline-command:hover{color:var(--primary)}.inline-toast{background:var(--primary);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:10;border-radius:3px;padding:2px 6px;font-size:.65rem;font-weight:600;transition:opacity .12s,transform .12s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(4px)}.inline-toast.show{opacity:1;transform:translate(-50%)translateY(0)}.inline-toast:after{content:"";border:3px solid #0000;border-top-color:var(--primary);position:absolute;bottom:-3px;left:50%;transform:translate(-50%)}pre{background:var(--code-bg);border-radius:var(--radius);border:1px solid #ffffff0f;margin:0 0 20px;padding:20px 24px;line-height:1.6;overflow-x:auto}pre code{color:var(--code-text);background:0 0;padding:0;font-size:.84rem}.code-wrap{display:block;position:relative}.copy-btn{color:#fff;font-family:var(--font-mono);cursor:pointer;opacity:0;z-index:5;background:#00000059;border:none;border-radius:8px;padding:6px 8px;font-size:.78rem;transition:opacity .12s,transform .12s,background .12s;position:absolute;top:10px;right:10px;transform:translateY(-4px)}.code-wrap:hover .copy-btn{opacity:1;transform:translateY(0)}.copy-btn:active{transform:scale(.98)}.copy-btn.copied{background:var(--green)}@media (any-pointer: coarse) and not (any-pointer: fine){.code-wrap .copy-btn{opacity:1;transform:translateY(0)}}pre code .hl-attribute{color:#79c0ff}pre code .hl-attribute-builtin{color:#e6edf3}pre code .hl-boolean{color:#79c0ff}pre code .hl-character{color:#a5d6ff}pre code .hl-character-special{color:#e6edf3}pre code .hl-comment,pre code .hl-comment-documentation{color:#8b949e}pre code .hl-comment-error{color:#0d1117;background-color:#f85149}pre code .hl-comment-hint{color:#0d1117;background-color:#7d8590}pre code .hl-comment-note{color:#2f81f7}pre code .hl-comment-todo{color:#0d1117;background-color:#7d8590}pre code .hl-comment-warning{color:#0d1117;background-color:#d29922}pre code .hl-constant,pre code .hl-constant-builtin{color:#79c0ff}pre code .hl-constant-builtin-rust{color:#ffa657}pre code .hl-constant-html{color:#7ee787}pre code .hl-constant-macro{color:#ff7b72}pre code .hl-constructor{color:#ffa657}pre code .hl-constructor-lua{color:#e6edf3}pre code .hl-diff-delta{color:#d29922;background-color:#231e14}pre code .hl-diff-minus{color:#f85149;background-color:#2c171b}pre code .hl-diff-plus{color:#3fb950;background-color:#10231c}pre code .hl-function{color:#d2a8ff}pre code .hl-function-builtin-bash{color:#ff7b72}pre code .hl-function-builtin-lua,pre code .hl-function-builtin-make{color:#79c0ff}pre code .hl-function-call{color:#d2a8ff}pre code .hl-function-call-bash{color:#79c0ff}pre code .hl-function-macro,pre code .hl-function-method,pre code .hl-function-method-call{color:#d2a8ff}pre code .hl-highlighted{background-color:#484f58}pre code .hl-keyword,pre code .hl-keyword-conditional,pre code .hl-keyword-conditional-ternary,pre code .hl-keyword-coroutine,pre code .hl-keyword-debug,pre code .hl-keyword-directive,pre code .hl-keyword-directive-define{color:#ff7b72}pre code .hl-keyword-directive-rust,pre code .hl-keyword-exception{color:#79c0ff}pre code .hl-keyword-export,pre code .hl-keyword-function,pre code .hl-keyword-import,pre code .hl-keyword-modifier,pre code .hl-keyword-operator,pre code .hl-keyword-repeat,pre code .hl-keyword-return,pre code .hl-keyword-type{color:#ff7b72}pre code .hl-label{color:#7ee787}pre code .hl-label-ruby{color:#79c0ff}pre code .hl-markup{color:#e6edf3}pre code .hl-markup-environment{color:#ff7b72}pre code .hl-markup-environment-name{color:#d2a8ff}pre code .hl-markup-heading,pre code .hl-markup-heading-1,pre code .hl-markup-heading-2,pre code .hl-markup-heading-3,pre code .hl-markup-heading-4,pre code .hl-markup-heading-5,pre code .hl-markup-heading-6{color:#79c0ff;font-weight:700}pre code .hl-markup-heading-html{color:#e6edf3}pre code .hl-markup-italic{color:#e6edf3;font-style:italic}pre code .hl-markup-link{color:#e6edf3;text-decoration:underline}pre code .hl-markup-link-label{color:#e6edf3}pre code .hl-markup-link-url{color:#e6edf3;text-decoration:underline}pre code .hl-markup-list{color:#79c0ff}pre code .hl-markup-list-bash{color:#e6edf3}pre code .hl-markup-list-checked{color:#3fb950}pre code .hl-markup-list-unchecked{color:#6e7681}pre code .hl-markup-math,pre code .hl-markup-quote{color:#e6edf3}pre code .hl-markup-quote-markdown{color:#7ee787}pre code .hl-markup-raw,pre code .hl-markup-raw-block{color:#e6edf3;font-style:italic}pre code .hl-markup-strikethrough{color:#e6edf3;text-decoration:line-through}pre code .hl-markup-strong{color:#e6edf3;font-weight:700}pre code .hl-markup-underline{text-decoration:underline}pre code .hl-module{color:#ff7b72}pre code .hl-module-builtin{color:#79c0ff}pre code .hl-module-c_sharp,pre code .hl-module-elixir,pre code .hl-module-php{color:#ffa657}pre code .hl-number,pre code .hl-number-float,pre code .hl-operator{color:#79c0ff}pre code .hl-operator-bash,pre code .hl-operator-lua{color:#ff7b72}pre code .hl-property{color:#79c0ff}pre code .hl-property-json{color:#7ee787}pre code .hl-property-lua{color:#e6edf3}pre code .hl-property-yaml{color:#7ee787}pre code .hl-punctuation-bracket,pre code .hl-punctuation-delimiter{color:#e6edf3}pre code .hl-punctuation-delimiter-bash{color:#ff7b72}pre code .hl-punctuation-special{color:#e6edf3}pre code .hl-string,pre code .hl-string-documentation{color:#a5d6ff}pre code .hl-string-escape{color:#a5d6ff;font-weight:700}pre code .hl-string-regexp{color:#a5d6ff}pre code .hl-string-special,pre code .hl-string-special-path{color:#e6edf3}pre code .hl-string-special-path-gitignore{color:#d2a8ff}pre code .hl-string-special-path-nix{color:#a5d6ff}pre code .hl-string-special-symbol{color:#79c0ff}pre code .hl-string-special-symbol-make{color:#d2a8ff}pre code .hl-string-special-url{color:#79c0ff;font-style:italic;text-decoration:underline}pre code .hl-tag{color:#7ee787}pre code .hl-tag-attribute{color:#79c0ff}pre code .hl-tag-builtin{color:#7ee787}pre code .hl-tag-delimiter-javascript,pre code .hl-tag-delimiter-tsx{color:#79c0ff}pre code .hl-tag-javascript,pre code .hl-tag-tsx,pre code .hl-type{color:#ffa657}pre code .hl-type-builtin{color:#ff7b72}pre code .hl-type-builtin-python{color:#79c0ff}pre code .hl-type-css{color:#7ee787}pre code .hl-type-definition{color:#ffa657}pre code .hl-type-sql,pre code .hl-variable{color:#e6edf3}pre code .hl-variable-builtin,pre code .hl-variable-member{color:#79c0ff}pre code .hl-variable-member-python,pre code .hl-variable-parameter{color:#e6edf3}pre code .hl-variable-parameter-builtin,pre code .hl-variable-sql,.code-lines .hl-attribute{color:#79c0ff}.code-lines .hl-attribute-builtin{color:#e6edf3}.code-lines .hl-boolean{color:#79c0ff}.code-lines .hl-character{color:#a5d6ff}.code-lines .hl-character-special{color:#e6edf3}.code-lines .hl-comment,.code-lines .hl-comment-documentation{color:#8b949e}.code-lines .hl-comment-error{color:#0d1117;background-color:#f85149}.code-lines .hl-comment-hint{color:#0d1117;background-color:#7d8590}.code-lines .hl-comment-note{color:#2f81f7}.code-lines .hl-comment-todo{color:#0d1117;background-color:#7d8590}.code-lines .hl-comment-warning{color:#0d1117;background-color:#d29922}.code-lines .hl-constant,.code-lines .hl-constant-builtin{color:#79c0ff}.code-lines .hl-constant-builtin-rust{color:#ffa657}.code-lines .hl-constant-html{color:#7ee787}.code-lines .hl-constant-macro{color:#ff7b72}.code-lines .hl-constructor{color:#ffa657}.code-lines .hl-constructor-lua{color:#e6edf3}.code-lines .hl-diff-delta{color:#d29922;background-color:#231e14}.code-lines .hl-diff-minus{color:#f85149;background-color:#2c171b}.code-lines .hl-diff-plus{color:#3fb950;background-color:#10231c}.code-lines .hl-function{color:#d2a8ff}.code-lines .hl-function-builtin-bash{color:#ff7b72}.code-lines .hl-function-builtin-lua,.code-lines .hl-function-builtin-make{color:#79c0ff}.code-lines .hl-function-call{color:#d2a8ff}.code-lines .hl-function-call-bash{color:#79c0ff}.code-lines .hl-function-macro,.code-lines .hl-function-method,.code-lines .hl-function-method-call{color:#d2a8ff}.code-lines .hl-highlighted{background-color:#484f58}.code-lines .hl-keyword,.code-lines .hl-keyword-conditional,.code-lines .hl-keyword-conditional-ternary,.code-lines .hl-keyword-coroutine,.code-lines .hl-keyword-debug,.code-lines .hl-keyword-directive,.code-lines .hl-keyword-directive-define{color:#ff7b72}.code-lines .hl-keyword-directive-rust,.code-lines .hl-keyword-exception{color:#79c0ff}.code-lines .hl-keyword-export,.code-lines .hl-keyword-function,.code-lines .hl-keyword-import,.code-lines .hl-keyword-modifier,.code-lines .hl-keyword-operator,.code-lines .hl-keyword-repeat,.code-lines .hl-keyword-return,.code-lines .hl-keyword-type{color:#ff7b72}.code-lines .hl-label{color:#7ee787}.code-lines .hl-label-ruby{color:#79c0ff}.code-lines .hl-markup{color:#e6edf3}.code-lines .hl-markup-environment{color:#ff7b72}.code-lines .hl-markup-environment-name{color:#d2a8ff}.code-lines .hl-markup-heading,.code-lines .hl-markup-heading-1,.code-lines .hl-markup-heading-2,.code-lines .hl-markup-heading-3,.code-lines .hl-markup-heading-4,.code-lines .hl-markup-heading-5,.code-lines .hl-markup-heading-6{color:#79c0ff;font-weight:700}.code-lines .hl-markup-heading-html{color:#e6edf3}.code-lines .hl-markup-italic{color:#e6edf3;font-style:italic}.code-lines .hl-markup-link{color:#e6edf3;text-decoration:underline}.code-lines .hl-markup-link-label{color:#e6edf3}.code-lines .hl-markup-link-url{color:#e6edf3;text-decoration:underline}.code-lines .hl-markup-list{color:#79c0ff}.code-lines .hl-markup-list-bash{color:#e6edf3}.code-lines .hl-markup-list-checked{color:#3fb950}.code-lines .hl-markup-list-unchecked{color:#6e7681}.code-lines .hl-markup-math,.code-lines .hl-markup-quote{color:#e6edf3}.code-lines .hl-markup-quote-markdown{color:#7ee787}.code-lines .hl-markup-raw,.code-lines .hl-markup-raw-block{color:#e6edf3;font-style:italic}.code-lines .hl-markup-strikethrough{color:#e6edf3;text-decoration:line-through}.code-lines .hl-markup-strong{color:#e6edf3;font-weight:700}.code-lines .hl-markup-underline{text-decoration:underline}.code-lines .hl-module{color:#ff7b72}.code-lines .hl-module-builtin{color:#79c0ff}.code-lines .hl-module-c_sharp,.code-lines .hl-module-elixir,.code-lines .hl-module-php{color:#ffa657}.code-lines .hl-number,.code-lines .hl-number-float,.code-lines .hl-operator{color:#79c0ff}.code-lines .hl-operator-bash,.code-lines .hl-operator-lua{color:#ff7b72}.code-lines .hl-property{color:#79c0ff}.code-lines .hl-property-json{color:#7ee787}.code-lines .hl-property-lua{color:#e6edf3}.code-lines .hl-property-yaml{color:#7ee787}.code-lines .hl-punctuation-bracket,.code-lines .hl-punctuation-delimiter{color:#e6edf3}.code-lines .hl-punctuation-delimiter-bash{color:#ff7b72}.code-lines .hl-punctuation-special{color:#e6edf3}.code-lines .hl-string,.code-lines .hl-string-documentation{color:#a5d6ff}.code-lines .hl-string-escape{color:#a5d6ff;font-weight:700}.code-lines .hl-string-regexp{color:#a5d6ff}.code-lines .hl-string-special,.code-lines .hl-string-special-path{color:#e6edf3}.code-lines .hl-string-special-path-gitignore{color:#d2a8ff}.code-lines .hl-string-special-path-nix{color:#a5d6ff}.code-lines .hl-string-special-symbol{color:#79c0ff}.code-lines .hl-string-special-symbol-make{color:#d2a8ff}.code-lines .hl-string-special-url{color:#79c0ff;font-style:italic;text-decoration:underline}.code-lines .hl-tag{color:#7ee787}.code-lines .hl-tag-attribute{color:#79c0ff}.code-lines .hl-tag-builtin{color:#7ee787}.code-lines .hl-tag-delimiter-javascript,.code-lines .hl-tag-delimiter-tsx{color:#79c0ff}.code-lines .hl-tag-javascript,.code-lines .hl-tag-tsx,.code-lines .hl-type{color:#ffa657}.code-lines .hl-type-builtin{color:#ff7b72}.code-lines .hl-type-builtin-python{color:#79c0ff}.code-lines .hl-type-css{color:#7ee787}.code-lines .hl-type-definition{color:#ffa657}.code-lines .hl-type-sql,.code-lines .hl-variable{color:#e6edf3}.code-lines .hl-variable-builtin,.code-lines .hl-variable-member{color:#79c0ff}.code-lines .hl-variable-member-python,.code-lines .hl-variable-parameter{color:#e6edf3}.code-lines .hl-variable-parameter-builtin,.code-lines .hl-variable-sql,.preview-code .hl-attribute{color:#79c0ff}.preview-code .hl-attribute-builtin{color:#e6edf3}.preview-code .hl-boolean{color:#79c0ff}.preview-code .hl-character{color:#a5d6ff}.preview-code .hl-character-special{color:#e6edf3}.preview-code .hl-comment,.preview-code .hl-comment-documentation{color:#8b949e}.preview-code .hl-comment-error{color:#0d1117;background-color:#f85149}.preview-code .hl-comment-hint{color:#0d1117;background-color:#7d8590}.preview-code .hl-comment-note{color:#2f81f7}.preview-code .hl-comment-todo{color:#0d1117;background-color:#7d8590}.preview-code .hl-comment-warning{color:#0d1117;background-color:#d29922}.preview-code .hl-constant,.preview-code .hl-constant-builtin{color:#79c0ff}.preview-code .hl-constant-builtin-rust{color:#ffa657}.preview-code .hl-constant-html{color:#7ee787}.preview-code .hl-constant-macro{color:#ff7b72}.preview-code .hl-constructor{color:#ffa657}.preview-code .hl-constructor-lua{color:#e6edf3}.preview-code .hl-diff-delta{color:#d29922;background-color:#231e14}.preview-code .hl-diff-minus{color:#f85149;background-color:#2c171b}.preview-code .hl-diff-plus{color:#3fb950;background-color:#10231c}.preview-code .hl-function{color:#d2a8ff}.preview-code .hl-function-builtin-bash{color:#ff7b72}.preview-code .hl-function-builtin-lua,.preview-code .hl-function-builtin-make{color:#79c0ff}.preview-code .hl-function-call{color:#d2a8ff}.preview-code .hl-function-call-bash{color:#79c0ff}.preview-code .hl-function-macro,.preview-code .hl-function-method,.preview-code .hl-function-method-call{color:#d2a8ff}.preview-code .hl-highlighted{background-color:#484f58}.preview-code .hl-keyword,.preview-code .hl-keyword-conditional,.preview-code .hl-keyword-conditional-ternary,.preview-code .hl-keyword-coroutine,.preview-code .hl-keyword-debug,.preview-code .hl-keyword-directive,.preview-code .hl-keyword-directive-define{color:#ff7b72}.preview-code .hl-keyword-directive-rust,.preview-code .hl-keyword-exception{color:#79c0ff}.preview-code .hl-keyword-export,.preview-code .hl-keyword-function,.preview-code .hl-keyword-import,.preview-code .hl-keyword-modifier,.preview-code .hl-keyword-operator,.preview-code .hl-keyword-repeat,.preview-code .hl-keyword-return,.preview-code .hl-keyword-type{color:#ff7b72}.preview-code .hl-label{color:#7ee787}.preview-code .hl-label-ruby{color:#79c0ff}.preview-code .hl-markup{color:#e6edf3}.preview-code .hl-markup-environment{color:#ff7b72}.preview-code .hl-markup-environment-name{color:#d2a8ff}.preview-code .hl-markup-heading,.preview-code .hl-markup-heading-1,.preview-code .hl-markup-heading-2,.preview-code .hl-markup-heading-3,.preview-code .hl-markup-heading-4,.preview-code .hl-markup-heading-5,.preview-code .hl-markup-heading-6{color:#79c0ff;font-weight:700}.preview-code .hl-markup-heading-html{color:#e6edf3}.preview-code .hl-markup-italic{color:#e6edf3;font-style:italic}.preview-code .hl-markup-link{color:#e6edf3;text-decoration:underline}.preview-code .hl-markup-link-label{color:#e6edf3}.preview-code .hl-markup-link-url{color:#e6edf3;text-decoration:underline}.preview-code .hl-markup-list{color:#79c0ff}.preview-code .hl-markup-list-bash{color:#e6edf3}.preview-code .hl-markup-list-checked{color:#3fb950}.preview-code .hl-markup-list-unchecked{color:#6e7681}.preview-code .hl-markup-math,.preview-code .hl-markup-quote{color:#e6edf3}.preview-code .hl-markup-quote-markdown{color:#7ee787}.preview-code .hl-markup-raw,.preview-code .hl-markup-raw-block{color:#e6edf3;font-style:italic}.preview-code .hl-markup-strikethrough{color:#e6edf3;text-decoration:line-through}.preview-code .hl-markup-strong{color:#e6edf3;font-weight:700}.preview-code .hl-markup-underline{text-decoration:underline}.preview-code .hl-module{color:#ff7b72}.preview-code .hl-module-builtin{color:#79c0ff}.preview-code .hl-module-c_sharp,.preview-code .hl-module-elixir,.preview-code .hl-module-php{color:#ffa657}.preview-code .hl-number,.preview-code .hl-number-float,.preview-code .hl-operator{color:#79c0ff}.preview-code .hl-operator-bash,.preview-code .hl-operator-lua{color:#ff7b72}.preview-code .hl-property{color:#79c0ff}.preview-code .hl-property-json{color:#7ee787}.preview-code .hl-property-lua{color:#e6edf3}.preview-code .hl-property-yaml{color:#7ee787}.preview-code .hl-punctuation-bracket,.preview-code .hl-punctuation-delimiter{color:#e6edf3}.preview-code .hl-punctuation-delimiter-bash{color:#ff7b72}.preview-code .hl-punctuation-special{color:#e6edf3}.preview-code .hl-string,.preview-code .hl-string-documentation{color:#a5d6ff}.preview-code .hl-string-escape{color:#a5d6ff;font-weight:700}.preview-code .hl-string-regexp{color:#a5d6ff}.preview-code .hl-string-special,.preview-code .hl-string-special-path{color:#e6edf3}.preview-code .hl-string-special-path-gitignore{color:#d2a8ff}.preview-code .hl-string-special-path-nix{color:#a5d6ff}.preview-code .hl-string-special-symbol{color:#79c0ff}.preview-code .hl-string-special-symbol-make{color:#d2a8ff}.preview-code .hl-string-special-url{color:#79c0ff;font-style:italic;text-decoration:underline}.preview-code .hl-tag{color:#7ee787}.preview-code .hl-tag-attribute{color:#79c0ff}.preview-code .hl-tag-builtin{color:#7ee787}.preview-code .hl-tag-delimiter-javascript,.preview-code .hl-tag-delimiter-tsx{color:#79c0ff}.preview-code .hl-tag-javascript,.preview-code .hl-tag-tsx,.preview-code .hl-type{color:#ffa657}.preview-code .hl-type-builtin{color:#ff7b72}.preview-code .hl-type-builtin-python{color:#79c0ff}.preview-code .hl-type-css{color:#7ee787}.preview-code .hl-type-definition{color:#ffa657}.preview-code .hl-type-sql,.preview-code .hl-variable{color:#e6edf3}.preview-code .hl-variable-builtin,.preview-code .hl-variable-member{color:#79c0ff}.preview-code .hl-variable-member-python,.preview-code .hl-variable-parameter{color:#e6edf3}.preview-code .hl-variable-parameter-builtin,.preview-code .hl-variable-sql{color:#79c0ff}.api-section{scroll-margin-top:calc(var(--header-h) + 24px)}.api-entry{background:var(--bg-soft);border-radius:var(--radius-sm);border-left:3px solid var(--border);margin:12px 0;padding:12px 16px}.api-entry.constructor{border-left-color:var(--amber)}.api-entry.classmethod{border-left-color:var(--primary)}.api-entry.method{border-left-color:var(--green)}.api-entry.attribute{border-left-color:var(--text-muted)}.api-entry .sig{font-family:var(--font-mono);color:var(--text);word-break:break-word;margin-bottom:4px;font-size:.84rem}.api-entry .sig .name{color:var(--text);font-weight:700}.api-entry .sig .param{color:var(--text-soft)}.api-entry .sig .ret{color:var(--text-muted);font-style:italic}.api-entry .desc{color:var(--text-soft);margin:0;font-size:.875rem}.attr-table{border-collapse:collapse;width:100%;margin:12px 0 20px;font-size:.875rem}.attr-table th{text-align:left;background:var(--bg-muted);border-bottom:2px solid var(--border);text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);padding:8px 12px;font-size:.8rem;font-weight:600}.attr-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:8px 12px}.attr-table tr:last-child td{border-bottom:none}.attr-table .attr-name{font-family:var(--font-mono);color:var(--text);white-space:nowrap;font-size:.84rem;font-weight:600}.attr-table .attr-type{font-family:var(--font-mono);color:var(--primary);white-space:nowrap;font-size:.8rem}.attr-table .attr-desc{color:var(--text-soft)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:24px 0;display:grid}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:all .2s}.card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card h3{margin:0 0 6px;font-size:1rem;font-weight:700}.card h3 a{color:var(--text)}.card h3 a:hover{color:var(--primary);text-decoration:none}.card p{color:var(--text-soft);margin:0;font-size:.875rem}.features{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin:32px 0;display:grid}.feature{border-radius:var(--radius);background:var(--bg-soft);border:1px solid var(--border);padding:24px}.feature .icon{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:12px;font-size:1.3rem;display:flex}.feature h3{margin:0 0 6px;font-size:1.05rem}.feature p{color:var(--text-soft);margin:0;font-size:.88rem}.hero{text-align:center;padding:60px 0 40px}.hero h1{margin-bottom:16px;font-size:2.8rem}.hero .subtitle{max-width:600px;margin:0 auto 28px}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:10px 24px;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);text-decoration:none}.btn-outline{color:var(--text);border:1px solid var(--border);background:0 0}.btn-outline:hover{border-color:var(--primary);color:var(--primary);text-decoration:none}.callout{border-radius:var(--radius-sm);border-left:4px solid;gap:12px;margin:16px 0;padding:16px 20px;font-size:.9rem;display:flex}.callout-content{min-width:0}.callout-icon{flex:0 0 20px;justify-content:center;align-items:flex-start;padding-top:1px;display:inline-flex}.callout-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.callout-note{color:#58a6ff;background:#58a6ff1a;border-left-color:#58a6ff}.callout-info{color:#388bfd;background:#388bfd1a;border-left-color:#388bfd}.callout-tip{color:#3fb950;background:#3fb9501a;border-left-color:#3fb950}.callout-warning{color:#d29922;background:#d299221a;border-left-color:#d29922}.callout-error{color:#f85149;background:#f851491a;border-left-color:#f85149}.callout-critical{color:#db61a2;background:#db61a21f;border-left-color:#db61a2}.callout strong{margin-bottom:4px;display:block}.search-box{margin:12px 16px 8px;position:relative}.search-box input{border-radius:var(--radius-sm);color:#fff;width:100%;font-size:.84rem;font-family:var(--font-sans);background:#ffffff14;border:1px solid #ffffff1a;outline:none;padding:8px 12px 8px 34px;transition:all .15s}.search-box input::placeholder{color:var(--text-muted)}.search-box input:focus{border-color:var(--sidebar-accent);background:#ffffff1f}.search-box .search-icon{width:16px;height:16px;color:var(--text-muted);position:absolute;top:50%;left:10px;transform:translateY(-50%)}table{border-collapse:collapse;width:100%;margin:12px 0 20px;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px}th{background:var(--bg-muted);text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);font-size:.82rem;font-weight:600}ul,ol{margin:0 0 16px;padding-left:24px}li{margin-bottom:4px}li code{font-size:.82em}.param-list{margin:8px 0 16px;padding:0;list-style:none}.param-list li{border-bottom:1px solid var(--border);padding:6px 0;font-size:.88rem}.param-list li:last-child{border-bottom:none}.param-list .pname{font-family:var(--font-mono);color:var(--text);font-weight:600}.param-list .ptype{font-family:var(--font-mono);color:var(--primary);font-size:.82em}.param-list .pdesc{color:var(--text-soft)}.back-to-top{background:var(--primary);color:#fff;cursor:pointer;opacity:0;pointer-events:none;width:40px;height:40px;box-shadow:var(--shadow-md);z-index:100;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .25s;display:flex;position:fixed;bottom:24px;right:24px}.back-to-top.visible{opacity:1;pointer-events:auto}.back-to-top:hover{background:var(--primary-hover)}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;padding:24px 48px;font-size:.84rem}@media (width<=1024px){.sidebar-overlay.open{display:block}.main{margin-left:0}.menu-toggle{display:block}}@media (width<=640px){.content{padding:24px 20px 60px}h1{font-size:1.8rem}h2{font-size:1.3rem}.hero{padding:36px 0 24px}.hero h1{font-size:2rem}.card-grid,.features{grid-template-columns:1fr}.header-nav{display:none}}.no-sidebar .main{margin-left:0}.no-sidebar .sidebar{display:none}.no-sidebar .content{max-width:960px}.ext-tag{letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;background:var(--primary-soft);color:var(--primary-hover);border:1px solid #6366f14d;border-radius:4px;margin-left:6px;padding:1px 7px;font-size:.7em;font-weight:700;line-height:1.6;display:inline-block}h1 .ext-tag{vertical-align:middle;padding:2px 8px;font-size:.4em}.search-hit .ext-tag{vertical-align:baseline;margin-left:4px;padding:0 5px;font-size:.75em;display:inline}.sidebar-links .ext-tag{vertical-align:baseline;margin-left:4px;padding:0 4px;font-size:.65em}.hljs{background:0 0!important;padding:0!important}.code-reference{text-underline-offset:2px;cursor:pointer;text-decoration:underline dotted}.code-reference:hover{color:var(--primary);text-decoration-style:solid}.code-reference-panel{z-index:2000;background:#000000b3;flex-direction:column;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.code-reference-panel .code-panel-header{background:var(--bg-soft);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;flex-shrink:0;align-items:center;gap:12px;width:100%;max-width:900px;padding:12px 16px;display:flex}.code-reference-panel .code-panel-file{font-family:var(--font-mono);color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;overflow:hidden}.code-reference-panel .code-panel-line{color:var(--primary);background:var(--primary-soft);border-radius:var(--radius-sm);padding:2px 8px;font-size:.75rem}.code-reference-panel .code-panel-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.5rem;line-height:1;transition:color .15s}.code-reference-panel .code-panel-close:hover{color:var(--red)}.code-reference-panel .code-panel-content{background:var(--code-bg);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);border-top:none;width:100%;max-width:900px;max-height:70vh;overflow:auto}.code-reference-panel .code-lines{font-family:var(--font-mono);font-size:.82rem;line-height:1.6}.code-reference-panel .code-line{white-space:pre;min-height:1.6em;padding:0 16px;display:block;position:relative}.code-reference-panel .code-line.highlight-target{box-shadow:inset 3px 0 var(--primary);background:#6366f126}.code-reference-panel .code-line.range-middle:before{content:"";background:var(--primary);width:3px;position:absolute;inset:0 auto 0 0}.code-reference-panel .line-number{width:50px;color:var(--text-muted);text-align:right;user-select:none;opacity:.6;vertical-align:top;flex-shrink:0;padding-right:16px;display:inline-block}.code-reference-panel .code-line.highlight-target .line-number{color:var(--primary);opacity:1;font-weight:600}.code-panel-open{overflow:hidden}.link-preview-tooltip{font-family:var(--font-sans)}.link-preview-tooltip .preview-header{color:var(--text);border-bottom:1px solid var(--border);box-sizing:border-box;flex-wrap:wrap;align-items:center;gap:8px;width:100%;margin-bottom:8px;padding-bottom:8px;font-weight:600;display:flex}.link-preview-tooltip .preview-file{font-family:var(--font-mono);color:var(--text);font-size:.8rem}.link-preview-tooltip .preview-line{color:var(--primary);background:var(--primary-soft);border-radius:var(--radius-sm);margin-right:25px;padding:1px 6px;font-size:.7rem}.link-preview-tooltip .preview-description{color:var(--text-soft);font-size:.85rem;line-height:1.5}.link-preview-tooltip .preview-code{font-family:var(--font-mono);max-height:300px;font-size:.78rem;line-height:1.5;overflow:auto}.link-preview-tooltip .code-line{white-space:pre;margin-right:25px;padding:1px 8px;display:block;position:relative}.link-preview-tooltip .code-line.highlight-target{box-shadow:inset 2px 0 var(--primary);background:#6366f126}.link-preview-tooltip .code-line.range-middle:before{content:"";background:var(--primary);width:2px;position:absolute;inset:0 auto 0 0}.link-preview-tooltip .line-number{width:40px;color:var(--text-muted);text-align:right;user-select:none;opacity:.6;vertical-align:top;flex-shrink:0;padding-right:12px;font-size:.7rem;display:inline-block}.link-preview-tooltip .code-line.highlight-target .line-number{color:var(--primary);opacity:1;font-weight:600}