.doc{--doc-bar-h:0px;--doc-measure:68ch;padding-top:clamp(2rem,1rem + 3vw,3.5rem);padding-bottom:var(--section-y)}.doc-layout{grid-template-columns:var(--rail-w) minmax(0, 1fr);gap:var(--rail-gap);align-items:start;display:grid}.doc-body{min-width:0;max-width:800px}.doc-hero{padding-bottom:var(--space-12)}.doc-hero__title{margin-top:var(--space-4);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.08}.doc-hero__lead{margin-top:var(--space-5)}.doc-facts{margin-top:var(--space-10);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-1);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.doc-facts__item{align-content:start;gap:var(--space-2);min-width:0;padding:var(--space-4) var(--space-5) var(--space-5);display:grid}.doc-facts__item+.doc-facts__item{border-left:1px solid var(--border)}.doc-facts__item--wide{grid-column:span 2}.doc-facts dt{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.doc-facts dd{align-items:center;gap:var(--space-2);min-width:0;font-family:var(--font-mono);color:var(--text);font-size:.8125rem;display:flex}.doc-facts dd span{overflow-wrap:break-word;min-width:0}.doc-facts .doc-copy{margin-left:auto}.doc-section{padding-top:var(--space-16);margin-top:var(--space-16);border-top:1px solid var(--border);scroll-margin-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + var(--doc-bar-h) + var(--space-4))}.doc-section:first-of-type{margin-top:0}.doc-section [id]{scroll-margin-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + var(--doc-bar-h) + var(--space-6))}.doc-section__eyebrow{margin-bottom:var(--space-3);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.doc-h2{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);color:var(--text);line-height:1.15}.doc-h3{margin-top:var(--space-12);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);color:var(--text)}.doc-h3 code{font-size:.95em}.doc-h4{margin-top:var(--space-10);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--text)}.doc-h4 code{font-size:.95em}.doc-h3+.doc-h4{margin-top:var(--space-5)}.doc-anchor{color:inherit}.doc-anchor__hash{color:var(--text-faint);font-weight:var(--weight-regular);opacity:0;transition:opacity var(--dur-fast) ease;margin-left:.35em;display:inline-block}.doc-anchor:focus-visible .doc-anchor__hash{opacity:1}@media (hover:hover) and (pointer:fine){.doc-anchor:hover .doc-anchor__hash{opacity:1}}.doc-body p,.doc-body li,.doc-body dd{color:var(--text-secondary)}.doc-prose>p,.doc-section>p,.doc-callout__body p{max-width:var(--doc-measure)}.doc-section>p,.doc-section>ul,.doc-section>ol{margin-top:var(--space-4)}.doc-section>.doc-h2+p{margin-top:var(--space-5)}.doc-body strong{color:var(--text);font-weight:var(--weight-medium)}.doc-body a:not(.btn):not(.doc-anchor):not(.doc-toc__link){color:var(--text);text-underline-offset:3px;text-decoration:underline 1px;text-decoration-color:var(--accent-line)}@media (hover:hover) and (pointer:fine){.doc-body a:not(.btn):not(.doc-anchor):not(.doc-toc__link):hover{text-decoration-color:var(--accent)}}.doc-body :not(pre)>code{border:1px solid var(--border-subtle);background:var(--surface-2);color:var(--text);overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;padding:.12em .38em;font-size:.85em}.doc-body .doc-fields__name,.doc-body .doc-anchor code{background:0 0;border:0;padding:0}.doc-list{gap:var(--space-2);max-width:var(--doc-measure);padding:0;list-style:none;display:grid}.doc-list>li{min-width:0;padding-left:1.25rem;position:relative}.doc-list>li:before{content:"";background:var(--text-faint);width:8px;height:1px;position:absolute;top:.78em;left:0}.doc-steps{margin-top:var(--space-6);counter-reset:step;border-top:1px solid var(--border);gap:0;padding:0;list-style:none;display:grid}.doc-steps>li{gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle);counter-increment:step;grid-template-columns:2.5rem minmax(0,1fr);display:grid}.doc-steps>li:before{content:counter(step, decimal-leading-zero);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text);font-variant-numeric:tabular-nums;line-height:1.9}.doc-steps strong{margin-bottom:var(--space-1);display:block}.doc-flow{margin-block:var(--space-6) var(--space-8);padding:var(--space-2) 0;list-style:none;overflow:hidden}.doc-flow>li{gap:var(--space-4);padding:var(--space-3) var(--space-5);grid-template-columns:4.5rem minmax(0,1fr);align-items:baseline;display:grid}.doc-flow>li+li{border-top:1px solid var(--code-border)}.doc-flow__dir{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.doc-flow__dir--out{color:var(--lime)}.doc-flow__body{gap:var(--space-1);min-width:0;display:grid}.doc-flow__body code{font-family:var(--font-mono);color:var(--code-text);overflow-wrap:anywhere;font-size:.8125rem}.doc-body .doc-flow__body code{white-space:normal;background:0 0;border:0;padding:0}.doc-flow__note{font-size:var(--text-sm);color:var(--text-muted)}.doc-code{margin-top:var(--space-6);border-radius:var(--radius-md);background:var(--code-bg);color:var(--code-text);position:relative;overflow:hidden}.doc-code__head{align-items:center;gap:var(--space-3);min-height:40px;padding:0 var(--space-2) 0 var(--space-4);background:var(--code-bar);border-bottom:1px solid var(--code-border);display:flex}.doc-code__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.doc-code__lang{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.doc-code__head .doc-copy{margin-left:auto}.doc-code__pre{padding:var(--space-4) var(--space-5) var(--space-5);font-family:var(--font-mono);color:var(--code-text);tab-size:4;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;margin:0;font-size:.8125rem;line-height:1.7;overflow-x:auto}.doc-code__pre:focus-visible{outline-offset:-2px;border-radius:0 0 var(--radius-md) var(--radius-md)}.doc-code__pre code{font-size:inherit;white-space:pre;font-family:inherit}.doc-code--compact{align-items:center;display:flex}.doc-code--compact .doc-code__pre{padding:var(--space-3) var(--space-4);color:var(--text);flex:1}.doc-code--compact .doc-copy{margin-right:var(--space-2)}.doc-code--lines .doc-code__pre{counter-reset:line;padding-left:var(--space-3)}.doc-code__line{counter-increment:line}.doc-code__line:before{content:counter(line);width:3ch;margin-right:var(--space-4);text-align:right;color:var(--code-line-no);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;display:inline-block}.tk-key{color:var(--code-key)}.tk-str{color:var(--code-string)}.tk-num{color:var(--code-number)}.tk-kw{color:var(--code-keyword)}.tk-pun{color:var(--code-punct)}.tk-fn{color:var(--code-text)}.tk-com{color:var(--code-comment)}.tk-dir{-webkit-user-select:none;user-select:none}.tk-dir--out{color:var(--lime)}.tk-dir--in{color:var(--code-comment)}.doc-copy{height:28px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-xs);transition:transform var(--dur-press) var(--ease-out);flex:none;align-items:center;gap:6px;display:inline-flex;position:relative}.doc-copy:before{content:"";border-radius:inherit;background:var(--surface-3);opacity:0;transition:opacity var(--dur-fast) ease;position:absolute;inset:0}.doc-copy:active{transform:scale(.97)}.doc-copy:focus-visible{outline-offset:-2px}@media (pointer:coarse){.doc-copy{height:40px;padding-inline:var(--space-3)}}@media (hover:hover) and (pointer:fine){.doc-copy:hover{color:var(--text)}.doc-copy:hover:before{opacity:1}}.doc-code .doc-copy:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 1px var(--ink-border-strong);pointer-events:none;position:absolute;inset:0}@media (pointer:coarse){.doc-code .doc-copy:before,.doc-code .doc-copy:after{inset:6px 0}}html:not(.js) .doc-copy{display:none}.doc-copy__icons,.doc-copy__text{display:inline-grid;position:relative}.doc-copy__icons>*,.doc-copy__text>*{transition:opacity var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out), filter var(--dur-fast) ease;grid-area:1/1}.doc-copy__text{justify-items:start}.doc-copy__icon{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.doc-copy__icon--done,.doc-copy__word--done{opacity:0;filter:blur(2px);transform:scale(.9)}.doc-copy.is-copied{color:var(--text)}.doc-copy.is-copied .doc-copy__icon--copy,.doc-copy.is-copied .doc-copy__word--copy{opacity:0;filter:blur(2px);transform:scale(.9)}.doc-copy.is-copied .doc-copy__icon--done,.doc-copy.is-copied .doc-copy__word--done{opacity:1;filter:none;transform:none}.doc-copy.is-copied .doc-copy__icon--done{color:var(--accent)}.doc-tabs__head{padding-left:var(--space-2)}.doc-tabs__list{align-self:stretch;display:flex}.doc-tabs__tab{padding:0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted);transition:transform var(--dur-press) var(--ease-out);align-items:center;display:inline-flex;position:relative}.doc-tabs__tab:after{content:"";left:var(--space-3);right:var(--space-3);background:var(--lime);opacity:0;border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px}.doc-tabs__tab[aria-selected=true]{color:var(--text)}.doc-tabs__tab[aria-selected=true]:after{opacity:1}.doc-tabs__tab:focus-visible{outline-offset:-4px}.doc-tabs__tab:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.doc-tabs__tab:hover{color:var(--text)}}.doc-tabs:not(.is-enhanced) .doc-tabs__list,.doc-tabs:not(.is-enhanced) .doc-tabs__file{display:none}.doc-tabs__nojs-label{padding:var(--space-3) var(--space-4) 0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.doc-tabs.is-enhanced .doc-tabs__nojs-label{display:none}.doc-tabs:not(.is-enhanced) .doc-tabs__panel+.doc-tabs__panel{border-top:1px solid var(--code-border)}.doc-tabs__panel.is-entering{animation:.14s ease-out doc-fade}@keyframes doc-fade{0%{opacity:0}}.doc-fields{margin-top:var(--space-6);border-top:1px solid var(--border)}.doc-fields__row{padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle)}.doc-fields__head{align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.doc-fields__name{font-family:var(--font-mono);font-size:.8125rem;font-weight:var(--weight-medium);color:var(--text)}.doc-fields__type{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.doc-fields__meta{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.02em;color:var(--text)}.doc-fields__desc{margin-top:var(--space-2);max-width:var(--doc-measure);font-size:.9375rem}.doc-table-wrap{margin-top:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-md);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;background:linear-gradient(to left, var(--surface-1), var(--surface-1) 0) right / 24px 100% no-repeat local, linear-gradient(to left, var(--border), transparent) right / 16px 100% no-repeat scroll, var(--surface-1);overflow-x:auto}.doc-table-wrap:focus-visible{outline-offset:2px}.doc-table{width:100%;font-size:var(--text-sm)}.doc-table caption{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-sm);color:var(--text-muted);border-bottom:1px solid var(--border)}.doc-table th{padding:var(--space-3) var(--space-4);text-align:left;vertical-align:bottom;font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}.doc-table td,.doc-table tbody th{padding:var(--space-3) var(--space-4);vertical-align:top;color:var(--text-secondary);border-top:1px solid var(--border-subtle);line-height:1.5}.doc-table tbody tr:first-child td,.doc-table tbody tr:first-child th{border-top:0}.doc-table tbody th{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-regular);letter-spacing:0;text-transform:none;color:var(--text);white-space:normal;background:0 0;border-bottom:0}.doc-table .is-code,.doc-table .is-num{white-space:nowrap}.doc-table .is-code{font-family:var(--font-mono);color:var(--text);font-size:.8125rem}.doc-table .is-num{font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums;font-size:.8125rem}.doc-table td code,.doc-nowrap{white-space:nowrap}.doc-table .is-featured,.doc-table thead .is-featured{color:var(--text)}.doc-table--fixed{table-layout:fixed}@media (width<=640px){.doc-table .is-wrap{white-space:normal}.doc-table th,.doc-table td{padding-inline:var(--space-3)}.doc-table--stack thead{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.doc-table--stack,.doc-table--stack tbody{width:100%;display:block}.doc-table--stack tr{gap:var(--space-2) var(--space-4);padding:var(--space-4);border-top:1px solid var(--border-subtle);grid-template-columns:auto minmax(0,1fr);display:grid}.doc-table--stack tbody tr:first-child{border-top:0}.doc-table--stack td,.doc-table--stack tbody th{border:0;padding:0;display:block}.doc-table--stack td[data-label]{grid-column:1/-1}.doc-table--stack td[data-label]:before{content:attr(data-label);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:2px;display:block}}.doc-callout{gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-1);grid-template-columns:6.5rem minmax(0,1fr);display:grid}.doc-callout--important{border-color:var(--accent-line)}.doc-callout__label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);line-height:2.1}.doc-body .doc-callout--important .doc-callout__label{color:var(--text)}.doc-callout__body{gap:var(--space-3);font-size:.9375rem;display:grid}.doc-callout__body .doc-code{margin-top:var(--space-1)}.doc-sidebar{top:calc(var(--header-h) + env(safe-area-inset-top,0px) + var(--space-8));gap:var(--space-10);max-height:calc(100dvh - var(--header-h) - env(safe-area-inset-top,0px) - var(--space-12));overscroll-behavior:contain;padding-bottom:var(--space-6);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;display:grid;position:sticky;overflow-y:auto}@media (width>=961px) and (height<=820px){.doc-sidebar{top:calc(var(--header-h) + env(safe-area-inset-top,0px) + var(--space-5));gap:var(--space-6);max-height:calc(100dvh - var(--header-h) - env(safe-area-inset-top,0px) - var(--space-5));padding-bottom:var(--space-3)}.doc-sidebar .doc-toc__rail{gap:var(--space-4)}.doc-sidebar .doc-toc__link{padding-block:3px}}@media (width>=961px) and (height<=680px){.doc-sidebar .doc-sidebar__card-text{display:none}}.doc-toc__rail{gap:var(--space-6);display:grid;position:relative}.doc-toc__group-title{margin-bottom:var(--space-2);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.doc-toc__list{border-left:1px solid var(--border)}.doc-toc__link{padding:5px 0 5px var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.45;display:block}.doc-toc__link[aria-current]{color:var(--text)}@media (hover:hover) and (pointer:fine){.doc-toc__link:hover{color:var(--text)}}.doc-toc__link:focus-visible{outline-offset:-2px}.doc-toc__indicator{background:var(--text);opacity:0;pointer-events:none;width:1px;height:0;position:absolute;top:0;left:0}.doc-toc__indicator.is-ready{opacity:1;transition:transform var(--dur-ui) var(--ease-out)}.doc-sidebar__card{justify-items:start;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-1);display:grid}.doc-sidebar__card-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text)}.doc-sidebar__card-text{margin-bottom:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);line-height:1.55}.doc-toc-m{display:none}@media (width<=960px){.doc{--doc-bar-h:48px}.doc-layout{grid-template-columns:minmax(0,1fr);gap:0}.doc-sidebar{display:none}.doc-toc-m{top:calc(var(--header-h) + env(safe-area-inset-top,0px));z-index:calc(var(--z-header) - 1);margin-inline:calc(-1 * var(--gutter));margin-bottom:var(--space-8);backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid var(--border);background:#f4f1ead1;display:block;position:sticky}.doc-toc-m__details{position:relative}.doc-toc-m__summary{align-items:center;gap:var(--space-3);height:var(--doc-bar-h);padding-inline:max(var(--gutter), env(safe-area-inset-left,0px)) max(var(--gutter), env(safe-area-inset-right,0px));cursor:pointer;font-size:var(--text-sm);list-style:none;display:flex}.doc-toc-m__summary::-webkit-details-marker{display:none}.doc-toc-m__summary:focus-visible{outline-offset:-3px}.doc-toc-m__label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.doc-toc-m__current{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);overflow:hidden}.doc-toc-m__chevron{fill:none;width:16px;height:16px;stroke:var(--text-muted);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--dur-ui) var(--ease-out);flex:none;margin-left:auto}.doc-toc-m__details[open] .doc-toc-m__chevron{transform:rotate(180deg)}.doc-toc-m__panel{gap:var(--space-5);overscroll-behavior:contain;max-height:min(70dvh,520px);padding:var(--space-5) max(var(--gutter), env(safe-area-inset-right,0px)) var(--space-6) max(var(--gutter), env(safe-area-inset-left,0px));background:var(--surface-1);border-bottom:1px solid var(--border);transform-origin:top;animation:doc-panel-in var(--dur-ui) var(--ease-out);display:grid;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 18px 32px -24px #2a1a3059}.doc-toc-m__link{min-height:40px;font-size:var(--text-base);color:var(--text-secondary);align-items:center;display:flex}.doc-toc-m__link[aria-current]{color:var(--text)}.doc-toc-m__link[aria-current]:before{content:"";width:5px;height:5px;margin-right:var(--space-3);border-radius:var(--radius-full);background:var(--text)}.doc-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.doc-facts__item:nth-child(3){border-left:0}.doc-facts__item:nth-child(n+3){border-top:1px solid var(--border)}}@keyframes doc-panel-in{0%{opacity:0;transform:translateY(-4px)}}@media (width<=560px){.doc-facts{grid-template-columns:minmax(0,1fr)}.doc-facts__item+.doc-facts__item{border-left:0;border-top:1px solid var(--border)}.doc-facts__item--wide{grid-column:auto}.doc-section{padding-top:var(--space-12);margin-top:var(--space-12)}.doc-callout{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}.doc-flow>li{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}.doc-code__pre{padding-inline:var(--space-4)}.doc-facts .doc-copy{justify-content:center;width:40px;height:40px;padding:0}.doc-facts .doc-copy__text{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (prefers-reduced-motion:reduce){.doc-copy:active,.doc-tabs__tab:active{transform:none}.doc-toc__indicator.is-ready,.doc-toc-m__chevron{transition:none}.doc-toc-m__panel{animation:.15s ease-out doc-fade}.doc-copy__icons>*,.doc-copy__text>*{transition:opacity var(--dur-fast) ease}.doc-copy__icon--done,.doc-copy__word--done,.doc-copy.is-copied .doc-copy__icon--copy,.doc-copy.is-copied .doc-copy__word--copy{filter:none;transform:none}}
