*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--n-header-height) + 1rem)}body{margin:0;min-width:320px;background:var(--n-bg);color:var(--n-text);font-family:var(--n-font-sans);font-size:1.0625rem;line-height:1.65;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg{display:block;max-width:100%}.icon{flex-shrink:0}.nowrap{white-space:nowrap}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{margin:0;color:var(--n-ink);font-weight:650;text-wrap:balance}p{margin:0;text-wrap:pretty}ul,ol{margin:0;padding:0}a{color:var(--n-link);text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:.2em}a:hover{text-decoration-color:currentColor}code,kbd,pre,samp{font-family:var(--n-font-mono);font-size:.9em}:not(pre)>code{padding:.1em .35em;border:1px solid var(--n-line);border-radius:var(--n-radius-sm);background:var(--n-code-bg);color:var(--n-code-text);font-size:.85em;overflow-wrap:anywhere}:focus-visible{outline:2px solid var(--n-focus);outline-offset:2px;border-radius:2px}main:focus{outline:none}::selection{background:color-mix(in srgb,var(--n-focus) 25%,transparent)}.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:absolute;inset-block-start:.75rem;inset-inline-start:.75rem;z-index:200;padding:.65rem 1rem;border-radius:var(--n-radius);background:var(--n-ink);color:var(--n-bg);font-weight:600;text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:none}.container{width:100%;max-width:72rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}.container--narrow{max-width:48rem}.section{padding-block:clamp(3.5rem,8vw,6rem);border-top:1px solid var(--n-line)}.section--subtle{background:var(--n-bg-subtle)}.section__header{display:grid;gap:.75rem;max-width:44rem;margin-bottom:clamp(2rem,4vw,3rem)}.eyebrow{color:var(--n-faint);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.section h2,.h2{font-size:clamp(1.625rem,1.2rem + 1.6vw,2.25rem);line-height:1.15;letter-spacing:-.025em}.lead{color:var(--n-muted);font-size:clamp(1.0625rem,1rem + .35vw,1.1875rem);line-height:1.6}.muted{color:var(--n-muted)}.small{font-size:.9375rem}.prose{max-width:42rem}.prose>*+*{margin-top:1rem}.prose>h2{margin-top:2.5rem;font-size:clamp(1.375rem,1.2rem + .8vw,1.625rem);line-height:1.25;letter-spacing:-.02em}.prose>h3{margin-top:1.75rem;font-size:1.125rem;line-height:1.35}.prose>:first-child{margin-top:0}.prose>ul,.prose>ol{padding-inline-start:1.25rem}.prose>ul>li+li,.prose>ol>li+li{margin-top:.4rem}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.875rem;padding:.6rem 1.15rem;border:1px solid var(--n-accent);border-radius:var(--n-radius);background:var(--n-accent);color:var(--n-on-accent);font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.button:hover{border-color:var(--n-accent-strong);background:var(--n-accent-strong)}.button--secondary{border-color:var(--n-control);background:transparent;color:var(--n-ink)}.button--secondary:hover{border-color:var(--n-ink);background:var(--n-surface)}.text-link{display:inline-block;min-height:2.75rem;padding-block:.6rem;font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.text-link .icon{display:inline-block;margin-inline-start:.35rem;vertical-align:-.2em;transition:transform .15s ease}.back-link .icon{margin-inline:0 .35rem}.text-link:hover .icon{transform:translate(2px)}.external-mark{display:inline-block;width:.8em;height:.8em;margin-inline-start:.15em;vertical-align:-.05em}.site-header{position:sticky;inset-block-start:0;z-index:100;border-bottom:1px solid var(--n-line);background:color-mix(in srgb,var(--n-bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px)}.site-header__inner{display:flex;align-items:center;gap:1.5rem;min-height:var(--n-header-height)}.site-nav{display:none}.site-nav ul{display:flex;gap:.25rem;list-style:none}.site-nav__link,.icon-link{display:inline-flex;align-items:center;gap:.45rem;min-height:2.75rem;padding-inline:.75rem;border-radius:var(--n-radius);color:var(--n-muted);font-size:.9688rem;font-weight:500;text-decoration:none}.site-nav__link:hover,.icon-link:hover{background:var(--n-bg-subtle);color:var(--n-ink)}.site-nav__link[aria-current=page]{color:var(--n-ink);text-decoration:underline;text-decoration-color:var(--n-accent);text-decoration-thickness:2px;text-underline-offset:.45em}.site-header__actions{display:flex;align-items:center;gap:.25rem;margin-inline-start:auto}.github-link{display:none}.menu-button{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--n-line);border-radius:var(--n-radius);background:transparent;color:var(--n-ink);cursor:pointer}.menu-button .menu-button__close,.menu-button[aria-expanded=true] .menu-button__open{display:none}.menu-button[aria-expanded=true] .menu-button__close{display:block}.mobile-menu{border-top:1px solid var(--n-line);background:var(--n-bg)}.mobile-menu ul{display:grid;padding-block:.5rem 1rem;list-style:none}.mobile-menu__link{display:flex;align-items:center;gap:.6rem;min-height:3rem;border-bottom:1px solid var(--n-line);color:var(--n-ink);font-size:1.0625rem;font-weight:500;text-decoration:none}.mobile-menu__link[aria-current=page]{color:var(--n-link);font-weight:650}@media(min-width:52rem){.site-nav{display:block}.menu-button,.mobile-menu{display:none}.github-link{display:inline-flex}}.hero{padding-block:clamp(3rem,8vw,6rem) clamp(2.5rem,6vw,4.5rem)}.hero__inner{display:grid;gap:1.5rem;max-width:50rem}.hero h1{font-size:clamp(2.375rem,1.5rem + 4vw,3.75rem);line-height:1.04;letter-spacing:-.035em}.hero .lead{max-width:40rem}.hero .actions{margin-top:.5rem}.status-line{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;color:var(--n-muted);font-family:var(--n-font-mono);font-size:.8125rem;letter-spacing:.02em}.status-line time{white-space:nowrap}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border:1px solid var(--n-warn-line);border-radius:999px;background:var(--n-warn-soft);color:var(--n-warn);font-family:var(--n-font-sans);font-size:.75rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.page-hero{padding-block:clamp(3rem,7vw,5rem) clamp(2rem,5vw,3rem)}.page-hero+.section{padding-top:clamp(2.5rem,5vw,3.5rem)}.page-hero__inner{display:grid;gap:1rem;max-width:46rem}.page-hero h1{font-size:clamp(2.125rem,1.5rem + 2.6vw,3rem);line-height:1.08;letter-spacing:-.03em}.lifecycle{margin:clamp(2.5rem,6vw,4rem) 0 0}.lifecycle__states{display:grid;gap:0;list-style:none}.lifecycle__state{display:grid;gap:.35rem;padding:1.1rem 1.25rem;border:1px solid var(--n-line-strong);border-radius:var(--n-radius-lg);background:var(--n-surface)}.lifecycle__state--hidden{border-color:var(--n-accent-line);background:var(--n-accent-soft)}.lifecycle__state--off{border-style:dashed;background:transparent}.lifecycle__kicker{color:var(--n-faint);font-family:var(--n-font-mono);font-size:.75rem;letter-spacing:.04em}.lifecycle__name{color:var(--n-ink);font-size:1.125rem;font-weight:650}.lifecycle__note{color:var(--n-muted);font-size:.9375rem;line-height:1.5}.lifecycle__edge{display:grid;gap:.35rem;justify-items:center;padding:.85rem .5rem;color:var(--n-muted);font-size:.8125rem;text-align:center}.lifecycle__arrow{display:flex;align-items:center;gap:.45rem;white-space:nowrap}.lifecycle__arrow code{border:0;padding:0;background:none;color:var(--n-ink);font-size:.8125rem;font-weight:600}.lifecycle__arrow--dashed code{font-weight:500}.lifecycle__glyph{color:var(--n-faint);font-family:var(--n-font-sans)}.lifecycle__edge .lifecycle__glyph--horizontal{display:none}.lifecycle figcaption{margin-top:1rem;color:var(--n-faint);font-size:.875rem}@media(min-width:60rem){.lifecycle__states{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,.8fr);align-items:stretch}.lifecycle__edge{align-content:center;padding:.5rem 1rem}.lifecycle__edge .lifecycle__glyph--horizontal{display:inline}.lifecycle__edge .lifecycle__glyph--vertical{display:none}}.steps{display:grid;gap:1.75rem;counter-reset:step;list-style:none}.steps>li{position:relative;display:grid;gap:.5rem;padding-inline-start:3rem;counter-increment:step}.steps>li:before{content:counter(step);position:absolute;inset-inline-start:0;inset-block-start:0;display:grid;place-items:center;width:2rem;height:2rem;border:1px solid var(--n-line-strong);border-radius:50%;background:var(--n-surface);color:var(--n-ink);font-size:.875rem;font-weight:650}.steps h3{font-size:1.125rem;line-height:1.35;padding-top:.2rem}.steps p{color:var(--n-muted)}.topic-nav{display:grid;gap:.5rem;margin-top:.5rem}.topic-nav__label{color:var(--n-faint);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.topic-nav ul{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none}.topic-nav a{display:inline-flex;align-items:center;min-height:2.75rem;padding:.45rem 1rem;border:1px solid var(--n-control);border-radius:999px;color:var(--n-ink);font-size:.9375rem;font-weight:600;line-height:1.3;text-decoration:none}.topic-nav a:hover{border-color:var(--n-ink);background:var(--n-surface)}@media(prefers-reduced-motion:no-preference){.topic-nav a{transition:border-color .15s ease,background-color .15s ease}}.split{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,5vw,4rem)}.split>*,.download-steps>li,.download-step>*{min-width:0}.split>.section__header{margin-bottom:0}@media(min-width:56rem){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.split>.section__header{position:sticky;inset-block-start:calc(var(--n-header-height) + 2rem)}.split--wide-left{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.layers{margin:0}.layers__stack{display:grid;gap:.5rem;list-style:none}.layers__layer{display:grid;gap:.2rem;padding:1rem 1.15rem;border:1px solid var(--n-line-strong);border-radius:var(--n-radius);background:var(--n-surface)}.layers__layer--session{border-color:var(--n-ink);border-width:1.5px}.layers__layer--upper{border-color:var(--n-accent-line);background:var(--n-accent-soft)}.layers__layer--lower{background:var(--n-bg-subtle)}.layers__title{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;color:var(--n-ink);font-weight:650}.layers__where{color:var(--n-faint);font-family:var(--n-font-mono);font-size:.8125rem;font-weight:500}.layers__note{color:var(--n-muted);font-size:.9375rem;line-height:1.5}.layers figcaption{margin-top:.85rem;color:var(--n-faint);font-size:.875rem}.paired{display:grid;gap:2.5rem}@media(min-width:52rem){.paired{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem)}}.paired h3{margin-bottom:1rem;font-size:1.0625rem}.mark-list{display:grid;list-style:none;border-top:1px solid var(--n-line)}.mark-list li{display:grid;grid-template-columns:1.5rem minmax(0,1fr);gap:.6rem;padding-block:.85rem;border-bottom:1px solid var(--n-line)}.mark-list .icon{margin-top:.2rem}.mark-list--yes .icon{color:var(--n-ok)}.mark-list--no .icon{color:var(--n-faint)}.facts{display:grid;margin:0;border-top:1px solid var(--n-line);container-type:inline-size}.facts>div{display:grid;gap:.25rem;padding-block:1rem;border-bottom:1px solid var(--n-line)}.facts dt{color:var(--n-ink);font-weight:650}.facts dd{margin:0;color:var(--n-muted)}@container (min-width: 40rem){.facts>div{grid-template-columns:13rem minmax(0,1fr);gap:1.5rem}}.terminal{margin:0;min-width:0}.terminal__frame{overflow:hidden;border:1px solid var(--n-line-strong);border-radius:var(--n-radius-lg);background:var(--n-code-bg);box-shadow:var(--n-shadow)}.terminal__bar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;border-bottom:1px solid var(--n-line);color:var(--n-faint);font-family:var(--n-font-mono);font-size:.8125rem}.terminal__bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.terminal pre{margin:0;padding:1rem 1.1rem 1.15rem;overflow-x:auto;color:var(--n-code-text);font-size:.8125rem;line-height:1.7;tab-size:2}.terminal pre:focus-visible{outline-offset:-3px}.terminal .t-pass{color:var(--n-ok);font-weight:650}.terminal .t-warn{color:var(--n-warn);font-weight:650}.terminal .t-fail{color:var(--n-bad);font-weight:650}.terminal .t-dim{color:var(--n-faint)}.terminal figcaption{margin-top:.75rem;color:var(--n-faint);font-size:.875rem}.command{position:relative;min-width:0;border:1px solid var(--n-line);border-radius:var(--n-radius);background:var(--n-code-bg)}.command pre{margin:0;padding:.85rem 1rem;color:var(--n-code-text);font-size:.875rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.command .line{display:block;min-height:1.65em;padding-inline-start:1.5em;text-indent:-1.5em}.command .line:nth-child(-n+2){padding-inline-end:4.5rem}.command pre:focus-visible{outline-offset:-3px}.command .c-comment{color:var(--n-faint)}.copy-button{position:absolute;inset-block-start:.45rem;inset-inline-end:.45rem;display:inline-flex;align-items:center;gap:.35rem;min-height:2.25rem;padding:0 .6rem;border:1px solid var(--n-line-strong);border-radius:var(--n-radius-sm);background:var(--n-surface);color:var(--n-muted);font-size:.8125rem;font-weight:600;cursor:pointer}.copy-button:hover{border-color:var(--n-control);color:var(--n-ink)}.copy-button[hidden]{display:none}@media(pointer:coarse){.copy-button{min-height:2.75rem}}.callout{display:grid;grid-template-columns:1.5rem minmax(0,1fr);gap:.75rem;padding:1.1rem 1.25rem;border:1px solid var(--n-line-strong);border-inline-start-width:4px;border-radius:var(--n-radius);background:var(--n-surface)}.callout>.icon{margin-top:.2rem;color:var(--n-muted)}.callout--caution{border-color:var(--n-warn-line);border-inline-start-color:var(--n-warn);background:var(--n-warn-soft)}.callout--caution>.icon{color:var(--n-warn)}.callout__body{display:grid;gap:.5rem}.callout__title{margin:0;color:var(--n-ink);font-size:1rem;font-weight:650;line-height:1.5}.article .callout{margin-bottom:1.75rem}.callout__body ul{display:grid;gap:.35rem;padding-inline-start:1.15rem}.download-steps{display:grid;gap:clamp(3rem,6vw,4.5rem);counter-reset:download-step;list-style:none}.download-step{display:grid;gap:1.25rem;counter-increment:download-step}@media(min-width:60rem){.download-step{grid-template-columns:16rem minmax(0,1fr);gap:3rem}}.download-step__heading{display:grid;gap:.5rem;align-content:start}.download-step__heading:before{content:"Step " counter(download-step);color:var(--n-faint);font-family:var(--n-font-mono);font-size:.8125rem}.download-step__heading h2{font-size:1.375rem;line-height:1.25;letter-spacing:-.015em}.download-step__body{display:grid;gap:1rem;min-width:0}.files{width:100%;border-collapse:collapse;font-size:.9375rem}.files th,.files td{padding:.75rem .75rem .75rem 0;border-bottom:1px solid var(--n-line);text-align:start;vertical-align:top}.files th{color:var(--n-faint);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.files td:last-child,.files th:last-child{padding-inline-end:0;text-align:end;white-space:nowrap}.files a{font-family:var(--n-font-mono);font-size:.875rem;font-weight:600;overflow-wrap:anywhere}.files__desc{display:block;color:var(--n-muted);font-size:.875rem}.release-summary{display:grid;gap:1rem;padding:clamp(1.25rem,3vw,1.75rem);border:1px solid var(--n-line-strong);border-radius:var(--n-radius-lg);background:var(--n-surface)}.release-summary__top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem}.release-summary__version{color:var(--n-ink);font-size:1.5rem;font-weight:650;letter-spacing:-.02em}.history{display:grid;list-style:none;border-top:1px solid var(--n-line)}.history li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding-block:.75rem;border-bottom:1px solid var(--n-line)}.history time{color:var(--n-faint);font-size:.9375rem}.news-list{display:grid;list-style:none;border-top:1px solid var(--n-line)}.news-item{display:grid;gap:.4rem;padding-block:1.5rem;border-bottom:1px solid var(--n-line)}@media(min-width:48rem){.news-item{grid-template-columns:9rem minmax(0,1fr);gap:2rem}}.news-item__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;color:var(--n-faint);font-size:.875rem}@media(min-width:48rem){.news-item__meta{flex-direction:column;align-items:start;gap:.35rem}}.article__header .news-item__meta{flex-direction:row;align-items:center}.news-item h2{font-size:1.25rem;line-height:1.3;letter-spacing:-.01em}.news-item h2 a{color:var(--n-ink);text-decoration:none}.news-item h2 a:hover{text-decoration:underline;text-decoration-thickness:1px}.news-item p{color:var(--n-muted)}.tag{display:inline-flex;padding:.05rem .5rem;border:1px solid var(--n-line-strong);border-radius:999px;color:var(--n-muted);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.article{padding-block:clamp(3rem,7vw,5rem)}.article__header{display:grid;gap:1rem;margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--n-line)}.article__header h1{font-size:clamp(2rem,1.5rem + 2vw,2.75rem);line-height:1.1;letter-spacing:-.03em}.back-link{font-size:.9375rem}.site-footer{margin-top:0;padding-block:3.5rem 2rem;border-top:1px solid var(--n-line);background:var(--n-bg-subtle);font-size:.9375rem}.site-footer__grid{display:grid;gap:2.5rem 2rem;grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__brand{display:grid;gap:.75rem;grid-column:1 / -1;align-content:start;max-width:22rem}.site-footer__brand p{color:var(--n-muted)}.site-footer__column h2{margin-bottom:.75rem;color:var(--n-faint);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.site-footer__column ul{display:grid;gap:.15rem;list-style:none}.site-footer__column a{display:inline-flex;align-items:center;min-height:2.5rem;color:var(--n-text);text-decoration:none}.site-footer__column a:hover{color:var(--n-link);text-decoration:underline}.site-footer__meta{display:grid;gap:.5rem;margin-top:2.5rem;color:var(--n-faint);font-size:.875rem}.site-footer__meta:before{content:"";display:block;border-top:1px solid var(--n-line);margin-bottom:1rem}.site-footer__meta a{color:inherit}@media(min-width:52rem){.site-footer__grid{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr))}.site-footer__brand{grid-column:auto}.site-footer__meta{grid-template-columns:minmax(0,1fr) auto;column-gap:1rem}.site-footer__meta:before{grid-column:1 / -1}}.link-list{display:grid;list-style:none;border-top:1px solid var(--n-line)}.link-list a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.25rem;padding-block:.75rem;border-bottom:1px solid var(--n-line);color:var(--n-ink);font-weight:600;text-decoration:none}.link-list a:hover{color:var(--n-link)}.link-list small{display:block;color:var(--n-muted);font-size:.9rem;font-weight:400}.cta-band{display:grid;gap:1.5rem;justify-items:start}@media(min-width:52rem){.cta-band{grid-template-columns:minmax(0,1fr) auto;align-items:end}}.stack-sm>*+*{margin-top:.75rem}.stack>*+*{margin-top:1.25rem}.block-gap{margin-top:clamp(2.5rem,5vw,3.5rem)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}
