:root{color-scheme:light;--bg:#e9ebee;--surface:#fff;--ink:#2b2f36;--muted:#5b626d;--hairline:#c5cad3;--tint:#e2e5e9;--placeholder:#dde0e5;--accent:#3d7bff;--accent-strong:#235dd4;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-hero:clamp(56px, 7.6vw, 116px);--fs-h1:clamp(44px, 6vw, 88px);--fs-h2:clamp(40px, 5vw, 64px);--fs-h3:clamp(21px, 2.1vw, 28px);--fs-lead:clamp(18px, 1.5vw, 20px);--fs-body:17px;--fs-small:16px;--fs-label:13px;--fs-mono-num:clamp(26px, 2.6vw, 34px);--lh-tight:.95;--lh-head:1.05;--lh-body:1.47;--ls-hero:-.05em;--ls-head:-.04em;--ls-body:-.01em;--ls-label:.06em;--container:1280px;--container-wide:1376px;--gutter:clamp(20px, 4vw, 48px);--section-y:clamp(56px, 7vw, 96px);--header-h:57px;--radius-btn:10px;--radius-fig:6px;--radius-tag:4px;--tap:44px;--ease-out:cubic-bezier(.2, .7, .2, 1);--dur-fast:.2s;--dur-med:.4s;--dur-slow:.8s;--stagger:70ms}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px);touch-action:manipulation;-webkit-tap-highlight-color:#2b2f3614}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;margin:0;display:flex;overflow-x:clip}body>main{flex:1 0 auto}img,svg,video,picture{max-width:100%;display:block}img,video{height:auto}h1,h2,h3,h4,p,figure,dl,dd,ul,ol,blockquote{margin:0}h1,h2,h3,h4{text-wrap:balance;font-weight:600}p,li,dd{text-wrap:pretty}button{font:inherit;color:inherit}a{color:var(--accent-strong);transition:color var(--dur-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent);color:#fff}.mono{font-family:var(--font-mono);letter-spacing:0}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:max(var(--gutter), calc((100vw - var(--container-wide)) / 2 + var(--gutter)));z-index:100;background:var(--ink);color:#fff;border-radius:var(--radius-tag);font-size:var(--fs-small);padding:10px 16px;position:absolute;top:8px;transform:translateY(-200%)}.skip-link:focus-visible{color:#fff;transform:none}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.container-wide{width:100%;max-width:var(--container-wide);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-y)}.section--surface{background:var(--surface)}.section-label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;padding-bottom:14px;display:flex;position:relative}.section-label a{text-transform:none;letter-spacing:0}.section-label:after,.prose>h2:after{content:"";background:var(--ink);transform-origin:0;height:1px;position:absolute;bottom:0;left:0;right:0}.draw-pending:after{transition:transform .7s var(--ease-out);transform:scaleX(0)}.draw-pending.is-in:after{transform:scaleX(1)}.btn{border-radius:var(--radius-btn);min-height:48px;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform .12s var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:16px;line-height:1.2;display:inline-flex}.btn:active{transform:scale(.97)}.btn--primary{background:var(--accent-strong);color:#fff}.btn--primary:hover{background:var(--ink);color:#fff}.btn--outline{border-color:var(--ink);color:var(--ink)}.btn--outline:hover{background:var(--ink);color:#fff}.btn .mono{font-size:var(--fs-label)}.text-link{min-height:var(--tap);font-size:var(--fs-body);align-items:center;display:inline-flex}.fig-caption{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--muted);margin-top:10px;line-height:1.5}.fig-frame{border-radius:var(--radius-fig);background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);overflow:hidden}.fig--svg .fig-frame{background:var(--surface);border:1px solid var(--hairline)}.fig--svg svg{width:100%;height:auto;display:block}@media (width<=759.98px){.fig--svg .fig-frame{overscroll-behavior-x:contain;overflow-x:auto}.fig--svg svg{width:640px;max-width:none}}[data-reveal].reveal-pending:not(.is-in){opacity:0;transform:translateY(24px)}[data-reveal].reveal-pending{transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);transition-delay:var(--reveal-delay,0s)}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.26s;animation-timing-function:var(--ease-out)}::view-transition-group(.proj){animation-duration:.45s;animation-timing-function:var(--ease-out)}::view-transition-old(.proj),::view-transition-new(.proj){object-fit:cover;height:100%}::view-transition-new(.proj):only-child{animation:vt-hero-in .45s var(--ease-out) both}::view-transition-old(.proj):only-child{animation-duration:.2s}@keyframes vt-hero-in{0%{opacity:0;transform:scale(.96)}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.prose{max-width:760px;font-size:var(--fs-body);flex-direction:column;gap:20px;display:flex}.prose>h2{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--muted);margin-top:clamp(24px,4vw,48px);padding-bottom:12px;font-weight:500;position:relative}.prose>h2:first-child{margin-top:0}.prose>h3{font-size:var(--fs-h3);letter-spacing:-.025em;margin-top:12px;line-height:1.15}.prose p,.prose li{line-height:1.55}.prose>p,.prose>ul,.prose>h3{max-width:68ch}.prose p.lede,.prose>p:first-of-type{font-size:var(--fs-lead);line-height:1.4}.prose ul{flex-direction:column;gap:10px;margin:0;padding-left:1.1em;display:flex}.prose li::marker{color:var(--muted)}.prose strong{font-weight:600}.prose figure{margin-block:12px}.prose .pair{grid-template-columns:minmax(0,1fr);gap:24px;display:grid}.prose .note{background:var(--surface);border-radius:var(--radius-fig);font-size:var(--fs-small);padding:14px 16px}@media (width>=760px){.prose .pair{grid-template-columns:1fr 1fr}}.prose .fig--plot .fig-frame{background:#fff}.prose .fig--plot .fig__img{object-fit:contain}.prose .spec{border-top:1px solid var(--ink);grid-template-columns:minmax(0,1fr);max-width:68ch;margin:0;display:grid}.prose .spec div{border-bottom:1px solid var(--hairline);justify-content:space-between;gap:16px;padding:10px 0;display:flex}.prose .spec dt{font-size:var(--fs-label);color:var(--muted)}.prose .spec dd{font-family:var(--font-mono);margin:0;font-size:15px}@media (width>=760px){.prose .spec{grid-template-columns:1fr 1fr;column-gap:32px}}.prose .fig--narrow{max-width:420px}.site-header[data-astro-cid-fzpbxy5g]{background:var(--bg);border-bottom:1px solid var(--hairline);z-index:50;position:sticky;top:0}.site-header__bar[data-astro-cid-fzpbxy5g]{justify-content:space-between;align-items:center;gap:24px;height:56px;display:flex}.site-header__brand[data-astro-cid-fzpbxy5g]{color:var(--ink);min-height:var(--tap);align-items:center;gap:12px;display:flex}.site-header__brand[data-astro-cid-fzpbxy5g]:hover{color:var(--ink)}.site-header__name[data-astro-cid-fzpbxy5g]{white-space:nowrap;letter-spacing:-.01em;font-size:15px;font-weight:600}.site-header__domain[data-astro-cid-fzpbxy5g]{font-size:var(--fs-label);color:var(--muted);transition:opacity var(--dur-fast) var(--ease-out)}.site-header[data-astro-cid-fzpbxy5g].is-scrolled .site-header__domain[data-astro-cid-fzpbxy5g]{opacity:0}.site-header__nav[data-astro-cid-fzpbxy5g]{align-items:center;gap:28px;font-size:14px;display:flex}.site-header__nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{color:var(--ink);transition:border-color var(--dur-fast) var(--ease-out);border-bottom:1px solid #0000;padding:6px 0}.site-header__nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover,.site-header__nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g][aria-current=page]{border-bottom-color:var(--ink);color:var(--ink)}.site-header__toggle[data-astro-cid-fzpbxy5g]{min-height:var(--tap);min-width:var(--tap);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:15px;display:none}.site-header__sheet[data-astro-cid-fzpbxy5g]{padding:4px var(--gutter) 20px;letter-spacing:-.02em;flex-direction:column;font-size:26px;font-weight:600;display:none}.site-header__sheet[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{color:var(--ink);border-bottom:1px solid var(--hairline);padding:12px 0}.site-header__sheet[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g][aria-current=page]{color:var(--accent-strong)}.site-header__progress[data-astro-cid-fzpbxy5g]{background:var(--accent);transform-origin:0;pointer-events:none;height:2px;display:none;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.site-header__progress[data-astro-cid-fzpbxy5g]{animation:linear both read-progress;display:block}.site-header[data-astro-cid-fzpbxy5g]>.site-header__progress[data-astro-cid-fzpbxy5g]{animation-timeline:scroll(root)}}}@keyframes read-progress{to{transform:scaleX(1)}}.site-header[data-astro-cid-fzpbxy5g]{view-transition-name:site-header}@media (width<=1023.98px){.site-header__domain[data-astro-cid-fzpbxy5g]{display:none}}@media (width<=759.98px){.site-header__nav[data-astro-cid-fzpbxy5g]{display:none}html.js .site-header__toggle[data-astro-cid-fzpbxy5g]{justify-content:flex-end;align-items:center;display:inline-flex}html:not(.js) .site-header__sheet[data-astro-cid-fzpbxy5g]{font-size:19px;display:flex}html.js .site-header__sheet[data-astro-cid-fzpbxy5g]{max-height:calc(100dvh - var(--header-h));overscroll-behavior:contain;background:var(--bg);border-bottom:1px solid var(--hairline);position:absolute;top:calc(100% + 1px);left:0;right:0;overflow-y:auto}html.js .site-header__sheet[data-astro-cid-fzpbxy5g].is-open{display:flex}}.site-footer[data-astro-cid-nns7i3if]{border-top:1px solid var(--hairline);padding:24px 0 40px}.site-footer__inner[data-astro-cid-nns7i3if]{font-size:var(--fs-label);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px 32px;display:flex}.site-footer__contact[data-astro-cid-nns7i3if],.site-footer__meta[data-astro-cid-nns7i3if]{flex-wrap:wrap;gap:8px 24px;display:flex}.site-footer__contact[data-astro-cid-nns7i3if] a{color:var(--ink);min-height:var(--tap);align-items:center;display:inline-flex}.site-footer__contact[data-astro-cid-nns7i3if] a:hover{color:var(--accent-strong)}.site-footer__meta[data-astro-cid-nns7i3if]{align-items:center}@media (width<=759.98px){.site-footer__contact[data-astro-cid-nns7i3if]{flex-direction:column;gap:0}.site-footer__meta[data-astro-cid-nns7i3if]{flex-direction:column;align-items:flex-start;gap:4px}}main[data-astro-cid-z4jru4n3]:focus{outline:none}
