@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--ink:#f4f0e8;--muted:#b5ad9f;--quiet:#79736a;--surface:#131313;--surface-raised:#1c1c1b;--line:#373630;--signal:#e5aa52;--signal-ink:#18120a}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;background:var(--surface)}body{min-height:100%;color:var(--ink);background:var(--surface);font-family:var(--font-geist-sans), Arial, sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}::selection{color:var(--signal-ink);background:var(--signal)}*{scrollbar-color:var(--quiet) var(--surface);scrollbar-width:thin}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--signal);outline-offset:5px}main{overflow:hidden}.site-nav,.hero,.section,.closing,footer{width:min(1180px,100% - 48px);margin-inline:auto}.site-nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-block:27px;display:flex}.wordmark{font-family:var(--font-geist-mono), monospace;letter-spacing:-.04em;text-transform:uppercase;align-items:center;gap:.65rem;font-size:.78rem;font-weight:650;display:inline-flex}.wordmark img{width:2rem;height:2rem}.nav-links{color:var(--muted);gap:1.4rem;font-size:.9rem;display:flex}.nav-links a:hover{color:var(--ink)}.hero{padding-block:clamp(7rem,15vw,13.5rem) clamp(4rem,10vw,8rem)}.availability,.work-period,.stack,footer{font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase}.availability{color:var(--signal);border:1px solid color-mix(in srgb, var(--signal), transparent 55%);margin-bottom:2.2rem;padding:.45rem .65rem;font-size:.68rem;display:inline-block}h1,h2,h3{letter-spacing:-.055em;text-wrap:balance;font-weight:520}h1{max-width:950px;font-size:clamp(3.8rem,9.1vw,8.9rem);line-height:.88}h1 span{max-width:800px;color:var(--muted);letter-spacing:-.045em;margin-top:.45em;font-size:.42em;line-height:1.03;display:block}.hero-bottom{justify-content:space-between;align-items:end;gap:3rem;max-width:980px;margin-top:clamp(3.8rem,8vw,7rem);display:flex}.hero-summary{max-width:62ch;color:var(--muted);font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.6}.text-link,.contact-link,.project-action{white-space:nowrap;font-weight:620}.text-link{border-bottom:1px solid var(--signal);padding-bottom:.3rem}.text-link span,.contact-link span,.project-action span{color:var(--signal);transition:transform .2s;display:inline-block}.text-link:hover span,.contact-link:hover span,.project-entry:hover .project-action span{transform:translate(.35rem)}.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-raised);grid-template-columns:repeat(3,1fr);padding-inline:max(24px,50vw - 590px);display:grid}.proof-item{border-right:1px solid var(--line);flex-direction:column;justify-content:space-between;min-height:202px;padding:2.2rem 1.75rem;display:flex}.proof-item:last-child{border-right:0}.proof-item strong{color:var(--signal);font-family:var(--font-geist-mono), monospace;letter-spacing:-.08em;white-space:nowrap;font-size:clamp(1.45rem,3.1vw,3.4rem)}.proof-item p{max-width:29ch;color:var(--muted);font-size:.9rem;line-height:1.45}.section{padding-block:clamp(6rem,11vw,10rem)}.section-heading{grid-template-columns:1.25fr .75fr;align-items:end;gap:4rem;padding-bottom:3rem;display:grid}h2{max-width:11ch;font-size:clamp(2.4rem,5vw,5.1rem);line-height:.95}.section-heading>p{max-width:48ch;color:var(--muted);line-height:1.6}.work-list{border-top:1px solid var(--line)}.work-entry{border-bottom:1px solid var(--line);grid-template-columns:185px 1fr;gap:2rem;padding-block:2.4rem;display:grid}.work-period,.stack{color:var(--quiet);font-size:.68rem;line-height:1.45}.work-entry h3,.project-entry h3{font-size:clamp(1.5rem,2.5vw,2.25rem);line-height:1.05}.company{color:var(--signal);margin-top:.45rem;margin-bottom:1.05rem}.work-entry div>p:last-child{color:var(--muted);max-width:64ch;line-height:1.6}.projects-section{border-top:1px solid var(--line)}.project-list{border-top:1px solid var(--line);display:grid}.project-entry{border-bottom:1px solid var(--line);grid-template-columns:1.1fr 1.4fr auto;align-items:center;gap:2rem;padding:2.2rem 1.5rem;transition:background .2s;display:grid}.project-entry:hover{background:#20201d}.stack{margin-top:.75rem}.project-entry>p{color:var(--muted);line-height:1.55}.project-action{font-size:.9rem}.closing{padding-block:clamp(7rem,14vw,12rem)}.closing>p{color:var(--signal);font-family:var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1.6rem;font-size:.73rem}.closing h2{max-width:15ch}.contact-link{margin-top:3rem;font-size:1.05rem;display:inline-block}footer{color:var(--quiet);border-top:1px solid var(--line);justify-content:space-between;gap:1rem;padding-block:1.5rem 2.4rem;font-size:.65rem;display:flex}.maintenance{width:min(760px,100% - 48px);margin:0 auto;padding:20vh 0}.maintenance p{color:var(--signal);font-family:var(--font-geist-mono), monospace;text-transform:uppercase;margin-bottom:1rem;font-size:.75rem}.maintenance h1{margin-bottom:2.5rem;font-size:clamp(3rem,8vw,6rem)}.maintenance a{border-bottom:1px solid var(--signal);padding-bottom:.3rem}.notes-intro,.post-list,.article{width:min(920px,100% - 48px);margin-inline:auto}.notes-intro{padding-block:clamp(6rem,13vw,10rem) clamp(4rem,8vw,6rem)}.eyebrow{color:var(--signal);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:.7rem}.notes-intro h1{max-width:9ch;margin-top:1rem;font-size:clamp(4rem,10vw,8.5rem)}.notes-intro>p:last-child{max-width:52ch;color:var(--muted);margin-top:2.5rem;font-size:1.1rem;line-height:1.65}.back-link{color:var(--muted);font-size:.9rem}.back-link span,.post-preview-action span{color:var(--signal)}.back-link span{margin-left:.25rem}.post-list{border-top:1px solid var(--line);padding-bottom:clamp(8rem,14vw,12rem)}.post-preview{border-bottom:1px solid var(--line);grid-template-columns:160px 1fr auto;align-items:start;gap:2rem;padding:2.4rem 0;transition:background .2s,padding .2s;display:grid}.post-preview:hover{background:var(--surface-raised);padding-inline:1rem}.post-preview-meta{color:var(--quiet);font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase;gap:.55rem;font-size:.68rem;line-height:1.45;display:grid}.post-preview-content h2{max-width:16ch;margin-top:.75rem;font-size:clamp(2rem,4vw,3.8rem);line-height:.97}.post-preview-content>p:last-child{max-width:55ch;color:var(--muted);margin-top:1.35rem;line-height:1.6}.post-preview-action{white-space:nowrap;padding-top:.2rem;font-size:.9rem;font-weight:620}.article{padding-block:clamp(5rem,11vw,9rem)}.article-header{border-bottom:1px solid var(--line);max-width:810px;padding-bottom:clamp(4rem,8vw,6rem)}.article-header h1{max-width:10ch;margin-top:1.1rem;font-size:clamp(3.8rem,9.2vw,7.6rem)}.article-deck{max-width:50ch;color:var(--muted);margin-top:2.5rem;font-size:clamp(1.08rem,2vw,1.35rem);line-height:1.6}.article-byline{color:var(--quiet);font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase;margin-top:2rem;font-size:.7rem}.article-body{width:min(680px,100%);color:var(--muted);padding-top:clamp(3.5rem,8vw,6rem);font-size:1.06rem;line-height:1.8}.article-body p+p{margin-top:1.35rem}.article-body h2{max-width:15ch;color:var(--ink);margin-top:4.5rem;margin-bottom:1.35rem;font-size:clamp(2rem,4vw,3.25rem);line-height:1}.article-lede{color:var(--ink);font-size:clamp(1.25rem,2.3vw,1.58rem);line-height:1.58}.article-pullquote{border-left:2px solid var(--signal);color:var(--ink);letter-spacing:-.03em;margin-block:4rem;padding:1.6rem 0 1.6rem 1.5rem;font-size:clamp(1.25rem,2.4vw,1.65rem);line-height:1.4}.article-footer{border-top:1px solid var(--line);color:var(--signal);margin-top:5rem;padding-top:1.5rem;font-weight:620}@media (max-width:760px){.site-nav,.hero,.section,.closing,footer{width:min(100% - 32px,1180px)}.hero{padding-top:5.5rem}.hero-bottom,.section-heading{display:block}.hero-bottom{margin-top:3.5rem}.text-link{margin-top:2rem;display:inline-block}.proof{grid-template-columns:1fr;padding-inline:0}.proof-item{border-right:0;border-bottom:1px solid var(--line);min-height:155px;padding:1.7rem 16px}.proof-item:last-child{border-bottom:0}.section-heading>p{margin-top:1.7rem}.work-entry{grid-template-columns:1fr;gap:.8rem}.project-entry{grid-template-columns:1fr;gap:1rem;padding-inline:1rem}.project-action{margin-top:.3rem}footer{flex-direction:column}.notes-intro,.post-list,.article{width:min(100% - 32px,920px)}.post-preview{grid-template-columns:1fr;gap:1.4rem}.post-preview:hover{padding-inline:.7rem}.post-preview-action{padding-top:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}
