@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-full-normal.7BpKI3vF.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-full-normal.YHFkNujK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-full-normal.CFFu7zhK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-italic.B5xAaiFk.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-italic.DzZdc28x.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-italic.DcOpz6Lw.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-italic.CILZdfAp.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-italic.K3WlGtc8.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-italic.0pjOp8NU.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-italic.DpCbqKDY.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--font-body:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;--step--2:clamp(.72rem, .7rem + .1vw, .78rem);--step--1:clamp(.86rem, .83rem + .15vw, .94rem);--step-0:clamp(1.0625rem, 1.04rem + .1vw, 1.125rem);--step-1:clamp(1.28rem, 1.22rem + .28vw, 1.41rem);--step-2:clamp(1.54rem, 1.43rem + .5vw, 1.76rem);--step-3:clamp(1.84rem, 1.66rem + .8vw, 2.2rem);--step-4:clamp(2.2rem, 1.92rem + 1.25vw, 2.75rem);--step-5:clamp(2.64rem, 2.2rem + 1.9vw, 3.43rem);--step-hero:clamp(2.64rem, 1.7rem + 2.6vw, 5.25rem);--step-hero-line:clamp(1.84rem, 1.35rem + 1.3vw, 3rem);--step-hero-sub:clamp(1.28rem, 1.1rem + .4vw, 1.6rem);--leading-body:1.65;--leading-heading:1.15;--measure:68ch;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--radius-xs:5px;--radius-sm:10px;--radius-md:18px;--radius-lg:28px;--radius-pill:999px;--page-max:72rem;--gutter:clamp(var(--space-4), 4vw, var(--space-6));--header-h:7.5rem;--dur-fast:.2s;--dur-theme:.6s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-elastic:cubic-bezier(.5, 1.5, .75, 1.25);--focus-width:2px;--focus-offset:3px}@media (width>=48rem){:root{--header-h:5rem}}@media (width>=160rem){:root{--page-max:80rem}}:root,:root[data-theme=day]{color-scheme:light;--bg:#f8f5fb;--surface:#fefcff;--surface-glass:#fefcffa8;--ink:#1b2638;--ink-muted:#4a5872;--link:#2852b0;--accent:#6f9fe8;--accent-2:#f3c6d8;--sky-top:#cfd3f2;--sky-mid:#e8d0e6;--sky-low:#fbdccb;--sky-bottom:#f8f5fb;--night:0;--stars:.55;--star:#fffdf8;--cloud-lit:#fff0e6;--cloud:#fbf1f5;--cloud-shade:#cdc0e6;--horizon:transparent;--sun:#fff4e4;--sun-glow:#ffc79e;--holo:#fff6f2;--holo-tip:#ffcfe0;--holo-edge:#fff;--holo-glow:#ffb98f;--mote:#fff3e8;--mote-glow:#ffbfd4;--sheep-ring:#4f7fd6;--sheep-wool:#fdfeff;--sheep-face:#33528f;--sheep-eye:#fdfeff;--sheep-nose:#9cb8ea;--dust:#b48be0;--dust-glow:#f2a9c9;--rim:#c9a8ee;--border:oklab(67.2593% .0522837 -.105707/.26);--focus-ring:var(--link);--selection:color-mix(in oklab, var(--accent) 30%, transparent);--code-bg:#f1ecf8;--shadow-sm:0 2px 10px -3px #785aaa24;--shadow-md:0 16px 36px -16px #785aaa52}:root[data-theme=night]{color-scheme:dark;--bg:#0c0a16;--surface:#15122a;--surface-glass:#1c16388c;--ink:#eeeaf7;--ink-muted:#a69fc4;--link:#bba6ff;--accent:#8c6cf2;--accent-2:#f0a6d0;--cloud:#2a2250;--sky-top:#1a1235;--sky-bottom:#0c0a16;--sky-mid:color-mix(in srgb, var(--sky-top) 64%, var(--sky-bottom));--sky-low:color-mix(in srgb, var(--sky-top) 31%, var(--sky-bottom));--night:1;--stars:1;--star:var(--ink);--cloud-lit:var(--cloud);--cloud-shade:color-mix(in oklab, var(--cloud) 72%, var(--accent-2));--sun:transparent;--sun-glow:transparent;--horizon:color-mix(in oklab, var(--accent) 35%, transparent);--holo:#cbb8ff;--holo-tip:#cbb8ff;--holo-edge:#f0a6d0;--holo-glow:#f0a6d0;--mote:#cbb8ff;--mote-glow:#f0a6d0;--sheep-ring:#bba6ff;--sheep-wool:#eeeaf7;--sheep-face:#57479f;--sheep-eye:#eeeaf7;--sheep-nose:#b7a6f2;--dust:#e6dcff;--dust-glow:#f0a6d0;--rim:#9b82f2;--border:color-mix(in oklab, var(--accent) 25%, transparent);--focus-ring:var(--link);--selection:color-mix(in oklab, var(--accent) 45%, transparent);--code-bg:color-mix(in oklab, var(--accent) 12%, var(--surface));--shadow-sm:0 0 12px -4px #8c6cf240;--shadow-md:0 0 40px -10px #8c6cf259}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#0c0a16;--surface:#15122a;--surface-glass:#1c16388c;--ink:#eeeaf7;--ink-muted:#a69fc4;--link:#bba6ff;--accent:#8c6cf2;--accent-2:#f0a6d0;--cloud:#2a2250;--sky-top:#1a1235;--sky-bottom:#0c0a16;--sky-mid:color-mix(in srgb, var(--sky-top) 64%, var(--sky-bottom));--sky-low:color-mix(in srgb, var(--sky-top) 31%, var(--sky-bottom));--night:1;--stars:1;--star:var(--ink);--cloud-lit:var(--cloud);--cloud-shade:color-mix(in oklab, var(--cloud) 72%, var(--accent-2));--sun:transparent;--sun-glow:transparent;--horizon:color-mix(in oklab, var(--accent) 35%, transparent);--holo:#cbb8ff;--holo-tip:#cbb8ff;--holo-edge:#f0a6d0;--holo-glow:#f0a6d0;--mote:#cbb8ff;--mote-glow:#f0a6d0;--sheep-ring:#bba6ff;--sheep-wool:#eeeaf7;--sheep-face:#57479f;--sheep-eye:#eeeaf7;--sheep-nose:#b7a6f2;--dust:#e6dcff;--dust-glow:#f0a6d0;--rim:#9b82f2;--border:color-mix(in oklab, var(--accent) 25%, transparent);--focus-ring:var(--link);--selection:color-mix(in oklab, var(--accent) 45%, transparent);--code-bg:color-mix(in oklab, var(--accent) 12%, var(--surface));--shadow-sm:0 0 12px -4px #8c6cf240;--shadow-md:0 0 40px -10px #8c6cf259}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--space-4))}@media (width>=120rem){html{font-size:106.25%}}@media (width>=160rem){html{font-size:112.5%}}body{min-height:100dvh}img,picture,video,canvas,svg{max-width:100%;display:block}img,video{height:auto}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}html{background-color:var(--bg);color:var(--ink)}body{font-family:var(--font-body);font-size:var(--step-0);line-height:var(--leading-body);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;flex-direction:column;display:flex}main{flex:1}h1,h2,h3,h4{font-family:var(--font-display);font-weight:560;line-height:var(--leading-heading);letter-spacing:-.01em;text-wrap:balance;font-variation-settings:"SOFT" 100, "WONK" 1}h1{font-size:var(--step-5)}h2{font-size:var(--step-3)}h3{font-size:var(--step-2)}h4{font-size:var(--step-1)}p{text-wrap:pretty}small{font-size:var(--step--1)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}::selection{background-color:var(--selection)}a{color:var(--link);text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in oklab, var(--link) 40%, transparent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px;text-decoration-color:var(--link)}:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-xs)}[tabindex="-1"]:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{top:var(--space-3);left:var(--space-3);z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--surface);color:var(--link);box-shadow:var(--shadow-md);position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.container{width:min(100% - 2 * var(--gutter), var(--page-max));margin-inline:auto}.button{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);background:var(--link);color:var(--bg);box-shadow:var(--shadow-sm);transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out);padding:.6em 1.3em;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{color:var(--bg);box-shadow:var(--shadow-md), 0 0 22px -6px color-mix(in oklab, var(--dust-glow) 55%, transparent);text-decoration:none;transform:translateY(-2px)}.button--quiet{border:1px solid var(--border);background:var(--surface);color:var(--link)}.button--quiet:hover{color:var(--link)}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--space-5)}.prose>:is(h2,h3,h4){margin-top:var(--space-7)}.prose>:is(h2,h3,h4)+*{margin-top:var(--space-3)}.prose :is(ul,ol){padding-left:var(--space-5)}.prose li+li{margin-top:var(--space-2)}.prose li::marker{color:var(--ink-muted)}.prose blockquote{padding-left:var(--space-5);border-left:3px solid var(--border);color:var(--ink-muted);font-style:italic}.prose :not(pre)>code{border-radius:var(--radius-xs);background:var(--code-bg);padding:.1em .35em}.prose pre{padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--code-bg);line-height:1.55;overflow-x:auto}.prose pre.astro-code{background-color:var(--code-bg)!important}.astro-code,.astro-code span{color:var(--shiki-light)}:root[data-theme=night] .astro-code,:root[data-theme=night] .astro-code span{color:var(--shiki-dark)}@media (prefers-color-scheme:dark){:root:not([data-theme]) .astro-code,:root:not([data-theme]) .astro-code span{color:var(--shiki-dark)}}.prose hr{border:0;border-top:1px solid var(--border);margin-block:var(--space-7)}.prose img{border-radius:var(--radius-md)}.alive{transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .5s var(--ease-out);position:relative}.alive:is(:hover,:focus-within,:focus-visible){border-color:color-mix(in oklab, var(--rim) 70%, transparent);box-shadow:var(--shadow-md), 0 0 0 1px color-mix(in oklab, var(--rim) 35%, transparent), 0 0 28px -6px color-mix(in oklab, var(--dust-glow) 45%, transparent);transform:translateY(-3px)}.dust{pointer-events:none;opacity:0;transition:opacity .7s var(--ease-out);position:absolute;inset:0}.alive:is(:hover,:focus-within,:focus-visible) .dust{opacity:1}.dust i{left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:var(--radius-pill);background:radial-gradient(circle, var(--dust) 0 35%, color-mix(in oklab, var(--dust-glow) 70%, transparent) 55%, transparent 72%);opacity:0;animation:mote var(--dur) ease-out var(--delay) infinite;animation-play-state:paused;position:absolute}.dust i.star{width:calc(var(--s) * 2.4);height:calc(var(--s) * 2.4);background:var(--dust);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 3px var(--dust-glow));border-radius:0}.alive:is(:hover,:focus-within,:focus-visible) .dust i{animation-play-state:running}@keyframes mote{0%{opacity:0;transform:translate(0)scale(.6)}20%{opacity:1}70%{opacity:.8}to{transform:translate(var(--dx), var(--dy)) scale(1);opacity:0}}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur-theme);animation-timing-function:var(--ease-in-out)}::view-transition-old(theme-toggle){display:none}::view-transition-new(theme-toggle){animation:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.dust{display:none}.alive:is(:hover,:focus-within,:focus-visible){transform:none}}.sheep[data-astro-cid-fqcvkbyu]{flex:none;width:auto;overflow:visible}.sheep[data-astro-cid-fqcvkbyu] .sheep-ring{fill:var(--sheep-ring)}.sheep[data-astro-cid-fqcvkbyu] .sheep-wool{fill:var(--sheep-wool)}.sheep[data-astro-cid-fqcvkbyu] .sheep-face{fill:var(--sheep-face)}.sheep[data-astro-cid-fqcvkbyu] .sheep-nose{fill:var(--sheep-nose)}.sheep[data-astro-cid-fqcvkbyu] .sheep-eye{fill:none;stroke:var(--sheep-eye);stroke-linecap:round}.z[data-astro-cid-fqcvkbyu]{fill:none;stroke:var(--sheep-ring);stroke-linecap:round;stroke-linejoin:round;opacity:var(--o);transform-box:fill-box;animation:z-drift 5.4s var(--ease-in-out) calc(var(--i) * .9s) infinite}@keyframes z-drift{0%,to{opacity:var(--o);transform:translate(0)}50%{opacity:calc(var(--o) * .5);transform:translate(.5px,-1.6px)}}@media (prefers-reduced-motion:reduce){.z[data-astro-cid-fqcvkbyu]{animation:none}}.logo[data-astro-cid-f7espo7c]{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--step-1);font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:-.01em;color:var(--ink);font-weight:600;text-decoration:none;display:inline-flex}.logo[data-astro-cid-f7espo7c] .mark{height:1.75em}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--border);border-radius:var(--radius-pill);background:color-mix(in oklab, var(--surface) 35%, transparent);block-size:44px;inline-size:44px;color:var(--ink-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;view-transition-name:theme-toggle;place-items:center;padding:0;display:grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--ink);box-shadow:var(--shadow-sm)}.theme-toggle[data-astro-cid-l6lhmie6]:focus-visible{border-radius:var(--radius-pill)}:root:not([data-theme]) .theme-toggle[data-astro-cid-l6lhmie6]{display:none}:root[data-theme=night] .theme-toggle[data-astro-cid-l6lhmie6]{background:var(--surface-glass);color:var(--accent-2)}.sun-and-moon[data-astro-cid-l6lhmie6]>[data-astro-cid-l6lhmie6]:is(.sun,.sun-beams),.moon-bite[data-astro-cid-l6lhmie6]{transform-origin:50%}.sun[data-astro-cid-l6lhmie6]{transition:transform .5s var(--ease-elastic)}.sun-beams[data-astro-cid-l6lhmie6]{transition:transform .5s var(--ease-elastic) .15s, opacity .5s var(--ease-out) .15s}.moon-bite[data-astro-cid-l6lhmie6]{transition:transform .25s var(--ease-out)}:root[data-theme=night] .sun[data-astro-cid-l6lhmie6]{transition-duration:.25s;transition-timing-function:var(--ease-out);transform:scale(1.75)}:root[data-theme=night] .sun-beams[data-astro-cid-l6lhmie6]{opacity:0;transition-duration:.15s;transition-delay:0s;transform:rotate(-25deg)}:root[data-theme=night] .moon-bite[data-astro-cid-l6lhmie6]{transition-delay:.25s;transform:translate(-7px)}@media (hover:hover){.theme-toggle[data-astro-cid-l6lhmie6]:hover .sun-beams[data-astro-cid-l6lhmie6]{transform:rotate(12deg)}:root[data-theme=night] .theme-toggle[data-astro-cid-l6lhmie6]:hover .sun-beams[data-astro-cid-l6lhmie6]{transform:rotate(-25deg)}}.site-header[data-astro-cid-nen7h5rs]{z-index:20;min-height:var(--header-h);padding-block:var(--space-2);align-items:center;display:grid;position:sticky;top:0}.site-header[data-astro-cid-nen7h5rs]:before{content:"";z-index:-1;border-bottom:1px solid var(--border);background:var(--surface-glass);backdrop-filter:blur(14px);box-shadow:var(--shadow-sm);opacity:0;position:absolute;inset:0}@supports (animation-timeline:scroll()){.site-header[data-astro-cid-nen7h5rs]:before{animation-name:header-glass;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root);animation-range:0 8rem}}@supports not (animation-timeline:scroll()){.site-header[data-astro-cid-nen7h5rs]:before{opacity:1}}@keyframes header-glass{to{opacity:1}}.inner[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-3) var(--space-5);grid-template-columns:1fr auto;grid-template-areas:"logo toggle""nav nav";display:grid}.inner[data-astro-cid-nen7h5rs]>.logo{grid-area:logo;justify-self:start}.inner[data-astro-cid-nen7h5rs]>.theme-toggle{grid-area:toggle}nav[data-astro-cid-nen7h5rs]{grid-area:nav}ul[data-astro-cid-nen7h5rs]{gap:var(--space-1) var(--space-5);flex-wrap:wrap;padding:0;list-style:none;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-block:var(--space-2);color:var(--ink-muted);text-decoration:none;display:inline-block;position:relative}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--ink)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:after{content:"";left:0;right:0;bottom:var(--space-1);border-radius:var(--radius-pill);background:var(--link);opacity:0;height:2px;transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);position:absolute;transform:scaleX(.4)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover:after,nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]:after{opacity:1;transform:scaleX(1)}@media (width>=48rem){.inner[data-astro-cid-nen7h5rs]{grid-template-columns:auto 1fr auto;grid-template-areas:"logo nav toggle"}nav[data-astro-cid-nen7h5rs]{justify-self:end}}.skyline{isolation:isolate;position:relative}.skyline--under-header{margin-top:calc(-1 * var(--header-h));padding-top:var(--header-h)}.sky{z-index:-1;pointer-events:none;background:radial-gradient(100% 45% at 50% 78%, var(--horizon), transparent 70%), linear-gradient(var(--sky-top) 0%, var(--sky-top) 30%, var(--sky-mid) 55%, var(--sky-low) 78%, var(--sky-bottom) 100%);position:absolute;inset:0;overflow:hidden}.sky:after{content:"";background:linear-gradient(transparent, var(--bg));height:22%;position:absolute;inset:auto 0 0}.sky-defs{width:0;height:0;position:absolute}.sky-day{opacity:calc(1 - var(--night));--sun-at:72% 92%;position:absolute;inset:0}.sky-sun{background: radial-gradient(28% 20% at var(--sun-at), color-mix(in oklab, var(--sun) 55%, transparent), transparent 70%), radial-gradient(75% 42% at var(--sun-at), color-mix(in oklab, var(--sun-glow) 45%, transparent), transparent 78%);position:absolute;inset:0}.sky--band .sky-day{--sun-at:84% 120%}.sky--footer .sky-sun{background:radial-gradient(90% 70% at 50% 110%, color-mix(in oklab, var(--sun-glow) 25%, transparent), transparent 70%)}.sky-night{position:absolute;inset:0}.sky-night>:not(.sky-nebula){opacity:var(--stars)}.sky-nebula{opacity:var(--night);background:radial-gradient(38% 32% at 18% 28%, color-mix(in oklab, var(--accent) 28%, transparent), transparent 70%), radial-gradient(34% 28% at 78% 18%, color-mix(in oklab, var(--accent-2) 20%, transparent), transparent 70%), radial-gradient(45% 30% at 60% 62%, color-mix(in oklab, var(--accent) 16%, transparent), transparent 70%);position:absolute;inset:0}.sky-stars{width:100%;height:100%;position:absolute;inset:0}.sky{--clear-header:linear-gradient(transparent calc(var(--header-h) - var(--space-3)), black calc(var(--header-h) + var(--space-5)))}.sky--hero .sky-stars{mask-image:var(--clear-header), radial-gradient(ellipse 42% 32% at 32% 42%, transparent 55%, black 100%);mask-composite:intersect}@media (width<=64rem){.sky--hero .sky-stars{mask-image:var(--clear-header), linear-gradient(black 22%, transparent 30%)}.sky--hero .sky-twinkle{display:none}}.sky-stars circle{fill:var(--star)}.sky-twinkle{left:var(--x);top:var(--y);border-radius:var(--radius-pill);background:radial-gradient(circle, var(--star) 0 35%, transparent 70%);opacity:.7;width:4px;height:4px;animation:sky-twinkle var(--dur) ease-in-out var(--delay) infinite;position:absolute}@keyframes sky-twinkle{0%,to{opacity:.3}50%{opacity:1}}.sky-cloud-lit{stop-color:var(--cloud-lit)}.sky-cloud-light{stop-color:var(--cloud)}.sky-cloud-shade{stop-color:var(--cloud-shade)}.sky-cloudbank{position:absolute;inset:0}.sky-clouds{--tile:clamp(60rem, 100vw, 120rem);left:0;bottom:var(--bottom);width:calc(4 * var(--tile));opacity:var(--o);will-change:transform;animation:sky-drift var(--dur) linear var(--delay) infinite;display:flex;position:absolute}.sky-tile{width:var(--tile);flex:none;height:auto}.sky-clouds--far{--dur:180s;--delay:-40s;--o:.55;--bottom:26%}.sky-clouds--mid{--dur:120s;--delay:-75s;--o:.8;--bottom:8%}.sky-clouds--near{--dur:60s;--delay:-20s;--o:1;--bottom:-8%}.sky--hero .sky-clouds--far{opacity:calc(var(--o) * var(--night))}.sky--hero .sky-clouds--mid{--bottom:calc(8% - 7% * (1 - var(--night)))}.sky--hero .sky-clouds--near{--bottom:calc(-8% - 8% * (1 - var(--night)))}.sky-edge-soft{display:none}:root[data-theme=night] .sky-edge-soft{display:inline}:root[data-theme=night] .sky-edge-crisp{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme]) .sky-edge-soft{display:inline}:root:not([data-theme]) .sky-edge-crisp{display:none}}@keyframes sky-drift{to{transform:translateX(calc(-1 * var(--tile)))}}.skyline--band{min-height:calc(var(--header-h) + var(--space-10))}.sky--band{background:radial-gradient(60% 45% at 80% 100%, var(--horizon), transparent 70%), linear-gradient(var(--sky-top) 0%, var(--sky-top) 30%, var(--sky-mid) 55%, var(--sky-low) 78%, var(--sky-bottom) 100%)}.sky--band .sky-cloudbank{mask-image:linear-gradient(90deg,#0000 40%,#000 75%)}.sky--band .sky-clouds--far{--dur:180s;--delay:-60s;--o:.8;--bottom:calc(var(--tile) * -.04)}.sky--band .sky-stars{mask-image:var(--clear-header), linear-gradient(to right, transparent 60%, black 72%);mask-composite:intersect}@media (width<=48rem){.sky--band .sky-clouds--far{--o:.4}.sky--band .sky-night{display:none}}.sky--footer{background:radial-gradient(100% 60% at 50% 100%, var(--horizon), transparent 70%), linear-gradient(var(--bg) 0%, var(--sky-top) 100%)}.sky--footer:after{display:none}.sky--footer .sky-clouds{--tile:clamp(48rem, 80vw, 110rem)}.sky--footer .sky-clouds--mid{--delay:-30s;--o:.7;--bottom:calc(var(--tile) * -.075)}.sky--footer .sky-clouds--near{--delay:-45s;--bottom:calc(var(--tile) * -.115)}@media (prefers-reduced-motion:reduce){.sky *{will-change:auto;animation:none!important}}.site-footer[data-astro-cid-jo6i4kqk]{margin-top:var(--space-9);padding-block:var(--space-9) var(--space-10);color:var(--ink-muted)}.inner[data-astro-cid-jo6i4kqk]{gap:var(--space-3);text-align:center;justify-items:center;display:grid}.tagline[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--step-1);font-variation-settings:"SOFT" 100;color:var(--ink);flex-direction:column;display:flex}.tagline[data-astro-cid-jo6i4kqk] .little-sheep{height:2rem}.links[data-astro-cid-jo6i4kqk]{justify-content:center;gap:var(--space-2) var(--space-5);flex-wrap:wrap;padding:0;list-style:none;display:flex}
