@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&display=swap";:root{--font:"IBM Plex Mono", monospace;--font-mono:"IBM Plex Mono", monospace;--sl-line-height:1.6875;--sl-line-height-headings:1.2;--sl-color-white:#fff;--sl-color-gray-1:#edeef3;--sl-color-gray-2:#c1c3c8;--sl-color-gray-3:#888c96;--sl-color-gray-4:#555962;--sl-color-gray-5:#353841;--sl-color-gray-6:#23262f;--sl-color-black:#17181c;--sl-color-bg:#121212;--sl-color-bg-nav:#121212;--sl-color-bg-sidebar:#121212;--sl-color-text:#b8b2b2;--color-background:#121212;--color-background-weak:#1b1818;--color-background-strong:#f2eded;--color-background-interactive:#fdffcc;--color-background-interactive-weaker:#181810;--color-text:#b8b2b2;--color-text-weak:#7f7a7a;--color-text-weaker:#4a4545;--color-text-strong:#f2eded;--color-text-inverted:#131010;--color-border:#4a4545;--color-border-weak:#3d3838;--color-icon:#716b6a;--sl-color-hairline-shade:#3d3838;--sl-color-accent:#3369ff;--sl-color-accent-high:#b3c7ff;--sl-color-accent-low:#17264f;--ec-codeBg:#24292e;--ec-codeFg:#e1e4e8;--ec-brdCol:#1b1f23;--sl-sidebar-width:18.75rem;--content-width:45rem;--toc-width:14rem}*,:before,:after{box-sizing:border-box}*{margin:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font);font-size:14px;line-height:var(--sl-line-height);color:var(--color-text);-webkit-font-smoothing:antialiased;text-underline-offset:.1875rem;background-color:#121212;margin:0}a{color:var(--color-text-strong);text-decoration:none}a:hover{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}strong{font-weight:500}.docs-layout{min-height:100vh;display:flex}.docs-sidebar{width:var(--sl-sidebar-width);z-index:10;scrollbar-width:thin;scrollbar-color:var(--color-text-weaker) transparent;background-color:#121212;flex-shrink:0;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.docs-main{margin-left:var(--sl-sidebar-width);grid-template-columns:minmax(0, 1fr) var(--toc-width);flex:1;min-width:0;display:grid}.docs-content{width:100%;max-width:var(--content-width);min-height:100vh;margin:0 auto;padding:2rem 1.5rem}.docs-toc{width:var(--toc-width);scrollbar-width:none;height:100vh;padding:2rem 1rem;position:sticky;top:0;overflow-y:auto}.docs-toc::-webkit-scrollbar{display:none}.docs-sidebar{border-right:1px solid #262626}.docs-sidebar::-webkit-scrollbar{width:4px}.docs-sidebar::-webkit-scrollbar-thumb{background-color:var(--color-text-weaker);border-radius:4px}.docs-sidebar::-webkit-scrollbar-track{background:0 0}.sidebar-search{border-bottom:1px solid #262626;padding:.75rem 1rem}.sidebar-search input{width:100%;color:var(--color-text);font-family:var(--font);background:#1f1f1f;border:1px solid #333;border-radius:6px;outline:none;padding:.4rem .75rem;font-size:.8125rem}.sidebar-search input::placeholder{color:var(--color-text-weak)}.sidebar-search input:focus{border-color:var(--color-text-weak)}.sidebar-content{padding:.5rem 0}.sidebar-content a{color:var(--color-text-weak);border-left:3px solid #0000;padding:4px 24px;font-size:13px;font-weight:400;text-decoration:none;transition:color .15s;display:block}.sidebar-content a:hover{color:var(--color-text-strong)}.sidebar-content a.active,.sidebar-content a.router-link-exact-active{color:var(--color-text-strong);background-color:var(--color-background-interactive-weaker);border-left-color:var(--color-background-interactive);font-weight:700}.sidebar-content .nav-group summary{color:var(--color-text-strong);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:6px 24px;font-size:13px;font-weight:600;list-style:none;display:flex}.sidebar-content .nav-group summary::-webkit-details-marker{display:none}.sidebar-content .nav-group summary::marker{content:"";display:none}.sidebar-content .nav-group summary:after{content:"";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;flex-shrink:0;width:.75rem;height:.75rem;transition:transform .2s}.sidebar-content details[open]>summary:after{transform:rotate(180deg)}.sidebar-content .nav-group-items a{padding-left:36px;font-size:13px}.sidebar-content .nav-group{margin-top:.75rem}.sidebar-content .nav-group:first-child{margin-top:0}.sidebar-content>.nav-top-link{padding:4px 24px;font-size:13px}.search-wrapper{padding:12px 24px}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:var(--color-icon);pointer-events:none;font-size:14px;position:absolute;left:10px}.search-input{background:var(--color-background-weak);border:1px solid var(--color-border-weak);width:100%;color:var(--color-text);font-size:14px;font-family:var(--font);border-radius:4px;outline:none;padding:6px 12px 6px 32px;transition:border-color .15s}.search-input::placeholder{color:var(--color-icon)}.search-input:focus{border-color:var(--color-text-weak)}.search-kbd{color:var(--color-icon);pointer-events:none;font-size:15px;font-family:var(--font-mono);gap:4px;display:flex;position:absolute;right:8px}.search-dropdown{z-index:100;background:#121212;border:1px solid #262626;border-radius:8px;max-height:320px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 9px 5px #16181d54,0 4px 4px #000000bf,0 4px 2px #00000040}.search-result{border-bottom:1px solid var(--sl-color-gray-5);padding:10px 14px;text-decoration:none;transition:background .1s;display:block}.search-result:last-child{border-bottom:none}.search-result:hover{background:var(--color-background-weak);text-decoration:none}.search-result-title{color:var(--color-text-strong);margin-bottom:2px;font-size:14px;font-weight:500}.search-result-excerpt{color:var(--color-text-weak);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.breadcrumb{color:var(--color-text-weak);align-items:center;gap:6px;margin-bottom:16px;font-size:13px;display:flex}.breadcrumb a{color:var(--color-text-weak)}.breadcrumb a:hover{color:var(--color-text-strong);text-decoration:none}.breadcrumb-sep{color:var(--color-text-weaker)}.article-header{margin-bottom:32px}.article-title{color:var(--color-text-strong);font-size:26px;font-weight:500;line-height:var(--sl-line-height-headings);text-transform:none;align-items:center;gap:.5rem;margin-bottom:12px;display:inline-flex}.article-subtitle{color:var(--color-text-weak);margin-top:.25rem;margin-bottom:1.5rem;font-size:1.1rem}.copy-link-btn{cursor:pointer;color:var(--color-text-weak);opacity:0;background:0 0;border:none;align-items:center;padding:4px;transition:opacity .15s,color .15s;display:inline-flex;position:relative}.article-title:hover .copy-link-btn{opacity:1}.copy-link-btn:hover{color:var(--color-text-strong)}.copied-tooltip{color:#e5e7eb;white-space:nowrap;pointer-events:none;background:#333;border-radius:4px;padding:4px 8px;font-size:12px;position:absolute;top:-30px;left:50%;transform:translate(-50%)}.article-meta{color:var(--color-text-weak);align-items:center;gap:12px;font-size:13px;display:flex}.article-tag{background:var(--sl-color-gray-5);color:var(--sl-color-white);border-radius:4px;padding:2px 8px;font-size:13px;font-weight:500;display:inline-block}.markdown-body{color:var(--color-text);line-height:var(--sl-line-height);word-wrap:break-word}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--color-text-strong);font-weight:500;line-height:var(--sl-line-height-headings);text-transform:none;margin-top:1.5em;margin-bottom:.75em;scroll-margin-top:1.5rem}.markdown-body h1{margin-top:0;font-size:26px}.markdown-body h2{border-bottom:1px solid var(--color-border-weak);padding-bottom:.3em;font-size:22px}.markdown-body h3{font-size:18px}.markdown-body h4{font-size:16px}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{position:relative}.markdown-body .heading-anchor{opacity:0;color:var(--color-text-weak);vertical-align:middle;margin-left:.5rem;font-size:.75em;text-decoration:none;transition:opacity .15s}.markdown-body h1:hover .heading-anchor,.markdown-body h2:hover .heading-anchor,.markdown-body h3:hover .heading-anchor,.markdown-body h4:hover .heading-anchor{opacity:1}.markdown-body .heading-anchor:hover{color:var(--color-text-strong)}.markdown-body .copy-tooltip{color:#e5e7eb;pointer-events:none;z-index:100;white-space:nowrap;background:#333;border-radius:4px;margin-bottom:4px;padding:4px 8px;font-size:12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.markdown-body :not(a,strong,em,del,span,input,code,br)+:not(a,strong,em,del,span,input,code,br){margin-top:1rem}.markdown-body p{margin-bottom:1rem}.markdown-body a{color:var(--sl-color-accent-high);text-underline-offset:2px;text-decoration:underline}.markdown-body a:hover{color:var(--sl-color-white)}.markdown-body strong{color:var(--color-text-strong);font-weight:500}.markdown-body ul,.markdown-body ol{margin-bottom:1em;padding-left:1.5em}.markdown-body li,.markdown-body li>p{margin-bottom:.25em}.markdown-body code{font-family:var(--font-mono);background:var(--sl-color-gray-5);color:var(--color-text-strong);border-radius:4px;margin-block:-.125rem;padding:.125rem .375rem;font-size:.8125rem}.markdown-body pre{background:var(--ec-codeBg);border:1px solid var(--ec-brdCol);line-height:var(--sl-line-height);tab-size:2;border-radius:6px;margin:.75rem 0 1.5rem;padding:.75rem 1rem;font-size:.875rem;overflow-x:auto}.markdown-body pre code{all:unset;font-family:var(--font-mono);color:var(--ec-codeFg);background:0 0;border-radius:0;padding:0;font-size:.875rem}.markdown-body blockquote{border-left:1px solid var(--sl-color-gray-5);color:var(--color-text-weak);margin:1em 0;padding:0 1em}.markdown-body blockquote p{margin-bottom:0}.markdown-body table{border-spacing:0;width:100%;margin:1em 0;font-size:14px;display:block;overflow:auto}.markdown-body th{text-align:left;border-bottom:1px solid var(--sl-color-gray-5);color:var(--sl-color-white);vertical-align:baseline;padding:.5rem 1rem;font-size:13px;font-weight:600}.markdown-body th:first-child{padding-inline-start:0}.markdown-body th:last-child{padding-inline-end:0}.markdown-body td{border-bottom:1px solid var(--sl-color-gray-5);color:var(--color-text);vertical-align:baseline;padding:.5rem 1rem}.markdown-body td:first-child{padding-inline-start:0}.markdown-body td:last-child{padding-inline-end:0}.markdown-body tr:last-child td{border-bottom:none}.markdown-body hr{border:none;border-bottom:1px solid var(--sl-color-hairline-shade);margin:2em 0}.markdown-body img{border-radius:8px;max-width:100%;height:auto;display:block}.markdown-body .mermaid{text-align:center;margin:1.5rem 0;overflow-x:auto}.markdown-body .mermaid svg{max-width:100%;height:auto}.toc-title{color:var(--color-text-strong);margin-bottom:12px;font-size:13px;font-weight:600}.toc-list{padding:0;list-style:none}.toc-link{color:var(--color-text-weak);padding:3px 0;font-size:13px;font-weight:400;text-decoration:none;transition:color .15s;display:block}.toc-link:hover{color:var(--color-text-strong);text-decoration:none}.toc-link.active{color:var(--color-text-strong);font-weight:700}.toc-link.toc-h3{padding-left:16px}.toc-link.toc-h4{padding-left:32px}.article-nav{border-top:1px solid var(--color-border-weak);justify-content:space-between;gap:16px;margin-top:3rem;padding-top:1.5rem;display:flex}.article-nav-link{border:1px solid var(--color-border-weak);border-radius:8px;flex-direction:column;gap:4px;min-width:0;max-width:48%;padding:12px 16px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.article-nav-link:hover{border-color:var(--color-border);background:var(--color-background-weak);text-decoration:none}.article-nav-link.next{text-align:right;margin-left:auto}.article-nav-label{color:var(--color-text-weak);font-size:12px;font-weight:500}.article-nav-title{color:var(--color-text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.home-hero{text-align:center;padding:60px 0 48px}.home-title{color:var(--color-text-strong);margin-bottom:12px;font-size:26px;font-weight:500}.home-subtitle{color:var(--color-text-weak);max-width:480px;margin:0 auto;font-size:14px}.home-categories{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:40px;display:grid}.home-category-card{background:var(--color-background-weak);border:1px solid var(--color-border-weak);cursor:pointer;border-radius:8px;padding:20px;text-decoration:none;transition:border-color .15s,background .15s}.home-category-card:hover{border-color:var(--color-border);background:var(--color-background-weak);text-decoration:none}.home-category-name{color:var(--color-text-strong);margin-bottom:4px;font-size:14px;font-weight:500}.home-category-count{color:var(--color-text-weak);font-size:13px}.home-articles{margin-top:48px}.home-section-title{text-transform:none;color:var(--color-text-strong);margin-bottom:16px;font-size:14px;font-weight:500}.home-article-item{border-bottom:1px solid var(--color-border-weak);align-items:baseline;gap:12px;padding:10px 0;display:flex}.home-article-item:last-child{border-bottom:none}.home-article-link{color:var(--color-text-strong);font-size:14px;font-weight:500;text-decoration:none}.home-article-link:hover{color:var(--sl-color-accent-high);text-decoration:none}.home-article-category{color:var(--color-text-weak);white-space:nowrap;font-size:12px}.loading,.empty{text-align:center;color:var(--color-text-weak);padding:60px 0}.mobile-menu-btn{z-index:20;background:var(--sl-color-white);width:2rem;height:2rem;color:var(--sl-color-black);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:none;position:fixed;top:12px;left:12px;box-shadow:0 1px 1px #0000001f,0 2px 1px #0000003d}.sidebar-overlay{z-index:9;background:#16181da8;display:none;position:fixed;inset:0}@media (width<=72rem){.docs-toc{display:none}.docs-main{grid-template-columns:minmax(0,1fr)}}@media (width<=50rem){.mobile-menu-btn{display:flex}.docs-sidebar{z-index:20;width:100%;transition:transform .25s;transform:translate(-100%)}.docs-sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}.docs-main{grid-template-columns:minmax(0,1fr);margin-left:0}.docs-content{padding:1rem 1.5rem}}
