@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:url(/fonts/ibm-plex-sans-latin-700-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;src:url(/fonts/ibm-plex-mono-latin-600-normal.woff2)format("woff2");font-display:swap}:root{--color-brand-navy:#0a2f4c;--color-brand-navy-deep:#071f33;--color-brand-foam:#f4f6f8;--color-brand-horizon:#9fb6c6;--color-brand-slate:#5a6b78;--color-brand-blue-ink:#2166bc;--color-data-blue:#2a78d6;--color-data-aqua:#1baf7a;--color-data-violet:#4a3aa7;--color-data-red:#e34948;--color-data-gold:#d99b1c;--color-data-ink:#0b0b0b;--color-data-muted:#898781;--color-data-grid:#e1e0d9;--color-semantic-accent:#2a78d6;--color-semantic-accent-text:#2166bc;--color-semantic-positive:#1baf7a;--color-semantic-warning:#d99b1c;--color-semantic-danger:#e34948;--color-semantic-text:#0b0b0b;--color-semantic-text-secondary:#5a6b78;--color-semantic-text-inverse:#f4f6f8;--radius-sm:2px;--radius-md:6px;--radius-lg:12px;--font-display:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--text-xs:.8rem;--text-sm:1rem;--text-md:1.25rem;--text-lg:1.563rem;--text-xl:1.953rem;--text-xxl:2.441rem;--text-hero:3.052rem;--space-unit:8px;--bg:color-mix(in srgb, var(--color-data-grid) 35%, #fff);--bg-2:color-mix(in srgb, var(--color-data-grid) 60%, #fff);--surface:#fff;--paper:#fff;--ink:var(--color-brand-navy);--ink-body:#23394b;--ink-2:var(--color-semantic-text-secondary);--link:var(--color-semantic-accent-text);--accent:var(--color-semantic-accent);--accent-ink:var(--color-brand-blue-ink);--tint:color-mix(in srgb, var(--color-data-blue) 12%, #fff);--tint-2:color-mix(in srgb, var(--color-data-blue) 6%, #fff);--navy:var(--color-brand-navy);--on-ink:#fff;--navy-deep:var(--color-brand-navy-deep);--horizon:var(--color-brand-horizon);--line:color-mix(in srgb, var(--color-brand-navy) 12%, #fff);--line-2:color-mix(in srgb, var(--color-brand-navy) 7%, #fff);--s:var(--space-unit);--max:76rem;--gutter:clamp(16px, 4vw, 48px);--header-h:64px;--ease-out:cubic-bezier(.16, 1, .3, 1)}.island,.site-header.on-island:not(.scrolled):not(.open){--bg:var(--color-brand-navy-deep);--bg-2:color-mix(in srgb, var(--color-brand-navy-deep) 55%, var(--color-brand-navy));--surface:var(--color-brand-navy);--paper:var(--color-brand-navy);--ink:var(--color-brand-foam);--ink-body:color-mix(in srgb, var(--color-brand-foam) 82%, var(--color-brand-horizon));--ink-2:var(--color-brand-horizon);--accent-ink:color-mix(in srgb, var(--color-data-blue) 55%, #fff);--link:var(--accent-ink);--tint:color-mix(in srgb, var(--color-data-blue) 30%, var(--color-brand-navy-deep));--tint-2:color-mix(in srgb, var(--color-data-blue) 12%, var(--color-brand-navy-deep));--navy:var(--color-brand-foam);--on-ink:var(--color-brand-navy-deep);--line:color-mix(in srgb, var(--color-brand-horizon) 24%, var(--color-brand-navy-deep));--line-2:color-mix(in srgb, var(--color-brand-horizon) 12%, var(--color-brand-navy-deep));color-scheme:dark;background-color:var(--bg);color:var(--ink-body)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}body{background:var(--bg);color:var(--ink-body);font-family:var(--font-display);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:clip}img,svg,video{max-width:100%;height:auto}a{color:var(--link);text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent);color:#fff}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.025em;margin:0 0 calc(var(--s) * 2);font-weight:600;line-height:1.08}h1{font-size:clamp(2.5rem,6.4vw,5.2rem)}h2{font-size:clamp(1.9rem,4vw,3.1rem)}h3{font-size:var(--text-md);letter-spacing:-.01em}p{margin:0 0 calc(var(--s) * 2)}.wrap{max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.narrow{max-width:50rem}.section{padding-block:clamp(64px,8vw,112px);position:relative}.section.tint{background:var(--bg-2)}.section.grid-bg{background-color:var(--bg-2);background-image:linear-gradient(var(--line-2) 1px, transparent 1px), linear-gradient(90deg, var(--line-2) 1px, transparent 1px);background-position:top;background-size:64px 64px}.label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 calc(var(--s) * 3);align-items:center;gap:10px;font-size:.75rem;font-weight:500;display:inline-flex}.label:before{content:"";background:currentColor;width:18px;height:1.5px}.label.plain:before{display:none}.mono-copy{font-family:var(--font-mono);color:var(--ink-2);max-width:40rem;font-size:.95rem;line-height:1.75}.mono{font-family:var(--font-mono)}.hl{color:var(--navy);background:linear-gradient(var(--tint), var(--tint)) no-repeat left center / 0% 100%;transition:background-size .9s var(--ease-out);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;padding:.05em .3em}.in .hl,.hl.in,html:not(.js) .hl{background-size:100% 100%}.lead{color:var(--ink-2);max-width:44rem;font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.55}mark.block{color:#fff;background:linear-gradient(var(--accent), var(--accent)) no-repeat left center / 100% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size 1s var(--ease-out) .35s, color .4s ease .65s;margin-left:-.04em;padding:0 .12em}html.js [data-reveal]:not(.in) mark.block{color:var(--ink);background-size:0% 100%}.btn{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1.5px solid var(--navy);transition:background-color .2s, color .2s, border-color .2s, transform .2s var(--ease-out);border-radius:2px;align-items:center;gap:12px;padding:14px 22px;font-size:.8rem;font-weight:500;text-decoration:none;display:inline-flex}.btn .arr{transition:transform .25s var(--ease-out)}.btn:hover .arr{transform:translate(4px)}.btn-primary{background:var(--navy);color:var(--on-ink)}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn-ghost{color:var(--navy);background:color-mix(in srgb, var(--bg) 60%, transparent)}.btn-ghost:hover{background:var(--navy);color:var(--on-ink)}.btn-row{gap:calc(var(--s) * 2);margin-top:calc(var(--s) * 4);flex-wrap:wrap;display:flex}.grid{gap:calc(var(--s) * 2);display:grid}@media (width>=760px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}}.card{background:var(--surface);border:1px solid var(--line);padding:calc(var(--s) * 4);transition:border-color .25s, transform .35s var(--ease-out), box-shadow .35s;border-radius:4px}.card h3{margin-bottom:var(--s)}.card p:last-child{margin-bottom:0}a.card,.vcard{color:inherit;text-decoration:none}a.card:hover,a.vcard:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 18px 40px -24px #0a2f4c59}.vcard{border:1px solid var(--line);background:var(--surface);transition:border-color .25s, transform .35s var(--ease-out), box-shadow .35s;border-radius:4px;flex-direction:column;display:flex;overflow:hidden}.vcard .visual{aspect-ratio:4/3;background:var(--tint-2);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.vcard .visual>img,.vcard .visual>svg{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease-out);position:absolute;inset:0}.vcard:hover .visual>img,.vcard:hover .visual>svg{transform:scale(1.04)}.vcard .pills{z-index:1;flex-wrap:wrap;gap:6px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.vcard .body{flex-direction:column;flex:1;gap:8px;padding:20px 22px 24px;display:flex}.vcard .body h3{justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex}.vcard .body h3 .arr{color:var(--accent);transition:transform .25s var(--ease-out)}.vcard:hover .body h3 .arr{transform:translate(4px)}.vcard .body p{color:var(--ink-2);margin:0;font-size:.97rem}.pill{font-family:var(--font-mono);letter-spacing:.04em;background:color-mix(in srgb, var(--bg) 85%, transparent);color:var(--navy);border:1px solid var(--line);backdrop-filter:blur(4px);border-radius:999px;padding:4px 10px;font-size:.7rem;display:inline-block}.tag{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:var(--tint);color:var(--accent-ink);border-radius:2px;padding:3px 8px;font-size:.7rem;display:inline-block}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:clamp(32px,5vw,56px);display:flex}.section-head h2{max-width:18ch;margin:0}.arrow-link{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);align-items:center;gap:10px;font-size:.8rem;text-decoration:none;display:inline-flex}.arrow-link:hover{color:var(--accent-ink)}.arrow-link span{transition:transform .25s var(--ease-out)}.arrow-link:hover span{transform:translate(4px)}.page-head{padding-block:calc(var(--header-h) + clamp(56px, 9vw, 120px)) clamp(48px, 7vw, 96px);background-color:var(--bg-2);background-image:linear-gradient(var(--line-2) 1px, transparent 1px), linear-gradient(90deg, var(--line-2) 1px, transparent 1px);border-bottom:1px solid var(--line);background-size:64px 64px;position:relative;overflow:hidden}.page-head h1{max-width:18ch;font-size:clamp(2.3rem,5.5vw,4.4rem)}.prose{max-width:44rem;color:var(--ink-body);font-size:1.125rem}.prose h2{font-size:var(--text-xl);margin-top:calc(var(--s) * 7)}.prose h3{font-size:var(--text-lg);margin-top:calc(var(--s) * 5)}.prose h4,.prose h5,.prose h6{font-size:var(--text-md);margin-top:calc(var(--s) * 4)}.prose img{margin:calc(var(--s) * 4) auto;border-radius:4px;display:block}.prose ul,.prose ol{margin:0 0 calc(var(--s) * 2);padding-left:1.4em}.prose li{margin-bottom:var(--s)}.prose blockquote{margin:calc(var(--s) * 3) 0;padding:var(--s) calc(var(--s) * 3);border-left:3px solid var(--accent);color:var(--ink-2);background:var(--tint-2)}.prose code{font-family:var(--font-mono);background:var(--tint-2);border:1px solid var(--line-2);border-radius:2px;padding:.05em .35em;font-size:.88em}.prose pre{padding:calc(var(--s) * 2.5);border:1px solid var(--line);border-radius:4px;font-size:.9rem;line-height:1.5;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0}.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:6px 10px}.prose hr{border:0;border-top:1px solid var(--line);margin:calc(var(--s) * 6) 0}.prose a{word-break:break-word}.prose img.rounded{aspect-ratio:1;object-fit:cover;border-radius:50%}.prose img[width]{margin-inline:0}.katex-display{overflow:auto hidden}html.js [data-reveal]{opacity:0;transition:opacity .9s var(--ease-out), transform 1.1s var(--ease-out);transition-delay:calc(var(--d,0) * 90ms);transform:translateY(28px)}html.js [data-reveal].in{opacity:1;transform:none}html.js [data-reveal=fade]{transform:none}html.js [data-draw] :is(path,circle,rect,line,polyline,ellipse):not([stroke-dasharray],pattern *){stroke-dasharray:var(--len,1200);stroke-dashoffset:var(--len,1200)}html.js [data-draw].in :is(path,circle,rect,line,polyline,ellipse){stroke-dashoffset:0;transition:stroke-dashoffset 2.2s var(--ease-out);transition-delay:calc(var(--i,0) * 60ms)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{position:absolute;left:-9999px}.skip:focus{z-index:100;background:var(--bg);padding:8px 12px;top:16px;left:16px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}html.js [data-reveal]{opacity:1;transform:none}html.js [data-draw] :is(path,circle,rect,line,polyline,ellipse):not([stroke-dasharray],pattern *){stroke-dashoffset:0}}.site-header[data-astro-cid-nen7h5rs]{z-index:50;border-bottom:1px solid #0000;transition:background-color .3s,border-color .3s,backdrop-filter .3s;position:fixed;inset:0 0 auto}.site-header[data-astro-cid-nen7h5rs].scrolled,.site-header[data-astro-cid-nen7h5rs].open{background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(160%)blur(12px);border-bottom-color:var(--line)}.bar[data-astro-cid-nen7h5rs]{height:var(--header-h);padding-inline:var(--gutter);justify-content:space-between;align-items:center;gap:16px;max-width:100rem;margin-inline:auto;display:flex}.brand[data-astro-cid-nen7h5rs]{color:var(--navy);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.mark[data-astro-cid-nen7h5rs]{width:38px;height:38px;display:inline-flex}.mark[data-astro-cid-nen7h5rs] svg{width:100%;height:100%}.word[data-astro-cid-nen7h5rs]{letter-spacing:.01em;font-size:1.2rem;font-weight:700}ul[data-astro-cid-nen7h5rs]{align-items:center;gap:clamp(8px,2.4vw,36px);margin:0;padding:0;list-style:none;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--navy);padding:8px 0;font-size:.78rem;font-weight:500;text-decoration:none;position:relative}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:not(.cta):after{content:"";background:var(--accent);transform-origin:100%;height:1.5px;transition:transform .35s var(--ease-out);position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:not(.cta):hover:after,nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]:after{transform-origin:0;transform:scaleX(1)}.cta[data-astro-cid-nen7h5rs]{border:1.5px solid var(--navy);border-radius:2px;transition:background-color .2s,color .2s;padding:8px 14px!important}.cta[data-astro-cid-nen7h5rs]:hover{background:var(--navy);color:var(--on-ink)}.menu[data-astro-cid-nen7h5rs]{cursor:pointer;width:44px;height:44px;color:var(--navy);background:0 0;border:0;padding:0;display:none}.bars[data-astro-cid-nen7h5rs],.bars[data-astro-cid-nen7h5rs]:before,.bars[data-astro-cid-nen7h5rs]:after{width:22px;height:1.5px;transition:transform .3s var(--ease-out), opacity .2s;background:currentColor;margin-inline:auto;display:block;position:relative}.bars[data-astro-cid-nen7h5rs]:before,.bars[data-astro-cid-nen7h5rs]:after{content:"";position:absolute;left:0}.bars[data-astro-cid-nen7h5rs]:before{top:-7px}.bars[data-astro-cid-nen7h5rs]:after{top:7px}.open[data-astro-cid-nen7h5rs] .bars[data-astro-cid-nen7h5rs]{background:0 0}.open[data-astro-cid-nen7h5rs] .bars[data-astro-cid-nen7h5rs]:before{transform:translateY(7px)rotate(45deg)}.open[data-astro-cid-nen7h5rs] .bars[data-astro-cid-nen7h5rs]:after{transform:translateY(-7px)rotate(-45deg)}@media (width<=760px){.menu[data-astro-cid-nen7h5rs]{display:block}nav[data-astro-cid-nen7h5rs]{top:var(--header-h);background:color-mix(in srgb, var(--bg) 97%, transparent);border-bottom:1px solid var(--line);clip-path:inset(0 0 100%);transition:clip-path .45s var(--ease-out);position:absolute;left:0;right:0}.open[data-astro-cid-nen7h5rs] nav[data-astro-cid-nen7h5rs]{clip-path:inset(0)}ul[data-astro-cid-nen7h5rs]{padding:8px var(--gutter) 24px;flex-direction:column;align-items:stretch;gap:0}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--line-2);padding:16px 0;font-size:.9rem;display:block}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:after{display:none}.cta[data-astro-cid-nen7h5rs]{text-align:center;margin-top:16px}}.site-footer[data-astro-cid-jo6i4kqk]{background:var(--bg-2);border-top:1px solid var(--line);padding-block:clamp(56px,8vw,96px) 28px}.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr;gap:40px;display:grid}@media (width>=640px){.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(2,1fr)}.brand-col[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}@media (width>=1000px){.brand-col[data-astro-cid-jo6i4kqk]{grid-column:auto}.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr 1.4fr}}h2[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-bottom:18px;font-size:.72rem;font-weight:500}ul[data-astro-cid-jo6i4kqk]{gap:8px;margin:0;padding:0;list-style:none;display:grid}a[data-astro-cid-jo6i4kqk]{color:var(--navy);text-decoration:none;transition:color .2s}a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent-ink)}.big[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{letter-spacing:-.01em;text-transform:uppercase;font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:600;line-height:1.25}ul[data-astro-cid-jo6i4kqk]:not(.big) a[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.85rem}.brand-col[data-astro-cid-jo6i4kqk]{flex-direction:column;align-items:flex-start;gap:12px;display:flex}@media (width>=1000px){.brand-col[data-astro-cid-jo6i4kqk]{text-align:right;justify-content:flex-end;align-items:flex-end}}.brand[data-astro-cid-jo6i4kqk]{align-items:center;gap:12px;font-size:1.6rem;font-weight:700;display:inline-flex}.mark[data-astro-cid-jo6i4kqk]{width:56px;height:56px;color:var(--navy);display:inline-flex}.mark[data-astro-cid-jo6i4kqk] svg{width:100%;height:100%}.brand-col[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{color:var(--ink-2);max-width:22rem;margin:0;font-size:.95rem}.legal[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:clamp(48px,7vw,80px);padding-top:20px;font-size:.72rem;display:flex}.legal[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--ink-2)}
