:root{--bg:#fbfaf8;--bg-elevated:#fff;--bg-sunken:#f2f0ec;--bg-code:#f6f4f0;--fg:#16150f;--fg-muted:#56534a;--fg-subtle:#7d7a70;--border:#e2ded6;--border-strong:#cfc9bd;--accent:#b8410f;--accent-hover:#96340c;--accent-fg:#fff;--accent-wash:#fdf1ea;--grid-line:#16150f0b;--shadow-sm:0 1px 2px #16150f0d;--shadow-md:0 4px 16px -4px #16150f17, 0 1px 3px #16150f0d;--shadow-lg:0 20px 48px -16px #16150f29, 0 2px 8px #16150f0d;--font-sans:"Inter var", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", "Menlo", "Cascadia Code", monospace;--step--1:clamp(.82rem, .8rem + .1vw, .875rem);--step-0:clamp(1rem, .97rem + .15vw, 1.075rem);--step-1:clamp(1.2rem, 1.14rem + .3vw, 1.375rem);--step-2:clamp(1.45rem, 1.32rem + .65vw, 1.85rem);--step-3:clamp(1.8rem, 1.55rem + 1.25vw, 2.6rem);--step-4:clamp(2.2rem, 1.7rem + 2.5vw, 3.9rem);--step-5:clamp(2.6rem, 1.75rem + 4.2vw, 5.4rem);--gutter:clamp(1.15rem, 4vw, 2.5rem);--measure:68ch;--wide:1200px;--radius:4px;--radius-lg:10px;color-scheme:light}:root:not([data-theme=light]){@media (prefers-color-scheme:dark){--bg:#0c0d0f;--bg-elevated:#14161a;--bg-sunken:#08090a;--bg-code:#121418;--fg:#f0eee9;--fg-muted:#a4a29c;--fg-subtle:#75736e;--border:#232630;--border-strong:#343846;--accent:#ff8a4c;--accent-hover:#ffa470;--accent-fg:#17110b;--accent-wash:#ff8a4c17;--grid-line:#f0eee909;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px -4px #0000008c, 0 1px 3px #0006;--shadow-lg:0 20px 48px -16px #000000b3, 0 2px 8px #00000073;color-scheme:dark}}:root[data-theme=dark]{--bg:#0c0d0f;--bg-elevated:#14161a;--bg-sunken:#08090a;--bg-code:#121418;--fg:#f0eee9;--fg-muted:#a4a29c;--fg-subtle:#75736e;--border:#232630;--border-strong:#343846;--accent:#ff8a4c;--accent-hover:#ffa470;--accent-fg:#17110b;--accent-wash:#ff8a4c17;--grid-line:#f0eee909;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px -4px #0000008c, 0 1px 3px #0006;--shadow-lg:0 20px 48px -16px #000000b3, 0 2px 8px #00000073;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}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-color:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--step-0);font-feature-settings:"kern" 1, "liga" 1, "calt" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;min-height:100vh;line-height:1.65;display:flex;overflow-x:hidden}img,picture,svg,video{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4{letter-spacing:-.022em;text-wrap:balance;font-weight:620;line-height:1.12}p,li{text-wrap:pretty}a{color:inherit;text-decoration-color:color-mix(in oklab, currentColor 32%, transparent);text-underline-offset:.19em;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}a:hover{text-decoration-color:currentColor}code,kbd,pre,samp{font-family:var(--font-mono);font-feature-settings:"liga" 0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}::selection{background:var(--accent);color:var(--accent-fg)}hr{border:0;border-top:1px solid var(--border);margin:3rem 0}.wrap{width:100%;max-width:var(--wide);padding-inline:var(--gutter);margin-inline:auto}.wrap-narrow{width:100%;max-width:760px;padding-inline:var(--gutter);margin-inline:auto}.stack>*+*{margin-block-start:var(--stack-space,1rem)}.eyebrow{font-family:var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:var(--fg-subtle);font-size:.72rem;font-weight:500}.skip-link{z-index:100;background:var(--accent);color:var(--accent-fg);font-size:var(--step--1);border-radius:0 0 var(--radius) var(--radius);padding:.6rem 1.1rem;font-weight:600;transition:translate .18s;position:absolute;top:0;left:50%;translate:-50% -110%}.skip-link:focus{translate:-50%}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{--btn-bg:transparent;--btn-fg:var(--fg);--btn-border:var(--border-strong);background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-border);border-radius:var(--radius);font-size:var(--step--1);letter-spacing:-.005em;cursor:pointer;white-space:nowrap;align-items:center;gap:.5rem;padding:.62rem 1.15rem;font-weight:560;text-decoration:none;transition:background .16s,border-color .16s,color .16s,transform .16s;display:inline-flex}.btn:hover{--btn-border:var(--fg-subtle);text-decoration:none;transform:translateY(-1px)}.btn-primary{--btn-bg:var(--accent);--btn-fg:var(--accent-fg);--btn-border:var(--accent)}.btn-primary:hover{--btn-bg:var(--accent-hover);--btn-border:var(--accent-hover)}.btn svg{flex:none}.prose{color:var(--fg);font-size:1.09rem;line-height:1.72}.prose>*+*{margin-block-start:1.5em}.prose h2{font-size:var(--step-2);margin-block:2.6em -.4em;scroll-margin-top:5rem}.prose h3{font-size:var(--step-1);margin-block:2.1em -.5em;scroll-margin-top:5rem}.prose h4{font-size:var(--step-0);margin-block:1.8em -.6em;scroll-margin-top:5rem;font-weight:680}.prose a{color:var(--accent);text-decoration-color:color-mix(in oklab, var(--accent) 40%, transparent);font-weight:500}.prose strong{color:var(--fg);font-weight:650}.prose ul,.prose ol{padding-inline-start:1.4em}.prose li+li{margin-block-start:.5em}.prose li::marker{color:var(--fg-subtle)}.prose blockquote{border-inline-start:2px solid var(--accent);color:var(--fg-muted);margin-inline:0;padding:.2em 0 .2em 1.4em;font-size:1.06em;font-style:italic}.prose blockquote p+p{margin-block-start:.8em}.prose :not(pre)>code{background:var(--bg-code);border:1px solid var(--border);white-space:nowrap;border-radius:3px;padding:.15em .4em;font-size:.87em}.prose pre{border:1px solid var(--border);border-radius:var(--radius-lg);tab-size:2;padding:1.15rem 1.25rem;font-size:.86rem;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.prose figure{margin-inline:0}.prose img,.prose figure img{border-radius:var(--radius-lg);border:1px solid var(--border);width:100%}.prose figcaption,.prose img+em{font-size:var(--step--1);color:var(--fg-subtle);text-align:center;margin-block-start:.7em;font-style:normal;display:block}.prose hr{margin-block:3rem}.prose table{border-collapse:collapse;width:100%;font-size:var(--step--1)}.prose :is(th,td){border:1px solid var(--border);text-align:start;padding:.6rem .85rem}.prose th{background:var(--bg-sunken);font-weight:620}.prose .table-scroll{overflow-x:auto}.site-header[data-astro-cid-3ef6ksr2]{z-index:50;background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:saturate(1.6)blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.bar[data-astro-cid-3ef6ksr2]{align-items:center;gap:1rem;height:60px;display:flex}.brand[data-astro-cid-3ef6ksr2]{align-items:center;gap:.6rem;min-width:0;margin-inline-end:auto;text-decoration:none;display:inline-flex}.brand-mark[data-astro-cid-3ef6ksr2]{background:var(--fg);width:26px;height:26px;color:var(--bg);font-family:var(--font-mono);letter-spacing:-.03em;border-radius:3px;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:grid}.brand-name[data-astro-cid-3ef6ksr2]{letter-spacing:-.017em;white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;font-weight:600;overflow:hidden}.nav-list[data-astro-cid-3ef6ksr2]{align-items:center;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.nav-link[data-astro-cid-3ef6ksr2]{border-radius:var(--radius);color:var(--fg-muted);padding:.4rem .7rem;font-size:.875rem;font-weight:520;text-decoration:none;transition:color .15s,background .15s;display:block}.nav-link[data-astro-cid-3ef6ksr2]:hover{color:var(--fg);background:var(--bg-sunken)}.nav-link[data-astro-cid-3ef6ksr2].active{color:var(--fg);font-weight:600}.bar-end[data-astro-cid-3ef6ksr2]{border-inline-start:1px solid var(--border);align-items:center;gap:.15rem;margin-inline-start:.35rem;padding-inline-start:.4rem;display:flex}.icon-link[data-astro-cid-3ef6ksr2]{border-radius:var(--radius);width:32px;height:32px;color:var(--fg-muted);cursor:pointer;background:0 0;border:0;place-items:center;transition:color .15s,background .15s;display:grid}.icon-link[data-astro-cid-3ef6ksr2]:hover{color:var(--fg);background:var(--bg-sunken)}.i-moon[data-astro-cid-3ef6ksr2],:root:not([data-theme=dark]) .i-sun[data-astro-cid-3ef6ksr2]{display:none}:root:not([data-theme=dark]) .i-moon[data-astro-cid-3ef6ksr2]{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme]) .i-sun[data-astro-cid-3ef6ksr2]{display:block}:root:not([data-theme]) .i-moon[data-astro-cid-3ef6ksr2]{display:none}}:root[data-theme=dark] .i-sun[data-astro-cid-3ef6ksr2]{display:block}:root[data-theme=dark] .i-moon[data-astro-cid-3ef6ksr2]{display:none}@media (width<=33rem){.brand-name[data-astro-cid-3ef6ksr2]{display:none}}.email[data-astro-cid-mswyb5gg]{cursor:pointer}.email[data-astro-cid-mswyb5gg]:not(.btn){color:inherit}.site-footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--border);background:var(--bg-sunken);font-size:var(--step--1);margin-block-start:auto;padding-block-start:4rem}.inner[data-astro-cid-sz7xmlte]{grid-template-columns:minmax(0,1.7fr) repeat(3,minmax(0,1fr));gap:2.5rem 2rem;padding-block-end:3rem;display:grid}.name[data-astro-cid-sz7xmlte]{letter-spacing:-.017em;font-size:.95rem;font-weight:620}.blurb[data-astro-cid-sz7xmlte]{color:var(--fg-muted);max-width:34ch;margin-block-start:.5rem;line-height:1.6}.blurb[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--fg);font-weight:520}.where[data-astro-cid-sz7xmlte]{color:var(--fg-subtle);font-family:var(--font-mono);margin-block-start:.8rem;font-size:.75rem}.col[data-astro-cid-sz7xmlte] h2[data-astro-cid-sz7xmlte]{margin-block-end:.9rem}.col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--fg-muted);text-decoration:none}.col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.baseline[data-astro-cid-sz7xmlte]{border-top:1px solid var(--border);color:var(--fg-subtle);flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;padding-block:1.15rem;font-size:.78rem;display:flex}.built[data-astro-cid-sz7xmlte]{font-family:var(--font-mono)}@media (width<=46rem){.inner[data-astro-cid-sz7xmlte]{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.5rem}.identity[data-astro-cid-sz7xmlte]{grid-column:1/-1}}
