.docs{--nav-h:4rem;--sidebar-w:18.75rem;--toc-w:18rem;--radius:10px;--content-w:45rem;color:var(--c-gray-2);font-size:16px}html:has(.docs){scroll-padding-top:5.25rem}@media (max-width:71.99rem){html:has(.docs){scroll-padding-top:7.75rem}}html.drawer-open{overflow:hidden}.dh{z-index:50;height:var(--nav-h);background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-border);box-shadow:var(--glass-highlight), 0 10px 30px -20px #0009;justify-content:space-between;align-items:center;gap:1rem;padding:0 1.5rem;display:flex;position:fixed;inset:0 0 auto}:root[data-theme=light] .dh{box-shadow:var(--glass-highlight), 0 10px 30px -22px #0f1b2d4d}.dh-left,.dh-right{align-items:center;gap:1.25rem;min-width:0;display:flex}.dh-right{gap:.5rem}.dh-brand{color:var(--c-white);border-radius:10px;align-items:center;gap:.6rem;min-height:2.5rem;font-size:1.2rem;font-weight:650;text-decoration:none;display:inline-flex}.dh-brand img{flex:none}.dh-sections{gap:.25rem;display:flex}.dh-sections a{color:var(--c-gray-2);border-radius:.5rem;padding:.55rem .75rem;font-size:.95rem;font-weight:650;text-decoration:none;transition:background-color .15s,color .15s}.dh-sections a:hover{color:var(--c-accent-text);background:var(--c-accent-low)}.dh-sections a[aria-current=page]{color:var(--c-accent-text)}.dh-menu{display:none}.dh-wide{display:inline-flex}.search-pill{background:var(--glass-bg-soft);border:1px solid var(--glass-border-strong);min-height:2.5rem;box-shadow:var(--glass-highlight);color:var(--c-gray-2);cursor:pointer;border-radius:8px;align-items:center;gap:.55rem;padding:0 .6rem 0 .9rem;font-size:.95rem;display:inline-flex}.search-pill:hover{border-color:var(--c-gray-4);color:var(--c-white)}.search-pill svg{width:1.05rem;height:1.05rem}.search-pill kbd{background:var(--glass-bg-soft);border:1px solid var(--glass-border);color:var(--c-gray-3);font-size:.75rem;font-family:var(--ab-font);border-radius:.4rem;padding:.1rem .4rem}.d-body{padding-top:var(--nav-h)}.d-sidebar{top:var(--nav-h);width:var(--sidebar-w);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-inline-end:1px solid var(--glass-border);z-index:20;position:fixed;bottom:0;left:0}.d-sidebar-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--c-gray-5) transparent;height:100%;padding:1rem 1rem 2rem;overflow-y:auto}.d-main{grid-template-columns:minmax(0, 1fr) var(--toc-w);align-items:start;margin-inline-start:var(--sidebar-w);display:grid}.d-sheet{background:var(--glass-bg);min-width:0;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-highlight), var(--glass-shadow);border-radius:12px;margin:1.25rem;overflow:clip}.d-toc{top:var(--nav-h);height:calc(100vh - var(--nav-h));border-inline-start:1px solid var(--glass-border);position:sticky}.d-toc-inner{height:100%;padding:1rem 1rem 2rem;overflow-y:auto}.sidebar-nav ul{margin:0;padding:0;list-style:none}.sb-group+.sb-group{margin-top:.75rem}.sb-group-title{width:100%;min-height:2.5rem;color:var(--c-white);cursor:pointer;text-align:start;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .6rem .35rem .5rem;font-size:.98rem;font-weight:650;display:flex}.sb-group-title:hover{background:var(--glass-bg-soft)}.sb-chevron{width:1rem;height:1rem;color:var(--c-gray-3);transition:transform .2s}.sb-group-title[aria-expanded=false] .sb-chevron{transform:rotate(-90deg)}.sb-items{flex-direction:column;gap:.1rem;display:flex;margin-top:.15rem!important}.sb-items a{min-height:2.5rem;color:var(--c-gray-2);border:1px solid #0000;border-radius:8px;align-items:center;padding:.4em .85rem;font-size:.94rem;font-weight:600;line-height:1.35;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.sb-items a:hover{background:var(--glass-bg-soft);border-color:var(--glass-border);color:var(--c-white)}.sb-items a[aria-current=page],.sb-items a[aria-current=page]:hover{color:var(--c-accent-text);background:#3ecf8e29;border-color:#3ecf8e59;font-weight:650;box-shadow:0 6px 20px -12px #3ecf8ecc}:root[data-theme=light] .sb-items a[aria-current=page]{background:#3fb6d124;border-color:#12915c40}.toc h2{color:var(--c-gray-3);letter-spacing:.01em;margin:.5rem 0;font-size:.8rem;font-weight:650}.toc ul{margin:0;padding:0;font-size:.875rem;list-style:none}.toc a{color:var(--c-gray-3);border-inline-start:2px solid #0000;padding:.3rem 0 .3rem .6rem;font-weight:600;line-height:1.4;text-decoration:none;display:block}.toc .toc-sub a{padding-inline-start:1.4rem}.toc a:hover{color:var(--c-white)}.toc a[aria-current=true]{border-inline-start-color:var(--c-accent-text);color:var(--c-accent-text)}.toc-mobile{top:var(--nav-h);z-index:15;background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-border);display:none;position:sticky}.toc-mobile>button{width:100%;min-height:3rem;color:var(--c-gray-2);cursor:pointer;text-align:start;background:0 0;border:0;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-size:.875rem;display:flex}.toc-mobile-label{color:var(--c-white);white-space:nowrap;font-weight:650}.toc-chev{flex:none;width:.9rem;height:.9rem;transition:transform .2s;transform:rotate(-90deg)}.toc-chev.open{transform:none}.toc-mobile-current{color:var(--c-accent-text);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.toc-mobile-list{max-height:60vh;padding:0 1.25rem .9rem;overflow-y:auto}.d-title{border-bottom:1px solid var(--glass-border);padding:2.5rem 1.5rem 1.6rem}.d-title h1{letter-spacing:-.02em;max-width:none;color:var(--c-white);outline:none;margin:0;font-size:2.6rem;font-weight:650;line-height:1.15}.d-content{padding:1.5rem 1.5rem .5rem}.prose{overflow-wrap:break-word;max-width:none;line-height:1.7}.prose>*{margin-top:0;margin-bottom:0}.prose>*+*,.prose section>*+*{margin-top:1rem}.prose :is(h2,h3,h4){color:var(--c-white);letter-spacing:-.01em;font-weight:650;line-height:1.25}.prose h2{font-size:1.85rem;margin-top:2.5rem!important}.prose h3{font-size:1.35rem;margin-top:2rem!important}.prose h4{font-size:1.1rem;margin-top:1.5rem!important}.prose section>h2{margin-bottom:1rem}.prose .anchor{color:var(--c-gray-4);opacity:0;margin-inline-start:.45rem;padding:0 .2rem;font-weight:600;text-decoration:none;transition:opacity .15s}.prose :is(h2,h3,h4):hover .anchor,.prose .anchor:focus-visible{opacity:1}@media (hover:none){.prose .anchor{opacity:.6}}.prose a:not(.anchor,.link-card){color:var(--c-accent-text);text-underline-offset:.2em;text-decoration-thickness:1.5px}.prose a:not(.anchor,.link-card):hover{color:var(--c-white)}.prose strong{color:var(--c-white);font-weight:750}.prose ul,.prose ol{padding-inline-start:1.4rem}.prose li+li{margin-top:.3rem}.prose li>p{margin:0}.prose :not(pre)>code{border:1px solid var(--glass-border-strong);background:var(--glass-bg-soft);color:var(--c-white);overflow-wrap:anywhere;border-radius:.5em;padding:.12em .45em;font-size:.86em}.code-block{border:1px solid var(--glass-border);border-radius:var(--radius,10px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--glass-highlight), 0 16px 40px -24px #0009;background:#040c1a80;position:relative;overflow:hidden}:root[data-theme=light] .code-block{box-shadow:var(--glass-highlight), 0 16px 40px -28px #0f1b2d59;background:#fff9}.code-scroll{scrollbar-width:thin;scrollbar-color:var(--c-gray-5) transparent;overflow-x:auto}.code-block pre{tab-size:4;width:max-content;min-width:100%;margin:0;padding:.95rem 1.1rem;font-size:.85rem;line-height:1.65}.copy{border:1px solid var(--glass-border-strong);background:var(--glass-bg-strong);width:2.5rem;height:2.5rem;color:var(--c-gray-2);cursor:pointer;opacity:0;border-radius:10px;justify-content:center;align-items:center;transition:opacity .15s;display:inline-flex;position:absolute;top:.45rem;right:.45rem}.copy svg{width:1.05rem;height:1.05rem}.code-block:hover .copy,.copy:focus-visible{opacity:1}@media (hover:none){.copy{opacity:.85}}.ab-tablist{flex-wrap:wrap;gap:.3rem;margin-bottom:.6rem;display:flex}.prose .ab-tablist button{min-height:2.5rem;color:var(--c-gray-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:.3rem 1rem;font-size:1rem;font-weight:750}.prose .ab-tablist button:hover{background:var(--glass-bg-soft);color:var(--c-white)}.prose .ab-tablist button[aria-selected=true]{color:var(--c-white);background:#3ecf8e24;border-color:#3ecf8e59}.prose [data-tab-panel]>*+*,.prose [data-tab-panel]>p,.prose [data-tab-panel]>.table-wrap{margin-top:1rem}.prose [data-tab-panel]>:first-child{margin-top:0}html[data-lang=python] .prose .ab-synced[data-has-python]:not([data-hydrated]) button[data-tab-lang=python],html[data-lang=typescript] .prose .ab-synced[data-has-typescript]:not([data-hydrated]) button[data-tab-lang=typescript],html[data-lang=rust] .prose .ab-synced[data-has-rust]:not([data-hydrated]) button[data-tab-lang=rust]{color:var(--c-white);background:#3ecf8e24;border-color:#3ecf8e59}html[data-lang=python] .prose .ab-synced[data-has-python]:not([data-hydrated]) button:not([data-tab-lang=python]),html[data-lang=typescript] .prose .ab-synced[data-has-typescript]:not([data-hydrated]) button:not([data-tab-lang=typescript]),html[data-lang=rust] .prose .ab-synced[data-has-rust]:not([data-hydrated]) button:not([data-tab-lang=rust]){color:var(--c-gray-3);background:0 0;border-color:#0000}.callout{--tint:#3ecf8e1a;--edge:var(--c-accent);--title:var(--c-accent-text);border-inline-start:4px solid var(--edge);border-radius:var(--radius,10px);background:var(--tint);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--glass-highlight);padding:1rem 1.15rem}.callout-tip{--tint:#a58bff1f;--edge:#a58bff;--title:#c7b8ff}.callout-caution{--tint:#f2b5441a;--edge:var(--ab-waiting);--title:var(--ab-waiting-text)}.callout-danger{--tint:#f27d721a;--edge:var(--ab-failed);--title:var(--ab-failed-text)}:root[data-theme=light] .callout-tip{--title:#5b3fc4;--edge:#7b61e0}.callout-title{color:var(--title);align-items:center;gap:.5rem;margin:0 0 .4rem;font-weight:650;display:flex}.callout-title svg{flex:none;width:1.1rem;height:1.1rem}.callout-body>*{margin:0}.callout-body>*+*{margin-top:.75rem}.callout-body a{font-weight:700;color:inherit!important}.table-wrap{border:1px solid var(--glass-border);border-radius:var(--radius,10px);background:var(--glass-bg-soft);scrollbar-width:thin;scrollbar-color:var(--c-gray-5) transparent;overflow-x:auto}.table-wrap table{border-collapse:separate;border-spacing:0;width:100%;font-size:.92rem;line-height:1.5}.table-wrap :is(th,td){text-align:start;vertical-align:top;border-bottom:1px solid var(--glass-border);padding:.55rem .8rem}.table-wrap th{color:var(--c-white);background:#ffffff0a;font-weight:750}:root[data-theme=light] .table-wrap th{background:#0f1b2d09}.table-wrap tr:last-child td{border-bottom:0}.table-wrap td code{white-space:nowrap;overflow-wrap:normal!important}.card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem;display:grid}.link-card{border:1px solid var(--glass-border);background:var(--glass-bg-soft);box-shadow:var(--glass-highlight);border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.link-card:hover{box-shadow:var(--glass-highlight), 0 14px 30px -18px #3ecf8eb3;border-color:#3ecf8e80;transform:translateY(-2px)}.link-card-text{flex-direction:column;gap:.2rem;display:flex}.link-card-title{color:var(--c-white);font-size:1.05rem;font-weight:650}.link-card-desc{color:var(--c-gray-3);font-size:.92rem;line-height:1.5}.link-card-arrow{width:1.3rem;height:1.3rem;color:var(--c-accent-text);flex:none}.status-built,.status-planned{white-space:nowrap;border:1px solid;border-radius:999px;padding:.05em .55em;font-size:.8em;font-weight:700}.status-built{color:var(--ab-done)}.status-planned{color:var(--ab-waiting)}:root[data-theme=light] .status-built{color:#237a3c}:root[data-theme=light] .status-planned{color:#8a5a00}.d-footer{flex-direction:column;gap:2.5rem;max-width:none;margin-top:3rem;padding:0 1.5rem 2rem;display:flex}.pager{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.pager a{border:1px solid var(--glass-border);background:var(--glass-bg-soft);box-shadow:var(--glass-highlight);border-radius:12px;flex-direction:column;gap:.2rem;padding:1rem 1.25rem;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.pager a:hover{box-shadow:var(--glass-highlight), 0 14px 30px -18px #3ecf8eb3;border-color:#3ecf8e80;transform:translateY(-2px)}.pager .pager-next{text-align:end}.pager-hint{color:var(--c-gray-3);font-size:.85rem}.pager-title{color:var(--c-accent-text);font-size:1.05rem;font-weight:650}.d-columns{border-top:1px solid var(--glass-border);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1.5rem;padding-top:2rem;display:grid}.d-col-title{color:var(--c-white);margin:0 0 .5rem;font-weight:750}.d-columns ul{flex-direction:column;gap:.1rem;margin:0;padding:0;list-style:none;display:flex}.d-columns a{color:var(--c-gray-3);padding:.3rem 0;font-size:.9rem;text-decoration:none;display:inline-block}.d-columns a:hover{color:var(--c-accent-text);text-decoration:underline}.d-license{color:var(--c-gray-3);margin:0;font-size:.8rem}.search-dialog{border:1px solid var(--glass-border-strong);background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(28px)saturate(170%);backdrop-filter:blur(28px)saturate(170%);width:min(40rem,100vw - 2rem);max-height:min(36rem,100dvh - 4rem);box-shadow:var(--glass-highlight), 0 40px 90px -30px #000c;color:var(--c-gray-2);border-radius:12px;margin:10vh auto auto;padding:0;overflow:hidden}.search-dialog::backdrop,.drawer::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#040a148c}:root[data-theme=light] .search-dialog::backdrop,:root[data-theme=light] .drawer::backdrop{background:#0f1b2d4d}:root[data-theme=light] .search-dialog,:root[data-theme=light] .drawer{background:#f4f8fcf0}.search-panel{max-height:inherit;flex-direction:column;display:flex}.search-row{border-bottom:1px solid var(--glass-border);align-items:center;gap:.6rem;padding:.6rem .6rem .6rem 1rem;display:flex}.search-row>svg{width:1.1rem;height:1.1rem;color:var(--c-gray-3);flex:none}.search-row input{min-width:0;min-height:2.5rem;color:var(--c-white);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:1.05rem}.search-row input:focus-visible{outline:none}.search-row:focus-within{box-shadow:inset 0 -2px 0 var(--c-accent)}.search-close{border:1px solid var(--glass-border-strong);min-height:2.5rem;color:var(--c-gray-2);cursor:pointer;background:0 0;border-radius:999px;padding:0 .9rem;font-weight:650}.search-results{padding:.5rem;overflow-y:auto}.search-results ul{margin:0;padding:0;list-style:none}.search-results a{color:var(--c-gray-2);border-radius:8px;flex-direction:column;gap:.2rem;padding:.7rem .9rem;text-decoration:none;display:flex}.search-results a:hover,.search-results a:focus-visible{background:var(--glass-bg-soft);outline-offset:-2px}.search-hit-title{color:var(--c-accent-text);font-weight:650}.search-hit-excerpt{color:var(--c-gray-3);font-size:.88rem;line-height:1.5}.search-hit-excerpt mark{color:var(--c-white);background:#f2b5444d;border-radius:3px;padding:0 .1em}.search-note{color:var(--c-gray-3);margin:.5rem .75rem;font-size:.92rem}.drawer{border:0;border-inline-end:1px solid var(--glass-border-strong);-webkit-backdrop-filter:blur(24px)saturate(170%);backdrop-filter:blur(24px)saturate(170%);width:min(21rem,88vw);max-width:none;height:100dvh;max-height:none;color:var(--c-gray-2);background:#0a1426eb;margin:0;padding:0;position:fixed;inset:0 auto 0 0}.drawer[open]{animation:.22s ease-out drawer-in}@keyframes drawer-in{0%{transform:translate(-100%)}}.drawer-panel{flex-direction:column;height:100%;display:flex}.drawer-head{height:var(--nav-h,4rem);border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;gap:.5rem;padding:0 .75rem 0 1rem;display:flex}.drawer-sections{border-bottom:1px solid var(--glass-border);flex-wrap:wrap;gap:.25rem;padding:.75rem 1rem;display:flex}.drawer-sections a{min-height:2.5rem;color:var(--c-gray-2);border-radius:8px;align-items:center;padding:0 .85rem;font-weight:700;text-decoration:none;display:inline-flex}.drawer-sections a[aria-current=page]{color:var(--c-accent-text);background:var(--c-accent-low)}.drawer-scroll{flex:1;height:auto;min-height:0}.drawer-foot{padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom));border-top:1px solid var(--glass-border);justify-content:space-between;align-items:center;gap:.5rem;display:flex}@media (max-width:71.99rem){.d-main{grid-template-columns:minmax(0,1fr)}.d-toc{display:none}.toc-mobile{display:block}}@media (max-width:49.99rem){.dh{padding:0 .5rem 0 .4rem}.dh-left{gap:.25rem}.dh-menu{display:inline-flex}.dh-sections,.dh-wide{display:none}.dh-brand{font-size:1.1rem}.search-pill{width:2.5rem;box-shadow:none;background:0 0;border-color:#0000;justify-content:center;padding:0}.search-pill span,.search-pill kbd{display:none}.search-pill svg{width:1.25rem;height:1.25rem}.d-sidebar{display:none}.d-main{margin-inline-start:0}.d-sheet{border-radius:12px;margin:.75rem .5rem}.d-title{padding:1.75rem 1rem 1.25rem}.d-title h1{font-size:2.1rem}.d-content{padding:1.25rem 1rem .5rem}.d-footer{padding:0 1rem 1.5rem}.toc-mobile>button{padding-inline:1rem}.pager{grid-template-columns:1fr}.prose h2{font-size:1.6rem}.search-dialog{margin-top:.75rem}}@media (prefers-reduced-motion:reduce){.link-card:hover,.pager a:hover{transform:none}.drawer[open]{animation:none}.sb-chevron,.toc-chev{transition:none}}.prose>:is(p,ul,ol,blockquote){max-width:62rem}
