@import "https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@62..125,300..900&family=Literata:opsz,wght@7..72,400..900&display=swap";:root{--paper:oklch(24% .027 284);--mantle:oklch(20% .024 284);--ink:oklch(89% .027 91);--muted:oklch(74% .033 286);--faint:oklch(32% .034 284);--rule:oklch(43% .042 284);--accent:oklch(78% .13 232);--accent-2:oklch(82% .105 326);--display:"Archivo", sans-serif;--text:"Literata", serif}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);background:linear-gradient(90deg, color-mix(in oklch, var(--ink) 4%, transparent) 1px, transparent 1px) 0 0 / clamp(42px, 5.4vw, 74px) 100%, radial-gradient(circle at 82% 6%, oklch(78% .13 232/.16), transparent 26rem), radial-gradient(circle at 4% 70%, oklch(82% .105 326/.11), transparent 22rem), var(--paper);font-family:var(--text);text-rendering:optimizelegibility;margin:0}body:before{content:"";pointer-events:none;opacity:.08;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{color:var(--accent)}.page{width:min(1380px,100% - clamp(28px,6vw,96px));margin:0 auto;padding:clamp(22px,4vw,52px) 0 clamp(44px,7vw,92px)}.masthead{font-family:var(--display);letter-spacing:.02em;color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:start;gap:20px;padding-bottom:clamp(48px,9vw,124px);font-size:clamp(.72rem,.9vw,.88rem);font-stretch:82%;display:grid}.masthead nav{justify-self:center;gap:18px;font-weight:760;display:inline-flex}.masthead>span{justify-self:end}.hero{grid-template-columns:minmax(0,1fr) minmax(280px,38ch);align-items:end;column-gap:clamp(28px,7vw,112px);padding-bottom:clamp(48px,9vw,132px);display:grid}.siteMark{font-family:var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);grid-column:1/-1;margin:0 0 clamp(18px,3vw,34px);font-size:.76rem;font-weight:750;font-stretch:72%}h1{font-family:var(--display);letter-spacing:-.045em;text-transform:none;max-width:8.8ch;margin:0;font-size:clamp(4.2rem,10.6vw,12.2rem);font-weight:850;font-stretch:96%;line-height:.86}.lede{max-width:36ch;color:var(--ink);margin:0 0 .45em;font-size:clamp(1.22rem,2.2vw,2rem);line-height:1.18}.statement{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:minmax(180px,330px) minmax(0,72ch);align-items:start;gap:clamp(28px,7vw,110px);padding:clamp(28px,6vw,84px) 0;display:grid}.portraitBlock{width:min(100%,330px);position:sticky;top:28px}.portraitBlock img{aspect-ratio:4/5;object-fit:cover;object-position:center 28%;filter:saturate(.72)contrast(1.06);border:1px solid var(--rule);width:100%;box-shadow:10px 10px 0 var(--mantle);border-radius:0;display:block}.statementText p{max-width:68ch;margin:0;font-size:clamp(1.28rem,2.1vw,2.08rem);line-height:1.28}.statementText p+p{margin-top:1.05em}.statementText .personal{color:var(--muted);font-size:clamp(1.05rem,1.5vw,1.38rem)}.signalRail{border-bottom:1px solid var(--ink);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.signalRail p{border-right:1px solid var(--rule);min-height:178px;font-family:var(--display);margin:0;padding:18px 18px 22px 0;font-size:clamp(.92rem,1.15vw,1.12rem);font-weight:650;line-height:1.18}.signalRail p:last-child{border-right:0}.signalRail span{color:var(--accent);margin-bottom:42px;font-size:.78rem;display:block}.sideProjects{border-bottom:1px solid var(--ink);grid-template-columns:minmax(160px,25vw) 1fr;gap:clamp(22px,5vw,72px);padding:clamp(28px,5vw,62px) 0;display:grid}.sideProjects div{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid}.sideProjects a{background:var(--paper);min-height:118px;font-family:var(--display);align-content:start;padding:14px;text-decoration:none;display:grid}.sideProjects strong{text-underline-offset:.22em;font-size:clamp(1rem,1.25vw,1.24rem);font-weight:780;font-stretch:88%;text-decoration:underline}.sideProjects span{color:var(--muted);margin-top:28px;font-size:.86rem;font-weight:680;line-height:1.18}.trace{border-bottom:1px solid var(--ink);grid-template-columns:minmax(160px,25vw) 1fr;gap:clamp(22px,5vw,72px);padding:clamp(40px,6vw,84px) 0;display:grid}h2{font-family:var(--display);letter-spacing:.055em;text-transform:uppercase;margin:0;font-size:clamp(1rem,1.5vw,1.55rem);font-weight:840;font-stretch:92%}.traceList article{border-top:1px solid var(--rule);grid-template-columns:74px minmax(130px,220px) minmax(0,1fr);align-items:baseline;gap:clamp(14px,3vw,42px);padding:15px 0;display:grid}.traceList article:first-child{border-top-color:var(--ink)}time,.company{font-family:var(--display);font-size:.92rem;font-weight:760}.company{text-decoration-thickness:1px}time{color:var(--accent)}.traceList p{color:var(--muted);margin:0;font-size:clamp(.95rem,1vw,1.08rem);line-height:1.48}.tooling{border-bottom:1px solid var(--ink);grid-template-columns:minmax(160px,25vw) 1fr;gap:clamp(22px,5vw,72px);padding:clamp(30px,5vw,68px) 0;display:grid}.tooling p{font-family:var(--display);margin:0;line-height:1.35}.tooling strong{font-size:clamp(1.1rem,1.75vw,1.7rem);font-weight:800;font-stretch:86%;display:block}.tooling span{color:var(--muted);margin-top:12px;font-size:clamp(.95rem,1.25vw,1.18rem);font-weight:650;font-stretch:88%;display:block}.photosPage .masthead{padding-bottom:clamp(44px,8vw,96px)}.photosHero{border-bottom:1px solid var(--ink);grid-template-columns:minmax(0,1fr) minmax(280px,42ch);align-items:end;column-gap:clamp(28px,7vw,112px);padding-bottom:clamp(28px,5vw,62px);display:grid}.photosHero h1{max-width:9ch;font-size:clamp(4.2rem,8.8vw,9.8rem)}.photosHero p:last-child{color:var(--muted);margin:0 0 .4em;font-size:clamp(1.04rem,1.45vw,1.36rem);line-height:1.28}.photoGrid{columns:3 260px;border-bottom:1px solid var(--ink);column-gap:clamp(16px,2vw,28px);padding:clamp(28px,5vw,70px) 0}.photoGrid figure{break-inside:avoid;margin:0 0 clamp(16px,2vw,28px)}.photoGrid button{width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;padding:0;display:block}.photoGrid img{border:1px solid var(--rule);filter:saturate(.9)contrast(1.04);width:100%;height:auto;display:block}.photoGrid button:hover img,.photoGrid button:focus-visible img{border-color:var(--accent)}.lightbox{z-index:20;cursor:zoom-out;background:oklch(13% .02 284/.88);place-items:center;padding:clamp(16px,4vw,56px);display:grid;position:fixed;inset:0}.lightbox img{border:1px solid var(--rule);cursor:default;width:auto;max-width:min(100%,1400px);height:auto;max-height:86vh;display:block;box-shadow:0 24px 80px oklch(8% .02 284/.55)}@media (prefers-reduced-motion:no-preference){.lightbox{animation:.18s cubic-bezier(.16,1,.3,1) both lightboxFade}.lightbox img{animation:.26s cubic-bezier(.16,1,.3,1) both lightboxImage}.lightboxClose{animation:.22s cubic-bezier(.16,1,.3,1) both lightboxFade}}@keyframes lightboxFade{0%{opacity:0}to{opacity:1}}@keyframes lightboxImage{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.lightboxClose{border:1px solid var(--rule);background:var(--paper);color:var(--ink);font-family:var(--display);cursor:pointer;padding:9px 12px;font-weight:760;position:fixed;top:clamp(14px,3vw,32px);right:clamp(14px,3vw,32px)}.footer{grid-template-columns:minmax(220px,44ch) 1fr;align-items:end;gap:clamp(24px,6vw,88px);padding-top:clamp(52px,8vw,116px);display:grid}.footer p{color:var(--muted);margin:0;font-size:clamp(1.02rem,1.6vw,1.4rem);line-height:1.35}.footer nav{font-family:var(--display);flex-wrap:wrap;justify-content:flex-end;gap:12px 22px;font-size:1.05rem;font-weight:740;display:flex}.socialLink{align-items:center;gap:8px;display:inline-flex}.socialLink svg{fill:currentColor;flex:none;width:1.2em;height:1.2em}@media (prefers-reduced-motion:no-preference){.masthead,.siteMark,h1,.lede,.statement,.signalRail,.sideProjects,.trace,.tooling,.photosHero,.photoGrid,.footer{animation:.7s cubic-bezier(.16,1,.3,1) both arrive}.siteMark{animation-delay:40ms}h1{animation-delay:80ms}.lede{animation-delay:.14s}.statement{animation-delay:.2s}.signalRail{animation-delay:.26s}.sideProjects,.trace,.tooling,.photosHero,.photoGrid,.footer{animation-delay:.3s}}@keyframes arrive{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (width<=880px){body{background-size:56px 100%,auto,auto}.masthead,.hero,.statement,.sideProjects,.trace,.tooling,.photosHero,.footer{grid-template-columns:1fr}.masthead{padding-bottom:54px}.masthead nav{justify-self:start}.lede{margin-top:24px}.portraitBlock{width:184px;position:relative;top:auto}.statement{gap:34px}.signalRail{grid-template-columns:1fr}.signalRail p{border-right:0;border-top:1px solid var(--rule);min-height:0;padding:18px 0}.signalRail p:first-child{border-top:0}.signalRail span{margin-bottom:14px}.traceList article{grid-template-columns:68px 1fr}.traceList p{grid-column:2}.sideProjects div{grid-template-columns:1fr 1fr}.sideProjects a{min-height:104px}.photoGrid{grid-template-columns:1fr 1fr}.photoGrid figure,.photoGrid .widePhoto{grid-column:span 1}.footer nav{justify-content:flex-start}}@media (width<=520px){.page{width:min(100% - 24px,1380px)}.masthead{display:grid}.masthead nav{gap:12px}h1{font-size:clamp(3.8rem,18vw,6.4rem)}.photosHero h1{font-size:clamp(3.7rem,17vw,6rem)}.photoGrid{grid-template-columns:1fr}.statementText p{font-size:1.18rem}}
