@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2")}:root{color:#222622;font-synthesis:none;font-optical-sizing:auto;--bg:#fafbf9;--surface:#fff;--soft:#f2f4f0;--text:#222622;--muted:#6d746c;--line:#e5e8e1;--accent:#15794e;--accent-bg:#eaf3e9;--code:#171d22;color-scheme:light;background:#fafbf9;font-family:Geist,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--bg:#121714;--surface:#171e19;--soft:#202a22;--text:#e8ede7;--muted:#9aa99c;--line:#2d382f;--accent:#83d9a7;--accent-bg:#203b2a;--code:#0b100e;color-scheme:dark;background:var(--bg);color:var(--text)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font-size:14px;line-height:1.7}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}svg{flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{color:inherit}::selection{color:#173827;background:#ccead8}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--surface);z-index:100;border:1px solid var(--accent);border-radius:6px;padding:8px 16px;position:fixed;top:-60px;left:16px}.skip-link:focus{top:12px}.site-header{z-index:30;border-bottom:1px solid var(--line);background:var(--bg);align-items:center;gap:34px;height:78px;padding:0 34px;display:flex;position:sticky;top:0}.brand-wrap{flex-shrink:0;align-items:center;gap:15px;display:flex}.brand{letter-spacing:-1.15px;align-items:center;gap:5px;font-size:25px;font-weight:650;line-height:1;display:flex}.brand img{object-fit:contain}:root[data-theme=dark] .brand img{filter:invert()}.brand-divider{background:var(--line);width:1px;height:23px;transform:rotate(18deg)}.docs-label{color:var(--muted);font-size:15px}.header-links{align-self:stretch;align-items:stretch;gap:28px;margin-left:14px;display:flex}.header-links a{color:var(--muted);align-items:center;font-size:13px;display:flex;position:relative}.header-links a[aria-current]{color:var(--text);font-weight:550}.header-links a[aria-current]:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:0;left:0;right:0}.header-actions{align-items:center;gap:15px;margin-left:auto;display:flex}.icon-button{width:30px;height:34px;color:var(--muted);background:0 0;border:0;place-items:center;display:grid}.icon-button:hover{color:var(--text)}.mobile-toggle{display:none}.search-trigger{background:var(--soft);border:1px solid var(--line);color:var(--muted);border-radius:7px;align-items:center;gap:10px;min-width:275px;height:35px;padding:7px 10px;font-size:12px;display:flex}.search-trigger kbd{border:1px solid var(--line);background:var(--bg);border-radius:3px;margin-left:auto;padding:0 4px;font-family:inherit;font-size:10px}.docs-shell{grid-template-columns:245px minmax(0,820px) 205px;justify-content:space-between;max-width:1440px;min-height:calc(100vh - 78px);margin:auto;display:grid}.sidebar{border-right:1px solid var(--line);flex-direction:column;height:calc(100dvh - 78px);padding:30px 20px 17px 25px;display:flex;position:sticky;top:78px;overflow-y:auto}.sidebar-home{align-items:center;gap:10px;padding:0 10px 23px;font-size:13px;font-weight:550;display:flex}.small-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.sidebar-home .small-dot{width:5px;height:5px;margin-left:auto}.nav-group{letter-spacing:1.05px;color:var(--muted);margin:21px 10px 10px;font-size:10px;font-weight:650}.nav-item{color:var(--muted);border-radius:6px;align-items:center;gap:10px;margin:3px 0;padding:9px 10px;font-size:13px;line-height:1.5;display:flex}.nav-item:hover{background:var(--soft);color:var(--text)}.nav-item.active{color:var(--accent);background:var(--accent-bg);font-weight:550}.active-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;margin-left:auto}.sub-nav{border-left:1px solid var(--line);color:var(--muted);flex-direction:column;gap:13px;margin:9px 0 0 18px;padding-left:20px;font-size:12px;display:flex}.sub-nav a:hover{color:var(--accent)}.sidebar-bottom{margin-top:auto;padding-top:70px}.sidebar-note{border:1px solid var(--line);background:linear-gradient(145deg, var(--surface), var(--soft));border-radius:8px;padding:17px 13px}.note-icon{border:1px solid var(--line);background:var(--surface);width:27px;height:27px;color:var(--accent);border-radius:7px;place-items:center;margin-bottom:13px;display:grid}.sidebar-note strong{font-size:11px;font-weight:600}.sidebar-note p{color:var(--muted);margin:6px 0 13px;font-size:11px;line-height:1.8}.sidebar-note a{color:var(--accent);align-items:center;gap:13px;font-size:11px;font-weight:550;display:flex}.version{color:var(--muted);align-items:center;gap:7px;padding:19px 3px 0;font-size:10px;display:flex}.version code{margin-left:auto;font-size:10px}.main-content{min-width:0;padding:31px 54px 0}.breadcrumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:43px;font-size:11px;display:flex}.breadcrumbs strong{color:var(--text);font-weight:450}.article-meta{color:var(--muted);justify-content:space-between;align-items:center;font-size:10px;display:flex}.eyebrow{color:var(--accent);letter-spacing:1.35px;text-transform:uppercase;font-size:10px;font-weight:650}h1{letter-spacing:-1.8px;margin:15px 0 18px;font-size:44px;font-weight:620;line-height:1.15}p.intro{color:var(--muted);max-width:600px;margin:0;font-size:16px;line-height:1.8}.article-header{margin-bottom:30px}.article-content p,article>section>p{color:var(--muted)}article h2{letter-spacing:-.5px;margin:0 0 14px;scroll-margin-top:105px;font-size:22px;font-weight:600;line-height:1.4}article section{margin:39px 0}article h3{letter-spacing:-.15px;margin:25px 0 9px;font-size:15px;font-weight:600}article p{color:var(--muted);margin:12px 0;font-size:14px;line-height:1.85}article p strong,article li strong{color:var(--text);font-weight:550}article p a,article li a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 30%, transparent);text-underline-offset:3px}article code:not(pre code),.page-pagination code{background:var(--soft);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:2px 5px;font-family:Geist Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85em}article ul{color:var(--muted);padding-left:20px;font-size:13px}article li{padding:4px 0}article li::marker{color:var(--accent)}.step-heading{align-items:center;gap:12px;display:flex}.step-heading>span{width:26px;height:26px;color:var(--accent);background:var(--accent-bg);border:1px solid color-mix(in srgb, var(--accent) 15%, var(--line));letter-spacing:0;border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:550;display:grid}.quickstart-banner{background:radial-gradient(at 95% 20%,#dcebd770,#0000 65%),#f0f5ed;border:1px solid #dce9dc;border-radius:10px;align-items:center;gap:20px;margin:28px 0 32px;padding:21px 24px;display:flex;position:relative;overflow:hidden}.banner-icon{color:#397350;background:#fafcf9;border:1px solid #cbdcc8;border-radius:11px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 3px 5px #426a4510}.quickstart-banner strong{color:#293e2d;font-size:13px;font-weight:600;display:block}.quickstart-banner p{color:#65806a;margin:3px 0 0;font-size:12px}.banner-status{color:#4c6b50;white-space:nowrap;border:1px solid #c9dbc8;border-radius:20px;align-items:center;gap:6px;margin-left:auto;padding:3px 9px;font-size:9px;display:flex}:root[data-theme=dark] .quickstart-banner{background:#1c2c21;border-color:#334a37}:root[data-theme=dark] .quickstart-banner strong,:root[data-theme=dark] .quickstart-banner p{color:#bfd9bf}:root[data-theme=dark] .banner-icon{color:#9fcba7;background:#263d2b;border-color:#3c5941}:root[data-theme=dark] .banner-status{color:#b3c9b3;border-color:#46654a}.requirements{flex-wrap:wrap;gap:10px;margin:20px 0;display:flex}.requirements span{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:5px;align-items:center;gap:7px;padding:5px 10px;font-size:11px;display:flex}.requirements svg{color:var(--accent)}.code-block{background:var(--code);border:1px solid #29343c;border-radius:9px;margin:20px 0;overflow:hidden;box-shadow:0 3px 6px #121d1c06}.code-block figcaption{color:#b5c0c6;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;min-height:43px;padding:10px 15px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:flex}.code-block figcaption>span{align-items:center;gap:8px;display:flex}.file-dot{background:#73aecd;border-radius:2px;width:7px;height:7px;display:inline-block}.file-dot.terminal{background:#8eb59c;border-radius:50%}.copy-button{color:#aab4bc;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0 2px 8px;font-size:10px;display:flex}.copy-button:hover{color:#fff}.code-block pre{tab-size:2;margin:0;padding:19px 20px;font-size:11.5px;line-height:1.9;overflow-x:auto;background:0 0!important;font-family:Geist Mono,ui-monospace,SFMono-Regular,Consolas,monospace!important}.code-block pre code{font-family:inherit}.callout{border:1px solid var(--line);background:var(--soft);color:var(--muted);border-radius:7px;gap:12px;margin:23px 0;padding:15px 17px;font-size:12px;display:flex}.callout>svg{color:var(--accent);margin-top:3px}.callout strong{color:var(--text);font-size:12px;font-weight:600}.callout p{margin:4px 0 0;font-size:12px;line-height:1.8}.callout.success{background:var(--accent-bg);border-color:color-mix(in srgb, var(--accent) 20%, var(--line))}.file-tree{border:1px solid var(--line);background:var(--surface);white-space:pre;border-radius:8px;margin:18px 0;padding:19px 22px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;line-height:2.25;overflow-x:auto}.file-tree .folder{color:var(--accent)}.file-tree .comment{color:var(--muted)}.command-list{border:1px solid var(--line);border-radius:8px;margin:20px 0;overflow:hidden}.command-row{background:var(--surface);border-bottom:1px solid var(--line);color:var(--muted);grid-template-columns:145px 1fr;gap:12px;padding:11px 15px;font-size:12px;display:grid}.command-row:last-child{border-bottom:0}.command-row code{background:0 0!important;border:0!important;padding:0!important;font-size:11px!important}.next-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:17px;padding:21px 23px;transition:border-color .15s,transform .15s;display:flex}.next-card:hover{border-color:var(--accent);transform:translateY(-2px)}.next-card>svg:first-child{color:var(--accent)}.next-card>svg:last-child{color:var(--accent);margin-left:auto}.next-card strong{font-size:14px;font-weight:550;display:block}.next-card small{color:var(--muted);margin-top:3px;font-size:12px;display:block}.page-toc{height:fit-content;max-height:calc(100vh - 78px);padding:47px 20px 25px 13px;position:sticky;top:78px;overflow-y:auto}.page-toc>p{letter-spacing:1px;color:var(--text);margin:0 0 18px;font-size:9px;font-weight:600}.page-toc nav{border-left:1px solid var(--line);flex-direction:column;display:flex}.page-toc nav a{color:var(--muted);border-left:1px solid #0000;margin-left:-1px;padding:7px 0 7px 15px;font-size:11px;line-height:1.7}.page-toc nav a:hover,.page-toc nav a.current{color:var(--accent)}.page-toc nav a.current{border-color:var(--accent)}.toc-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:30px;padding-top:18px;font-size:10px;line-height:1.9}.toc-footer .small-dot{width:5px;height:5px;margin-right:7px}.toc-footer .indent{margin-left:12px}.page-pagination{border-top:1px solid var(--line);justify-content:space-between;gap:15px;margin-top:45px;padding-top:28px;display:flex}.page-pagination a{flex-direction:column;gap:6px;display:flex}.page-pagination a:hover strong{color:var(--accent)}.page-pagination small{color:var(--muted);letter-spacing:.7px;font-size:9px}.page-pagination strong{font-size:13px;font-weight:550}.page-pagination .next{text-align:right}.article-footer{color:var(--muted);justify-content:space-between;gap:15px;padding:44px 0 24px;font-size:10px;display:flex}.concept-flow{background:var(--soft);border:1px solid var(--line);text-align:center;border-radius:9px;grid-template-columns:1fr 26px 1fr 26px 1fr;align-items:center;gap:7px;margin:27px 0;padding:25px 20px;display:grid}.concept-flow .node{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:17px 10px}.concept-flow .node svg{color:var(--accent);margin-bottom:8px}.concept-flow strong{font-size:12px;font-weight:550;display:block}.concept-flow small{color:var(--muted);margin-top:3px;font-size:9px;display:block}.concept-flow>svg{color:var(--muted);justify-self:center;width:18px}.principles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:25px 0;display:grid}.principle{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:19px}.principle svg{color:var(--accent)}.principle h3{margin:12px 0 5px;font-size:13px}.principle p{margin:0;font-size:12px}.status-table{border-collapse:collapse;width:100%;margin:20px 0;font-size:12px}.status-table th{text-align:left;color:var(--text);background:var(--soft);padding:10px 12px;font-weight:550}.status-table td{border-bottom:1px solid var(--line);color:var(--muted);vertical-align:top;padding:12px}.status-table td:first-child{width:38%;color:var(--text)}.status-table caption{text-align:left;color:var(--muted);margin-bottom:10px;font-size:12px}.search-dialog{border:1px solid var(--line);background:var(--surface);width:min(580px,100% - 28px);color:var(--text);border-radius:12px;max-height:75vh;margin:0 auto;padding:0;top:15vh;overflow-y:auto;box-shadow:0 30px 100px #0003}.search-dialog::backdrop{backdrop-filter:blur(4px);background:#101c184d}.search-field{border-bottom:1px solid var(--line);gap:15px;padding:19px 20px;display:flex}.search-field input{width:100%;color:var(--text);background:0 0;border:0;outline:none;font-size:15px}.search-field button{border:1px solid var(--line);background:var(--soft);color:var(--muted);border-radius:4px;padding:2px 6px;font-size:10px}.search-label{letter-spacing:.5px;color:var(--muted);margin:15px 22px 6px;font-size:10px}.search-dialog ul{margin:0;padding:0 10px;list-style:none}.search-dialog li a{border-radius:6px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.search-dialog li[aria-selected=true] a{background:var(--accent-bg);color:var(--accent)}.search-dialog li small{color:var(--muted);font-size:10px;display:block}.search-dialog li strong{font-size:13px;font-weight:550;display:block}.search-dialog footer{border-top:1px solid var(--line);color:var(--muted);gap:17px;margin-top:12px;padding:12px 22px;font-size:10px;display:flex}.search-empty{color:var(--muted);padding:18px 22px;font-size:13px}@media (width>=1450px){.site-header{padding-left:max(34px,50vw - 686px);padding-right:max(34px,50vw - 686px)}.main-content{padding-left:62px;padding-right:62px}}@media (width<=1180px){.docs-shell{grid-template-columns:225px minmax(0,1fr) 180px}.main-content{padding-left:35px;padding-right:35px}.site-header{gap:20px;padding:0 23px}.header-links{gap:20px;margin-left:0}.search-trigger{min-width:220px}.search-trigger>span{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.page-toc{padding-right:10px}.sidebar{padding-left:17px;padding-right:15px}.banner-status{display:none}}@media (width<=1000px){.page-toc{display:none}.docs-shell{grid-template-columns:225px minmax(0,1fr)}.main-content{max-width:780px;padding:30px 44px 0}.header-links{display:none}.search-trigger{min-width:265px}.search-trigger>span{max-width:none}}@media (width<=720px){.site-header{gap:12px;height:65px;padding:0 17px}.brand-wrap{gap:10px}.brand{font-size:23px}.brand img{width:35px;height:35px}.docs-label{font-size:13px}.brand-divider{height:19px}.header-actions{gap:5px}.search-trigger{background:0 0;border:0;justify-content:center;width:33px;min-width:0;padding:7px}.search-trigger>span,.search-trigger kbd{display:none}.mobile-toggle{display:grid}.docs-shell{min-height:calc(100vh - 65px);display:block}.sidebar{z-index:29;background:var(--bg);width:265px;height:calc(100dvh - 65px);padding:25px 20px;display:none;position:fixed;top:65px;left:0;box-shadow:15px 15px 50px #0002}.sidebar.is-open{display:flex}.main-content{max-width:680px;margin:auto;padding:23px 23px 0}.breadcrumbs{gap:7px;margin-bottom:31px;font-size:10px}h1{letter-spacing:-1.3px;font-size:36px}.article-meta,.eyebrow{font-size:9px}.intro{font-size:15px!important}.quickstart-banner{gap:13px;padding:17px}.banner-icon{width:37px;height:37px}.quickstart-banner strong{font-size:12px}.quickstart-banner p{font-size:11px}article section{margin:33px 0}article h2{font-size:20px}.code-block pre{padding:16px;font-size:11px}.code-block figcaption{padding:9px 12px;font-size:10px}.file-tree{padding:16px;font-size:10px}.command-row{grid-template-columns:123px 1fr;font-size:11px}.article-footer{padding-top:35px;font-size:9px}.principles{gap:9px}.principle{padding:14px}.concept-flow{grid-template-columns:1fr 17px 1fr 17px 1fr;gap:3px;padding:17px 10px}.concept-flow .node{padding:13px 5px}.concept-flow strong{font-size:10px}.concept-flow small{font-size:8px}.concept-flow>svg{width:14px}.requirements{gap:7px}.requirements span{font-size:10px}.status-table{font-size:11px}.status-table td{padding:10px 8px}.copy-button span{font-size:9px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
