.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.logo[data-astro-cid-f7espo7c]{display:block}@media (prefers-reduced-motion:no-preference){.logo--animate[data-astro-cid-f7espo7c]{animation:logo-draw 1.1s var(--ease-out) .15s both}}@keyframes logo-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.icon-moon[data-astro-cid-l6lhmie6],:root[data-theme=light] .icon-sun[data-astro-cid-l6lhmie6]{display:none}:root[data-theme=light] .icon-moon[data-astro-cid-l6lhmie6]{display:block}.skip[data-astro-cid-nen7h5rs]{z-index:100;background:var(--brand-blue);color:var(--brand-navy);border-radius:var(--radius);padding:.6em 1em;font-weight:600;text-decoration:none;position:absolute;inset-block-start:-100%;inset-inline-start:var(--space-sm)}.skip[data-astro-cid-nen7h5rs]:focus{inset-block-start:var(--space-sm)}.header[data-astro-cid-nen7h5rs]{z-index:50;border-block-end:1px solid #0000;border-image:var(--hairline) 1;background:color-mix(in oklab, var(--bg) 82%, transparent);backdrop-filter:blur(14px)saturate(140%);position:sticky;inset-block-start:0}@supports not (backdrop-filter:blur(1px)){.header[data-astro-cid-nen7h5rs]{background:var(--bg)}}.header__inner[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-md);min-block-size:4rem;display:flex}.brand[data-astro-cid-nen7h5rs]{flex:none;align-items:center;gap:.6rem;text-decoration:none;display:inline-flex}.brand__name[data-astro-cid-nen7h5rs]{font-family:var(--font-heading);font-weight:600;font-size:var(--fs-sm);letter-spacing:var(--tracking-tight);color:var(--text);transition:color var(--dur) var(--ease-out)}.brand[data-astro-cid-nen7h5rs]:hover .brand__name[data-astro-cid-nen7h5rs]{color:var(--accent)}.nav[data-astro-cid-nen7h5rs]{scrollbar-width:none;-webkit-overflow-scrolling:touch;--nav-fade:0rem;mask-image:linear-gradient(to right, #000 calc(100% - var(--nav-fade)), transparent);margin-inline-start:auto;animation:linear both nav-fade-end scroll(self inline);overflow-x:auto}@keyframes nav-fade-end{0%{--nav-fade:1.5rem}to{--nav-fade:0rem}}@property --nav-fade{syntax:"<length>";inherits:false;initial-value:0}.nav[data-astro-cid-nen7h5rs]::-webkit-scrollbar{display:none}.nav__list[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-sm);padding:0;list-style:none;display:flex}.nav__link[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);font-size:var(--fs-xs);padding-block:.4rem;padding-inline:var(--space-3xs);color:var(--text-muted);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out);text-decoration:none;display:block;position:relative}.nav__link[data-astro-cid-nen7h5rs]:after{content:"";background:var(--brand-orange);block-size:1px;inline-size:0;transition:inline-size var(--dur) var(--ease-out);position:absolute;inset-block-end:0;inset-inline-start:var(--space-3xs)}.nav__link[data-astro-cid-nen7h5rs]:hover{color:var(--text)}.nav__link[data-astro-cid-nen7h5rs]:hover:after,.nav__link[data-astro-cid-nen7h5rs][aria-current=page]:after{inline-size:calc(100% - var(--space-2xs))}.nav__link[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--text)}.nav__sign[data-astro-cid-nen7h5rs]{color:var(--text-faint)}.header__actions[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2xs);flex:none;display:flex}@media (width<34rem){.brand__name[data-astro-cid-nen7h5rs]{display:none}.header__inner[data-astro-cid-nen7h5rs]{gap:var(--space-xs);padding-block:var(--space-2xs);flex-wrap:wrap}.header__actions[data-astro-cid-nen7h5rs]{margin-inline-start:auto}.nav[data-astro-cid-nen7h5rs]{flex-basis:100%;order:3;margin-inline-start:0}.nav__list[data-astro-cid-nen7h5rs]{gap:var(--space-2xs)}}.footer[data-astro-cid-jo6i4kqk]{font-size:var(--fs-sm);margin-block-start:var(--section-pad);padding-block-end:var(--space-lg)}.footer__grid[data-astro-cid-jo6i4kqk]{gap:var(--space-lg);padding-block:var(--space-lg);display:grid}@media (width>=48rem){.footer__grid[data-astro-cid-jo6i4kqk]{gap:var(--space-xl);grid-template-columns:2fr 1fr 1fr}}.footer__logo[data-astro-cid-jo6i4kqk]{display:inline-block}.footer__tagline[data-astro-cid-jo6i4kqk]{color:var(--text-muted);max-inline-size:32ch;margin-block-start:var(--space-sm)}.footer__quote[data-astro-cid-jo6i4kqk]{border-inline-start:1px solid #0000;border-image:var(--hairline-v) 1;max-inline-size:44ch;color:var(--text-faint);font-size:var(--fs-xs);margin-block-start:var(--space-md);padding-inline-start:var(--space-xs)}.footer__quote[data-astro-cid-jo6i4kqk] blockquote[data-astro-cid-jo6i4kqk]{text-wrap:pretty;margin:0}.footer__quote[data-astro-cid-jo6i4kqk] figcaption[data-astro-cid-jo6i4kqk]{margin-block-start:var(--space-2xs)}.footer__quote[data-astro-cid-jo6i4kqk] cite[data-astro-cid-jo6i4kqk]{font-style:normal}.footer__col[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{gap:var(--space-3xs);margin-block-start:var(--space-sm);padding:0;list-style:none;display:grid}.footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--text-muted);text-decoration:none}.footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}.footer__legal[data-astro-cid-jo6i4kqk]{border-block-start:1px solid #0000;border-image:var(--hairline) 1;color:var(--text-faint);font-size:var(--fs-xs);flex-wrap:wrap;gap:.5em;padding-block-start:var(--space-md);display:flex}@layer tokens{:root{--brand-navy:#020511;--brand-blue:#2196f3;--brand-blue-lift:#4fc3f7;--brand-orange:#ff7a00;--brand-white:#fff;--bg:light-dark(#fff,#020511);--bg-subtle:light-dark(#f4f7fa,#060b19);--bg-raised:light-dark(#fff,#0a1022);--bg-inset:light-dark(#eef2f7,#0d1428);--text:light-dark(#222,#fff);--text-muted:light-dark(#555,#9aa0ac);--text-faint:light-dark(#6a7285,#757d90);--line:light-dark(#ddd,#16203a);--line-strong:light-dark(#c4cad3,#24314f);--hairline:linear-gradient(to right, color-mix(in oklab, var(--line) 15%, transparent), var(--line-strong) 92%);--sheen:light-dark(#ffffffd9,#ffffff0e);--sheen-deep:light-dark(#0205110d,#0006);--hairline-v:linear-gradient(to bottom, var(--line-strong), color-mix(in oklab, var(--line) 15%, transparent));--grid-gap:72px;--grid-line:light-dark(#02051105,#ffffff05);--grid:repeating-linear-gradient(calc(-1 * var(--angle)), transparent 0, var(--grid-line) .5px 1.5px, transparent 2px var(--grid-gap));--accent:light-dark(#1565c0,#2196f3);--accent-quiet:light-dark(#e3f0fd,#0e1e35);--hot:light-dark(#b34e00,#ff7a00);--hot-quiet:light-dark(#fff0e0,#2a1605);--focus:var(--accent);--selection-bg:color-mix(in oklab, var(--brand-blue) 30%, transparent);--font-heading:var(--font-display), ui-sans-serif, system-ui, sans-serif;--font-text:var(--font-body), ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, "JetBrains Mono", "Fira Code", monospace;--fs-2xs:.6875rem;--fs-xs:clamp(.75rem, .73rem + .09vw, .8125rem);--fs-sm:clamp(.875rem, .85rem + .11vw, .9375rem);--fs-base:clamp(1rem, .97rem + .14vw, 1.0625rem);--fs-md:clamp(1.125rem, 1.07rem + .25vw, 1.25rem);--fs-lg:clamp(1.375rem, 1.26rem + .5vw, 1.625rem);--fs-xl:clamp(1.75rem, 1.52rem + 1vw, 2.25rem);--fs-2xl:clamp(2.125rem, 1.7rem + 1.9vw, 3rem);--fs-3xl:clamp(2.75rem, 1.95rem + 3.5vw, 4.5rem);--tracking-eyebrow:.18em;--tracking-tight:-.02em;--tracking-tighter:-.035em;--leading-tight:1.08;--leading-snug:1.3;--leading-normal:1.6;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.25rem;--space-xl:3.5rem;--space-2xl:5rem;--space-3xl:clamp(5rem, 3rem + 9vw, 9rem);--section-pad:clamp(1.5rem, 1rem + 2vw, 2.5rem);--angle:58deg;--radius-sm:2px;--radius:4px;--radius-lg:8px;--content-width:68rem;--prose-width:40rem;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.14s;--dur:.26s;--dur-slow:.62s}:root,:root[data-theme=dark]{color-scheme:dark}:root[data-theme=light]{color-scheme:light}}@layer reset{*,:before,:after{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:6rem}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-block-size:100svh}img,picture,svg,video{block-size:auto;max-inline-size:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}ul[class],ol[class]{padding:0;list-style:none}:where(h1,h2,h3,h4){text-wrap:balance}:where(p,li){text-wrap:pretty}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer base{body{background-color:var(--bg);color:var(--text);font-family:var(--font-text);font-size:var(--fs-base);line-height:var(--leading-normal);font-synthesis-weight:none;--grain:none;background-image:var(--grain), var(--grid);background-attachment:fixed}:root[data-theme=dark] body,:root:not([data-theme]) body{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E")}::selection{background:var(--selection-bg);color:var(--text)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--radius-sm)}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}a{color:inherit;text-decoration-color:color-mix(in oklab, currentColor 35%, transparent);text-underline-offset:.25em;transition:color var(--dur-fast) var(--ease-out);text-decoration-thickness:1px}a:hover{color:var(--accent);text-decoration-color:currentColor}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}hr{background:var(--line);border:none;block-size:1px}}@layer components{.wrap{inline-size:min(100% - 2.5rem, var(--content-width));margin-inline:auto}@media (width>=48rem){.wrap{inline-size:min(100% - 5rem, var(--content-width))}}.section{padding-block:var(--section-pad)}.section--banded{padding-block:var(--space-2xl)}.eyebrow{font-family:var(--font-heading);font-weight:700;font-size:var(--fs-2xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted);display:block}.rule{background:linear-gradient(to right, color-mix(in oklab, var(--line) 15%, transparent), var(--line-strong) 92%);block-size:1px;margin-block:var(--space-md);position:relative}.hairline-b{border-block-end:1px solid #0000;border-image:var(--hairline) 1}.hairline-t{border-block-start:1px solid #0000;border-image:var(--hairline) 1}.rule{box-shadow:0 1px 0 var(--sheen)}.rule:after{content:"";background:linear-gradient(to right in oklab, color-mix(in oklab, var(--brand-orange) 25%, transparent), var(--brand-orange) 42%, color-mix(in oklab, var(--brand-orange) 55%, white) 62%, var(--brand-orange) 80%, color-mix(in oklab, var(--brand-orange) 35%, transparent));block-size:1px;inline-size:2.25rem;filter:drop-shadow(0 0 3px color-mix(in oklab, var(--brand-orange) 40%, transparent));transform:rotate(calc(var(--angle) * -1));transform-origin:100% 100%;position:absolute;inset-block-end:0;inset-inline-end:0}.btn{--btn-fg:var(--brand-navy);--btn-bg:var(--brand-blue);--btn-border:var(--brand-blue);font-family:var(--font-heading);font-weight:600;font-size:var(--fs-sm);letter-spacing:.01em;color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:var(--radius);transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);align-items:center;gap:.6em;padding:.7em 1.35em;text-decoration:none;display:inline-flex}.btn:hover{color:var(--brand-navy);background:var(--brand-blue-lift);border-color:var(--brand-blue-lift);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn--ghost{--btn-fg:var(--text);--btn-bg:transparent;--btn-border:var(--line-strong)}.btn--ghost:hover{color:var(--accent);background:var(--accent-quiet);border-color:color-mix(in oklab, var(--brand-blue) 55%, transparent)}.btn__arrow{transition:transform var(--dur) var(--ease-out)}.btn:hover .btn__arrow{transform:translate(2px,-2px)}.card{gap:var(--space-xs);padding:var(--space-md);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:inset 0 1px 0 var(--sheen), 0 1px 2px var(--sheen-deep);transition:border-color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);flex-direction:column;text-decoration:none;display:flex}a.card:hover,a.card:focus-visible{border-color:var(--line-strong);background:var(--bg-inset)}.card__title{font-size:var(--fs-md);font-weight:600}.card__meta{font-family:var(--font-heading);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-weight:600}.card__body{color:var(--text-muted);font-size:var(--fs-sm)}.icon-btn{block-size:2.25rem;inline-size:2.25rem;color:var(--text-muted);border-radius:var(--radius);transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);border:1px solid #0000;place-items:center;text-decoration:none;display:grid}a.icon-btn:hover,button.icon-btn:hover,.icon-btn[aria-current=page]{color:var(--text);background:var(--bg-inset);border-color:var(--line)}.tag{font-family:var(--font-heading);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--text-muted);background:var(--bg-inset);border:1px solid var(--line);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);border-radius:999px;padding:.2em .65em;font-weight:600;text-decoration:none;display:inline-block}a.tag:hover{color:var(--accent);background:var(--accent-quiet);border-color:color-mix(in oklab, var(--brand-blue) 45%, transparent)}.tag[aria-current=page]{color:var(--brand-navy);background:var(--brand-blue);border-color:var(--brand-blue)}.tag-list{gap:var(--space-2xs);flex-wrap:wrap;padding:0;list-style:none;display:flex}.prose{max-inline-size:var(--prose-width);font-size:var(--fs-md);line-height:var(--leading-normal);color:color-mix(in oklab, var(--text) 92%, var(--bg));&>*+*{margin-block-start:var(--space-sm)}& h2{font-size:var(--fs-lg);margin-block-start:var(--space-lg)}& h3{font-size:var(--fs-md);margin-block-start:var(--space-md);font-weight:600}& a{color:var(--accent);text-decoration-color:color-mix(in oklab, var(--accent) 40%, transparent)}& ul,& ol{padding-inline-start:1.35em}& li+li{margin-block-start:var(--space-3xs)}& li::marker{color:var(--brand-orange)}& blockquote{border-inline-start:2px solid var(--brand-blue);color:var(--text-muted);padding-inline-start:var(--space-sm);font-style:italic}& :not(pre)>code{background:var(--bg-inset);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.15em .4em}& pre{padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius);font-size:var(--fs-sm);line-height:1.6;overflow-x:auto}& img{border:1px solid var(--line);border-radius:var(--radius)}& hr{margin-block:var(--space-xl)}& table{border-collapse:separate;border-spacing:0;inline-size:100%;font-size:var(--fs-sm)}& :is(th,td){border-block-end:1px solid #0000;border-image:var(--hairline) 1;text-align:start;padding:.6em .8em}& th{font-family:var(--font-heading);font-weight:600}}:root[data-theme=light] .astro-code,:root[data-theme=light] .astro-code span{color:var(--shiki-light)!important;background-color:var(--shiki-light-bg)!important}}@layer utils{.visually-hidden:not(:focus):not(:active){clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.stack-xs>*+*{margin-block-start:var(--space-2xs)}.stack-sm>*+*{margin-block-start:var(--space-sm)}.stack-md>*+*{margin-block-start:var(--space-md)}.stack-lg>*+*{margin-block-start:var(--space-lg)}.muted{color:var(--text-muted)}.lead{font-size:var(--fs-md);color:var(--text-muted);max-inline-size:46ch}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal view();animation-range:entry entry 42%}}}@keyframes reveal{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:none}}}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
