@font-face{font-family:Inter;src:url('/assets/fonts/inter-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Inter Fallback';src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0%;size-adjust:107.12%}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{color-scheme:light;--base:#fff;--text:#1f1b25;--muted:#776297;--border:#ebdeff;--border-strong:#e0d0fc;--tint:#fbf8ff;--gradient:#f6eeff;--hover:#f2eafa;--link:#793bbe;--active:#f1edf6;--shadow:0 1px 3px #5b2d9120}
:root[data-theme=dark]{color-scheme:dark;--base:#17131d;--text:#f0eaf6;--muted:#b6a1cf;--border:#3b2e4c;--border-strong:#534066;--tint:#21192c;--gradient:#332044;--hover:#362643;--link:#c19be9;--active:#3d2c4c;--shadow:0 1px 3px #0004}
*{box-sizing:border-box}html{scroll-padding-top:88px}body{margin:0;color:var(--text);background:linear-gradient(to bottom left,var(--gradient),var(--base) 60%) fixed;font:400 16px/26px Inter,'Inter Fallback',system-ui,Arial,sans-serif;-webkit-font-smoothing:antialiased}
@supports(background:linear-gradient(in oklab,red,white)){body,.site-header{background-image:linear-gradient(to bottom left in oklab,var(--gradient),var(--base) 60%)}}
a{color:inherit;text-decoration:none}button,input,summary{font:inherit;color:inherit}button{cursor:pointer}button,summary{-webkit-tap-highlight-color:transparent}button{background:none;border:0}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--link);outline-offset:3px}button:hover,a:hover,summary:hover{color:var(--link)}[hidden]{display:none!important}.js-only{display:none!important}.js .js-only{display:initial!important}.icon{width:16px;height:16px;flex:none;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:8px 16px;background:var(--base);border:1px solid var(--border);transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-header{height:64px;position:sticky;top:0;z-index:30;border-bottom:1px solid color-mix(in srgb,var(--border),transparent 45%);background-color:var(--base);background-image:linear-gradient(to bottom left,var(--gradient),var(--base) 60%);background-attachment:fixed;backdrop-filter:blur(16px)}.header-inner{height:64px;max-width:1536px;margin:auto;display:flex;align-items:center;padding:12px 32px;gap:24px}.brand-area{width:312px;flex:none;display:flex;align-items:center;gap:16px}.brand{display:flex;align-items:center}.brand img{width:32px;height:32px;object-fit:contain}.logo-dark{display:none}:root[data-theme=dark] .logo-dark{display:block}:root[data-theme=dark] .logo-light{display:none}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:8px;border-radius:8px;line-height:1}.icon-button:hover{background:var(--hover)}.icon-button .icon{width:20px;height:20px}.js .mobile-menu,.js .mobile-search{display:none!important}
.search-wrap{position:relative;width:512px;max-width:100%}.js .search-wrap{display:block!important}#search-form{display:flex;gap:8px;align-items:center;height:40px;border:1px solid var(--border-strong);border-radius:12px;background:color-mix(in srgb,var(--base),transparent 30%);padding:0 12px;box-shadow:var(--shadow);color:var(--muted)}#search{flex:1;min-width:0;font-size:14px;line-height:21px;border:0;background:none;outline:none;padding:8px 0;color:var(--text)}#search::placeholder{color:var(--muted);opacity:.8}#search::-webkit-search-cancel-button{display:none}#search-form:focus-within{outline:2px solid var(--border-strong)}kbd{font:12px/16px 'IBM Plex Mono',monospace;white-space:nowrap;border:1px solid var(--border);border-radius:4px;padding:1px 5px}#search-panel{position:absolute;top:48px;left:0;right:0;max-height:min(680px,80vh);overflow:auto;overscroll-behavior:contain;background:var(--base);border:1px solid var(--border-strong);border-radius:12px;box-shadow:0 12px 36px #25113326;padding:8px}#search-status{font-size:13px;line-height:20px;color:var(--muted);margin:4px 8px 8px}#search-results{list-style:none;margin:0;padding:0}#search-results a{display:block;padding:12px;border-radius:8px;font-size:14px;line-height:21px}#search-results li[aria-selected=true] a,#search-results a:hover{background:var(--hover)}.result-heading{display:block;font-weight:600}.result-section{display:block;color:var(--link)}.result-excerpt{display:block;color:var(--muted);font-size:13px;line-height:20px;margin-top:4px}mark{background:#f5e6a5;color:#392a07;border-radius:2px}
.layout{display:flex;max-width:1536px;padding:0 32px;margin:auto;align-items:flex-start}.sidebar{position:sticky;top:64px;height:calc(100dvh - 64px);width:288px;flex:none;margin-right:48px;padding:24px 24px 16px 0;font-size:14px;line-height:20px}.sidebar-panel{margin-left:-20px;border:1px solid var(--border);border-radius:16px;height:100%;background:var(--tint);box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--base),transparent 55%);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent;padding:8px}.navigation,.navigation ul,.outline ul,.mobile-toc ul{list-style:none;margin:0;padding:0}.navigation a{display:block;padding:7px 12px;border-radius:8px;font-weight:400;line-height:20px}.navigation a:hover{background:var(--hover)}.navigation a[aria-current=page]{background:var(--active);color:var(--muted)}.nav-parent{display:flex;align-items:center}.nav-parent>a{flex:1;min-width:0}.nav-toggle{padding:8px 10px;border-radius:6px;line-height:1}.nav-toggle[aria-expanded=true] .icon{transform:rotate(90deg)}.navigation ul{margin:2px 0 4px 18px;padding-left:4px;border-left:1px solid var(--border)}.navigation ul a{font-size:13px}.drawer-heading{display:none}.drawer-backdrop{position:fixed;inset:64px 0 0;z-index:35;background:#21133050;backdrop-filter:blur(3px)}
main{padding:32px 0;min-width:0;max-width:768px;width:100%;flex:1;outline:none}.page-header{margin-bottom:24px}.title-row{display:flow-root;min-height:47.5px}h1{font-size:36px;line-height:45px;letter-spacing:-1.1px;font-weight:700;margin:0;text-wrap:pretty}.page-tools{float:right;display:flex;align-items:center;position:relative;margin:8px 0 8px 16px;color:var(--muted);font-size:14px;line-height:20px}.small-button{display:inline-flex;gap:6px;align-items:center;justify-content:center;padding:3px 8px;min-height:28px;background:var(--base);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow);font-size:14px;line-height:20px;white-space:nowrap}.js .small-button{display:inline-flex!important}.small-button:hover{background:var(--hover)}.page-tools .small-button{border-radius:6px 0 0 6px}.more-menu>summary{display:flex;align-items:center;justify-content:center;list-style:none;cursor:pointer;min-height:28px;padding:3px 6px;background:var(--base);border:1px solid var(--border-strong);border-left:0;border-radius:0 6px 6px 0;box-shadow:var(--shadow)}summary::-webkit-details-marker{display:none}.more-menu>div{position:absolute;right:0;top:36px;z-index:15;min-width:180px;padding:6px;background:var(--base);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #25113320}.more-menu a{display:block;padding:6px 10px;border-radius:6px}.more-menu a:hover{background:var(--hover)}.description{margin:12px 0 0;font-size:20px;line-height:30px;color:var(--muted)}.breadcrumbs{font-size:14px;line-height:20px;margin:0 0 12px;color:var(--muted)}
.prose{display:flex;flex-direction:column;gap:20px;overflow-wrap:anywhere}.prose>*{margin:0}.prose p{margin:0}.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{position:relative;scroll-margin-top:88px;font-weight:600;letter-spacing:-.375px;text-wrap:pretty;padding-right:24px}.prose h2{font-size:30px;line-height:36px;padding-top:30px;padding-bottom:1.5px}.prose h3{font-size:24px;line-height:30px;padding-top:24px}.prose h4{font-size:20px;line-height:28px;padding-top:20px}.prose h5,.prose h6{font-size:18px;line-height:26px;padding-top:18px}.heading-anchor{position:absolute;bottom:4px;font-size:.65em;line-height:1;margin-left:8px;color:var(--muted);opacity:0;text-decoration:none!important}.prose :is(h2,h3,h4,h5,h6):hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.prose a:not(.small-button,.page-card,.heading-anchor){color:var(--link);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--link),transparent 60%);text-underline-offset:3px}.prose strong{font-weight:600}.prose ul,.prose ol{padding-left:26px}.prose li{padding-left:2px;margin:8px 0}.prose li:first-child{margin-top:0}.prose li:last-child{margin-bottom:0}.prose li>p+p{margin-top:12px}.prose blockquote{border-left:3px solid var(--border-strong);padding:0 0 0 20px;color:var(--muted)}.prose blockquote p+p{margin-top:12px}.prose hr{width:100%;border:0;border-top:1px solid var(--border);margin:12px 0}.prose code{font-family:'IBM Plex Mono',monospace;font-size:.85em;border:1px solid var(--border);border-radius:5px;padding:1px 4px;background:var(--tint);overflow-wrap:anywhere}.code-block{position:relative;border:1px solid var(--border);border-radius:8px;background:var(--tint);overflow:hidden}.code-block pre{margin:0;padding:20px;overflow:auto;font-size:14px;line-height:22px}.code-block pre code{border:0;background:none;padding:0;font-size:inherit}.code-copy{position:absolute;top:8px;right:8px}.table-scroll{overflow:auto;max-width:100%;border-radius:8px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.prose table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:14px;line-height:21px}.prose th{font-weight:400;line-height:20px;text-align:left;background:color-mix(in srgb,var(--tint),transparent 30%);padding:7px 12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.prose th:first-child{border-left:1px solid var(--border);border-radius:8px 0 0 8px}.prose th:last-child{border-right:1px solid var(--border);border-radius:0 8px 8px 0}.prose td{padding:8px 12px;line-height:21px;vertical-align:middle;border-bottom:1px solid color-mix(in srgb,var(--border),transparent 40%)}.prose td+td{border-left:1px solid color-mix(in srgb,var(--border),transparent 40%)}.prose tbody tr:last-child td{border-bottom:0}.prose td code{font-size:12px;word-break:break-all}.download-card{display:flex;align-items:center;gap:16px;border:1px solid var(--border);border-radius:6px;padding:16px;flex-wrap:wrap}.download-card>.icon{width:28px;height:28px;color:var(--muted)}.download-name{flex:1;min-width:120px}.download-name>a{text-decoration:none!important;color:inherit!important}.download-name small{display:block;color:var(--muted);font-size:14px;line-height:20px}.download-actions{display:flex;gap:8px}.page-card{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:8px;padding:16px;background:color-mix(in srgb,var(--base),transparent 30%)}.page-card span{flex:1}
.outline{position:sticky;top:64px;width:256px;flex:none;margin-left:16px;padding:32px 0 16px 32px;max-height:calc(100dvh - 64px);overflow:auto;font-size:14px;line-height:20px;color:var(--muted)}.outline summary{display:flex;align-items:center;gap:4px;font-size:12px;text-transform:uppercase;cursor:pointer;color:var(--text);padding:4px 0 12px}.outline summary .icon{width:12px;height:12px}.outline a{display:block;padding:6px 8px;border-radius:4px}.outline a:hover,.outline a[aria-current=location]{background:var(--active)}.outline .toc-level-3{padding-left:12px}.outline .toc-level-4{padding-left:20px}.pagination{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px}.pagination a{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:16px;border:1px solid var(--border);border-radius:8px;font-size:14px;line-height:21px;box-shadow:var(--shadow)}.pagination a:hover{border-color:var(--border-strong);background:var(--tint)}.pagination .next{text-align:right}.pagination small{display:block;color:var(--muted);font-size:12px}.updated{font-size:12px;line-height:20px;color:var(--muted);margin:32px 0 0}.mobile-toc{display:none}
@media(min-width:1536px){.layout,.header-inner{max-width:1536px}.layout main{margin-inline:auto}}
@media(max-width:1279px){.outline{display:none}.layout main{margin:0 auto}.mobile-toc{display:block;position:relative;flex:none;margin-left:12px;font-size:14px;color:var(--muted)}.mobile-toc summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-strong);border-radius:6px;background:var(--base);box-shadow:var(--shadow)}.mobile-toc summary:hover{background:var(--hover)}.mobile-toc nav{position:absolute;z-index:25;top:calc(100% + 8px);right:0;width:min(320px,calc(100vw - 32px));max-height:min(60dvh,480px);overflow:auto;padding:8px;background:var(--base);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #25113320}.mobile-toc a{display:block;padding:6px 8px;border-radius:4px}.mobile-toc a:hover{background:var(--hover)}.mobile-toc .toc-level-3{padding-left:12px}.mobile-toc .toc-level-4{padding-left:20px}}
@media(max-width:1023px){.header-inner{padding-inline:24px}.brand-area{width:auto;flex:1}.layout{padding:0 24px}.sidebar{position:static;margin:0 24px 0 0;width:240px;height:auto;align-self:stretch}.sidebar-panel{margin-left:0}.js .sidebar{display:none;position:fixed;z-index:40;top:64px;left:0;width:min(360px,calc(100% - 64px));height:calc(100dvh - 64px);padding:12px 8px 12px 12px;margin:0;background:var(--base);overflow:auto;overscroll-behavior:contain}.js .sidebar[data-open]{display:block}.js .mobile-menu{display:inline-flex!important}.drawer-heading{display:flex;justify-content:space-between;align-items:center;padding:8px;font-size:12px}.sidebar-panel{height:100%}.js .sidebar-panel{height:100%;overflow:auto;padding:8px}.search-wrap{width:min(512px,60vw)}body.drawer-open{overflow:hidden}}
@media(max-width:639px){.header-inner{padding-inline:16px;gap:12px}.brand-area{gap:12px}.brand img{width:28px;height:28px}.js .search-wrap{display:none!important}.js .mobile-search{display:inline-flex!important;width:40px;height:40px;border:1px solid var(--border-strong);border-radius:12px;background:var(--base);box-shadow:var(--shadow)}.js .search-wrap[data-open]{display:block!important;position:fixed;inset:8px 16px auto 16px;width:auto;max-width:none;z-index:45}#search-form{height:48px;background:var(--base)}#search-panel{top:56px;max-height:calc(100dvh - 100px)}#search-shortcut{display:none}.layout{padding-inline:16px;display:block}.sidebar{width:100%;padding:16px 0;margin:0}.sidebar-panel{height:auto}.js .sidebar{width:calc(100% - 64px)}main{padding-top:32px}.page-tools{float:none;justify-content:flex-end;margin:-12px 0 12px;min-height:27.5px}.page-tools .small-button,.page-tools .more-menu>summary{height:27.5px;min-height:27.5px;padding-top:2.75px;padding-bottom:2.75px}.page-tools .mobile-toc summary{height:27.5px}.page-header{margin-bottom:24px}h1{font-size:30px;line-height:37.5px;letter-spacing:-.6px}.description{font-size:18px;line-height:28px}.prose h2{font-size:24px;line-height:30px;padding-top:24px;padding-bottom:0}.prose h3{font-size:20px;line-height:28px;padding-top:20px}.prose h4{font-size:18px;line-height:26px;padding-top:18px}.prose table{line-height:20px}.prose th{padding:8px 12px}.download-card{gap:12px}.download-actions{width:100%;padding-left:40px}.pagination{gap:10px}.pagination a{padding:12px;gap:8px}.pagination .icon{width:14px}.mobile-toc{font-size:14px}.breadcrumbs{margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(prefers-contrast:more){:root{--muted:var(--text);--border:#8a739f;--border-strong:#6a4b84}.navigation a[aria-current=page]{outline:1px solid var(--link)}}
@media print{.site-header,.sidebar,.outline,.page-tools,.mobile-toc,.pagination,.skip-link,.heading-anchor{display:none!important}body{background:#fff;color:#000}.layout{display:block;padding:0}main{max-width:none;padding:0}.prose table{min-width:0}.table-scroll{overflow:visible}.prose a{color:#000}.prose h2,.prose h3,.prose h4{break-after:avoid}.prose tr,.download-card{break-inside:avoid}}

