@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ny-ink-950:#050505;--ny-ink-900:#0b0b0b;--ny-ink-800:#141414;--ny-ink-700:#262626;--ny-ink-600:#4a4a4a;--ny-ink-500:#6b6b6b;--ny-ink-400:#8e8e8e;--ny-ink-300:#b4b4b4;--ny-paper:#ededea;--ny-paper-50:#f6f6f3;--ny-paper-100:#ecece8;--ny-paper-200:#d6d6d1;--ny-lens:#fff;--ny-lens-ink:#0a0a0a;--ny-white:#fff;--ny-exposed:#ff6b5e;--ny-traceable:#ff9f43;--ny-moderate:#f2c94c;--ny-private:#4fd1a5;--ny-exposed-ink:#b8352a;--ny-traceable-ink:#a04a00;--ny-moderate-ink:#7a5b00;--ny-private-ink:#0e7552;--ny-gradient-brand:radial-gradient(70% 90% at 42% 38%, #141414 0%, #030303 70%);--ny-gradient-subtle:radial-gradient(80% 60% at 70% 0%, #ffffff0f 0%, #fff0 70%), #050505;--ny-glow-sm:0 0 6px #ffffff59;--ny-glow-md:0 0 22px #fff3;--ny-glow-lg:0 0 64px #ffffff1f;--ny-grain-texture:url(./textures/grain-web.png);--ny-grain-size:256px;--ny-grain-opacity-dark:.18;--ny-grain-opacity-light:.08;--ny-grain-blend:overlay;--ny-grain-blend-light:multiply;--ny-font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--ny-font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--ny-text-display:600 56px/60px var(--ny-font-sans);--ny-tracking-display:-.02em;--ny-text-h1:600 40px/46px var(--ny-font-sans);--ny-tracking-h1:-.015em;--ny-text-h2:600 28px/34px var(--ny-font-sans);--ny-tracking-h2:-.01em;--ny-text-h3:600 20px/28px var(--ny-font-sans);--ny-tracking-h3:0;--ny-text-body:400 16px/26px var(--ny-font-sans);--ny-tracking-body:0;--ny-text-small:400 14px/20px var(--ny-font-sans);--ny-tracking-small:0;--ny-text-label:500 12px/16px var(--ny-font-mono);--ny-tracking-label:.06em;--ny-text-score:600 72px/72px var(--ny-font-mono);--ny-tracking-score:-.03em;--ny-text-address:400 14px/20px var(--ny-font-mono);--ny-tracking-address:0;--ny-radius-xs:4px;--ny-radius-sm:6px;--ny-radius-md:10px;--ny-radius-lg:14px;--ny-radius-xl:20px;--ny-radius-pill:999px;--ny-space-0:0px;--ny-space-1:4px;--ny-space-2:8px;--ny-space-3:12px;--ny-space-4:16px;--ny-space-5:24px;--ny-space-6:32px;--ny-space-7:48px;--ny-space-8:64px;--ny-space-9:96px;--ny-space-10:128px;--ny-border:1px solid var(--ny-line);--ny-border-control:1px solid var(--ny-line-control);--ny-focus:2px solid var(--ny-accent);--ny-focus-offset:2px;--ny-motion-fast:.12s;--ny-motion-base:.18s;--ny-motion-slow:.32s;--ny-motion-ease:cubic-bezier(.2, 0, 0, 1);--ny-max-width:1120px;--ny-gutter:24px;--ny-gutter-mobile:16px;--ny-bg:var(--ny-ink-950);--ny-surface:var(--ny-ink-900);--ny-raised:var(--ny-ink-800);--ny-line:var(--ny-ink-700);--ny-text:var(--ny-paper);--ny-text-2:var(--ny-ink-300);--ny-text-3:var(--ny-ink-400);--ny-accent:var(--ny-lens);--ny-on-accent:var(--ny-ink-950);--ny-band-exposed:var(--ny-exposed);--ny-band-traceable:var(--ny-traceable);--ny-band-moderate:var(--ny-moderate);--ny-band-private:var(--ny-private);--ny-line-control:var(--ny-ink-500);--ny-confidence-high:1;--ny-confidence-medium:.7;--ny-confidence-low:.45}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ny-bg:var(--ny-paper-50);--ny-surface:var(--ny-paper-100);--ny-raised:var(--ny-paper-50);--ny-line:var(--ny-paper-200);--ny-text:var(--ny-ink-950);--ny-text-2:var(--ny-ink-600);--ny-text-3:var(--ny-ink-600);--ny-accent:var(--ny-lens-ink);--ny-on-accent:var(--ny-paper-50);--ny-band-exposed:var(--ny-exposed-ink);--ny-band-traceable:var(--ny-traceable-ink);--ny-band-moderate:var(--ny-moderate-ink);--ny-band-private:var(--ny-private-ink);--ny-line-control:var(--ny-ink-500);--ny-border:1px solid var(--ny-line);--ny-border-control:1px solid var(--ny-line-control);--ny-focus:2px solid var(--ny-accent)}:root{--n-bg:var(--ny-bg);--n-bg-raised:var(--ny-surface);--n-bg-hover:var(--ny-raised);--n-bg-sunk:oklch(from var(--ny-bg) calc(l * .85) c h);--n-line:var(--ny-line);--n-line-soft:color-mix(in srgb, var(--ny-line) 60%, transparent);--n-line-control:var(--ny-line-control);--n-focus:var(--ny-focus);--n-focus-offset:var(--ny-focus-offset);--n-text:var(--ny-text);--n-text-dim:var(--ny-text-2);--n-text-faint:var(--ny-text-3);--n-white:var(--ny-white);--n-accent:var(--ny-accent);--n-accent-ink:var(--ny-on-accent);--n-glow:var(--ny-accent);--n-grad-brand:var(--ny-gradient-brand,var(--ny-surface));--n-grad-subtle:var(--ny-gradient-subtle,var(--ny-bg));--n-band-exposed:var(--ny-band-exposed);--n-band-traceable:var(--ny-band-traceable);--n-band-moderate:var(--ny-band-moderate);--n-band-private:var(--ny-band-private);--n-sev-critical:var(--ny-band-exposed);--n-sev-high:var(--ny-band-traceable);--n-sev-medium:var(--ny-band-moderate);--n-sev-low:var(--ny-lens);--n-sev-info:var(--ny-text-3);--n-conf-likely:var(--ny-confidence-high);--n-conf-possible:var(--ny-confidence-medium);--n-conf-weak:var(--ny-confidence-low);--n-font-sans:var(--ny-font-sans);--n-font-mono:var(--ny-font-mono);--n-radius:var(--ny-radius-md);--n-radius-sm:var(--ny-radius-sm);--n-radius-lg:var(--ny-radius-lg);--n-maxw:var(--ny-max-width);--n-ease:var(--ny-motion-ease);--n-fast:var(--ny-motion-fast);--n-base:var(--ny-motion-base)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-padding-top:80px}body{background:var(--n-bg);min-height:100vh;color:var(--n-text);font-family:var(--n-font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;margin:0;font-size:16px;line-height:1.6;display:flex}main{flex:1}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{-webkit-text-decoration-color:var(--n-accent);text-decoration-color:var(--n-accent)}img,svg,canvas{max-width:100%;display:block}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}code,.mono{font-family:var(--n-font-mono)}:focus-visible{outline:var(--n-focus);outline-offset:var(--n-focus-offset);border-radius:4px}::selection{background:color-mix(in srgb, var(--n-accent) 40%, transparent);color:var(--n-white)}.wrap{width:100%;max-width:var(--n-maxw);margin:0 auto;padding:0 16px}@media (min-width:600px){.wrap{padding:0 24px}}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip{position:absolute;left:-9999px}.skip:focus{z-index:20;background:var(--n-bg-raised);border:1px solid var(--n-accent);border-radius:var(--n-radius-sm);padding:8px 12px;top:12px;left:12px}.site-head{z-index:10;background:var(--n-bg);border-bottom:1px solid var(--n-line-soft);position:sticky;top:0}.site-head .wrap{justify-content:space-between;align-items:center;gap:16px;height:64px;display:flex}.brand{color:var(--n-text);align-items:center;padding:6px 0;display:inline-flex}.brand-logo{width:auto;height:22px}.nav{align-items:center;gap:2px;display:flex}.nav-link{color:var(--n-text-dim);border-radius:var(--n-radius-sm);transition:color var(--n-fast) var(--n-ease);padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none}.nav-link:hover,.nav-link[aria-current=page]{color:var(--n-text)}.nav .nav-ext{display:none}@media (min-width:720px){.nav .nav-ext{display:inline-block}}.nav .btn{margin-left:6px}.btn{border-radius:var(--n-radius-sm);border:1px solid var(--n-line-control);background:var(--n-bg-raised);min-height:44px;color:var(--n-text);font:600 15px/1 var(--n-font-sans);white-space:nowrap;cursor:pointer;transition:background-color var(--n-fast) var(--n-ease), border-color var(--n-fast) var(--n-ease), transform var(--n-fast) var(--n-ease);justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--n-text-faint);background:var(--n-bg-hover)}.btn:active{transform:translateY(1px)}.btn-primary,.btn-primary:hover{background:var(--n-accent);border-color:var(--n-accent);color:var(--n-accent-ink)}.btn-primary:hover{background:color-mix(in srgb, var(--n-accent) 88%, var(--n-white))}.btn-ghost{background:0 0}.btn-sm{min-height:36px;padding:0 14px;font-size:14px}.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}.eyebrow{font:var(--ny-text-label);letter-spacing:.14em;text-transform:uppercase;color:var(--n-accent);margin:0 0 14px}.site-foot{border-top:1px solid var(--n-line-soft);color:var(--n-text-dim);background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--n-bg-sunk) 70%, transparent));margin-top:112px;padding:48px 0 40px;font-size:14px}.foot-top{gap:36px;display:grid}@media (min-width:860px){.foot-top{grid-template-columns:1fr 1.4fr}}.foot-brand p{max-width:320px;color:var(--n-text-faint);margin:14px 0 0}.foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;display:grid}@media (min-width:520px){.foot-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}.foot-col h2{font:var(--ny-text-label);letter-spacing:.1em;text-transform:uppercase;color:var(--n-text-faint);margin:0 0 12px}.foot-col ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.foot-col a,.foot-col .soon{white-space:nowrap;padding:4px 0;text-decoration:none;display:inline-block}.foot-col a:hover{color:var(--n-text)}.soon{color:var(--n-text-faint)}.soon small{font:500 10px/1 var(--n-font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--n-line);vertical-align:2px;border-radius:999px;margin-left:4px;padding:2px 6px}.foot-safety{border:1px solid var(--n-line-soft);border-radius:var(--n-radius);background:color-mix(in srgb, var(--n-bg-raised) 60%, transparent);max-width:820px;margin-top:40px;padding:16px 18px}.foot-safety p{margin:0}.foot-safety p+p{color:var(--n-text-faint);margin-top:6px}.foot-safety strong{color:var(--n-text);font-weight:500}.foot-bottom{font:400 12px/1.5 var(--n-font-mono);color:var(--n-text-faint);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:28px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.prose{max-width:760px;padding-top:48px}@media (min-width:900px){.prose{padding-top:88px}}.prose h1{letter-spacing:-.025em;margin:0 0 18px;font-size:clamp(32px,5vw,48px);font-weight:600;line-height:1.08}.prose .lede{color:var(--n-text-dim);margin:0 0 14px;font-size:18px}.updated{color:var(--n-text-faint);border-bottom:1px solid var(--n-line-soft);margin:0 0 40px;padding-bottom:28px;font-size:12px}.prose h2{letter-spacing:-.01em;margin:36px 0 10px;font-size:20px;font-weight:600}.prose p,.prose li{color:var(--n-text-dim)}.prose p{margin:0 0 14px}.prose ul{margin:0 0 14px;padding-left:20px}.prose li+li{margin-top:6px}.prose a{color:var(--n-text)}.prose .mono{color:var(--n-text);font-size:.92em}.nf{max-width:760px;padding-top:72px}@media (min-width:900px){.nf{padding-top:120px}}.nf-code{letter-spacing:-.04em;background:var(--n-grad-brand);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 18px;font-size:clamp(64px,14vw,128px);font-weight:600;line-height:1}.nf h1{letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(30px,5vw,46px);font-weight:600;line-height:1.1}.nf .lede{color:var(--n-text-dim);margin:0 0 28px;font-size:18px}.nf-actions{flex-wrap:wrap;gap:10px;display:flex}
