:root{--hl-bg:#282a36;--hl-bg-dark:#21222c;--hl-fg:#eff0eb;--hl-comment:#a39e9b;--hl-blue:#57c7ff;--hl-cyan:#9aedfe;--hl-green:#5af78e;--hl-magenta:#ff6ac1;--hl-purple:#bd93f9;--hl-red:#ff5c57;--hl-yellow:#f3f99d;--hl-carnation:#f99fc6;--hl-coral:#f97c7c;--hl-lilac:#c9c5fb;--hl-olive:#b6d37c;--hl-opal:#b1d7c7;--hl-sand:#ffab6f}.hl-keyword{color:var(--hl-magenta);font-weight:700}.hl-keyword-control{color:var(--hl-carnation);font-weight:700}.hl-keyword-control-exception{color:var(--hl-red);font-weight:700}.hl-keyword-control-conditional,.hl-keyword-control-repeat,.hl-keyword-control-import,.hl-keyword-control-return{color:var(--hl-carnation);font-weight:700}.hl-keyword-function{color:var(--hl-lilac);font-weight:700}.hl-keyword-operator,.hl-keyword-storage,.hl-keyword-storage-type,.hl-keyword-storage-modifier{color:var(--hl-coral);font-weight:700}.hl-function{color:var(--hl-green)}.hl-function-builtin{color:var(--hl-sand)}.hl-function-method{color:var(--hl-opal)}.hl-function-macro,.hl-function-special{color:var(--hl-blue)}.hl-type{color:var(--hl-opal)}.hl-type-builtin{color:var(--hl-yellow)}.hl-type-enum-variant{color:var(--hl-sand)}.hl-constant{color:var(--hl-purple)}.hl-constant-builtin,.hl-constant-builtin-boolean{color:var(--hl-olive)}.hl-constant-character{color:var(--hl-carnation)}.hl-constant-character-escape{color:var(--hl-magenta)}.hl-constant-numeric,.hl-constant-numeric-integer{color:var(--hl-cyan)}.hl-constant-numeric-float{color:var(--hl-red)}.hl-string{color:var(--hl-yellow)}.hl-string-regexp{color:var(--hl-red)}.hl-string-special,.hl-string-special-path,.hl-string-special-url,.hl-string-special-symbol{color:var(--hl-blue)}.hl-variable{color:var(--hl-cyan)}.hl-variable-builtin{color:var(--hl-olive)}.hl-variable-parameter{color:var(--hl-blue);font-style:italic}.hl-variable-other{color:var(--hl-cyan)}.hl-variable-other-member{color:var(--hl-lilac)}.hl-comment,.hl-comment-line,.hl-comment-block,.hl-comment-block-documentation,.hl-comment-line-documentation{color:var(--hl-comment)}.hl-punctuation{color:var(--hl-magenta)}.hl-punctuation-bracket{color:var(--hl-fg)}.hl-punctuation-delimiter{color:var(--hl-coral)}.hl-punctuation-special{color:var(--hl-magenta)}.hl-operator{color:var(--hl-coral)}.hl-attribute{color:var(--hl-opal)}.hl-label{color:var(--hl-magenta)}.hl-namespace{color:var(--hl-olive)}.hl-constructor{color:var(--hl-sand)}.hl-special{color:var(--hl-magenta)}.hl-tag{color:var(--hl-carnation)}.hl-markup-heading{color:var(--hl-purple);font-weight:700}.hl-markup-bold{color:var(--hl-blue);font-weight:700}.hl-markup-italic{color:var(--hl-yellow);font-style:italic}.hl-markup-strikethrough{text-decoration:line-through}.hl-markup-link-text{color:var(--hl-magenta)}.hl-markup-link-url{color:var(--hl-cyan)}.hl-markup-link-label{color:var(--hl-blue);font-style:italic}.hl-markup-list{color:var(--hl-cyan)}.hl-markup-quote{color:var(--hl-yellow);font-style:italic}.hl-markup-raw{color:var(--hl-fg)}.hl-diff-plus{color:var(--hl-green)}.hl-diff-minus{color:var(--hl-red)}.hl-diff-delta{color:var(--hl-blue)}:root{--bg:#0d1117;--bg-sidebar:#161b22;--fg:#c9d1d9;--fg-muted:#8b949e;--accent:#58a6ff;--accent-hover:#79b8ff;--border:#30363d;--code-bg:#1f2428;--success:#3fb950}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.6}body{background:var(--bg);color:var(--fg);grid-template-columns:260px 1fr;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;display:grid}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;height:100vh;padding:2rem 1.5rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar header{margin-bottom:2rem}.sidebar .logo{color:var(--accent);align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;text-decoration:none;display:flex}.sidebar .logo-img{width:32px;height:32px}.sidebar .tagline{color:var(--fg-muted);margin-top:.25rem;font-size:.875rem;display:block}.sidebar nav{flex-direction:column;gap:.25rem;display:flex}.sidebar nav a{color:var(--fg);border-radius:6px;padding:.5rem .75rem;text-decoration:none;transition:background .15s,color .15s}.sidebar nav a:hover{background:var(--border)}.sidebar nav a.active{background:var(--accent);color:var(--bg)}.sidebar .nav-children{border-left:1px solid var(--border);flex-direction:column;gap:.25rem;margin-left:1rem;padding-left:.5rem;display:none}.sidebar .nav-children.expanded{display:flex}.sidebar .nav-children a{font-size:.9rem}.sidebar .nav-anchors{border-left:1px solid var(--border);flex-direction:column;gap:.125rem;margin-top:.25rem;margin-bottom:.25rem;margin-left:1rem;padding-left:.5rem;display:flex}.sidebar .nav-anchors .anchor-link{color:var(--fg-muted);padding:.125rem 0;font-size:.8rem}.sidebar .nav-anchors .anchor-link:hover{color:var(--accent)}.sidebar .nav-anchors{scroll-target-group:auto}.sidebar .nav-anchors .anchor-link:target-current{color:var(--accent);font-weight:600}.sidebar .nav-anchors .level-3{margin-left:.5rem}.sidebar .nav-anchors .level-4{margin-left:1rem}.sidebar .nav-anchors .level-5{margin-left:1.5rem}.sidebar .nav-anchors .level-6{margin-left:2rem}.sidebar-footer{border-top:1px solid var(--border);color:var(--fg-muted);flex-direction:column;gap:.25rem;margin-top:auto;padding-top:1rem;font-size:.75rem;display:flex}.sidebar-footer a{color:var(--fg-muted)}.sidebar-footer a:hover{color:var(--accent)}main{max-width:900px;padding:3rem 4rem}h1{color:var(--fg);margin-bottom:1rem;font-size:2.25rem}h2{border-bottom:1px solid var(--border);margin:2rem 0 1rem;padding-bottom:.5rem;font-size:1.5rem}h3{margin:1.5rem 0 .75rem;font-size:1.25rem}.heading-anchor{visibility:hidden;color:var(--fg-muted);opacity:.5;margin-left:.5em;font-size:.75em;text-decoration:none}.heading-anchor:hover{color:var(--accent);opacity:1}h1:hover .heading-anchor,h2:hover .heading-anchor,h3:hover .heading-anchor,h4:hover .heading-anchor,h5:hover .heading-anchor,h6:hover .heading-anchor{visibility:visible}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{border-left:3px solid var(--accent);padding-left:.5rem;scroll-margin-top:1rem}h1:target .heading-anchor,h2:target .heading-anchor,h3:target .heading-anchor,h4:target .heading-anchor,h5:target .heading-anchor,h6:target .heading-anchor{visibility:visible;color:var(--accent)}p{margin-bottom:1rem}.lead{color:var(--fg-muted);margin-bottom:2rem;font-size:1.125rem}a{color:var(--accent)}a:hover{color:var(--accent-hover)}.math-display{text-align:center;margin:1rem 0;display:block;overflow-x:auto}.katex-html{display:none}code{background:var(--code-bg);border-radius:4px;padding:.2em .4em;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;font-size:.875em}pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;margin:1rem 0;padding:1rem;overflow-x:auto}pre code{background:0 0;padding:0}.mermaid-diagram{margin:1.5rem 0}.mermaid-diagram svg{max-width:100%;height:auto;display:block}.mermaid-diagram svg>rect:first-child{fill:#0000!important}.mermaid-diagram .cluster rect,.mermaid-diagram .node rect,.mermaid-diagram .node circle,.mermaid-diagram .node ellipse,.mermaid-diagram .node polygon{fill:var(--bg-sidebar)!important;stroke:var(--border)!important}.mermaid-diagram .edgeLabel{background-color:var(--bg)!important;color:var(--fg)!important}.mermaid-diagram .label{color:var(--fg)!important}.mermaid-diagram .edgePath path{stroke:var(--fg-muted)!important}.mermaid-diagram .arrowheadPath{fill:var(--fg-muted)!important}.section-nav{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.section-link{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:8px;padding:1rem;text-decoration:none;transition:border-color .15s;display:block}.section-link:hover{border-color:var(--accent)}.section-link strong{color:var(--fg);margin-bottom:.25rem;display:block}.section-link span{color:var(--fg-muted);font-size:.875rem}ul,ol{margin:1rem 0;padding-left:1.5rem}li{margin-bottom:.5rem}table{border-collapse:collapse;width:100%;margin:1rem 0}th,td{text-align:left;border:1px solid var(--border);padding:.75rem}th{background:var(--bg-sidebar)}.nav-toggle{display:none}.hamburger{cursor:pointer;user-select:none;flex-direction:column;justify-content:space-between;width:24px;height:18px;padding:0;display:none}.hamburger span{background:var(--fg);transform-origin:50%;border-radius:1px;width:100%;height:2px;transition:transform .3s,opacity .3s;display:block}@media (width<=768px){html{overflow-x:hidden}body{grid-template-columns:1fr;max-width:100vw;overflow-x:hidden}.sidebar{border-right:none;border-bottom:1px solid var(--border);height:auto;padding:1rem 1.5rem;position:static}.sidebar header{justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.sidebar .tagline{display:none}.sidebar header{position:relative}.hamburger{display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.sidebar nav{border-top:1px solid var(--border);opacity:0;flex-direction:column;max-height:0;margin-top:0;padding-top:0;transition:max-height .3s,opacity .3s,margin-top .3s,padding-top .3s;overflow:hidden}.sidebar:has(.nav-toggle:checked) nav{opacity:1;max-height:calc(100vh - 161px);margin-top:1rem;padding-top:1rem;overflow-y:auto}.nav-toggle:checked~.hamburger span:first-child{transform:translateY(8px)rotate(45deg)}.nav-toggle:checked~.hamburger span:nth-child(2){opacity:0}.nav-toggle:checked~.hamburger span:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.sidebar-footer{display:none}main{max-width:100%;padding:1.5rem 1rem}pre{max-width:calc(100vw - 2rem)}table{white-space:nowrap;max-width:calc(100vw - 2rem);display:block;overflow-x:auto}code{word-break:break-all}td code{white-space:normal}.mermaid-diagram{max-width:calc(100vw - 2rem);overflow-x:auto}.mermaid-diagram svg{max-width:none;display:block}}