@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.0mrjj4bg00-he.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__RxUvrW__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__RxUvrW__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.3ms9vq719j3f8.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__SkU7Dq__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__SkU7Dq__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
.SiteFooter-module__wWXZva__footer{background:var(--ink);color:var(--night-muted)}.SiteFooter-module__wWXZva__footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px 32px;padding-block:28px;display:flex}.SiteFooter-module__wWXZva__footer .label{color:var(--night-muted)}.SiteFooter-module__wWXZva__footer nav{flex-wrap:wrap;gap:24px;display:flex}.SiteFooter-module__wWXZva__footer a{padding-block:4px;text-decoration:none;transition:color .25s}.SiteFooter-module__wWXZva__footer a:hover,.SiteFooter-module__wWXZva__footer a:focus-visible{color:var(--white)}
.SiteHeader-module__mdpVJq__bar{top:env(safe-area-inset-top,0px);z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);view-transition-name:SiteHeader-module__mdpVJq__site-header;background:#ffffffe0;border-bottom:1px solid #0000;position:sticky}@supports (animation-timeline:scroll()){.SiteHeader-module__mdpVJq__bar{animation:linear both SiteHeader-module__mdpVJq__rule;animation-timeline:scroll();animation-range:0 24px}@keyframes SiteHeader-module__mdpVJq__rule{to{border-bottom-color:var(--rule)}}}.SiteHeader-module__mdpVJq__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-block:18px;display:flex}.SiteHeader-module__mdpVJq__logo{letter-spacing:-.02em;font-size:1.125rem;font-weight:600;text-decoration:none}.SiteHeader-module__mdpVJq__logo span{font:400 .8125rem var(--font-mono);color:var(--ink-muted);margin-left:10px}.SiteHeader-module__mdpVJq__nav{flex-wrap:wrap;gap:clamp(14px,2.4vw,32px);font-size:.9375rem;display:flex}.SiteHeader-module__mdpVJq__nav a{color:var(--ink-muted);background:linear-gradient(var(--accent), var(--accent)) 0 100% / 0 2px no-repeat;transition:color .25s, background-size .35s var(--ease);padding-block:6px 3px;text-decoration:none}.SiteHeader-module__mdpVJq__nav a:hover,.SiteHeader-module__mdpVJq__nav a[aria-current]{color:var(--ink);background-size:100% 2px}
:root{--white:#fff;--paper:#f3f2ee;--rule:#e2e0da;--ink:#0b0b0c;--ink-muted:#55565a;--night-muted:#a3a39e;--accent:#ed5145;--accent-deep:#c82a2a;--accent-tint:#fdecea;--font-sans:var(--font-geist-sans), "Helvetica Neue", Arial, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, "SF Mono", Menlo, monospace;--text-body:1.125rem;--text-lead:clamp(1.25rem, 1.1rem + .6vw, 1.5rem);--text-h2:clamp(2rem, 1.4rem + 2.6vw, 3.5rem);--text-display:clamp(2.4rem, .6rem + 6vw, 6.5rem);--text-label:.8125rem;--gutter:clamp(16px, 4vw, 48px);--section-y:clamp(72px, 10vw, 144px);--max:1360px;--radius:2px;--ease:cubic-bezier(.2, .7, .1, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--white);color:var(--ink);font:400 var(--text-body) / 1.6 var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}h1,h2,h3{text-wrap:balance;margin:0;font-weight:600}h2{font-size:var(--text-h2);letter-spacing:-.035em;line-height:1.02}h3{letter-spacing:-.015em;font-size:1.375rem;line-height:1.2}p{margin:0}.wrap{max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-y)}.band{background:var(--paper)}.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{z-index:100;background:var(--ink);color:var(--white);border-radius:var(--radius);padding:12px 16px;text-decoration:none;position:absolute;top:-100px;left:16px}.skip-link:focus{top:16px}.label{font:400 var(--text-label) / 1.5 var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.label .n{color:var(--accent-deep)}.btn{isolation:isolate;min-height:52px;font:500 1rem/1 var(--font-sans);border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:var(--white);cursor:pointer;transition:color .35s var(--ease), border-color .35s var(--ease);align-items:center;gap:.75em;padding:0 1.4em;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";z-index:-1;background:var(--accent);transform-origin:0;transition:transform .45s var(--ease);position:absolute;inset:0;transform:scaleX(0)}.btn:hover:before,.btn:focus-visible:before{transform:scaleX(1)}.btn:hover,.btn:focus-visible{color:var(--ink);border-color:var(--accent)}.btn[disabled]{opacity:.6;cursor:progress}.btn-ghost{color:var(--ink);background:0 0}.arrow{font-family:var(--font-mono);transition:transform .35s var(--ease)}.btn:hover .arrow{transform:translate(5px)}.link{color:var(--accent-deep);transition:background-size .35s var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;font-weight:500;text-decoration:none}.link:hover,.link:focus-visible{background-size:100% 1px}.todo{font:500 .75rem/1.4 var(--font-mono);color:var(--accent-deep);border:1px dashed var(--accent-deep);border-radius:var(--radius);padding:2px 6px;display:inline-block}.email-at:before{content:"@"}.tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tags li{font:400 .8125rem/1 var(--font-mono);border:1px solid var(--rule);border-radius:var(--radius);padding:7px 9px}.section-head{grid-template-columns:repeat(12,minmax(0,1fr));gap:20px 24px;margin-bottom:clamp(40px,6vw,72px);display:grid}.section-head .label{grid-column:1/span 3;padding-top:.6em}.section-head h2,.section-head h1{grid-column:4/span 9}.cols{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;display:grid}.col-main{grid-column:4/-1;min-width:0}.page-title{letter-spacing:-.045em;font-size:clamp(2.4rem,1rem + 5vw,5rem);line-height:.98}.prose{gap:1em;max-width:68ch;display:grid}.prose h2{letter-spacing:-.025em;margin-top:1.4em;font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}.prose ul{margin:0;padding-left:1.2em}.prose dl{gap:10px;margin:0;display:grid}.prose dt{font-weight:500}.prose dd{color:var(--ink-muted);overflow-wrap:anywhere;margin:2px 0 0}::view-transition-old(root){animation-duration:.45s;animation-timing-function:var(--ease)}::view-transition-new(root){animation-duration:.45s;animation-timing-function:var(--ease)}::view-transition-group(.morph){animation-duration:.55s;animation-timing-function:var(--ease)}@keyframes fadeUp{0%{opacity:.001;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.reveal{animation:linear both fadeUp;animation-timeline:view();animation-range:entry entry 55%}.reveal-bar{transform-origin:0;animation:linear both grow;animation-timeline:view();animation-range:entry 20% cover 40%}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}@media (max-width:960px){.section-head .label,.section-head h2,.section-head h1,.col-main{grid-column:1/-1}}
