:root{--black:#080808;--white:#f5f5f2;--acid:#c8ff00;--pad:clamp(18px,3.5vw,54px)}
*{box-sizing:border-box}
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}
h1{font-size:clamp(48px,8.5vw,124px);line-height:.88;letter-spacing:-.065em;margin:0;max-width:12ch}
.lead{font-size:clamp(24px,3.2vw,44px);line-height:1.08;letter-spacing:-.04em;max-width:25ch;margin:52px 0 88px}
.service-body{display:grid;grid-template-columns:minmax(170px,.48fr) minmax(0,1.52fr);gap:clamp(40px,8vw,130px);padding-top:24px;border-top:1px solid}
.service-body 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;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(22px,4vw,58px)}
.scope li{padding:15px 0;border-top:1px solid #ccc}
.scope li:nth-child(-n+2){border-top:0;padding-top:0}
.notes{max-width:62ch;margin:56px 0 0;font-size:17px;line-height:1.65}
.approach{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:72px;background:#aaa;border:1px solid #aaa}
.approach article{background:#fff;padding:22px;min-height:205px}
.approach span{font-size:11px;letter-spacing:.08em;color:#617b00}
.approach h3{font-size:21px;margin:34px 0 12px}
.approach p{margin:0;color:#555;line-height:1.55}
.contact{display:inline-block;margin-top:44px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;border-bottom:2px solid var(--acid)}
.work-gallery{margin-top:110px;padding-top:18px;border-top:1px solid}
.gallery-heading{display:grid;grid-template-columns:minmax(170px,.48fr) minmax(0,1.52fr);gap:clamp(40px,8vw,130px);margin-bottom:38px;font-size:12px;letter-spacing:.09em;text-transform:uppercase}
.gallery-heading p{margin:0}.gallery-heading p:last-child{color:#666;text-transform:none;letter-spacing:0;font-size:14px}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,42px)}
.gallery-item{display:block}.gallery-item.gallery-wide{grid-column:1/-1}
.gallery-item img{display:block;width:100%;height:clamp(280px,42vw,680px);object-fit:cover;background:#eee}
.gallery-item:not(.gallery-wide) img{height:clamp(250px,31vw,510px)}
.gallery-item span{display:inline-block;margin-top:10px;font-size:12px;letter-spacing:.045em;border-bottom:2px solid transparent}
.gallery-item:hover span,.gallery-item:focus-visible span{border-color:var(--acid)}
.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 58px}.service-body{grid-template-columns:1fr}.scope{grid-template-columns:1fr;font-size:25px}.scope li:nth-child(2){border-top:1px solid #ccc;padding-top:15px}.approach{grid-template-columns:1fr}.approach article{min-height:0}.work-gallery{margin-top:72px}.gallery-heading{grid-template-columns:1fr;gap:8px}.gallery-grid{grid-template-columns:1fr}.gallery-item.gallery-wide{grid-column:auto}.gallery-item img,.gallery-item:not(.gallery-wide) img{height:auto;max-height:70vh;object-fit:cover}.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}}
