@font-face{font-family:Archivo;src:url(/fonts/Archivo-latin-var.woff2)format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-latin-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--nf-font-sans);font-size:var(--nf-size-body);line-height:var(--nf-leading-body);font-weight:var(--nf-weight-regular);font-variation-settings:"wdth" var(--nf-width-text);background:var(--nf-color-surface-sheet);color:var(--nf-color-text-on-sheet);margin:0}img,svg{max-width:100%;display:block}.nf-sheet{--nf-c-bg:var(--nf-color-surface-sheet);--nf-c-fg:var(--nf-color-text-on-sheet);--nf-c-fg-2:var(--nf-color-text-on-sheet-secondary);--nf-c-meta:var(--nf-color-text-on-sheet-secondary);--nf-c-rule:var(--nf-color-structure-sheet-rule);--nf-c-rule-strong:var(--nf-color-structure-sheet-rule-strong);--nf-c-line:var(--nf-color-structure-sheet-line);--nf-c-signal:var(--nf-color-signal-on-sheet);--nf-c-focus:var(--nf-color-focus-on-sheet);background:var(--nf-c-bg);color:var(--nf-c-fg)}.nf-sheet-sunk{--nf-c-bg:var(--nf-color-surface-sheet-sunk);--nf-c-signal:var(--nf-color-signal-on-sheet-sunk);background:var(--nf-c-bg)}.nf-shop{--nf-c-bg:var(--nf-color-surface-shop);--nf-c-fg:var(--nf-color-text-on-shop);--nf-c-fg-2:var(--nf-color-text-on-shop-secondary);--nf-c-meta:var(--nf-color-text-on-shop-meta);--nf-c-rule:var(--nf-color-structure-shop-rule);--nf-c-rule-strong:var(--nf-color-structure-shop-rule-strong);--nf-c-line:var(--nf-color-structure-shop-line);--nf-c-signal:var(--nf-color-signal-on-shop);--nf-c-focus:var(--nf-color-focus-on-shop);background:var(--nf-c-bg);color:var(--nf-c-fg)}a{color:inherit;text-decoration-thickness:var(--nf-border-hairline);text-underline-offset:.2em}.nf-sheet :focus-visible,.nf-shop :focus-visible{outline:var(--nf-border-focus) solid var(--nf-c-focus);outline-offset:var(--nf-border-focus-offset)}.nf-shell{width:100%;max-width:var(--nf-grid-max);padding-inline:var(--nf-grid-margin);grid-template-columns:repeat(var(--nf-columns-count), minmax(0, 1fr));column-gap:var(--nf-grid-gutter);margin-inline:auto;display:grid}.nf-shell>*{grid-column:1/-1}@media (width>=60rem){.nf-span-7{grid-column:1/span 7}.nf-span-5-end{grid-column:8/-1}.nf-span-8{grid-column:1/span 8}.nf-span-6{grid-column:1/span 6}}.nf-meta,.nf-label,.nf-callout{font-family:var(--nf-font-mono);font-size:var(--nf-size-meta);line-height:var(--nf-leading-meta);letter-spacing:var(--nf-tracking-meta);text-transform:uppercase;font-weight:var(--nf-weight-regular);color:var(--nf-c-meta)}.nf-header{border-bottom:var(--nf-border-hairline) solid var(--nf-c-rule)}.nf-header .nf-shell{padding-block:var(--nf-space-6) var(--nf-space-4);align-items:end;row-gap:var(--nf-space-4)}.nf-wordmark{align-items:center;gap:var(--nf-space-3);min-height:var(--nf-tap-min);font-weight:var(--nf-weight-semibold);font-size:var(--nf-size-body);font-variation-settings:"wdth" var(--nf-width-display);letter-spacing:var(--nf-tracking-heading);grid-column:1/span 6;text-decoration:none;display:inline-flex}.nf-wordmark svg{width:1.75rem;height:1.75rem;color:var(--nf-c-line)}.nf-nav{grid-column:1/-1}.nf-nav ul{column-gap:var(--nf-space-6);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.nf-nav a{min-height:var(--nf-tap-min);font-family:var(--nf-font-mono);font-size:var(--nf-size-meta);letter-spacing:var(--nf-tracking-meta);text-transform:uppercase;color:var(--nf-c-fg-2);background-image:linear-gradient(var(--nf-c-line), var(--nf-c-line));background-position:0 85%;background-repeat:no-repeat;background-size:0% var(--nf-border-hairline);transition:background-size var(--nf-duration-slow) var(--nf-easing-settle), color var(--nf-duration-fast) var(--nf-easing-lock);align-items:center;text-decoration:none;display:inline-flex}.nf-nav a:hover{color:var(--nf-c-fg);background-size:100% var(--nf-border-hairline)}.nf-nav a[aria-current=page]{color:var(--nf-c-fg);background-image:linear-gradient(var(--nf-c-signal), var(--nf-c-signal));background-size:100% var(--nf-border-strong)}@media (width>=60rem){.nf-wordmark{font-size:var(--nf-size-subheading);grid-column:1/span 5}.nf-nav{grid-column:6/-1;justify-self:end}}.nf-titleblock{border-bottom:var(--nf-border-hairline) solid var(--nf-c-rule)}.nf-titleblock .nf-shell{padding-block:var(--nf-space-3)}.nf-titleblock dl{column-gap:var(--nf-space-8);row-gap:var(--nf-space-1);flex-wrap:wrap;margin:0;display:flex}.nf-titleblock div{gap:var(--nf-space-2);display:flex}.nf-titleblock dt,.nf-titleblock dd{margin:0}.nf-titleblock dd{color:var(--nf-c-fg)}h1,h2,h3{font-weight:var(--nf-weight-semibold);text-wrap:balance;margin:0}.nf-display{font-size:var(--nf-size-display-xl);line-height:var(--nf-leading-display);letter-spacing:var(--nf-tracking-display);font-variation-settings:"wdth" var(--nf-width-display)}.nf-title{font-size:var(--nf-size-display);line-height:var(--nf-leading-display);letter-spacing:var(--nf-tracking-display);font-variation-settings:"wdth" var(--nf-width-display)}h2{font-size:var(--nf-size-heading);line-height:var(--nf-leading-heading);letter-spacing:var(--nf-tracking-heading);font-variation-settings:"wdth" var(--nf-width-label)}.nf-lede{font-size:var(--nf-size-lede);line-height:var(--nf-leading-heading);color:var(--nf-c-fg-2);font-weight:var(--nf-weight-light);max-width:34em;margin:0}.nf-prose{max-width:38em;color:var(--nf-c-fg-2)}.nf-prose p{margin:0 0 var(--nf-space-4)}.nf-section{padding-block:var(--nf-space-section)}.nf-section .nf-shell{row-gap:var(--nf-space-12)}.nf-section-head{align-items:baseline;gap:var(--nf-space-4);display:flex}.nf-hero .nf-shell{padding-block:var(--nf-space-16) var(--nf-space-section);row-gap:var(--nf-space-12);align-items:end}.nf-hero-copy{gap:var(--nf-space-8);display:grid}.nf-hero-object figcaption{margin-top:var(--nf-space-3);justify-content:space-between;gap:var(--nf-space-4);flex-wrap:wrap;display:flex}.nf-actions{gap:var(--nf-space-4);flex-wrap:wrap;align-items:center;display:flex}.nf-action{align-items:center;gap:var(--nf-space-3);min-height:var(--nf-tap-min);padding:0 var(--nf-space-6);background:var(--nf-color-signal-fill);color:var(--nf-color-signal-on-fill);border-radius:var(--nf-radius-control);font-weight:var(--nf-weight-semibold);font-variation-settings:"wdth" var(--nf-width-label);letter-spacing:var(--nf-tracking-label);transition:background-color var(--nf-duration-fast) var(--nf-easing-lock);text-decoration:none;display:inline-flex}.nf-action:hover{background:var(--nf-color-signal-fill-strong)}.nf-action svg{width:1rem;height:1rem;transition:transform var(--nf-duration-base) var(--nf-easing-settle)}.nf-action:hover svg{transform:translate(3px)}.nf-link{min-height:var(--nf-tap-min);color:var(--nf-c-fg);font-weight:var(--nf-weight-medium);align-items:center;display:inline-flex}.nf-index{border-top:var(--nf-border-hairline) solid var(--nf-c-rule-strong);margin:0;padding:0;list-style:none}.nf-index li{border-bottom:var(--nf-border-hairline) solid var(--nf-c-rule)}.nf-index a{align-items:baseline;gap:var(--nf-space-4);padding-block:var(--nf-space-6);grid-template-columns:5rem minmax(0,1fr) auto;text-decoration:none;display:grid;position:relative}.nf-index a:after{content:"";left:0;bottom:calc(-1 * var(--nf-border-hairline));height:var(--nf-border-hairline);background:var(--nf-c-rule-strong);transform-origin:0;width:100%;transition:transform var(--nf-duration-slower) var(--nf-easing-settle);position:absolute;transform:scaleX(0)}.nf-index a:hover:after,.nf-index a:focus-visible:after{transform:scaleX(1)}.nf-index .nf-index-title{font-size:var(--nf-size-heading);line-height:var(--nf-leading-heading);letter-spacing:var(--nf-tracking-heading);font-weight:var(--nf-weight-medium);font-variation-settings:"wdth" var(--nf-width-label)}.nf-index .nf-index-arrow{width:1.25rem;height:1.25rem;color:var(--nf-c-line);transition:transform var(--nf-duration-base) var(--nf-easing-settle)}.nf-index a:hover .nf-index-arrow{transform:translate(4px)}.nf-spec{border-top:var(--nf-border-strong) solid var(--nf-c-rule-strong);margin:0}.nf-spec>div{gap:var(--nf-space-2);padding-block:var(--nf-space-4);border-bottom:var(--nf-border-hairline) solid var(--nf-c-rule);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=40rem){.nf-spec>div{gap:var(--nf-space-6);grid-template-columns:14rem minmax(0,1fr)}}.nf-spec dt{font-family:var(--nf-font-mono);font-size:var(--nf-size-meta);letter-spacing:var(--nf-tracking-meta);text-transform:uppercase;color:var(--nf-c-meta);overflow-wrap:anywhere;padding-top:.35em}.nf-spec dd{margin:0}.nf-drawing .nf-d-outline{fill:none;stroke:var(--nf-c-fg);stroke-width:1.5px}.nf-drawing .nf-d-hidden{fill:none;stroke:var(--nf-c-meta);stroke-width:1px;stroke-dasharray:6 4}.nf-drawing .nf-d-centre{fill:none;stroke:var(--nf-c-line);stroke-width:1px;stroke-dasharray:18 4 2 4;opacity:.7}.nf-drawing .nf-d-dim{fill:none;stroke:var(--nf-c-line);stroke-width:1px}.nf-drawing .nf-d-hatch{fill:none;stroke:var(--nf-c-meta);stroke-width:.75px}.nf-drawing .nf-d-arrow{fill:var(--nf-c-line)}.nf-drawing .nf-callout{fill:var(--nf-c-fg-2);text-transform:none;letter-spacing:.04em;font-size:10px}.nf-drawing .nf-marker--selected{fill:var(--nf-c-signal)}.nf-footer .nf-shell{padding-block:var(--nf-space-16) var(--nf-space-8);row-gap:var(--nf-space-12)}.nf-footer-mark{font-size:var(--nf-size-display);line-height:var(--nf-leading-display);letter-spacing:var(--nf-tracking-display);font-weight:var(--nf-weight-semibold);font-variation-settings:"wdth" var(--nf-width-display);margin:0}.nf-footer-rule{border:0;border-top:var(--nf-border-hairline) solid var(--nf-c-rule);margin:0}.nf-footer-meta{justify-content:space-between;gap:var(--nf-space-4);flex-wrap:wrap;display:flex}.nf-footer .nf-nav{grid-column:1/-1;justify-self:start}@media (prefers-reduced-motion:no-preference){.nf-reveal{animation:nf-reveal var(--nf-duration-slower) var(--nf-easing-settle) both}.nf-reveal-2{animation-delay:var(--nf-duration-fast)}.nf-drawing .nf-d-draw{stroke-dasharray:1200;stroke-dashoffset:1200px;animation:nf-draw var(--nf-duration-illustration-build) var(--nf-easing-settle) var(--nf-duration-base) 1 forwards}.nf-drawing .nf-d-settle{animation:nf-settle var(--nf-duration-slower) var(--nf-easing-settle) calc(var(--nf-duration-base) + var(--nf-duration-illustration-build)) both}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation:none!important}}@keyframes nf-reveal{0%{clip-path:inset(0 0 100%);transform:translateY(.12em)}to{clip-path:inset(0);transform:translateY(0)}}@keyframes nf-draw{to{stroke-dashoffset:0}}@keyframes nf-settle{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}
