.site-footer[data-astro-cid-ui5ps2i3]{border-top:var(--border-width) solid var(--color-border-strong);color:var(--color-muted);font-size:var(--text-sm)}.footer-inner[data-astro-cid-ui5ps2i3]{width:min(calc(100% - 2 * var(--page-gutter)), var(--page-width));padding-block:var(--space-8);align-items:baseline;gap:var(--space-4) var(--space-8);flex-wrap:wrap;margin-inline:auto;display:flex}.footer-name[data-astro-cid-ui5ps2i3],.copyright[data-astro-cid-ui5ps2i3]{margin:0}.footer-name[data-astro-cid-ui5ps2i3]{color:var(--color-text);font-weight:650}nav[data-astro-cid-ui5ps2i3]{margin-inline-start:auto}ul[data-astro-cid-ui5ps2i3]{gap:var(--space-5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}a[data-astro-cid-ui5ps2i3]{min-height:2.75rem;color:var(--color-muted);align-items:center;display:inline-flex}a[data-astro-cid-ui5ps2i3]:hover,a[data-astro-cid-ui5ps2i3][aria-current=page]{color:var(--color-text)}.copyright[data-astro-cid-ui5ps2i3]{font-family:var(--font-mono);font-size:var(--text-xs)}@media (width<=36rem){.footer-inner[data-astro-cid-ui5ps2i3]{align-items:flex-start;gap:var(--space-2);flex-direction:column}nav[data-astro-cid-ui5ps2i3]{margin-inline-start:0}}.language-switch[data-astro-cid-vewkkx5j] ul[data-astro-cid-vewkkx5j]{font:600 var(--text-xs) / 1 var(--font-mono);letter-spacing:.04em;align-items:center;gap:0;margin:0;padding:0;list-style:none;display:flex}a[data-astro-cid-vewkkx5j],[data-astro-cid-vewkkx5j][aria-disabled=true]{justify-content:center;align-items:center;min-width:2.25rem;min-height:2.75rem;display:inline-flex}a[data-astro-cid-vewkkx5j]{color:var(--color-muted);text-decoration:none}a[data-astro-cid-vewkkx5j][aria-current=page]{color:var(--color-text)}[data-astro-cid-vewkkx5j][aria-disabled=true]{color:var(--color-muted);opacity:.45}.separator[data-astro-cid-vewkkx5j]{color:var(--color-border-strong)}.theme-toggle[data-astro-cid-iatadapf]{border:var(--border-width) solid transparent;border-radius:var(--radius-control);width:2.75rem;height:2.75rem;color:var(--color-muted);cursor:pointer;transition:color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);background:0 0;place-items:center;padding:0;display:grid}.theme-toggle[data-astro-cid-iatadapf]:hover{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}svg[data-astro-cid-iatadapf]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:1.125rem;height:1.125rem;transition:opacity var(--motion-fast) var(--ease-out), transform var(--motion-base) var(--ease-out);grid-area:1/1}.moon[data-astro-cid-iatadapf]{opacity:0;transform:rotate(-12deg)scale(.8)}html[data-theme=dark] .sun[data-astro-cid-iatadapf]{opacity:0;transform:rotate(12deg)scale(.8)}html[data-theme=dark] .moon[data-astro-cid-iatadapf]{opacity:1;transform:rotate(0)scale(1)}@media (prefers-reduced-motion:reduce){.sun[data-astro-cid-iatadapf],.moon[data-astro-cid-iatadapf],html[data-theme=dark] .sun[data-astro-cid-iatadapf],html[data-theme=dark] .moon[data-astro-cid-iatadapf]{transform:none}}.site-header[data-astro-cid-blryxaq5]{border-bottom:var(--border-width) solid var(--color-border);background:var(--color-bg)}.header-inner[data-astro-cid-blryxaq5]{width:min(calc(100% - 2 * var(--page-gutter)), var(--page-width));align-items:center;gap:var(--space-6);min-height:4.75rem;margin-inline:auto;display:flex}.site-name[data-astro-cid-blryxaq5]{color:var(--color-text);font-size:var(--text-sm);letter-spacing:-.01em;white-space:nowrap;font-weight:720;text-decoration:none}.primary-nav[data-astro-cid-blryxaq5] ul[data-astro-cid-blryxaq5]{gap:var(--space-5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.primary-nav[data-astro-cid-blryxaq5]{margin-left:auto}.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]{min-height:2.75rem;color:var(--color-muted);font-size:var(--text-sm);text-underline-offset:.3em;align-items:center;padding-inline:.45em;font-weight:560;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:.075em;display:inline-flex;position:relative}.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:hover,.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:focus-visible,.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:is([aria-current=page],[data-section-active]){color:var(--color-text)}.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:hover,.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:focus-visible{text-decoration-color:var(--color-border-strong)}.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:before,.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:after{color:color-mix(in oklch, var(--color-accent) 72%, var(--color-muted));font-family:var(--font-mono);opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out);line-height:1;position:absolute;inset-block-start:50%}.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:before{content:"[";inset-inline-start:0;transform:translate(.12rem,-50%)}.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:after{content:"]";inset-inline-end:0;transform:translate(-.12rem,-50%)}.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:is([aria-current=page],[data-section-active]):before,.primary-nav[data-astro-cid-blryxaq5] a[data-astro-cid-blryxaq5]:is([aria-current=page],[data-section-active]):after{opacity:1;transform:translateY(-50%)}.header-tools[data-astro-cid-blryxaq5]{align-items:center;gap:var(--space-3);display:flex}@media (width<=44rem){.header-inner[data-astro-cid-blryxaq5]{gap:var(--space-2) var(--space-4);padding-block:var(--space-2);flex-wrap:wrap}.primary-nav[data-astro-cid-blryxaq5]{order:3;width:100%;margin-left:0}.primary-nav[data-astro-cid-blryxaq5] ul[data-astro-cid-blryxaq5]{justify-content:space-between;gap:var(--space-2) var(--space-4)}.header-tools[data-astro-cid-blryxaq5]{margin-left:auto}}@media (width<=24rem){.primary-nav[data-astro-cid-blryxaq5] ul[data-astro-cid-blryxaq5]{justify-content:flex-start;gap:var(--space-2)}}:root{color-scheme:light;--color-bg:oklch(97.4% .006 90);--color-surface:oklch(94.8% .008 90);--color-surface-raised:oklch(99% .004 90);--color-text:oklch(22% .012 75);--color-muted:oklch(43% .013 80);--color-subtle:oklch(54% .012 80);--color-border:oklch(86% .01 85);--color-border-strong:oklch(75% .014 85);--color-accent:oklch(42% .07 190);--color-focus:oklch(50% .1 190);--color-selection:oklch(84% .045 190);--page-width:72rem;--content-width:57rem;--reading-width:43rem;--metadata-rail-width:13rem;--page-gutter:clamp(1.125rem, 4vw, 3rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--space-10:4rem;--space-12:5rem;--space-16:6rem;--space-20:8rem;--space-24:10rem;--space-section-sm:clamp(3.5rem, 7vw, 6rem);--space-section:clamp(4.5rem, 9vw, 8rem);--space-section-lg:clamp(6rem, 12vw, 10rem);--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:clamp(1rem, .97rem + .12vw, 1.0625rem);--text-md:clamp(1.18rem, 1.08rem + .35vw, 1.38rem);--text-lg:clamp(1.45rem, 1.25rem + .65vw, 1.82rem);--text-xl:clamp(1.85rem, 1.45rem + 1.25vw, 2.55rem);--text-2xl:clamp(2.35rem, 1.7rem + 2vw, 3.5rem);--text-3xl:var(--text-2xl);--text-display:clamp(2.45rem, 1.65rem + 2.75vw, 4.25rem);--leading-body:1.68;--leading-heading:1.12;--border-width:1px;--radius-control:.375rem;--motion-fast:.14s;--motion-normal:.18s;--motion-slow:.24s;--motion-base:var(--motion-normal);--motion-distance-sm:.18rem;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{color-scheme:dark;--color-bg:oklch(18.5% .009 80);--color-surface:oklch(23% .011 80);--color-surface-raised:oklch(26% .012 80);--color-text:oklch(91% .009 85);--color-muted:oklch(70% .012 85);--color-subtle:oklch(59% .012 85);--color-border:oklch(31% .012 80);--color-border-strong:oklch(42% .014 80);--color-accent:oklch(75% .075 190);--color-focus:oklch(78% .1 190);--color-selection:oklch(38% .06 190)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0}img,picture,svg,video{max-width:100%;display:block}button,input,textarea,select{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}html{background:var(--color-bg)}@view-transition{navigation:auto}::view-transition-old(root){animation:root-fade-out var(--motion-normal) var(--ease-standard) both}::view-transition-new(root){animation:root-fade-in var(--motion-normal) var(--ease-standard) both}::view-transition-group(*){animation-duration:var(--motion-slow);animation-timing-function:var(--ease-out)}::view-transition-group(root){animation-duration:var(--motion-normal)}@keyframes root-fade-out{to{opacity:0}}@keyframes root-fade-in{0%{opacity:0}}body{background:var(--color-bg);min-height:100vh;color:var(--color-text);font:var(--text-base) / var(--leading-body) var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility}::selection{background:var(--color-selection);color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-weight:650}a{color:var(--color-accent);text-underline-offset:.19em;transition:color var(--motion-fast) var(--ease-out), text-decoration-color var(--motion-fast) var(--ease-out);text-decoration-thickness:.075em}a:hover,a:focus-visible{text-decoration-thickness:.11em}button{color:inherit}:focus-visible{outline:.1875rem solid var(--color-focus);outline-offset:.1875rem}.skip-link{z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-control);transform:translateY(calc(-100% - var(--space-6)));background:var(--color-text);color:var(--color-bg);font-size:var(--text-sm);transition:transform var(--motion-base) var(--ease-out);font-weight:650;text-decoration:none;position:fixed;inset-block-start:var(--space-3);inset-inline-start:var(--space-3)}.skip-link:focus{transform:translateY(0)}main{min-height:62vh}.page-shell{width:min(calc(100% - 2 * var(--page-gutter)), var(--page-width));padding-block:var(--space-section-sm) var(--space-section-lg);margin-inline:auto}.content-width{width:min(calc(100% - 2 * var(--page-gutter)), var(--content-width));margin-inline:auto}.reading-width{width:min(calc(100% - 2 * var(--page-gutter)), var(--reading-width));margin-inline:auto}.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}.directional-link{align-items:center;gap:var(--space-2);min-height:2.75rem;color:var(--color-muted);font-size:var(--text-sm);text-decoration-color:var(--color-border-strong);font-weight:600;display:inline-flex}.directional-link:hover,.directional-link:focus-visible{color:var(--color-accent)}.directional-link span{transition:transform var(--motion-base) var(--ease-out);display:inline-block}.directional-link:hover span,.directional-link:focus-visible span{transform:translateX(var(--motion-distance-sm))}.directional-link--back:hover span,.directional-link--back:focus-visible span{transform:translateX(calc(-1 * var(--motion-distance-sm)))}.page-intro{max-width:var(--content-width);margin-block-end:var(--space-section-sm)}.page-intro h1{max-width:18ch;margin:var(--space-4) 0;font-size:var(--text-2xl);line-height:var(--leading-heading);letter-spacing:-.035em;text-wrap:balance}.page-intro>p:last-child{max-width:62ch;color:var(--color-muted);font-size:var(--text-md);margin:0}.eyebrow{color:var(--color-subtle);font:600 var(--text-xs) / 1.4 var(--font-mono);letter-spacing:.07em;text-transform:uppercase;margin:0}@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),::view-transition-group(*){animation-duration:.01ms}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.prose{color:var(--color-text);font-size:var(--text-base);line-height:1.78}.prose>*{max-width:var(--reading-width)}.prose>.prose-wide,.prose>[data-prose-width=wide]{width:min(var(--content-width), calc(100vw - 2 * var(--page-gutter)));max-width:none;margin-inline-start:50%;transform:translate(-50%)}.prose>*+*{margin-block-start:var(--space-5)}.prose .technical-artifact{margin-block:var(--space-10);padding-block:var(--space-5);border-block:var(--border-width) solid var(--color-border-strong)}.prose .artifact-label{color:var(--color-subtle);font:600 var(--text-xs) / 1.35 var(--font-mono);letter-spacing:.07em;text-transform:uppercase;margin:0}.prose .artifact-caption{max-width:62ch;color:var(--color-muted);font-size:var(--text-sm);margin:0;line-height:1.55}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{line-height:var(--leading-heading);letter-spacing:-.025em;text-wrap:balance;margin-block-end:0}.prose h2{font-size:var(--text-xl);margin-block-start:var(--space-10)}.prose h3{font-size:var(--text-lg);margin-block-start:var(--space-8)}.prose h2[id],.prose h3[id]{scroll-margin-block-start:var(--space-10);position:relative}.prose .heading-anchor{width:1rem;color:var(--color-subtle);font:500 .62em / 1.8 var(--font-mono);text-align:center;opacity:0;transition:color var(--motion-fast) var(--ease-out), opacity var(--motion-fast) var(--ease-out);text-decoration:none;position:absolute;inset-block-start:0;inset-inline-start:-1.25rem}.prose :is(h2,h3):hover .heading-anchor,.prose :is(h2,h3):focus-within .heading-anchor,.prose .heading-anchor:focus-visible{color:var(--color-accent);opacity:1}.prose h4{font-size:var(--text-md);margin-block-start:var(--space-6)}.prose h5,.prose h6{font-size:var(--text-base);margin-block-start:var(--space-6)}.prose p,.prose ul,.prose ol,.prose blockquote{margin-block-end:0}.prose ul,.prose ol{padding-inline-start:var(--space-6)}.prose li+li{margin-block-start:var(--space-2)}.prose a{text-decoration-color:color-mix(in oklch, currentColor 55%, transparent)}.prose strong{font-weight:700}.prose code:not(pre code){border:var(--border-width) solid var(--color-border);background:var(--color-surface);font:.88em / 1.4 var(--font-mono);border-radius:.2rem;padding:.1em .32em}.prose blockquote{border-inline-start:var(--border-width) solid var(--color-border-strong);color:var(--color-muted);font-size:var(--text-md);margin-inline:0;padding-inline-start:var(--space-5)}.prose blockquote>:first-child{margin-block-start:0}.prose hr{margin-block:var(--space-10);border:0;border-block-start:var(--border-width) solid var(--color-border-strong)}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.prose th,.prose td{padding:var(--space-3) var(--space-4);border-block-end:var(--border-width) solid var(--color-border);text-align:start;vertical-align:top}.prose th{color:var(--color-text);font-weight:650}.prose .expressive-code{max-width:var(--content-width);margin-block:var(--space-8)}.prose .expressive-code .frame{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);box-shadow:none}.prose .expressive-code pre{font-family:var(--font-mono)}.prose details{padding-block:var(--space-3);border-block:var(--border-width) solid var(--color-border)}.prose details+details{border-block-start:0}.prose summary{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:2.75rem;color:var(--color-text);cursor:pointer;font-weight:650;list-style:none;display:flex}.prose summary::-webkit-details-marker{display:none}.prose summary:after{color:var(--color-subtle);font:500 var(--text-md) / 1 var(--font-mono);content:"+"}.prose details[open] summary:after{content:"−"}.prose details>:last-child{margin-block-end:0}.reading-progress{display:none}@supports (animation-timeline:scroll()){.prose>.reading-progress{z-index:20;transform-origin:0;background:var(--color-accent);pointer-events:none;width:100%;max-width:none;height:.125rem;margin:0;animation:linear both reading-progress scroll(root);display:block;position:fixed;inset:0 0 auto;transform:scaleX(0)}@keyframes reading-progress{to{transform:scaleX(1)}}}@media (width<=40rem){.prose .heading-anchor{opacity:.52;inset-inline-start:-1rem}.prose table{display:block;overflow-x:auto}}@media (prefers-reduced-motion:reduce){@supports (animation-timeline:scroll()){.prose>.reading-progress{display:none;animation:none!important}}}
