@layer astro.images{:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-bottom]{object-position:top bottom}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-top]{object-position:bottom top}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-right]{object-position:left right}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-left]{object-position:right left}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}}:root{--paper:#fff;--surface:#f6f6f4;--surface-2:#efefec;--ink:#17171a;--ink-soft:#56565a;--ink-faint:#8a8a8e;--rule:#e4e4e0;--rule-strong:#c9c9c4;--accent:#4b2fe3;--accent-ink:#fff;--selection:#ddd7ff;--scrim:#12121673;--font-display:"Fraunces", Georgia, serif;--font-body:"Source Serif 4", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--measure:40rem;--gutter:clamp(1.25rem, 5vw, 3rem);--shell:74rem;--step--1:.8125rem;--step-0:1rem;--step-1:1.1875rem;--step-2:clamp(1.35rem, 1.1rem + 1vw, 1.6rem);--step-3:clamp(1.7rem, 1.3rem + 1.8vw, 2.3rem);--step-4:clamp(2.1rem, 1.5rem + 3vw, 3.4rem);--label:.6875rem;--label-track:.14em;color-scheme:light}:root[data-theme=dark]{--paper:#0e0e12;--surface:#16161c;--surface-2:#1e1e26;--ink:#e9e9e6;--ink-soft:#a0a0a6;--ink-faint:#6e6e77;--rule:#26262e;--rule-strong:#3a3a45;--accent:#a596ff;--accent-ink:#0e0e12;--selection:#2e2470;--scrim:#000000ad;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0e0e12;--surface:#16161c;--surface-2:#1e1e26;--ink:#e9e9e6;--ink-soft:#a0a0a6;--ink-faint:#6e6e77;--rule:#26262e;--rule-strong:#3a3a45;--accent:#a596ff;--accent-ink:#0e0e12;--selection:#2e2470;--scrim:#000000ad;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);font-synthesis-weight:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;line-height:1.7}::selection{background:var(--selection);color:var(--ink)}img,picture,svg{max-width:100%;height:auto;display:block}a{color:inherit}:where(a,button,input,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em;font-variation-settings:"SOFT" 0, "WONK" 0;margin:0;font-weight:600;line-height:1.15}.shell{width:100%;max-width:var(--shell);padding-inline:var(--gutter);margin-inline:auto}.measure{max-width:var(--measure)}.measure-center{max-width:var(--measure);margin-inline:auto}body.width-reading{--shell:calc(var(--measure) + 2 * var(--gutter))}.rule{border:0;border-top:1px solid var(--rule);margin:0}.skip-link{background:var(--accent);color:var(--accent-ink);z-index:100;font-family:var(--font-mono);font-size:var(--step--1);padding:.75rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.label{font-family:var(--font-mono);font-size:var(--label);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--ink-faint);font-weight:500;line-height:1.4}.label--strong{color:var(--ink-soft)}.label--accent{color:var(--accent)}.label-rule{align-items:center;gap:.875rem;margin-bottom:1.75rem;display:flex}.label-rule:after{content:"";background:var(--rule);flex:1;height:1px}.tag{font-family:var(--font-mono);font-size:var(--label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule);white-space:nowrap;background:0 0;padding:.3rem .5rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:inline-block}.tag:hover{color:var(--accent);border-color:var(--accent)}.tag[aria-current=page],.tag--active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.tag-row{flex-wrap:wrap;gap:.4rem;display:flex}.prose{font-size:var(--step-1);color:var(--ink);line-height:1.75}.prose>*+*{margin-top:1.5em}.prose p{margin:0}.prose h2,.prose h3,.prose h4{letter-spacing:-.01em;margin-top:2.2em;margin-bottom:0}.prose :is(h2,h3,h4)+*{margin-top:.7em}.prose h2{font-size:var(--step-3)}.prose h3{font-size:var(--step-2)}.prose h4{font-size:var(--step-1);font-weight:700}.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px;transition:color .15s}.prose a:hover{color:var(--accent)}.prose strong{font-weight:600}.prose ul,.prose ol{margin-block:0;padding-left:1.35em}.prose li+li{margin-top:.5em}.prose li::marker{color:var(--ink-faint)}.prose blockquote{border-left:2px solid var(--accent);color:var(--ink-soft);margin:2em 0;padding-left:1.25rem;font-style:italic}.prose hr{border:0;border-top:1px solid var(--rule);margin-block:3em}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--rule);word-break:break-word;padding:.1em .32em;font-size:.86em}.prose pre{font-family:var(--font-mono);border:1px solid var(--rule);margin-block:2em;padding:1.15rem 1.25rem;font-size:.86rem;line-height:1.65;overflow-x:auto;background:var(--surface)!important}.prose pre code{background:0 0;border:0;padding:0;font-family:inherit}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}.prose img{border:1px solid var(--rule);background:var(--surface);cursor:zoom-in;width:100%}.prose figure{width:100%;margin:2.75em 0}.prose .caption{font-family:var(--font-mono);font-size:var(--label);letter-spacing:.04em;color:var(--ink-faint);text-align:center;margin-top:.75rem;font-style:normal;line-height:1.5}.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}.stack>*+*{margin-top:var(--stack-gap,1rem)}.theme-toggle[data-astro-cid-l6lhmie6]{color:var(--ink-soft);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;align-items:center;gap:.4rem;padding:.3rem .4rem;transition:color .15s,border-color .15s;display:inline-flex}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--accent);border-color:var(--rule)}.theme-toggle__icon[data-astro-cid-l6lhmie6]{width:1rem;height:1rem;display:block}.theme-toggle__icon[data-astro-cid-l6lhmie6] svg[data-astro-cid-l6lhmie6]{width:100%;height:100%;display:none}.theme-toggle__text[data-astro-cid-l6lhmie6]{color:inherit;text-align:left;min-width:2.6rem}:root:not([data-theme]) .i-auto[data-astro-cid-l6lhmie6],:root[data-theme=light] .i-sun[data-astro-cid-l6lhmie6],:root[data-theme=dark] .i-moon[data-astro-cid-l6lhmie6]{display:block}@media (width<=34rem){.theme-toggle__text[data-astro-cid-l6lhmie6]{display:none}}.masthead[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--rule);background:var(--paper);container:masthead/inline-size}.masthead__inner[data-astro-cid-nen7h5rs]{align-items:center;gap:clamp(1rem,4vw,2.5rem);min-height:4.25rem;display:flex}.wordmark[data-astro-cid-nen7h5rs]{flex:none;align-items:baseline;gap:.3rem;margin-right:auto;text-decoration:none;display:inline-flex}.wordmark__name[data-astro-cid-nen7h5rs]{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);white-space:nowrap;font-size:1.2rem;font-weight:700}.wordmark__spark[data-astro-cid-nen7h5rs]{background:var(--accent);flex:none;width:.3rem;height:.3rem;transition:transform .2s}.wordmark[data-astro-cid-nen7h5rs]:hover .wordmark__spark[data-astro-cid-nen7h5rs]{transform:translateY(-.28rem)}.nav[data-astro-cid-nen7h5rs]{gap:1.4rem;display:flex}.nav__link[data-astro-cid-nen7h5rs]{color:var(--ink-soft);border-bottom:1px solid #0000;padding-block:.35rem;text-decoration:none;transition:color .15s,border-color .15s}.nav__link[data-astro-cid-nen7h5rs]:hover{color:var(--ink)}.nav__link[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.masthead__tools[data-astro-cid-nen7h5rs]{flex:none;align-items:center;gap:.35rem;display:flex}.search-trigger[data-astro-cid-nen7h5rs]{border:1px solid var(--rule);color:var(--ink-soft);cursor:pointer;font:inherit;background:0 0;align-items:center;gap:.45rem;padding:.32rem .5rem;transition:color .15s,border-color .15s;display:inline-flex}.search-trigger[data-astro-cid-nen7h5rs]:hover{color:var(--accent);border-color:var(--accent)}.search-trigger[data-astro-cid-nen7h5rs] svg[data-astro-cid-nen7h5rs]{flex:none;width:.95rem;height:.95rem}.search-trigger__text[data-astro-cid-nen7h5rs]{color:inherit}.search-trigger__key[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);border:1px solid var(--rule);color:var(--ink-faint);padding:0 .28rem;font-size:.65rem;line-height:1.5}@container masthead (width<=46rem){.search-trigger__text[data-astro-cid-nen7h5rs],.search-trigger__key[data-astro-cid-nen7h5rs]{display:none}.masthead__inner[data-astro-cid-nen7h5rs]{gap:1.25rem}.nav[data-astro-cid-nen7h5rs]{gap:1.05rem}}@container masthead (width<=34rem){.nav[data-astro-cid-nen7h5rs]{order:3;gap:1.1rem;width:100%;padding-bottom:.9rem}.masthead__inner[data-astro-cid-nen7h5rs]{flex-wrap:wrap;min-height:0;padding-top:.9rem}.wordmark[data-astro-cid-nen7h5rs]{margin-right:auto}}@container masthead (width<=26rem){.nav[data-astro-cid-nen7h5rs]{scrollbar-width:none;overflow-x:auto}.nav[data-astro-cid-nen7h5rs]::-webkit-scrollbar{display:none}}.footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--rule);margin-top:5rem;padding-block:2rem 3rem}.footer__inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;display:flex}.footer[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin:0}.footer__links[data-astro-cid-jo6i4kqk]{gap:1.25rem;display:flex}.footer__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{text-decoration:none;transition:color .15s}.footer__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}.search[data-astro-cid-ac66eqjo]{z-index:50;position:fixed;inset:0}.search[data-astro-cid-ac66eqjo][hidden]{display:none}.search__scrim[data-astro-cid-ac66eqjo]{background:var(--scrim);position:absolute;inset:0}.search__panel[data-astro-cid-ac66eqjo]{background:var(--paper);border:1px solid var(--rule-strong);flex-direction:column;width:min(44rem,100% - 2rem);max-height:min(70vh,40rem);margin:min(9vh,5rem) auto 0;display:flex;position:relative}.search__field[data-astro-cid-ac66eqjo]{border-bottom:1px solid var(--rule);flex:none;align-items:center;gap:.7rem;padding:0 .85rem;display:flex}.search__field[data-astro-cid-ac66eqjo] svg[data-astro-cid-ac66eqjo]{width:1.05rem;height:1.05rem;color:var(--ink-faint);flex:none}.search__input[data-astro-cid-ac66eqjo]{font-family:var(--font-body);color:var(--ink);background:0 0;border:0;flex:1;min-width:0;padding:1rem 0;font-size:1.05rem}.search__input[data-astro-cid-ac66eqjo]:focus{outline:none}.search__input[data-astro-cid-ac66eqjo]::placeholder{color:var(--ink-faint)}.search__input[data-astro-cid-ac66eqjo]::-webkit-search-cancel-button{display:none}.search__esc[data-astro-cid-ac66eqjo]{border:1px solid var(--rule);color:var(--ink-faint);cursor:pointer;background:0 0;flex:none;padding:.2rem .4rem}.search__esc[data-astro-cid-ac66eqjo]:hover{color:var(--accent);border-color:var(--accent)}.search__status[data-astro-cid-ac66eqjo]{border-bottom:1px solid var(--rule);flex:none;padding:.7rem .9rem}.search__status[data-astro-cid-ac66eqjo]:empty{display:none}.search__results[data-astro-cid-ac66eqjo]{overscroll-behavior:contain;margin:0;padding:0;list-style:none;overflow-y:auto}.search__results[data-astro-cid-ac66eqjo] .hit{border-bottom:1px solid var(--rule)}.search__results[data-astro-cid-ac66eqjo] .hit:last-child{border-bottom:0}.search__results[data-astro-cid-ac66eqjo] .hit__link{color:inherit;padding:.9rem;text-decoration:none;display:block}.search__results[data-astro-cid-ac66eqjo] .hit__link:hover,.search__results[data-astro-cid-ac66eqjo] .hit[data-active] .hit__link{background:var(--surface)}.search__results[data-astro-cid-ac66eqjo] .hit__title{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 .3rem;font-size:1.02rem;font-weight:600;line-height:1.3}.search__results[data-astro-cid-ac66eqjo] .hit__excerpt{color:var(--ink-soft);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.9rem;line-height:1.55;display:-webkit-box;overflow:hidden}.search__results[data-astro-cid-ac66eqjo] .hit__meta{flex-wrap:wrap;gap:.7rem;margin-top:.45rem;display:flex}.search__results[data-astro-cid-ac66eqjo] mark{background:var(--selection);color:var(--ink);padding:0 .1em}@media (width<=40rem){.search__panel[data-astro-cid-ac66eqjo]{border:0;width:100%;height:100%;max-height:100vh;margin-top:0}}
