:root{--black:#080808;--white:#f5f5f2;--acid:#c8ff00;--pad:clamp(18px,3.5vw,54px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--black);font:16px/1.45 Arial,sans-serif}
a{color:inherit;text-decoration:none}
header{position:sticky;top:0;z-index:10;background:var(--white);border-bottom:1px solid;padding:8px var(--pad);display:flex;align-items:center;justify-content:space-between}
.wordmark{display:block;width:190px;height:92px;object-fit:contain}
.back{font-size:12px;letter-spacing:.09em;text-transform:uppercase}
.back:hover,.back:focus-visible{background:var(--acid);outline:3px solid var(--acid)}
main{padding:clamp(42px,8vw,110px) var(--pad) 120px}
.kicker{font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 24px}
.title{font-size:clamp(48px,9vw,132px);line-height:.86;letter-spacing:-.065em;margin:0;max-width:11ch}
.lead{font-size:clamp(24px,3.25vw,46px);line-height:1.08;letter-spacing:-.04em;max-width:24ch;margin:52px 0 80px}
.hero{margin:0}
.hero img{display:block;width:100%;max-height:78vh;object-fit:cover}
.hero figcaption,.gallery figcaption{font-size:11px;color:#666;margin-top:9px}
.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,28px);margin-top:clamp(28px,4vw,58px)}
.project-gallery figure{margin:0}
.project-gallery img{display:block;width:100%;height:clamp(250px,28vw,440px);object-fit:cover}
.project-gallery figcaption{font-size:11px;color:#666;margin-top:9px}
.gallery{display:grid;grid-template-columns:1.35fr .95fr;gap:clamp(18px,3vw,42px);align-items:start}
.gallery figure{margin:0}
.gallery img{display:block;width:100%;height:clamp(420px,65vw,880px);object-fit:cover}
.gallery figure:first-child img{object-position:center}
.gallery figure:last-child{margin-top:clamp(60px,10vw,150px)}
.gallery figure:last-child img{height:clamp(330px,48vw,680px)}
.details{display:grid;grid-template-columns:minmax(180px,.6fr) minmax(0,1.4fr);gap:clamp(40px,8vw,130px);margin-top:92px;padding-top:24px;border-top:1px solid}
.details h2{font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:0}
.scope{margin:0;padding:0;list-style:none;font-size:clamp(22px,3vw,42px);line-height:1.12;letter-spacing:-.035em}
.scope li{padding:15px 0;border-top:1px solid #ccc}
.scope li:first-child{border-top:0;padding-top:0}
.notes{max-width:58ch;margin:54px 0 0;font-size:17px;line-height:1.6}
.process{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:72px;background:#bbb;border:1px solid #bbb}
.process article{background:#fff;padding:22px;min-height:210px}
.process span{font-size:11px;letter-spacing:.08em;color:#617b00}
.process h3{font-size:21px;margin:34px 0 12px}
.process p{margin:0;color:#555;line-height:1.55}
.external{display:inline-block;margin-top:36px;color:#516800;border-bottom:1px solid var(--acid);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.next{display:flex;justify-content:space-between;gap:20px;margin-top:110px;padding-top:18px;border-top:1px solid;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:740px){header{padding-block:6px}
.wordmark{width:145px;height:74px}
main{padding-top:36px}
.lead{margin:38px 0 54px}
.gallery,.project-gallery{grid-template-columns:1fr}
.gallery img,.gallery figure:last-child img,.project-gallery img{height:auto}
.gallery figure:last-child{margin-top:22px}
.details{grid-template-columns:1fr;margin-top:58px}
.scope{font-size:25px}
.process{grid-template-columns:1fr}
.process article{min-height:0}
.next{margin-top:72px}
}

/* Shared typographic scale for project and service pages. */
header{min-height:72px;padding-block:4px}.wordmark{width:138px;height:62px}
.back,.kicker,.details h2,.service-body h2,.gallery-heading,.next,.external,.contact{font-size:13px;letter-spacing:.07em}
.title,h1{font-size:clamp(46px,6vw,86px);line-height:1.02;letter-spacing:-.045em}
.lead{font-size:clamp(22px,2.5vw,32px);line-height:1.2;letter-spacing:-.025em;max-width:38ch;margin:34px 0 64px}
.scope{font-size:clamp(20px,2.1vw,28px);line-height:1.25;letter-spacing:-.02em}
.notes,.process p,.approach p{font-size:16px;line-height:1.55}
.process h3,.approach h3{font-size:21px;line-height:1.2;letter-spacing:-.02em}
.hero figcaption,.gallery figcaption,.project-gallery figcaption,.gallery-item span{font-size:13px;line-height:1.45}
@media(max-width:740px){.wordmark{width:125px;height:58px}.title,h1{font-size:clamp(42px,10vw,60px)}.scope{font-size:22px}.lead{margin:30px 0 52px}}

/* Shared project-page order and image rhythm. */
.project-meta{font-size:14px;line-height:1.4;letter-spacing:.045em;color:#555;margin:20px 0 0}
.project-meta+.lead{margin-top:24px}
.project-gallery-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-gallery-two img{height:clamp(300px,36vw,560px)}
@media(max-width:740px){.project-gallery-two{grid-template-columns:1fr}.project-gallery-two img{height:auto}}

/* Project details read as an unboxed list beneath the images. */
.details{display:block;max-width:880px;margin:48px 0 0 auto}
.external{margin-top:10px}
.next{margin-top:72px}
@media(max-width:740px){.details{max-width:none;margin-top:40px}}
