:root{--sl-content-width:50rem;--tf-brand-500:#3b82f6;--tf-brand-400:#60a5fa;--tf-brand-600:#2563eb;--tf-brand-700:#1d4ed8;--tf-brand-glow:#3b82f638;--tf-sky-400:#38bdf8;--tf-sky-600:#0284c7}.sl-markdown-content .tf-table-scroll{background:linear-gradient(var(--tf-doc-panel-strong), var(--tf-doc-panel-strong)) padding-box, linear-gradient(135deg, color-mix(in srgb, var(--sl-color-accent) 58%, transparent), color-mix(in srgb, var(--tf-doc-cyan) 24%, transparent) 52%, color-mix(in srgb, var(--tf-doc-pink) 34%, transparent)) border-box;box-shadow:0 20px 60px color-mix(in srgb, var(--tf-doc-glow) 58%, transparent), inset 0 1px 0 #ffffff09;scrollbar-color:color-mix(in srgb, var(--sl-color-accent) 52%, transparent) transparent;scrollbar-width:thin;border:1px solid #0000;border-radius:8px;margin-block:1.75rem 2.35rem;overflow-x:auto}.sl-markdown-content .tf-table-scroll:focus-visible{outline:2px solid var(--sl-color-accent);outline-offset:3px}.sl-markdown-content .tf-table-scroll::-webkit-scrollbar{height:.7rem}.sl-markdown-content .tf-table-scroll::-webkit-scrollbar-track{background:0 0}.sl-markdown-content .tf-table-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--sl-color-accent) 58%, transparent);background-clip:content-box;border:.22rem solid #0000;border-radius:999px}.sl-markdown-content .tf-diagram-caption{text-align:center;max-width:56ch;color:color-mix(in srgb, var(--sl-color-text) 64%, var(--sl-color-gray-3));margin:-.75rem auto 1.5rem;font-size:.86rem;font-style:italic;line-height:1.5}[data-theme=light] .sl-markdown-content .tf-diagram-caption{color:color-mix(in srgb, var(--sl-color-text) 78%, #0b0d11)}:root[data-theme=dark]{--sl-color-bg:#0f1218;--sl-color-bg-nav:transparent;--tf-nav-bg-scrolled:#0f1218e0;--sl-color-bg-sidebar:transparent;--sl-color-hairline-shade:#94a3b824;--sl-color-accent:var(--tf-brand-500);--sl-color-text-accent:var(--tf-brand-400);--sl-color-accent-low:#3b82f62e;--sl-color-accent-high:#dbeafe;--sl-color-accent-ink:#eff6ff;--sl-color-purple-low:#38bdf838;--sl-color-purple:var(--tf-sky-400);--sl-color-purple-high:#e0f2fe;--tf-doc-panel:#12141cc7;--tf-doc-panel-strong:#0d1018f0;--tf-doc-line:#94a3b829;--tf-doc-line-strong:#60a5fa61;--tf-doc-glow:var(--tf-brand-glow);--tf-doc-cyan:var(--tf-sky-400);--tf-doc-mint:var(--tf-brand-400);--tf-doc-amber:#facc15;--tf-doc-pink:#f0abfc;--tf-doc-red:#fb7185;--tf-doc-code-bg:#0b0d11;--tf-doc-code-bg-soft:#11131b;--tf-doc-code-text:#e8ecf5;--tf-doc-code-muted:#7f8798;--tf-doc-inline-bg:#3b82f626;--tf-doc-aside-bg:#0e1018bd}:root[data-theme=light]{--sl-color-bg:#f8fafc;--sl-color-bg-nav:transparent;--tf-nav-bg-scrolled:#f8fafce6;--sl-color-bg-sidebar:transparent;--sl-color-hairline-shade:#64748b29;--sl-color-accent:var(--tf-brand-600);--sl-color-text-accent:var(--tf-brand-700);--sl-color-accent-low:#2563eb21;--sl-color-accent-high:#1e40af;--sl-color-accent-ink:#fff;--sl-color-purple-low:#0284c729;--sl-color-purple:var(--tf-sky-600);--sl-color-purple-high:#0c4a6e;--tf-doc-panel:#ffffffc7;--tf-doc-panel-strong:#f8fafcf0;--tf-doc-line:#64748b29;--tf-doc-line-strong:#2563eb47;--tf-doc-glow:#2563eb21;--tf-doc-cyan:var(--tf-sky-600);--tf-doc-mint:var(--tf-brand-600);--tf-doc-amber:#b45309;--tf-doc-pink:#a21caf;--tf-doc-red:#be123c;--tf-doc-code-bg:#f1f5f9;--tf-doc-code-bg-soft:#fff;--tf-doc-code-text:#1e293b;--tf-doc-code-muted:#64748b;--tf-doc-inline-bg:#2563eb1c;--tf-doc-aside-bg:#ffffffbd}body{background:linear-gradient(180deg, #3b82f60e, transparent 28rem), linear-gradient(90deg, #60a5fa07, transparent 34rem), var(--sl-color-bg)}body>.page>header.header{background:var(--sl-color-bg-nav);backdrop-filter:none;border-bottom-color:#0000;transition:background-color .16s,border-color .16s,box-shadow .16s,backdrop-filter .16s}html:not([data-has-hero]) body>.page>header.header{border-bottom-color:var(--sl-color-hairline-shade);background:var(--tf-nav-bg-scrolled);-webkit-backdrop-filter:blur(18px)}html.tf-nav-scrolled body>.page>header.header{border-bottom-color:var(--sl-color-hairline-shade);background:var(--tf-nav-bg-scrolled);-webkit-backdrop-filter:blur(18px);box-shadow:0 10px 32px #00000024}site-search button[data-open-modal]{background:#080a0b2e;border-color:#d5e2db24;border-radius:8px}[data-theme=light] site-search button[data-open-modal]{background:#ffffff38}html.tf-nav-scrolled site-search button[data-open-modal]{background:#080a0b99}html[data-theme=light].tf-nav-scrolled site-search button[data-open-modal]{background:#ffffffad}@media (width>=72rem){html[data-has-sidebar]:not([data-has-hero]){--sl-content-margin-inline:0 auto}}.sidebar-pane{background-color:#0f1218eb!important}@media (width>=50rem){.sidebar-pane{background-color:#0000!important}}[data-theme=light] .sidebar-pane{background-color:#f8fafcf0!important}@media (width>=50rem){[data-theme=light] .sidebar-pane{background-color:#0000!important}}.sidebar-pane a[aria-current=page]{color:var(--sl-color-white)!important;background-color:#3b82f629!important}.sidebar-pane a[aria-current=page]:hover,.sidebar-pane a[aria-current=page]:focus{color:var(--sl-color-white)!important;background-color:#3b82f63d!important}[data-theme=light] .sidebar-pane a[aria-current=page]{color:#1e3a8a!important;background-color:#2563eb21!important}[data-theme=light] .sidebar-pane a[aria-current=page]:hover,[data-theme=light] .sidebar-pane a[aria-current=page]:focus{color:#1e3a8a!important;background-color:#2563eb2e!important}.sl-markdown-content code:not(:where(.not-content *,pre *,.expressive-code *)){border:1px solid color-mix(in srgb, var(--sl-color-accent) 30%, transparent);color:var(--sl-color-accent-high);background:linear-gradient(135deg, var(--tf-doc-inline-bg), #38bdf80f), color-mix(in srgb, var(--tf-doc-panel-strong) 84%, transparent);box-shadow:inset 0 0 0 1px #ffffff06, 0 0 18px color-mix(in srgb, var(--sl-color-accent) 10%, transparent);border-radius:.36rem;padding:.12rem .4rem;font-size:.88em;font-weight:600}.sl-markdown-content a code:not(:where(.not-content *,pre *,.expressive-code *)){border-color:color-mix(in srgb, var(--tf-doc-cyan) 42%, transparent);color:var(--tf-doc-cyan);text-decoration-color:color-mix(in srgb, var(--tf-doc-cyan) 60%, transparent)}.sl-markdown-content table:not(:where(.not-content *,.starlight-aside *)){border-spacing:0;width:100%;margin:0;display:table;overflow:visible}.sl-markdown-content table:not(:where(.not-content *,.starlight-aside *)) thead{background:linear-gradient(90deg, color-mix(in srgb, var(--sl-color-accent) 18%, transparent), transparent 64%), color-mix(in srgb, var(--tf-doc-code-bg-soft) 88%, transparent)}.sl-markdown-content :is(th,td):not(:where(.not-content *,.starlight-aside *)){border:0;border-inline-start:1px solid color-mix(in srgb, var(--tf-doc-line) 78%, transparent);border-bottom:1px solid color-mix(in srgb, var(--tf-doc-line) 88%, transparent);vertical-align:top;min-width:11.5rem;padding:1rem 1.15rem;line-height:1.58}.sl-markdown-content :is(th,td):first-child:not(:where(.not-content *,.starlight-aside *)){min-width:13.5rem;color:var(--tf-doc-code-text);border-inline-start:0;font-weight:700}.sl-markdown-content :is(th,td):last-child:not(:where(.not-content *,.starlight-aside *)){padding-inline-end:1.15rem}.sl-markdown-content th:not(:where(.not-content *,.starlight-aside *)){color:var(--tf-doc-code-text);font-size:.95rem;font-weight:850;line-height:1.35}.sl-markdown-content td:not(:where(.not-content *,.starlight-aside *)){color:color-mix(in srgb, var(--sl-color-text) 82%, var(--tf-doc-code-muted));font-size:.96rem}.sl-markdown-content tbody tr:last-child td:not(:where(.not-content *,.starlight-aside *)){border-bottom:0}.sl-markdown-content tbody tr:hover td:not(:where(.not-content *,.starlight-aside *)){background-color:#ffffff06}.sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)){--tf-table-wide-width:100%}.sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)) :is(th,td){min-width:14rem;padding-block:1.12rem}.sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)) :is(th,td):first-child{min-width:15rem}.sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)) :is(th,td):nth-child(2){border-inline-color:color-mix(in srgb, var(--sl-color-accent) 28%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--sl-color-accent) 9%, transparent), transparent 12rem), color-mix(in srgb, var(--sl-color-accent) 6%, transparent)}.sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)) th:nth-child(2){color:var(--sl-color-accent-high)}.sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)) tbody tr:hover td:nth-child(2){background:linear-gradient(180deg, color-mix(in srgb, var(--sl-color-accent) 14%, transparent), transparent 12rem), color-mix(in srgb, var(--sl-color-accent) 9%, transparent)}@media (width>=72rem){html[data-has-sidebar][data-has-toc] .sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)){width:min(76rem, max(100%, calc(100vw - var(--sl-sidebar-width) - var(--sl-sidebar-width) - 5rem)));margin-inline:0}html[data-has-sidebar]:not([data-has-toc]) .sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)){width:min(76rem, max(100%, calc(100vw - var(--sl-sidebar-width) - 5rem)));margin-inline:0}html:not([data-has-sidebar]) .sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)){width:min(76rem,100vw - 4rem);margin-inline:50%;transform:translate(-50%)}}@media (width<=48rem){.sl-markdown-content table:not(:where(.not-content *,.starlight-aside *)){border-radius:8px;margin-block:1.45rem 2rem}.sl-markdown-content :is(th,td):not(:where(.not-content *,.starlight-aside *)),.sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)) :is(th,td){min-width:12.5rem;padding:.9rem 1rem}.sl-markdown-content :is(th,td):first-child:not(:where(.not-content *,.starlight-aside *)),.sl-markdown-content table:has(th:nth-child(4)):not(:where(.not-content *,.starlight-aside *)) :is(th,td):first-child{min-width:12.5rem}}.expressive-code{--ec-brdRad:8px;--ec-brdWd:0px;--ec-codeFontSize:.9rem;--ec-codeLineHt:1.68;--ec-codePadBlk:1rem;--ec-codePadInl:1.15rem;--ec-codeBg:var(--tf-doc-code-bg);--ec-codeFg:var(--tf-doc-code-text);--ec-codeSelBg:#3b82f652;--ec-gtrFg:var(--tf-doc-code-muted);--ec-gtrBrdCol:color-mix(in srgb, var(--sl-color-accent) 22%, transparent);--ec-gtrHlFg:var(--sl-color-accent-high);--ec-focusBrd:var(--sl-color-accent);--ec-sbThumbCol:color-mix(in srgb, var(--sl-color-accent) 28%, transparent);--ec-sbThumbHoverCol:color-mix(in srgb, var(--sl-color-accent) 48%, transparent);--ec-tm-markBg:#3b82f62e;--ec-tm-markBrdCol:var(--sl-color-accent);--ec-tm-insBg:#60a5fa29;--ec-tm-insBrdCol:#60a5fab3;--ec-tm-insDiffIndCol:var(--tf-doc-mint);--ec-tm-delBg:#fb718529;--ec-tm-delBrdCol:#fb7185b8;--ec-tm-delDiffIndCol:var(--tf-doc-red);--ec-frm-edBg:transparent;--ec-frm-trmBg:transparent;--ec-frm-edActTabBg:transparent;--ec-frm-edActTabFg:var(--sl-color-accent-high);--ec-frm-edTabBarBg:transparent;--ec-frm-trmTtbBg:transparent;--ec-frm-trmTtbFg:var(--tf-doc-code-muted);--ec-frm-trmTtbDotsFg:var(--sl-color-accent-high);--ec-frm-trmTtbDotsOpa:1;--ec-frm-tooltipSuccessBg:var(--sl-color-accent);--ec-frm-tooltipSuccessFg:var(--sl-color-accent-ink);margin-block:1.35rem}.expressive-code .frame{background:linear-gradient(var(--tf-doc-code-bg), var(--tf-doc-code-bg)) padding-box, linear-gradient(135deg, color-mix(in srgb, var(--sl-color-accent) 74%, transparent), color-mix(in srgb, var(--tf-doc-cyan) 38%, transparent) 48%, color-mix(in srgb, var(--tf-doc-pink) 46%, transparent)) border-box;box-shadow:0 22px 70px color-mix(in srgb, var(--tf-doc-glow) 78%, transparent), inset 0 1px 0 #ffffff0a;border:1px solid #0000;border-radius:8px;position:relative;overflow:hidden}.expressive-code .frame:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--sl-color-accent) 18%, transparent), transparent 18rem), linear-gradient(90deg, #ffffff06 1px, transparent 1px), linear-gradient(180deg, #ffffff05 1px, transparent 1px);opacity:.72;background-size:auto,28px 28px,28px 28px;position:absolute;inset:0}.expressive-code .frame>*{z-index:1;position:relative}.expressive-code .frame pre{background:linear-gradient(180deg, #ffffff06, transparent 45%), linear-gradient(90deg, #3b82f60e, transparent 24rem), var(--tf-doc-code-bg);border:0;border-radius:0}.expressive-code .frame .header{min-height:2.55rem;border:0!important;border-bottom:1px solid var(--tf-doc-line)!important;background:linear-gradient(90deg, #3b82f61f, transparent 34%), color-mix(in srgb, var(--tf-doc-code-bg-soft) 84%, transparent)!important}.expressive-code .frame.is-terminal .header{color:var(--tf-doc-code-muted);justify-content:flex-start;padding-inline:3.55rem 1rem}.expressive-code .frame.is-terminal .header:before{background-color:var(--sl-color-accent-high);left:1rem}.expressive-code .frame.is-terminal .header:after{border-bottom-color:#0000}.expressive-code .frame.has-title:not(.is-terminal) .header{padding-inline-start:.65rem}.expressive-code .frame.has-title:not(.is-terminal) .title{color:var(--sl-color-accent-high);background:0 0;border:0;border-radius:0;margin:0;padding:.72rem .9rem .68rem;font-weight:800}.expressive-code .frame.has-title:not(.is-terminal) .title:after{background:linear-gradient(90deg, var(--sl-color-accent), transparent);border:0;height:2px;inset:auto 0 0}.expressive-code .ec-line{transition:background-color .13s}.expressive-code .ec-line:hover{background:color-mix(in srgb, var(--sl-color-accent) 8%, transparent)}.expressive-code .ec-line .code{border-inline-start:0;padding-inline-start:calc(var(--ecIndent,0ch) + var(--ec-codePadInl))}.expressive-code .frame .copy{z-index:3;margin:0;position:absolute!important;inset:.75rem .75rem auto auto!important}.expressive-code .copy button{background:color-mix(in srgb, var(--tf-doc-code-bg-soft) 82%, transparent);-webkit-backdrop-filter:blur(12px);border-radius:6px;width:2.2rem;height:2.2rem;margin:0;box-shadow:0 10px 24px #00000042}.expressive-code .copy button:before{border-color:color-mix(in srgb, var(--sl-color-accent) 48%, transparent);opacity:1}.expressive-code .copy button:after{background-color:var(--sl-color-accent-high)}.expressive-code .copy button:hover div,.expressive-code .copy button:focus-visible div{opacity:.22}.expressive-code .ec-line span[style*=\#82AAFF],.expressive-code .ec-line span[style*=\#3B61B0]{--0:#a78bfa!important;--1:#6d28d9!important}.expressive-code .ec-line span[style*=\#C792EA],.expressive-code .ec-line span[style*=\#8844AE]{--0:#c084fc!important;--1:#7c3aed!important}.expressive-code .ec-line span[style*=\#7FDBCA],.expressive-code .ec-line span[style*=\#096E72]{--0:#67e8f9!important;--1:#0891b2!important}.expressive-code .ec-line span[style*=\#ECC48D],.expressive-code .ec-line span[style*=\#984E4D]{--0:#fde68a!important;--1:#a16207!important}.expressive-code .ec-line span[style*=\#C5E478]{--0:#93c5fd!important;--1:#2563eb!important}.expressive-code .ec-line span[style*=\#FF6A83],.expressive-code .ec-line span[style*=\#A24848]{--0:#fb7185!important;--1:#be123c!important}.expressive-code .ec-line span[style*=\#F78C6C],.expressive-code .ec-line span[style*=\#AA0982]{--0:#60a5fa!important;--1:#2563eb!important}.expressive-code .ec-line span[style*=\#919F9F],.expressive-code .ec-line span[style*=\#5F636F],.expressive-code .ec-line span[style*=\#5D6376]{--0:#8b95a7!important;--1:#64748b!important}.sl-markdown-content .starlight-aside{--tf-aside-accent:var(--sl-color-accent);--tf-aside-accent-2:var(--tf-doc-cyan);--tf-aside-title:var(--sl-color-accent-high);color:var(--sl-color-text);background:linear-gradient(var(--tf-doc-aside-bg), var(--tf-doc-aside-bg)) padding-box, linear-gradient(135deg, color-mix(in srgb, var(--tf-aside-accent) 78%, transparent), color-mix(in srgb, var(--tf-aside-accent-2) 52%, transparent), color-mix(in srgb, var(--tf-aside-accent) 18%, transparent)) border-box;box-shadow:0 18px 46px color-mix(in srgb, var(--tf-aside-accent) 12%, transparent), inset 0 1px 0 #ffffff0a;border:1px solid #0000;border-inline-start:0;border-radius:8px;margin-block:1.45rem;padding:1rem 1.1rem 1.05rem;position:relative;overflow:hidden}.sl-markdown-content .starlight-aside:before{content:"";pointer-events:none;background:radial-gradient(circle at 0 0, color-mix(in srgb, var(--tf-aside-accent) 22%, transparent), transparent 14rem), linear-gradient(90deg, color-mix(in srgb, var(--tf-aside-accent) 10%, transparent), transparent 36%);opacity:.9;position:absolute;inset:0}.sl-markdown-content .starlight-aside:after{content:"";background:linear-gradient(180deg, var(--tf-aside-accent), var(--tf-aside-accent-2));width:3px;box-shadow:0 0 26px var(--tf-aside-accent);position:absolute;inset:0 auto 0 0}.sl-markdown-content .starlight-aside>*{z-index:1;position:relative}.sl-markdown-content .starlight-aside--note{--tf-aside-accent:var(--tf-brand-500);--tf-aside-accent-2:var(--tf-sky-400);--tf-aside-title:var(--tf-brand-400)}.sl-markdown-content .starlight-aside--tip{--tf-aside-accent:var(--tf-sky-400);--tf-aside-accent-2:#0ea5e9;--tf-aside-title:#e0f2fe}.sl-markdown-content .starlight-aside--caution{--tf-aside-accent:#f97316;--tf-aside-accent-2:#f0abfc;--tf-aside-title:#fdba74}.sl-markdown-content .starlight-aside--danger{--tf-aside-accent:#fb7185;--tf-aside-accent-2:#67e8f9;--tf-aside-title:#fecdd3}[data-theme=light] .sl-markdown-content .starlight-aside--note{--tf-aside-title:var(--tf-brand-600)}[data-theme=light] .sl-markdown-content .starlight-aside--tip{--tf-aside-title:var(--tf-sky-600)}[data-theme=light] .sl-markdown-content .starlight-aside--caution{--tf-aside-title:#92400e}[data-theme=light] .sl-markdown-content .starlight-aside--danger{--tf-aside-title:#be123c}.sl-markdown-content .starlight-aside__title{color:var(--tf-aside-title);font-size:.96rem;font-weight:850;line-height:1.25}.sl-markdown-content .starlight-aside__icon{filter:drop-shadow(0 0 10px color-mix(in srgb, var(--tf-aside-accent) 54%, transparent))}.sl-markdown-content .starlight-aside__content{color:var(--sl-color-text)}.sl-markdown-content .starlight-aside__content a{color:var(--tf-aside-title);text-decoration-color:color-mix(in srgb, var(--tf-aside-accent) 56%, transparent)}.sl-markdown-content .starlight-aside code:not(:where(.not-content *)){border-color:color-mix(in srgb, var(--tf-aside-accent) 35%, transparent);color:var(--tf-aside-title);background:color-mix(in srgb, var(--tf-aside-accent) 13%, transparent)}.sl-markdown-content pre.mermaid,.sl-markdown-content pre.mermaid[data-processed],html[data-theme=dark] .sl-markdown-content pre.mermaid[data-processed],html[data-theme=light] .sl-markdown-content pre.mermaid[data-processed]{box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important}.mermaid{cursor:zoom-in;background:radial-gradient(circle at 14% 0%, color-mix(in srgb, var(--sl-color-accent) 14%, transparent), transparent 22rem) padding-box, radial-gradient(circle at 100% 100%, color-mix(in srgb, var(--tf-doc-cyan) 11%, transparent), transparent 18rem) padding-box, linear-gradient(var(--tf-doc-panel-strong), var(--tf-doc-panel-strong)) padding-box, linear-gradient(135deg, color-mix(in srgb, var(--sl-color-accent) 70%, transparent), color-mix(in srgb, var(--tf-doc-cyan) 38%, transparent) 50%, color-mix(in srgb, var(--tf-doc-pink) 46%, transparent)) border-box;box-shadow:0 22px 60px color-mix(in srgb, var(--tf-doc-glow) 70%, transparent), inset 0 1px 0 #ffffff09;border:1px solid #0000;border-radius:12px;justify-content:center;margin-block:1.6rem;padding:1.6rem 1.4rem;transition:transform .22s,box-shadow .22s;display:flex;position:relative}.mermaid:before{content:"";z-index:0;pointer-events:none;border-radius:inherit;opacity:.45;background:linear-gradient(90deg,#ffffff06 1px,#0000 1px) 0 0/28px 28px,linear-gradient(#ffffff05 1px,#0000 1px) 0 0/28px 28px;position:absolute;inset:0}.mermaid>svg{z-index:1;position:relative}.mermaid:hover{box-shadow:0 26px 72px color-mix(in srgb, var(--tf-doc-glow) 90%, transparent), inset 0 1px 0 #ffffff0d}[data-theme=light] .mermaid:before{opacity:.25}pre.mermaid svg rect.background,.mermaid-zoom-dialog svg rect.background{fill:#0000!important}.mermaid svg{min-width:min(100%,720px);max-width:100%;filter:drop-shadow(0 0 14px color-mix(in srgb, var(--sl-color-accent) 22%, transparent)) drop-shadow(0 6px 18px color-mix(in srgb, var(--tf-doc-cyan) 12%, transparent));height:auto!important}[data-theme=light] .mermaid svg{filter:drop-shadow(0 0 12px color-mix(in srgb, var(--sl-color-accent) 12%, transparent)) drop-shadow(0 4px 14px #2563eb14)}.mermaid svg .node rect,.mermaid svg .node polygon,.mermaid svg .node circle,.mermaid svg .node ellipse,.mermaid svg .node path,.mermaid-zoom-dialog svg .node rect,.mermaid-zoom-dialog svg .node polygon,.mermaid-zoom-dialog svg .node circle,.mermaid-zoom-dialog svg .node ellipse,.mermaid-zoom-dialog svg .node path{rx:10px;ry:10px;stroke-width:1.4px;transition:filter .2s,stroke-width .2s}.mermaid svg .node:hover rect,.mermaid svg .node:hover polygon,.mermaid svg .node:hover circle,.mermaid svg .node:hover ellipse,.mermaid svg .node:hover path{stroke-width:2px;filter:drop-shadow(0 0 10px color-mix(in srgb, var(--sl-color-accent) 50%, transparent))}pre.mermaid svg .cluster rect,.mermaid-zoom-dialog svg .cluster rect{stroke-dasharray:4 3;stroke-width:1.2px;rx:14px;ry:14px;fill:color-mix(in srgb, var(--sl-color-accent) 5%, transparent)!important}.mermaid svg .cluster-label .nodeLabel,.mermaid svg .cluster-label foreignObject div{color:var(--sl-color-accent-high)!important}.mermaid svg .edgePath path.path,.mermaid svg .edgePaths path,.mermaid-zoom-dialog svg .edgePath path.path,.mermaid-zoom-dialog svg .edgePaths path{stroke-width:1.6px;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--sl-color-accent) 38%, transparent))}.mermaid svg .flowchart-link,.mermaid-zoom-dialog svg .flowchart-link{stroke-width:1.6px}.mermaid svg marker path,.mermaid-zoom-dialog svg marker path{filter:drop-shadow(0 0 3px color-mix(in srgb, var(--sl-color-accent) 50%, transparent))}.mermaid svg .edgeLabel foreignObject,.mermaid-zoom-dialog svg .edgeLabel foreignObject{overflow:visible!important}.mermaid svg .edgeLabel rect,.mermaid-zoom-dialog svg .edgeLabel rect{fill:#0000!important}.mermaid svg .edgeLabel,.mermaid-zoom-dialog svg .edgeLabel{color:var(--sl-color-accent-high)!important;font-size:.78rem!important}.mermaid svg .edgeLabel .labelBkg,.mermaid svg .edgeLabel foreignObject .labelBkg,.mermaid-zoom-dialog svg .edgeLabel .labelBkg,.mermaid-zoom-dialog svg .edgeLabel foreignObject .labelBkg{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sl-color-accent) 28%, transparent), 0 4px 12px color-mix(in srgb, var(--tf-doc-glow) 40%, transparent);border-radius:999px}.mermaid svg .nodeLabel,.mermaid svg .node foreignObject div,.mermaid svg .node foreignObject span,.mermaid-zoom-dialog svg .nodeLabel,.mermaid-zoom-dialog svg .node foreignObject div,.mermaid-zoom-dialog svg .node foreignObject span{color:var(--tf-doc-code-text)!important}.mermaid svg .actor,.mermaid-zoom-dialog svg .actor{stroke-width:1.4px}.mermaid svg .actor:not(text),.mermaid-zoom-dialog svg .actor:not(text){rx:10px;ry:10px;filter:drop-shadow(0 0 8px color-mix(in srgb, var(--sl-color-accent) 28%, transparent))}.mermaid svg text.actor,.mermaid svg .actor tspan,.mermaid-zoom-dialog svg text.actor,.mermaid-zoom-dialog svg .actor tspan{fill:var(--tf-doc-code-text)!important}.mermaid svg line.actor-line,.mermaid-zoom-dialog svg line.actor-line{stroke-dasharray:3 4;stroke:color-mix(in srgb, var(--sl-color-accent) 45%, transparent)!important}.mermaid svg .messageLine0,.mermaid svg .messageLine1,.mermaid-zoom-dialog svg .messageLine0,.mermaid-zoom-dialog svg .messageLine1{stroke-width:1.6px;filter:drop-shadow(0 0 3px color-mix(in srgb, var(--sl-color-accent) 40%, transparent))}.mermaid svg .messageText,.mermaid-zoom-dialog svg .messageText{fill:var(--sl-color-accent-high)!important}.mermaid svg .note,.mermaid-zoom-dialog svg .note{rx:8px;ry:8px;filter:drop-shadow(0 4px 12px color-mix(in srgb, var(--sl-color-accent) 22%, transparent))}.mermaid svg .noteText,.mermaid svg .note text,.mermaid svg .note tspan,.mermaid-zoom-dialog svg .noteText,.mermaid-zoom-dialog svg .note text,.mermaid-zoom-dialog svg .note tspan{fill:var(--sl-color-accent-high)!important}[data-theme=light] .mermaid svg .nodeLabel,[data-theme=light] .mermaid svg .node foreignObject div,[data-theme=light] .mermaid svg text.actor,[data-theme=light] .mermaid svg .actor tspan,[data-theme=light] .mermaid-zoom-dialog svg .nodeLabel,[data-theme=light] .mermaid-zoom-dialog svg .node foreignObject div,[data-theme=light] .mermaid-zoom-dialog svg text.actor,[data-theme=light] .mermaid-zoom-dialog svg .actor tspan{color:#1f1b2e!important;fill:#1f1b2e!important}[data-theme=light] .mermaid svg .edgeLabel,[data-theme=light] .mermaid-zoom-dialog svg .edgeLabel{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sl-color-accent) 32%, transparent), 0 4px 10px #2563eb14;color:var(--tf-brand-600)!important;background:#fffffff0!important}[data-theme=light] .mermaid svg .messageText,[data-theme=light] .mermaid-zoom-dialog svg .messageText{fill:var(--tf-brand-600)!important}[data-theme=light] .mermaid svg .cluster-label .nodeLabel,[data-theme=light] .mermaid svg .cluster-label foreignObject div{color:var(--tf-brand-700)!important}@media (prefers-reduced-motion:reduce){.mermaid,.mermaid svg .node rect,.mermaid svg .node polygon,.mermaid svg .node circle,.mermaid svg .node ellipse,.mermaid svg .node path{transition:none}}.mermaid-zoom-dialog{border:1px solid var(--sl-color-gray-5,#ccc);background:var(--sl-color-bg,#fff);cursor:zoom-out;border-radius:8px;justify-content:center;align-items:center;width:95vw;max-width:95vw;height:90vh;max-height:90vh;margin:auto;padding:2rem;display:flex;position:fixed;inset:0}.mermaid-zoom-dialog::backdrop{backdrop-filter:blur(2px);background:#0009}.mermaid-zoom-dialog svg{width:auto;max-width:100%;height:auto;max-height:100%;display:block}.mermaid-zoom-close{cursor:pointer;color:var(--sl-color-text,#000);background:0 0;border:none;padding:.25rem .5rem;font-size:1.5rem;line-height:1;position:absolute;top:.5rem;right:.75rem}.mermaid-zoom-close:hover{opacity:.7}.tf-landing,.tf-landing-footer{width:100%;max-width:100%;font-family:var(--font-sans);color:var(--color-foreground);margin-inline:0;overflow-x:clip}html[data-has-hero],html[data-has-hero] body{max-width:100%;overflow-x:hidden}html[data-has-hero] .main-frame,html[data-has-hero] .main-pane,html[data-has-hero] .main-pane>main,html[data-has-hero] .sl-container,html[data-has-hero] .content-panel{max-width:none!important;margin:0!important;padding:0!important}html[data-has-hero] .sl-markdown-content{margin:0}.tf-landing h1,.tf-landing h2,.tf-landing h3{font-family:var(--font-mono);color:var(--color-foreground)}.tf-landing a{text-decoration:none}
