:root{--paper:#f4f3ee;--ink:#282925;--muted:#70716b;--line:#d5d5ce}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:6px}header{display:flex;justify-content:space-between;align-items:center;padding:30px 4vw;border-bottom:1px solid var(--line);gap:25px}.wordmark{font-size:19px;letter-spacing:-.7px}nav{display:flex;gap:34px;align-items:center;font-size:14px}nav a:hover{text-decoration:underline;text-underline-offset:6px}details{position:relative}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.dropdown{position:absolute;z-index:10;top:30px;right:-30px;min-width:175px;background:var(--paper);border:1px solid var(--line);padding:20px;display:grid;gap:18px}main{padding:0 4vw}.hero{padding:48px 0 42px}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:12px;line-height:1.5;margin:0 0 26px;color:var(--muted)}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.hero-bottom h1{font-weight:400;font-size:clamp(22px,2.4vw,36px);letter-spacing:-1px;line-height:1.12;margin:0}.hero-bottom p{font-size:15px;line-height:1.6;margin:0;max-width:360px}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.image-wrap{position:relative;overflow:hidden;background:#e6e4dd}.category .image-wrap{aspect-ratio:4/5}.image-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s cubic-bezier(.2,.65,.3,1)}.category:first-child img{object-position:50% 37%}.category:hover img,.project-card:hover img{transform:scale(1.025)}.category-title{display:flex;justify-content:space-between;align-items:baseline;padding-top:19px}.category-title h2{font-weight:400;letter-spacing:-1px;font-size:clamp(20px,2.25vw,36px);margin:0}.category-title span{font-size:12px;color:var(--muted)}.category p,.project-card p{font-size:14px;margin:9px 0 0;color:var(--muted);line-height:1.5}.home-end{display:flex;align-items:flex-end;justify-content:space-between;padding:85px 0 65px}.home-end span{font-size:24px;line-height:1.3;letter-spacing:-.5px}.text-link{font-size:14px;border-bottom:1px solid var(--ink);padding-bottom:6px;display:inline-block}.text-link:hover{color:var(--muted)}footer{margin:0 4vw;border-top:1px solid var(--line);padding:26px 0 32px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}footer a{color:var(--ink)}.page-intro{padding:75px 0 48px}.page-intro h1,.case-header h1{font-weight:400;font-size:clamp(55px,9vw,145px);line-height:.99;letter-spacing:-.055em;margin:0 0 32px}.intro-text{font-size:18px;line-height:1.55;max-width:480px;margin:0}.category-nav{gap:30px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:48px}.category-nav [aria-current]{text-decoration:underline;text-underline-offset:7px}.project-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:6vw;row-gap:85px;padding-bottom:100px;align-items:start}.project-card:nth-child(even){margin-top:100px}.project-card .image-wrap{aspect-ratio:1/1}.project-card:first-child .image-wrap{aspect-ratio:4/5}.project-caption{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-top:18px}.project-caption h2{font-weight:400;font-size:30px;letter-spacing:-1px;margin:0}.project-caption span{font-size:12px;color:var(--muted)}.case-header{padding:70px 0 35px}.case-meta{display:flex;justify-content:space-between;font-size:14px}.case-meta div{display:flex;gap:25px}.case-meta a{border-bottom:1px solid var(--line)}.case-cover{background:#e9e7e0;text-align:center}.case-cover img{display:block;max-width:100%;width:100%;height:78vh;min-height:400px;max-height:1000px;object-fit:contain}.case-copy{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:80px 0 100px}.case-copy>p:last-child{font-size:clamp(24px,3vw,42px);line-height:1.3;letter-spacing:-.8px;margin:0;max-width:850px}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:35px;align-items:start}.section-heading h2{font-weight:400;font-size:34px;letter-spacing:-1px;margin:0}.section-heading p{font-size:16px;line-height:1.7;margin:0;max-width:470px}.case-images{display:grid;gap:24px}.images-2{grid-template-columns:1fr 1fr}.case-images img{width:100%;height:auto;display:block;object-fit:contain;max-height:900px}.case-section{margin-bottom:90px}.credits{font-size:12px;color:var(--muted);line-height:1.7}.case-bottom{display:flex;gap:30px;padding:55px 0 75px;border-top:1px solid var(--line);align-items:baseline}.case-bottom span{margin-right:auto;font-size:14px}.about-layout{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:30px 0 130px}.about-label{font-size:14px;line-height:1.9}.large-copy{font-size:clamp(25px,3.1vw,45px);line-height:1.25;letter-spacing:-1px;margin:0 0 40px}.about-copy{font-size:18px;line-height:1.7;max-width:650px;margin-bottom:40px}.contact-intro{min-height:76vh}.contact-link{display:inline-block;font-size:24px;border-bottom:1px solid var(--ink);padding-bottom:8px;margin-top:50px}.contact-note{font-size:14px;color:var(--muted);margin-top:30px}.skip{position:absolute;top:-100px;background:var(--ink);color:white;padding:15px;z-index:100}.skip:focus{top:0}@media(min-width:1800px){body{max-width:2200px;margin:auto}}@media(max-width:700px){header{padding:23px 5vw}.wordmark{font-size:16px}nav{gap:20px}main{padding:0 5vw}.hero{padding:38px 0 32px}.hero-bottom{align-items:start;flex-direction:column;gap:20px}.hero-bottom h1{font-size:26px}.hero-bottom p{font-size:14px}.category-grid{grid-template-columns:1fr;gap:40px}.category .image-wrap{aspect-ratio:4/4.7}.category-title h2{font-size:30px}.home-end{padding:60px 0;gap:20px}.home-end span{font-size:20px}footer{margin:0 5vw;display:grid;grid-template-columns:1fr 1fr;line-height:1.5}.page-intro{padding:50px 0 35px}.page-intro h1,.case-header h1{font-size:clamp(45px,12vw,80px)}.intro-text{font-size:16px}.category-nav{gap:20px;font-size:13px;flex-wrap:wrap}.project-grid{grid-template-columns:1fr;gap:45px;padding-bottom:65px}.project-card:nth-child(even){margin:0}.project-caption h2{font-size:27px}.case-header{padding-top:45px}.case-cover img{min-height:0;height:60vh}.case-copy,.section-heading,.about-layout{grid-template-columns:1fr;gap:20px}.case-copy{padding:45px 0 60px}.case-copy>p:last-child{font-size:26px}.images-2{grid-template-columns:1fr}.section-heading h2{font-size:28px}.case-section{margin-bottom:55px}.case-bottom{flex-wrap:wrap;gap:20px}.case-bottom span{width:100%}.about-layout{padding-bottom:70px}.contact-link{font-size:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* CV typography: self-hosted Open Sauce One and ITC New Baskerville Italic. */
@font-face{font-family:'Open Sauce One';src:url('/assets/fonts/OpenSauceOne-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Open Sauce One';src:url('/assets/fonts/OpenSauceOne-Light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Open Sauce One';src:url('/assets/fonts/OpenSauceOne-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'ITC New Baskerville';src:url('/assets/fonts/ITCNewBaskerville-Italic.otf') format('opentype');font-weight:400;font-style:italic;font-display:swap}
body{font-family:'Open Sauce One',Arial,Helvetica,sans-serif}
.wordmark,.hero h1,.hero-bottom h1,.page-intro h1,.case-header h1{font-family:'ITC New Baskerville',Baskerville,'Times New Roman',serif;font-style:italic;font-weight:400;letter-spacing:-.025em}
.wordmark{font-size:30px;line-height:1.2}

.hero-bottom h1{font-size:clamp(26px,2.8vw,42px);line-height:1.15}
.category-title h2{font-size:clamp(19px,2.1vw,34px);letter-spacing:.07em}
.page-intro h1,.case-header h1{line-height:1.12}
@media(max-width:700px){.wordmark{font-size:24px}.hero-bottom h1{font-size:30px}.category-title h2{font-size:29px}header nav{gap:18px}}
