@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin-v17.woff2)format("woff2")}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-v5.woff2)format("woff2")}:root{--paper:#f8f7f3;--ink:#242b27;--muted:#646b64;--line:#d9ded5;--green:#3f654c;--tint:#edf0e8;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:DM Sans,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--green)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:5px}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1{letter-spacing:-.035em;font-family:Instrument Serif,Georgia,serif;font-size:clamp(56px,6.8vw,88px);line-height:1.03}p{line-height:1.75}.shell{max-width:1160px;margin:0 auto;padding:0 48px}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:34px 0;display:flex}.brand{letter-spacing:-.8px;font-size:23px;font-weight:650;text-decoration:none}.brand-dot{color:var(--green)}nav{gap:30px;font-size:14px;display:flex}nav a{text-decoration:none}nav a[aria-current=page]{text-decoration:underline}.external{padding-left:5px;font-size:12px}.hero{grid-template-columns:1.4fr 1fr;align-items:center;gap:80px;padding:94px 0 90px;display:grid}.eyebrow{letter-spacing:.14em;color:var(--green);font-size:10px;font-weight:650;line-height:1.6}.hero h1{margin:23px 0}.intro{color:#4d554e;max-width:520px;font-size:18px;line-height:1.65}.hero-detail{color:var(--muted);margin:21px 0 25px;font-size:15px}.hero-detail a{color:var(--ink)}.text-link{align-items:center;gap:18px;font-size:14px;font-weight:550;text-decoration:none;display:inline-flex}.text-link span{font-size:20px}.text-link:hover{text-decoration:underline}.portrait img{aspect-ratio:1;object-fit:cover;filter:grayscale();width:100%}figcaption{letter-spacing:.1em;color:var(--muted);justify-content:space-between;gap:8px;margin-top:13px;font-size:9px;display:flex}.section{border-top:1px solid var(--line);padding:36px 0 48px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.section-heading h2{letter-spacing:-.4px;font-family:Instrument Serif,Georgia,serif;font-size:33px}.section-number{color:var(--muted);font-family:monospace;font-size:11px}.project-feature{background:var(--tint);grid-template-columns:.9fr 1fr;align-items:center;gap:50px;padding:32px 35px;text-decoration:none;display:grid}.status-dot{background:var(--green);border-radius:100%;width:6px;height:6px;margin-right:6px;display:inline-block}.project-feature h3{letter-spacing:-1px;margin-top:8px;font-size:32px;font-weight:500}.project-feature h3 span{padding-left:24px;font-size:23px}.project-feature>p{color:#4d554e;font-size:15px;line-height:1.75}.under-feature{margin-top:22px}.section-intro{color:var(--muted);margin-top:-12px;margin-bottom:24px;font-size:15px}.essay{border-top:1px solid var(--line);grid-template-columns:1fr auto 20px;align-items:center;gap:24px;padding:20px 0;text-decoration:none;display:grid}.essay h3{font-size:17px;font-weight:450;line-height:1.5}.essay-date{color:var(--muted);font-size:12px}.writing>.text-link{margin-top:24px}.hello{border-top:1px solid var(--line);padding:40px 0 55px}.hello p{color:var(--muted);margin-bottom:8px;font-size:14px}.hello>a{letter-spacing:-1px;font-family:Instrument Serif,Georgia,serif;font-size:48px;text-decoration:none}.footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:24px;padding:27px 0 35px;font-size:11px;display:flex}.footer>div{gap:24px;display:flex}.footer a{text-decoration:none}.page-heading{padding:75px 0 55px}.page-heading h1{margin:18px 0 24px}.page-heading h1+.intro{max-width:660px}.about-grid{grid-template-columns:310px 1fr;gap:80px;padding:0 0 85px;display:grid}.about-photo img{aspect-ratio:1;object-fit:cover}.prose h2{margin-bottom:24px;font-family:Instrument Serif,Georgia,serif;font-size:31px;line-height:1.25}.prose p{color:#4d554e;margin-bottom:22px;font-size:16px}.project-list{padding-bottom:65px}.project-row{border-top:1px solid var(--line);grid-template-columns:240px 1fr;gap:40px;padding:35px 0;display:grid}.project-meta{letter-spacing:.12em;color:var(--green);padding-top:10px;font-size:10px}.project-row h2{margin-bottom:16px;font-family:Instrument Serif,Georgia,serif;font-size:36px}.project-row h2 a{text-decoration:none}.project-row p{color:#4d554e;font-size:16px}.contact-grid{grid-template-columns:1fr 1.5fr;gap:70px;padding-bottom:80px;display:grid}.contact-aside{color:var(--muted);font-size:15px}.contact-aside p{max-width:230px;margin-bottom:18px}.contact-aside a{color:var(--ink)}.field{margin-bottom:25px}.field label{margin-bottom:10px;font-size:13px;font-weight:550;display:block}input,textarea{width:100%;font:inherit;color:var(--ink);background:0 0;border:1px solid #b9c2b7;border-radius:0;padding:13px;font-size:16px}textarea{resize:vertical}button{background:var(--ink);color:var(--paper);font:inherit;cursor:pointer;border:0;padding:16px 24px;font-size:14px}button span{margin-left:35px}button:hover{background:var(--green)}button:disabled{opacity:.6;cursor:wait}.form-status{margin-top:18px;font-size:14px}.honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.skip{background:var(--paper);z-index:10;padding:12px;position:absolute;top:-100px;left:20px}.skip:focus{top:10px}@media (width>=1500px){.shell{max-width:1240px}.hero{gap:100px}}@media (width<=900px){.shell{padding:0 30px}.hero{gap:40px;padding:65px 0}.hero h1{font-size:64px}.intro{font-size:16px}.about-grid{grid-template-columns:230px 1fr;gap:35px}.project-row{grid-template-columns:170px 1fr;gap:25px}.contact-grid{gap:35px}}@media (width<=640px){.shell{padding:0 23px}.header{flex-wrap:wrap;gap:21px;padding:24px 0}.brand{font-size:23px}nav{justify-content:space-between;gap:12px;width:100%;font-size:13px}.hero{grid-template-columns:1fr;gap:35px;padding:48px 0 46px}.hero h1{font-size:61px}.eyebrow{font-size:9px}.hero .intro{max-width:360px;font-size:17px}.portrait{max-width:360px}.portrait img{aspect-ratio:1.12;object-position:center 42%}.hero-detail{font-size:14px}.section{padding:29px 0 36px}.section-heading h2{font-size:29px}.project-feature{grid-template-columns:1fr;gap:20px;padding:25px}.project-feature h3{font-size:30px}.essay{grid-template-columns:1fr 20px;gap:10px}.essay h3{font-size:16px}.essay-date{grid-area:auto/1}.essay>span:last-child{grid-area:1/2}.section-intro{font-size:14px}.footer{flex-direction:column;gap:18px}.footer>div{gap:25px}.page-heading{padding:46px 0 30px}.page-heading h1{font-size:56px}.about-grid,.contact-grid{grid-template-columns:1fr;gap:35px;padding-bottom:50px}.about-photo{max-width:320px}.project-row{grid-template-columns:1fr;gap:15px;padding:27px 0}.project-meta{padding:0}.project-row h2{font-size:32px}.contact-aside p{max-width:none}.desktop-break{display:none}}.arrow-icon{vertical-align:-2px;flex-shrink:0;width:16px;height:16px;transition:transform .2s;display:inline-block}nav .arrow-icon{width:12px;height:12px;margin-left:5px}.project-feature h3 .arrow-icon{vertical-align:1px;width:21px;height:21px;margin-left:16px}.project-row h2 .arrow-icon{vertical-align:2px;width:20px;height:20px}button .arrow-icon{margin-left:20px}.essay>.arrow-icon{justify-self:end}.project-feature{border:1px solid #0000;transition:background .25s,border-color .25s,transform .25s}@media (hover:hover){a:hover>.arrow-icon,.project-feature:hover .arrow-icon{transform:translate(2px,-2px)}.project-feature:hover{background:#e6ecdf;border-color:#d2ddca;transform:translateY(-2px)}}@keyframes settle-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.hero-copy>*{animation:.95s cubic-bezier(.2,.65,.3,1) both settle-in}.hero-copy>:nth-child(2){animation-delay:.12s}.hero-copy>:nth-child(3){animation-delay:.24s}.hero-copy>:nth-child(4){animation-delay:.36s}.hero-copy>:nth-child(5){animation-delay:.48s}.page-heading{animation:.9s both settle-in}.portrait{animation:1.2s .2s both settle-in}.motion-ready{opacity:0;transition:opacity .85s,transform .85s cubic-bezier(.2,.65,.3,1);transform:translateY(22px)}.motion-ready.is-visible{opacity:1;transform:translateY(0)}.status-dot{animation:3s ease-in-out infinite status-breathe}}@keyframes status-breathe{0%,to{box-shadow:0 0 #3f654c33}60%{box-shadow:0 0 0 5px #3f654c00}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (width<=640px){.essay>.arrow-icon{grid-area:1/2}}.hero-stage{position:relative}.home-content{background:var(--paper);position:relative}.contact-grid{max-width:640px;display:block}@media (width>=901px){.hero-stage>.hero{min-height:calc(100svh - var(--header-height,99px));padding-top:48px;padding-bottom:48px}.hero-stage.sticky-ready{height:calc(var(--hero-height) + 65svh)}.hero-stage.sticky-ready>.hero{position:sticky;top:0}}@media (prefers-reduced-motion:reduce){.hero-stage.sticky-ready{height:auto}.hero-stage.sticky-ready>.hero{position:static}}@media (width>=901px){.js .home-page .header{z-index:10;background:var(--paper);border-bottom:1px solid var(--line);opacity:0;pointer-events:none;max-width:1160px;margin:0 auto;padding:18px 48px;transition:opacity .35s,transform .35s;position:fixed;inset:0 0 auto;transform:translateY(-8px)}.js.nav-unlocked .home-page .header,.js .home-page .header.nav-revealed,.js .home-page .header:focus-within{opacity:1;pointer-events:auto;transform:none}.js .home-page .hero{min-height:100svh;padding-top:88px;padding-bottom:88px}.skip{z-index:20}}@media (width>=1500px){.js .home-page .header{max-width:1240px}}@media (prefers-reduced-motion:no-preference){.home-content>.scroll-fade{opacity:var(--reveal-opacity,1)}.home-content>.scroll-fade:focus-within{opacity:1}}.project-row{grid-template-columns:minmax(0,380px) minmax(0,1fr);align-items:start;gap:42px;padding:40px 0}.project-visual{background:var(--tint);overflow:hidden}.project-visual img{aspect-ratio:16/9;object-fit:cover;width:100%}.project-row .project-meta{margin-bottom:12px;padding:0;font-size:10px}.project-row h2{margin-bottom:14px}@media (width<=900px){.project-row{grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:28px}}@media (width<=720px){.project-row{grid-template-columns:1fr;gap:24px;padding:30px 0}.project-visual{max-width:480px}}
