:root{color-scheme:dark;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:144px;--text-xs:.8125rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5625rem;--text-2xl:1.953rem;--text-3xl:2.441rem;--text-display-s:clamp(2.25rem, 4vw + .5rem, 3.75rem);--text-display:clamp(2.75rem, 5vw + 1rem, 5.25rem);--text-section:clamp(2rem, 2.5vw + 1rem, 3.5rem);--text-title:clamp(1.25rem, .75vw + .875rem, 1.625rem);--text-lead:clamp(1.125rem, .35vw + 1rem, 1.375rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--color-error:oklch(72% .15 27);--color-success:oklch(76% .13 150);--container:1440px;--gutter:64px;--gap-columns:32px;--section-gap-s:120px;--section-gap:144px;--section-gap-l:176px;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-sticky-nav:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--color-paper:oklch(17% .008 250);--color-paper-2:oklch(21% .009 250);--color-paper-3:oklch(13.5% .007 250);--color-ink:oklch(95% .005 250);--color-ink-2:oklch(83% .008 250);--color-muted:oklch(71% .01 250);--color-rule:oklch(31% .01 250);--color-rule-2:oklch(42% .012 250);--color-accent:oklch(82% .15 80);--color-accent-ink:oklch(18% .04 75);--color-accent-soft:oklch(29% .05 80);--color-focus:oklch(82% .15 80);--color-cool:oklch(77% .12 245);--color-cool-soft:oklch(29% .05 245);--color-ok:oklch(76% .15 150);--color-ok-soft:oklch(24.5% .03 150);--color-bad:oklch(70% .17 25);--color-bad-soft:oklch(24.5% .035 25);--font-display:"Host Grotesk Variable", "Host Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body:var(--font-display);--font-outlier:"Atkinson Hyperlegible Mono", ui-monospace, monospace;--radius-card:10px;--radius-pill:6px;--rule-hair:1px;--shadow-card:none;--tracking-display:-.03em;--display-weight:500}*,:before,:after{box-sizing:border-box}html{scrollbar-color:var(--color-muted) var(--color-paper);scroll-padding-top:var(--space-3xl)}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;caret-color:var(--color-accent);margin:0;line-height:1.55}::selection{background:color-mix(in oklab, var(--color-accent) 25%, transparent)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight,700);font-synthesis:none;letter-spacing:var(--tracking-display);overflow-wrap:break-word;text-wrap:balance;min-width:0;margin:0;line-height:1.05}h1{max-width:20ch;font-size:var(--text-display)}h2{max-width:30ch;font-size:var(--text-section)}h3{max-width:40ch;font-size:var(--text-title);line-height:1.2}.lead{font-size:var(--text-lead);max-width:52ch;line-height:1.45}p{text-wrap:pretty;margin:0}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);box-sizing:border-box;margin-inline:auto}.num,.figure,td.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-slot]{background:linear-gradient(160deg, var(--color-paper-2,var(--color-paper)), var(--color-paper-3,var(--color-paper)));position:relative;overflow:hidden}[data-slot]>img{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}[data-slot]:has(>img)>:not(img):not([data-keep]){display:none!important}@media (width<=60rem){:root{--gutter:24px;--section-gap-s:80px;--section-gap:96px;--section-gap-l:120px}}@media (width<=40rem){:root{--gutter:16px;--section-gap-s:56px;--section-gap:72px;--section-gap-l:96px;--gap-columns:16px}}@media (prefers-reduced-motion:reduce){:not(.keep-motion),:not(.keep-motion):before,:not(.keep-motion):after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-slot]:has(>img){isolation:isolate;background:var(--color-ink);outline:1px solid color-mix(in oklab, var(--color-ink) 8%, transparent);outline-offset:-1px}[data-slot]>img{z-index:0;filter:grayscale()contrast(1.08);mix-blend-mode:multiply}[data-slot]:has(>img):before{content:"";z-index:1;background:var(--color-paper-3);mix-blend-mode:lighten;pointer-events:none;position:absolute;inset:0}:root{--nav-h:64px}html{scroll-padding-top:calc(var(--nav-h) + var(--space-lg))}code,kbd,pre,.measured{font-family:var(--font-outlier)}.measured{font-size:var(--text-sm);font-variant-numeric:tabular-nums slashed-zero;color:var(--color-cool)}:not(pre)>code{padding:var(--space-3xs) var(--space-2xs);border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-3);color:var(--color-ink);overflow-wrap:anywhere;border-radius:4px;font-size:.875em}.section{padding-block:var(--section-gap-s)}.section--wide{padding-block:var(--section-gap)}.band{background:var(--color-paper-3);color:var(--color-ink);border-block:var(--rule-hair) solid var(--color-rule)}.head{gap:var(--space-md);margin-bottom:var(--space-2xl);display:grid}.head--split{gap:var(--gap-columns);grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:end}.head p{color:var(--color-muted);font-size:var(--text-lead);max-width:46ch;line-height:1.45}.page-head{gap:var(--space-lg);padding-block:var(--space-3xl) var(--space-2xl);border-bottom:var(--rule-hair) solid var(--color-rule);display:grid}.page-head>*{min-width:0}.page-head h1{font-size:var(--text-display-s);max-width:22ch}.page-head p{color:var(--color-ink-2);font-size:var(--text-lead);max-width:52ch;line-height:1.45}.btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:48px;padding-inline:var(--space-lg);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-pill);background:var(--color-paper-2);color:var(--color-ink);font:500 var(--text-md)/1 var(--font-body);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out);text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-rule);border-color:var(--color-muted)}.btn:active{background:var(--color-paper-3)}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.btn--primary:hover{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.btn--primary:active{background:var(--color-ink-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.link{color:var(--color-ink);text-decoration-line:underline;text-decoration-color:var(--color-rule-2);text-underline-offset:.2em;transition:color var(--dur-short) var(--ease-out), text-decoration-color var(--dur-short) var(--ease-out)}.link:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.link:active{color:var(--color-ink-2)}.prose{gap:var(--space-md);color:var(--color-muted);display:grid}.prose p,.prose li{max-width:65ch}.prose strong{color:var(--color-ink);font-weight:500}.prose a{color:var(--color-ink);text-decoration-color:var(--color-rule-2);text-underline-offset:.2em}.prose a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.panel{color:var(--color-ink);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2);min-width:0;overflow:hidden}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;vertical-align:top;padding:var(--space-md) var(--space-lg) var(--space-md) 0;border-bottom:var(--rule-hair) solid var(--color-rule)}.table th:last-child,.table td:last-child{padding-right:0}.table thead th{font-size:var(--text-sm);color:var(--color-muted);white-space:nowrap;border-bottom-color:var(--color-rule-2);font-weight:500}.table tbody th{color:var(--color-ink);font-weight:500}.table td{color:var(--color-muted)}.state{font-size:var(--text-sm);white-space:nowrap;font-weight:500}.state--done{color:var(--color-ok)}.state--active{color:var(--color-accent)}.state--planned{color:var(--color-muted)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=60rem){.head--split{grid-template-columns:minmax(0,1fr);align-items:start}.page-head{padding-block:var(--space-2xl) var(--space-xl)}}.wordmark:where(.astro-qisgtjgl){align-items:center;gap:var(--space-xs);color:var(--color-ink);display:inline-flex}.cursor:where(.astro-qisgtjgl){fill:var(--color-accent)}.name:where(.astro-qisgtjgl){font:600 1.25rem/1 var(--font-display);letter-spacing:-.03em}.site-header:where(.astro-nen7h5rs){z-index:var(--z-sticky-nav);background:var(--color-paper);border-bottom:var(--rule-hair) solid var(--color-rule);position:sticky;top:0}.bar:where(.astro-nen7h5rs){align-items:center;gap:var(--space-xl);height:var(--nav-h);display:flex}.home:where(.astro-nen7h5rs){padding-block:var(--space-xs);text-decoration:none;display:inline-flex}ul:where(.astro-nen7h5rs){gap:var(--space-2xs);margin:0;padding:0;list-style:none;display:flex}nav:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs){padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);color:var(--color-muted);transition:color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);font-weight:500;text-decoration:none;display:block}nav:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs):hover{color:var(--color-ink);background:var(--color-paper-2)}nav:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs):active{background:var(--color-paper-3)}nav:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs)[aria-current=page]{color:var(--color-ink);background:var(--color-paper-2)}.status:where(.astro-nen7h5rs){font-size:var(--text-sm);color:var(--color-muted);text-decoration-line:underline;text-decoration-color:var(--color-rule-2);text-underline-offset:.2em;transition:color var(--dur-short) var(--ease-out);margin-left:auto}.status:where(.astro-nen7h5rs):hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.status:where(.astro-nen7h5rs):active{color:var(--color-ink-2)}.mobile:where(.astro-nen7h5rs){margin-left:auto;display:none;position:relative}summary:where(.astro-nen7h5rs){cursor:pointer;border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-pill);width:44px;height:44px;color:var(--color-ink);place-items:center;list-style:none;display:grid}summary:where(.astro-nen7h5rs):hover{background:var(--color-paper-2)}summary:where(.astro-nen7h5rs)::-webkit-details-marker{display:none}.mobile:where(.astro-nen7h5rs) nav:where(.astro-nen7h5rs){right:0;top:calc(100% + var(--space-xs));min-width:13rem;z-index:var(--z-dropdown);background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-card);padding:var(--space-2xs);position:absolute}.mobile:where(.astro-nen7h5rs) ul:where(.astro-nen7h5rs){flex-direction:column}.mobile:where(.astro-nen7h5rs) nav:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs){padding:var(--space-sm);font-size:var(--text-lead)}@media (width<=56rem){.desktop:where(.astro-nen7h5rs){display:none}.mobile:where(.astro-nen7h5rs){display:block}}.site-footer:where(.astro-jo6i4kqk){border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-2xl);background:var(--color-paper-3)}.grid:where(.astro-jo6i4kqk){gap:var(--gap-columns);grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));display:grid}.brand:where(.astro-jo6i4kqk){gap:var(--space-md);align-content:start;display:grid}.brand:where(.astro-jo6i4kqk) p:where(.astro-jo6i4kqk){color:var(--color-muted);max-width:34ch}h2:where(.astro-jo6i4kqk){font:500 var(--text-sm)/1.2 var(--font-body);letter-spacing:0;text-wrap:balance;color:var(--color-muted);margin-bottom:var(--space-md)}ul:where(.astro-jo6i4kqk){gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}a:where(.astro-jo6i4kqk){color:var(--color-ink-2);transition:color var(--dur-short) var(--ease-out);text-decoration:none}a:where(.astro-jo6i4kqk):hover{color:var(--color-accent)}a:where(.astro-jo6i4kqk):active{color:var(--color-ink)}.base:where(.astro-jo6i4kqk){margin-top:var(--space-2xl);padding-block:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule)}.base:where(.astro-jo6i4kqk) p:where(.astro-jo6i4kqk){color:var(--color-muted);font-size:var(--text-sm);max-width:75ch}@media (width<=56rem){.grid:where(.astro-jo6i4kqk){grid-template-columns:repeat(2,minmax(0,1fr))}.brand:where(.astro-jo6i4kqk){grid-column:1/-1}}html,body{overflow-x:clip}.skip:where(.astro-hkbrpulz){left:var(--space-md);top:calc(-1 * var(--space-3xl));z-index:var(--z-modal);padding:var(--space-sm) var(--space-md);background:var(--color-accent);color:var(--color-accent-ink);border-radius:var(--radius-pill);font-weight:500;position:absolute}.skip:where(.astro-hkbrpulz):focus{top:var(--space-md)}
