@font-face{font-family:Switzer;src:url(/fonts/switzer-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-800.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-900.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{color-scheme:light dark;--font-sans:"Switzer", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Cabinet Grotesk", var(--font-sans);--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", monospace;--paper:light-dark(oklch(98.5% .004 250),oklch(17.6% .014 262));--paper-raised:light-dark(oklch(99.8% .0015 250),oklch(21.6% .016 262));--paper-sunken:light-dark(oklch(96.3% .005 252),oklch(15.2% .012 262));--ink:light-dark(oklch(24% .03 264),oklch(94.8% .006 250));--ink-muted:light-dark(oklch(43.5% .022 260),oklch(73.5% .014 255));--ink-faint:light-dark(oklch(55% .017 258),oklch(58.5% .014 258));--accent:light-dark(oklch(52% .11 220),oklch(72% .106 214));--accent-strong:light-dark(oklch(45% .115 223),oklch(80% .1 210));--link:light-dark(oklch(48.5% .115 223),oklch(74% .105 214));--accent-wash:light-dark(oklch(95.5% .022 220),oklch(25.5% .03 232));--brass:light-dark(oklch(66% .086 72),oklch(80% .084 76));--brass-wash:light-dark(oklch(95.5% .028 78),oklch(27% .03 70));--hairline:light-dark(oklch(90.5% .006 258),oklch(100% 0 0/.1));--hairline-strong:light-dark(oklch(83% .008 258),oklch(100% 0 0/.17));--ring:var(--accent);--selection-bg:light-dark(oklch(52% .11 220/.16),oklch(72% .106 214/.24));--fs-eyebrow:.75rem;--fs-meta:.8125rem;--fs-sm:.9375rem;--fs-base:clamp(1.0625rem, 1.02rem + .22vw, 1.1875rem);--fs-lead:clamp(1.2rem, 1.12rem + .42vw, 1.45rem);--fs-h4:clamp(1.05rem, 1rem + .28vw, 1.2rem);--fs-h3:clamp(1.32rem, 1.2rem + .6vw, 1.6rem);--fs-h2:clamp(1.7rem, 1.44rem + 1.25vw, 2.4rem);--fs-h1:clamp(2.35rem, 1.75rem + 2.9vw, 3.85rem);--fs-display:clamp(2.9rem, 1.9rem + 4.9vw, 5.4rem);--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;--measure:68ch;--w-prose:43rem;--w-content:54rem;--w-wide:72rem;--gutter:clamp(1.25rem, .6rem + 3vw, 3.5rem);--radius:2px;--radius-lg:4px;--radius-img:6px;--ease:cubic-bezier(.22, .61, .36, 1);--dur:.5s}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%;scroll-behavior:smooth;-webkit-tap-highlight-color:transparent}body{min-height:100svh;font-family:var(--font-sans);font-size:var(--fs-base);color:var(--ink);background-color:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"ss01", "cv01";font-weight:400;line-height:1.7;overflow-x:hidden}img,picture,svg,video,canvas{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--selection-bg)}:where(h1,h2,h3,h4){font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;color:var(--ink);font-weight:800;line-height:1.06}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--ring);outline-offset:3px;border-radius:1px}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}.meta{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:.01em;color:var(--ink-faint);font-variant-numeric:tabular-nums}.container{width:100%;max-width:calc(var(--w-wide) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.container--content{max-width:calc(var(--w-content) + var(--gutter) * 2)}.container--prose{max-width:calc(var(--w-prose) + var(--gutter) * 2)}.rule{border:0;border-top:1px solid var(--hairline);width:100%}.link{color:var(--link);text-underline-offset:.18em;text-decoration:underline 1px;text-decoration-color:color-mix(in oklch, var(--link) 40%, transparent);transition:text-decoration-color var(--dur) var(--ease), color var(--dur) var(--ease)}.link:hover{text-decoration-color:var(--link);color:var(--accent-strong)}.btn{--btn-bg:var(--accent);font-weight:600;font-size:var(--fs-sm);letter-spacing:.005em;color:oklch(99% .005 240);background:var(--btn-bg);border-radius:var(--radius-lg);border:1px solid color-mix(in oklch, var(--accent-strong) 60%, black 8%);transition:transform var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);box-shadow:0 1px 0 color-mix(in oklch, var(--ink) 6%, transparent);align-items:center;gap:.6em;padding:.72em 1.35em;display:inline-flex}.btn:hover{background:var(--accent-strong);box-shadow:0 8px 24px -12px color-mix(in oklch, var(--accent) 70%, transparent);transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn--ghost{color:var(--ink);border:1px solid var(--hairline-strong);box-shadow:none;background:0 0}.btn--ghost:hover{background:var(--paper-raised);border-color:var(--accent);color:var(--accent-strong);box-shadow:none}.arrow-link{color:var(--accent-strong);font-weight:600;font-size:var(--fs-sm);align-items:center;gap:.45em;display:inline-flex}.arrow-link svg{transition:transform var(--dur) var(--ease)}.arrow-link:hover svg{transform:translate(4px)}.u-photo{border-radius:var(--radius-img);filter:saturate()}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .u-photo{filter:grayscale(.28)saturate(.88)brightness(.94)}}:root[data-theme=dark] .u-photo{filter:grayscale(.28)saturate(.88)brightness(.94)}.u-desaturate{filter:grayscale()contrast(1.02);transition:filter .7s var(--ease)}.u-desaturate:hover,.u-desaturate:focus-within{filter:grayscale(0)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .u-desaturate:hover,:root:not([data-theme=light]) .u-desaturate:focus-within{filter:grayscale(.15)brightness(.95)}}:root[data-theme=dark] .u-desaturate:hover,:root[data-theme=dark] .u-desaturate:focus-within{filter:grayscale(.15)brightness(.95)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--gutter);z-index:100;background:var(--accent);color:#fff;border-radius:0 0 var(--radius-lg) var(--radius-lg);transition:transform .2s var(--ease);padding:.5rem 1rem;position:absolute;top:0;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}@keyframes rise{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes draw-underline{0%{stroke-dashoffset:var(--dash,240)}to{stroke-dashoffset:0}}.rise{opacity:0;animation:rise .9s var(--ease) forwards;animation-delay:var(--delay,0s)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.rise{opacity:1;transform:none}}.astro-code{font-family:var(--font-mono);border:1px solid var(--hairline);border-radius:var(--radius-lg);tab-size:2;padding:1.1rem 1.25rem;font-size:.86em;line-height:1.7;overflow-x:auto}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!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;background-color:var(--shiki-dark-bg)!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}}.theme-toggle[data-astro-cid-l6lhmie6]{width:2.25rem;height:2.25rem;color:var(--ink-muted);border-radius:var(--radius-lg);cursor:pointer;transition:color var(--dur) var(--ease), background var(--dur) var(--ease), border-color var(--dur) var(--ease);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--accent-strong);background:var(--paper-raised);border-color:var(--hairline)}.theme-toggle[data-astro-cid-l6lhmie6] .icon[data-astro-cid-l6lhmie6]{grid-area:1/1}.icon-sun[data-astro-cid-l6lhmie6]{display:none}.icon-moon[data-astro-cid-l6lhmie6],:root[data-theme=dark] .icon-sun[data-astro-cid-l6lhmie6]{display:block}:root[data-theme=dark] .icon-moon[data-astro-cid-l6lhmie6]{display:none}.site-header[data-astro-cid-nen7h5rs]{z-index:50;background:color-mix(in oklch, var(--paper) 82%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.site-header[data-astro-cid-nen7h5rs][data-scrolled]{border-bottom-color:var(--hairline)}.header-inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:1rem;height:4.5rem;display:flex}.brand[data-astro-cid-nen7h5rs]{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);transition:color var(--dur) var(--ease);font-size:1.12rem;font-weight:800}.brand[data-astro-cid-nen7h5rs]:hover{color:var(--accent-strong)}.brand-mono[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);letter-spacing:.02em;font-weight:700;display:none}.nav-desktop[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{align-items:center;gap:clamp(1rem,.4rem + 1.4vw,2rem);list-style:none;display:flex}.nav-link[data-astro-cid-nen7h5rs]{font-size:var(--fs-sm);color:var(--ink-muted);transition:color var(--dur) var(--ease);padding-block:.35rem;font-weight:500;position:relative}.nav-link[data-astro-cid-nen7h5rs]:after{content:"";background:var(--accent);transform-origin:0;height:1.5px;transition:transform var(--dur) var(--ease);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav-link[data-astro-cid-nen7h5rs]:hover{color:var(--ink)}.nav-link[data-astro-cid-nen7h5rs]:hover:after{transform:scaleX(1)}.nav-link[data-astro-cid-nen7h5rs].is-active{color:var(--ink)}.nav-link[data-astro-cid-nen7h5rs].is-active:after{background:var(--accent);transform:scaleX(1)}.header-actions[data-astro-cid-nen7h5rs]{align-items:center;gap:.4rem;display:flex}.menu-toggle[data-astro-cid-nen7h5rs]{border-radius:var(--radius-lg);width:2.25rem;height:2.25rem;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:none}.menu-bars[data-astro-cid-nen7h5rs]{gap:5px;width:20px;display:grid}.menu-bars[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]{width:100%;height:1.6px;transition:transform .3s var(--ease), opacity .3s var(--ease);background:currentColor}.site-header[data-astro-cid-nen7h5rs][data-menu-open] .menu-bars[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]:first-child{transform:translateY(3.3px)rotate(45deg)}.site-header[data-astro-cid-nen7h5rs][data-menu-open] .menu-bars[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]:last-child{transform:translateY(-3.3px)rotate(-45deg)}.nav-mobile[data-astro-cid-nen7h5rs]{border-top:1px solid var(--hairline);padding:var(--space-3) var(--gutter) var(--space-5);background:var(--paper)}.nav-mobile[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{gap:.25rem;list-style:none;display:grid}.nav-mobile[data-astro-cid-nen7h5rs] .nav-link[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--hairline);padding:.6rem 0;font-size:1.1rem;display:block}.nav-mobile[data-astro-cid-nen7h5rs] .nav-link[data-astro-cid-nen7h5rs]:after{display:none}@media (width<=720px){.nav-desktop[data-astro-cid-nen7h5rs]{display:none}.menu-toggle[data-astro-cid-nen7h5rs]{display:grid}.brand-full[data-astro-cid-nen7h5rs]{display:none}.brand-mono[data-astro-cid-nen7h5rs]{font-size:1.05rem;display:inline}}@media (prefers-reduced-motion:reduce){.nav-link[data-astro-cid-nen7h5rs]:after{transition:none}}.site-footer[data-astro-cid-jo6i4kqk]{margin-top:var(--space-10);padding-bottom:var(--space-6)}.footer-grid[data-astro-cid-jo6i4kqk]{gap:var(--space-7);padding-top:var(--space-6);grid-template-columns:1.6fr 1fr 1.2fr;display:grid}.footer-name[data-astro-cid-jo6i4kqk]{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:1.15rem;font-weight:800}.footer-name[data-astro-cid-jo6i4kqk]:hover{color:var(--accent-strong)}.footer-tagline[data-astro-cid-jo6i4kqk]{max-width:34ch;color:var(--ink-muted);font-size:var(--fs-sm);margin-top:.6rem;line-height:1.65}.footer-socials[data-astro-cid-jo6i4kqk]{gap:.35rem;margin-top:1.1rem;display:flex}.social-btn[data-astro-cid-jo6i4kqk]{width:2.2rem;height:2.2rem;color:var(--ink-muted);border:1px solid var(--hairline);border-radius:var(--radius-lg);transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease);place-items:center;display:grid}.social-btn[data-astro-cid-jo6i4kqk]:hover{color:var(--accent-strong);border-color:var(--accent);transform:translateY(-2px)}.footer-nav[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk],.footer-colophon[data-astro-cid-jo6i4kqk]{list-style:none}.footer-nav[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{gap:.5rem;margin-top:.9rem;display:grid}.footer-nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--ink-muted);font-size:var(--fs-sm);transition:color var(--dur) var(--ease)}.footer-nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent-strong)}.colophon-text[data-astro-cid-jo6i4kqk]{max-width:32ch;color:var(--ink-muted);font-size:var(--fs-sm);margin-top:.9rem;line-height:1.65}.footer-base[data-astro-cid-jo6i4kqk]{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:1rem;display:flex}@media (width<=720px){.footer-grid[data-astro-cid-jo6i4kqk]{gap:var(--space-6);grid-template-columns:1fr}}@media (width<=460px){.footer-base[data-astro-cid-jo6i4kqk]{flex-direction:column;align-items:flex-start;gap:.4rem}}
