#site-header.header{background-color:color-mix( in oklab,var(--hb-color-header-bg,var(--hb-color-bg,#0a0a0f)) 65%,transparent );backdrop-filter:saturate(180%)blur(14px);-webkit-backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid color-mix( in oklab,var(--hb-color-header-fg,currentColor) 8%,transparent )}#site-header.header .navbar{max-width:1200px;margin-inline:auto;padding-inline:1.5rem}@media(min-width:1280px){#site-header.header .navbar{padding-inline:2rem}}@media(prefers-color-scheme:dark){html:not(.dark) .home-section-bg[style*=--light-bg-color]{background-color:var(--light-bg-color)!important}html:not(.dark) .home-section-bg[style*=--dark-bg-color]:not([style*=--light-bg-color]){background-color:var(--hb-color-bg,#fafafa)!important}}html:not(.dark) #hero p,html:not(.dark) #hero .text-gray-400,html:not(.dark) #hero .text-gray-500,html:not(.dark) #hero .text-gray-600{color:var(--color-zinc-700,#3f3f46)!important}html:not(.dark) #hero h1 span,html:not(.dark) #hero h2 span{background-image:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:currentColor!important;color:var(--color-zinc-900,#18181b)!important}html:not(.dark) #contact p,html:not(.dark) #contact .text-gray-400,html:not(.dark) #contact .text-gray-500,html:not(.dark) #contact .text-gray-600,html:not(.dark) #contact .text-zinc-400,html:not(.dark) #contact .text-zinc-500,html:not(.dark) #contact .text-zinc-600{color:var(--color-zinc-700,#3f3f46)!important}html:not(.dark) nav.hb-toc a{color:var(--color-zinc-700,#3f3f46)!important}html:not(.dark) nav.hb-toc a:hover{color:var(--color-primary-700,#7e22ce)!important}html:not(.dark) nav.hb-toc p{color:var(--color-zinc-900,#18181b)!important}html:not(.dark) [class*=border-gray-200],html:not(.dark) [class*=border-zinc-200]{border-color:var(--color-zinc-400,#a1a1aa)!important}html:not(.dark) [class*=border-gray-100],html:not(.dark) [class*=border-zinc-100]{border-color:var(--color-zinc-300,#d4d4d8)!important}html:not(.dark) [class*="ring-zinc-900/5"]{--tw-ring-color:rgb(24 24 27 / 0.14) !important}html:not(.dark) [class*="ring-zinc-900/10"]{--tw-ring-color:rgb(24 24 27 / 0.22) !important}html:not(.dark) .text-gray-300,html:not(.dark) .text-zinc-300{color:var(--color-zinc-500,#71717a)!important}html:not(.dark) .text-gray-400,html:not(.dark) .text-zinc-400{color:var(--color-zinc-600,#52525b)!important}html:not(.dark) .text-gray-500,html:not(.dark) .text-zinc-500{color:var(--color-zinc-700,#3f3f46)!important}html:not(.dark) .text-gray-600,html:not(.dark) .text-zinc-600{color:var(--color-zinc-800,#27272a)!important}html:not(.dark) .text-gray-700,html:not(.dark) .text-zinc-700{color:var(--color-zinc-900,#18181b)!important}html:not(.dark) .text-gray-800,html:not(.dark) .text-zinc-800,html:not(.dark) .text-gray-900,html:not(.dark) .text-zinc-900{color:#09090b!important}html:not(.dark) a[class*=bg-gray-100][class*=border-gray-200],html:not(.dark) button[class*=bg-gray-100][class*=border-gray-200]{background-color:var(--color-zinc-100,#f4f4f5)!important;border-color:var(--color-zinc-400,#a1a1aa)!important}html:not(.dark) .prose pre,html:not(.dark) pre.chroma,html:not(.dark) pre{background-color:#faf7ff!important;border-left:3px solid var(--color-primary-500,#a855f7)!important;border-radius:.5rem!important;padding:1rem 1.25rem!important;overflow-x:auto}.dark .prose pre,.dark pre.chroma,.dark pre{background-color:#0d0d12!important;border-left:3px solid var(--color-primary-500,#a855f7)!important;border-radius:.5rem!important;padding:1rem 1.25rem!important;overflow-x:auto}.highlight,.highlight pre{background-color:initial!important}.prose :not(pre)>code{background-color:rgb(168 85 247/.12);color:var(--color-primary-700,#7e22ce);padding:.15em .4em;border-radius:.3rem;font-size:.9em;font-weight:500}.dark .prose :not(pre)>code{background-color:rgb(168 85 247/.18);color:var(--color-primary-300,#d8b4fe)}.prose :not(pre)>code::before,.prose :not(pre)>code::after{content:none!important}.mermaid{overflow-x:auto;overflow-y:visible;margin:2rem 0;display:block;text-align:center}.mermaid svg{max-width:none!important;min-width:800px!important;height:auto!important;font-size:9px!important;margin:0 auto}.dark .mermaid svg{background-color:initial!important}.dark .mermaid svg text,.dark .mermaid svg tspan{fill:#e5e7eb!important;color:#e5e7eb!important}.dark .mermaid svg foreignobject div,.dark .mermaid svg foreignobject span,.dark .mermaid svg foreignobject p,.dark .mermaid svg .nodeLabel,.dark .mermaid svg .label div,.dark .mermaid svg .label span,.dark .mermaid svg .label{color:#e5e7eb!important}.dark .mermaid svg .cluster rect{fill:#1f2937!important;stroke:#4b5563!important}.dark .mermaid svg .cluster text{fill:#e5e7eb!important}.dark .mermaid svg .cluster span{color:#e5e7eb!important}.mermaid svg .messageText,.mermaid svg text.actor>tspan,.mermaid svg .loopText,.mermaid svg .loopText>tspan{font-size:16px!important}.dark .mermaid svg .messageText{fill:#e5e7eb!important;stroke:none!important}.dark .mermaid svg .actor-line{stroke:#9ca3af!important}.dark .mermaid svg .messageLine0,.dark .mermaid svg .messageLine1{stroke:#e5e7eb!important}.dark .mermaid svg rect.actor,.dark .mermaid svg rect.note,.dark .mermaid svg rect.note-bkg{fill:#374151!important;stroke:#4b5563!important}.dark .mermaid svg .actor{stroke:#9ca3af!important;fill:#1f2937!important}.dark .mermaid svg text.actor>tspan{fill:#e5e7eb!important}.dark .mermaid svg .node rect,.dark .mermaid svg .node circle,.dark .mermaid svg .node ellipse,.dark .mermaid svg .node polygon,.dark .mermaid svg .node path{fill:#374151!important;stroke:#9ca3af!important}.dark .mermaid svg .node .label,.dark .mermaid svg .node .label div,.dark .mermaid svg .node .label span,.dark .mermaid svg .node .nodeLabel{color:#e5e7eb!important}.dark .mermaid svg .node text,.dark .mermaid svg .node tspan{fill:#e5e7eb!important}.dark .mermaid svg marker path{fill:#9ca3af!important;stroke:#9ca3af!important}.dark .mermaid svg .edgeLabel,.dark .mermaid svg .edgeLabel span,.dark .mermaid svg .edgeLabel .edgeLabel{background-color:#111827!important;color:#e5e7eb!important}.dark .mermaid svg .edgePath .path{stroke:#9ca3af!important}.dark .mermaid svg .loopLine,.dark .mermaid svg .loopText{stroke:#9ca3af!important;fill:#e5e7eb!important}