._toggle_1pffr_1{border:1px solid var(--jj-color-border);border-radius:var(--jj-radius-pill);width:2.5rem;height:2.5rem;color:var(--jj-color-text);cursor:pointer;transition:background-color var(--jj-duration-fast) var(--jj-ease), border-color var(--jj-duration-fast) var(--jj-ease);background:0 0;place-items:center;padding:0;display:inline-grid}._toggle_1pffr_1:hover{background:var(--jj-color-surface-2);border-color:var(--jj-color-border-strong)}._toggle_1pffr_1:focus-visible{box-shadow:var(--jj-focus-ring);outline:none}._toggle_1pffr_1 svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;grid-area:1/1;width:1.125rem;height:1.125rem}._sun_1pffr_33{display:none}html[data-theme=dark] ._sun_1pffr_33{display:block}html[data-theme=dark] ._moon_1pffr_41{display:none}@media (prefers-color-scheme:dark){html:not([data-theme]) ._sun_1pffr_33{display:block}html:not([data-theme]) ._moon_1pffr_41{display:none}}:root{--jj-font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--jj-font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", "Noto Sans Mono", monospace;--jj-text-xs:.75rem;--jj-text-sm:.875rem;--jj-text-md:1rem;--jj-text-lg:1.125rem;--jj-text-xl:1.375rem;--jj-text-2xl:clamp(1.625rem, 1.35rem + 1.2vw, 2.125rem);--jj-text-3xl:clamp(2.25rem, 1.6rem + 3vw, 3.5rem);--jj-leading-tight:1.15;--jj-leading-snug:1.35;--jj-leading-body:1.6;--jj-tracking-tight:-.02em;--jj-tracking-wide:.06em;--jj-weight-regular:400;--jj-weight-medium:500;--jj-weight-semibold:600;--jj-weight-bold:700;--jj-space-1:.25rem;--jj-space-2:.5rem;--jj-space-3:.75rem;--jj-space-4:1rem;--jj-space-5:1.25rem;--jj-space-6:1.5rem;--jj-space-8:2rem;--jj-space-10:2.5rem;--jj-space-12:3rem;--jj-space-16:4rem;--jj-space-20:5rem;--jj-space-24:6rem;--jj-radius-sm:6px;--jj-radius-md:10px;--jj-radius-lg:16px;--jj-radius-pill:999px;--jj-duration-fast:.12s;--jj-duration-base:.2s;--jj-ease:cubic-bezier(.2, 0, 0, 1);--jj-focus-ring:0 0 0 2px var(--jj-color-bg), 0 0 0 4px var(--jj-color-focus);--jj-content-width:72rem;--jj-prose-width:42rem;--jj-color-bg:#fafaf9;--jj-color-surface:#fff;--jj-color-surface-2:#f2f2ef;--jj-color-border:#e3e3de;--jj-color-border-strong:#c9c9c2;--jj-color-text:#16161a;--jj-color-text-muted:#55555e;--jj-color-accent:#2f47d0;--jj-color-accent-hover:#2639ad;--jj-color-accent-contrast:#fff;--jj-color-accent-soft:#eceffd;--jj-color-accent-soft-text:#2433a0;--jj-color-success:#17784a;--jj-color-focus:#2f47d0;--jj-shadow-sm:0 1px 2px #14141e0d;--jj-shadow-md:0 1px 2px #14141e0a, 0 8px 24px -8px #14141e1f;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme]){--jj-color-bg:#0c0d10;--jj-color-surface:#131418;--jj-color-surface-2:#1b1c21;--jj-color-border:#26272d;--jj-color-border-strong:#393a42;--jj-color-text:#ededf0;--jj-color-text-muted:#a3a3ad;--jj-color-accent:#93a3ff;--jj-color-accent-hover:#b3beff;--jj-color-accent-contrast:#0c0d10;--jj-color-accent-soft:#1b2044;--jj-color-accent-soft-text:#c3cbff;--jj-color-success:#4fcf8f;--jj-color-focus:#93a3ff;--jj-shadow-sm:0 1px 2px #0006;--jj-shadow-md:0 1px 2px #0000004d, 0 12px 32px -12px #0009;color-scheme:dark}}:root[data-theme=light]{--jj-color-bg:#fafaf9;--jj-color-surface:#fff;--jj-color-surface-2:#f2f2ef;--jj-color-border:#e3e3de;--jj-color-border-strong:#c9c9c2;--jj-color-text:#16161a;--jj-color-text-muted:#55555e;--jj-color-accent:#2f47d0;--jj-color-accent-hover:#2639ad;--jj-color-accent-contrast:#fff;--jj-color-accent-soft:#eceffd;--jj-color-accent-soft-text:#2433a0;--jj-color-success:#17784a;--jj-color-focus:#2f47d0;--jj-shadow-sm:0 1px 2px #14141e0d;--jj-shadow-md:0 1px 2px #14141e0a, 0 8px 24px -8px #14141e1f;color-scheme:light}:root[data-theme=dark]{--jj-color-bg:#0c0d10;--jj-color-surface:#131418;--jj-color-surface-2:#1b1c21;--jj-color-border:#26272d;--jj-color-border-strong:#393a42;--jj-color-text:#ededf0;--jj-color-text-muted:#a3a3ad;--jj-color-accent:#93a3ff;--jj-color-accent-hover:#b3beff;--jj-color-accent-contrast:#0c0d10;--jj-color-accent-soft:#1b2044;--jj-color-accent-soft-text:#c3cbff;--jj-color-success:#4fcf8f;--jj-color-focus:#93a3ff;--jj-shadow-sm:0 1px 2px #0006;--jj-shadow-md:0 1px 2px #0000004d, 0 12px 32px -12px #0009;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--jj-duration-fast:0s;--jj-duration-base:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:var(--jj-space-20)}body{background:var(--jj-color-bg);min-height:100dvh;color:var(--jj-color-text);font-family:var(--jj-font-sans);font-size:var(--jj-text-md);line-height:var(--jj-leading-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;flex-direction:column;margin:0;display:flex}main{flex:1}img,svg{max-width:100%;display:block}a{color:var(--jj-color-accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--jj-color-accent-hover)}:focus-visible{outline:2px solid var(--jj-color-focus);outline-offset:2px;border-radius:2px}::selection{background:var(--jj-color-accent-soft);color:var(--jj-color-text)}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}code,pre,kbd{font-family:var(--jj-font-mono)}.container{width:100%;max-width:var(--jj-content-width);padding-inline:var(--jj-space-5);margin-inline:auto}@media (width>=48rem){.container{padding-inline:var(--jj-space-8)}}.section{padding-block:var(--jj-space-16)}@media (width>=48rem){.section{padding-block:var(--jj-space-20)}}.section+.section{border-top:1px solid var(--jj-color-border)}.section--compact{padding-block:var(--jj-space-12)}@media (width>=48rem){.section--compact{padding-block:var(--jj-space-16)}}.stack{gap:var(--jj-space-8);align-content:start;display:grid}.stack>*{min-width:0}.grid{gap:var(--jj-space-5);margin:0;padding:0;list-style:none;display:grid}@media (width>=40rem){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}.stats{gap:var(--jj-space-6) var(--jj-space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=48rem){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.tags{gap:var(--jj-space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--jj-color-text-muted)}.mono-label{color:var(--jj-color-text-muted);font-family:var(--jj-font-mono);font-size:var(--jj-text-xs);letter-spacing:var(--jj-tracking-wide);text-transform:uppercase;margin:0}.prose{max-width:var(--jj-prose-width);color:var(--jj-color-text)}.prose>*+*{margin-top:var(--jj-space-4)}.prose h2{margin-top:var(--jj-space-12);font-size:var(--jj-text-xl);font-weight:var(--jj-weight-semibold);letter-spacing:-.01em;line-height:var(--jj-leading-snug);margin-bottom:0}.prose h3{margin-top:var(--jj-space-8);font-size:var(--jj-text-lg);font-weight:var(--jj-weight-semibold);margin-bottom:0}.prose p,.prose ul,.prose ol{margin-bottom:0}.prose ul,.prose ol{padding-left:1.25em}.prose li+li{margin-top:var(--jj-space-2)}.prose li::marker{color:var(--jj-color-text-muted)}.prose strong{font-weight:var(--jj-weight-semibold)}.prose :not(pre)>code{background:var(--jj-color-surface-2);border-radius:4px;padding:.1em .35em;font-size:.875em}.prose pre{max-width:calc(100vw - 2 * var(--jj-space-5));margin-block:var(--jj-space-6);padding:var(--jj-space-5);border:1px solid var(--jj-color-border);border-radius:var(--jj-radius-md);tab-size:2;font-size:.8125rem;line-height:1.3;overflow-x:auto;background:var(--jj-color-surface)!important;color:var(--jj-color-text)!important}@media (width>=48rem){.prose pre{width:max-content;min-width:100%;max-width:none}}.prose pre code span{color:inherit!important}.footer[data-astro-cid-nns7i3if]{border-top:1px solid var(--jj-color-border);color:var(--jj-color-text-muted);font-size:var(--jj-text-sm)}.inner[data-astro-cid-nns7i3if]{justify-content:space-between;align-items:center;gap:var(--jj-space-4);padding-block:var(--jj-space-8);flex-wrap:wrap;display:flex}p[data-astro-cid-nns7i3if]{margin:0}ul[data-astro-cid-nns7i3if]{gap:var(--jj-space-5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}a[data-astro-cid-nns7i3if]{color:var(--jj-color-text-muted);text-decoration:none}a[data-astro-cid-nns7i3if]:hover{color:var(--jj-color-text);text-decoration:underline}.header[data-astro-cid-fzpbxy5g]{z-index:10;background:color-mix(in srgb, var(--jj-color-bg) 85%, transparent);border-bottom:1px solid var(--jj-color-border);backdrop-filter:saturate(1.4)blur(10px);position:sticky;top:0}.inner[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--jj-space-3);min-height:4rem;display:flex}@media (width>=48rem){.inner[data-astro-cid-fzpbxy5g]{gap:var(--jj-space-6)}}.brand[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--jj-space-3);color:var(--jj-color-text);font-weight:var(--jj-weight-semibold);letter-spacing:-.01em;margin-right:auto;text-decoration:none;display:inline-flex}.mark[data-astro-cid-fzpbxy5g]{background:var(--jj-color-text);border-radius:var(--jj-radius-sm);width:2rem;height:2rem;color:var(--jj-color-bg);font-family:var(--jj-font-mono);font-size:.75rem;font-weight:var(--jj-weight-bold);letter-spacing:0;place-items:center;display:inline-grid}@media (width<=39.99rem){.name[data-astro-cid-fzpbxy5g]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}nav[data-astro-cid-fzpbxy5g] ul[data-astro-cid-fzpbxy5g]{gap:var(--jj-space-1);margin:0;padding:0;list-style:none;display:flex}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{min-height:2.5rem;padding-inline:var(--jj-space-2);border-radius:var(--jj-radius-sm);color:var(--jj-color-text-muted);font-size:var(--jj-text-sm);white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover{color:var(--jj-color-text)}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g][aria-current=page]{color:var(--jj-color-text);font-weight:var(--jj-weight-medium)}@media (width>=48rem){nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{padding-inline:var(--jj-space-3)}}.skip[data-astro-cid-hkbrpulz]{top:var(--jj-space-2);left:var(--jj-space-2);z-index:100;padding:var(--jj-space-2) var(--jj-space-4);background:var(--jj-color-accent);border-radius:var(--jj-radius-sm);color:var(--jj-color-accent-contrast);position:absolute;transform:translateY(-200%)}.skip[data-astro-cid-hkbrpulz]:focus{transform:none}main[data-astro-cid-hkbrpulz]:focus{outline:none}
