:root{--stone:#f4f2ed;--paper:#fbfaf7;--ink:#202426;--muted:#676c6d;--blue:#2f687e;--line:#d7d5cf;--pad:clamp(22px,5vw,78px);--serif:"Iowan Old Style",Baskerville,Georgia,serif;--sans:Inter,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}.skip-link{position:fixed;left:12px;top:-60px;background:#fff;padding:12px 16px;z-index:100}.skip-link:focus{top:12px}.site-header{height:96px;padding:0 var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:rgba(251,250,247,.95);border-bottom:1px solid var(--line);position:relative;z-index:20}.wordmark{width:max-content;font-weight:700;line-height:.82;letter-spacing:.115em;font-size:17px}.wordmark span{display:block}.wordmark span:last-child{color:var(--blue);letter-spacing:.26em;font-size:10px;margin-top:7px}.site-nav{display:flex;gap:35px;font-size:13px;letter-spacing:.04em}.site-nav a,.text-link{position:relative}.site-nav a:after,.text-link:after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:currentColor;transition:.25s}.site-nav a:hover:after,.text-link:hover:after{right:0}.header-call{justify-self:end;font-weight:600;font-size:14px}.header-call span{display:block;color:var(--muted);text-transform:uppercase;font-size:9px;letter-spacing:.16em}.menu-toggle{display:none}
.hero{min-height:calc(100svh - 96px);display:grid;grid-template-columns:minmax(430px,.84fr) 1.16fr;position:relative;background:var(--stone);overflow:hidden}.hero-copy{padding:clamp(70px,9vw,145px) var(--pad);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;position:relative;z-index:2}.eyebrow{margin:0 0 24px;text-transform:uppercase;letter-spacing:.18em;font-weight:700;font-size:10px;color:var(--blue)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.042em;line-height:.96}h1{font-size:clamp(56px,5.55vw,92px);margin-bottom:30px}h1 em{color:var(--blue);font-weight:400}.hero-intro{max-width:490px;color:var(--muted);font-size:17px;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:23px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:40px;padding:17px 19px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700;min-width:218px}.button-dark{background:var(--ink);color:#fff}.button-light{background:var(--paper);color:var(--ink)}.button span{font-size:18px}.text-link{font-size:12px;font-weight:700;letter-spacing:.04em}.hero-media{margin:0;position:relative;min-height:640px;overflow:hidden}.hero-media img{object-position:center 42%}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,26,28,.03),transparent 40%)}.hero-media figcaption{position:absolute;z-index:2;left:28px;right:28px;bottom:24px;padding-top:14px;border-top:1px solid rgba(255,255,255,.65);color:#fff;text-transform:uppercase;font-size:9px;letter-spacing:.14em}.hero-media figcaption span{margin-right:18px}.hero-note{position:absolute;z-index:3;right:-42px;top:50%;transform:rotate(90deg);color:rgba(255,255,255,.8);font-size:8px;letter-spacing:.3em;line-height:1.8}
.proof{display:grid;grid-template-columns:repeat(4,1fr);padding:0 var(--pad);border-bottom:1px solid var(--line);background:var(--paper)}.proof div{padding:34px 30px;border-right:1px solid var(--line);display:flex;gap:16px;align-items:center}.proof div:first-child{padding-left:0}.proof div:last-child{border:0}.proof strong{font-family:var(--serif);font-size:26px;font-weight:400;white-space:nowrap}.proof span{max-width:150px;color:var(--muted);font-size:10px;line-height:1.4;text-transform:uppercase;letter-spacing:.1em}.section{padding:clamp(95px,11vw,170px) var(--pad)}.section-heading{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:80px;margin-bottom:68px}.section-heading h2,.services h2,.process h2,.about h2,.contact h2{font-size:clamp(45px,5.4vw,82px);margin-bottom:0}.section-heading>p{max-width:440px;color:var(--muted);line-height:1.8;margin:0 0 8px}.project-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(24px,3.2vw,52px)}.project{margin:0;overflow:hidden}.project img{aspect-ratio:4/3}.project-wide img{aspect-ratio:1.55/1}.project-tall img{aspect-ratio:1/1.23}.project-grid .project:nth-child(2){grid-row:span 2}.project-grid .project:nth-child(4){align-self:end}.project-grid .project:nth-child(5){margin-top:35px}.project figcaption{display:flex;justify-content:space-between;gap:20px;padding-top:14px;border-top:1px solid var(--ink);margin-top:12px;font-size:11px;position:relative;background:var(--paper)}.project figcaption span{text-transform:uppercase;letter-spacing:.12em;color:var(--blue);font-size:9px}.project figcaption strong{font-weight:500}.photo-slot img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}.project:hover img{transform:scale(1.018)}
.services{background:#252b2d;color:#eef1ef;display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(60px,10vw,160px)}.eyebrow-light{color:#83afbf}.services-intro{align-self:start;position:sticky;top:60px}.services-intro h2{max-width:570px}.services-intro>p:last-child{color:#acb1b1;max-width:430px;margin-top:30px}.service-list article{display:grid;grid-template-columns:55px 1fr;padding:30px 0;border-top:1px solid #4c5253}.service-list article:last-child{border-bottom:1px solid #4c5253}.service-list article>span{font-size:9px;color:#83afbf;letter-spacing:.14em}.service-list h3{font-family:var(--serif);font-size:30px;font-weight:400;margin-bottom:8px}.service-list p{color:#acb1b1;margin:0;max-width:560px}.process{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(50px,9vw,140px);align-items:center;background:var(--stone)}.process-media{height:min(720px,65vw);min-height:520px}.process-copy>p:not(.eyebrow){color:var(--muted);line-height:1.85;margin:32px 0}.process-copy ol{list-style:none;margin:40px 0 0;padding:0;border-top:1px solid var(--line)}.process-copy li{padding:17px 0;border-bottom:1px solid var(--line);font-size:12px;font-weight:600}.process-copy li span{color:var(--blue);font-size:9px;margin-right:28px}.about{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(60px,10vw,150px);align-items:center}.about-copy h2{max-width:690px}.about-copy>p:not(.eyebrow){max-width:600px;color:var(--muted);line-height:1.85;margin:32px 0}.about-media{margin:0}.about-media img{aspect-ratio:4/3}.about-media figcaption{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:14px;margin-top:13px}.contact{padding:clamp(80px,10vw,150px) var(--pad);background:#2f687e;color:#fff;display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:60px}.contact .eyebrow{color:#d4e5ea}.contact h2{margin-bottom:40px}.contact address{font-style:normal;display:grid;grid-template-columns:1fr 1fr;gap:30px 50px}.contact address p{line-height:1.7;font-size:13px}.contact address span{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:9px;color:#c1d8df;margin-bottom:9px}.contact address p:last-child{grid-column:1/-1}footer{padding:46px var(--pad);background:#1f2426;color:#fff;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end}footer>p{font-size:10px;line-height:1.6;text-transform:uppercase;letter-spacing:.1em;color:#a9afb0;margin:0}.wordmark-footer span:last-child{color:#83afbf}.copyright{text-align:right}
@media(max-width:900px){.site-header{height:78px;grid-template-columns:1fr auto}.site-nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:24px var(--pad) 32px;flex-direction:column;gap:20px;border-bottom:1px solid var(--line)}.site-nav.open{display:flex}.menu-toggle{display:block;border:0;background:transparent;width:32px;height:32px;padding:8px}.menu-toggle span{display:block;height:1px;background:var(--ink);margin:5px 0}.header-call{display:none}.hero{min-height:auto;grid-template-columns:1fr}.hero-copy{padding-top:75px;padding-bottom:65px}.hero-media{min-height:72vh}.hero-media img{object-position:center 45%}.hero-note{display:none}.proof{grid-template-columns:1fr 1fr}.proof div{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}.proof div:nth-child(odd){border-right:1px solid var(--line)}.proof div:nth-child(even){padding-left:22px}.proof div:nth-last-child(-n+2){border-bottom:0}.section-heading,.services,.process,.about,.contact{grid-template-columns:1fr}.section-heading{gap:25px}.services-intro{position:static}.process-media{height:62vw;min-height:420px}.process-copy{max-width:650px}.about-copy{order:1}.about-media{order:2}.contact address{margin-top:20px}footer{grid-template-columns:1fr auto}.wordmark-footer{grid-row:span 2}footer>p:not(.copyright){text-align:right}.copyright{grid-column:2}}
@media(max-width:620px){:root{--pad:22px}.wordmark{font-size:15px}h1{font-size:clamp(44px,13vw,60px)}.hero-copy{padding-top:56px}.hero-intro{font-size:15px}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.hero-media{min-height:66vh}.proof{padding:10px var(--pad)}.proof div{display:block}.proof strong{font-size:23px;display:block}.proof span{display:block;margin-top:4px}.section{padding-top:88px;padding-bottom:88px}.section-heading{margin-bottom:40px}.section-heading h2,.services h2,.process h2,.about h2,.contact h2{font-size:clamp(42px,12vw,58px)}.project-grid{grid-template-columns:1fr;gap:43px}.project-grid .project:nth-child(2){grid-row:auto}.project-grid .project:nth-child(5){margin-top:0}.project img,.project-wide img,.project-tall img{aspect-ratio:4/3}.services{gap:50px}.service-list article{grid-template-columns:38px 1fr}.service-list h3{font-size:25px}.process{gap:45px}.process-media{margin-left:-22px;margin-right:-22px;height:66vh;min-height:440px}.about{gap:45px}.about-media{margin-left:-22px;margin-right:-22px}.about-media figcaption{padding:0 22px}.contact address{grid-template-columns:1fr;gap:8px}.contact address p:last-child{grid-column:auto}footer{display:flex;flex-direction:column;align-items:flex-start;gap:25px}.copyright{text-align:left}.button{min-width:220px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.photo-slot img{transition:none}}

.browse-label{margin:0 0 14px;text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:700;color:var(--blue)}
.browse-row{display:flex;flex-wrap:wrap;gap:10px 8px;margin:0 0 48px}
.browse-row a{display:inline-flex;align-items:center;padding:10px 16px;border:1px solid var(--line);font-size:12px;letter-spacing:.04em;background:var(--paper);transition:background .2s,border-color .2s,color .2s}
.browse-row a:hover,.browse-row a.is-current{background:var(--ink);color:#fff;border-color:var(--ink)}
.project a{display:block;color:inherit}
.project-feature{margin:0 0 56px}
.project-feature img{aspect-ratio:1.72/1;object-position:center 38%}
.service-list a{color:#d4e5ea;border-bottom:1px solid rgba(212,229,234,.35)}
.service-list a:hover{color:#fff}
.service-list h3 a{color:inherit;border:0}
.service-list h3 a:after{content:"";display:inline-block;width:0;height:1px;margin-left:0}
.about-media a{display:block}

.gallery-page{padding-top:clamp(70px,8vw,120px)}
.gallery-heading{max-width:720px;margin-bottom:42px}
.gallery-heading h1{font-size:clamp(48px,6vw,86px);margin-bottom:22px}
.gallery-intro{color:var(--muted);line-height:1.8;font-size:17px;max-width:560px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.gallery-item{margin:0}
.gallery-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.gallery-open img{aspect-ratio:4/3;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.gallery-item:hover img{transform:scale(1.018)}
.gallery-item:nth-child(3n+1) .gallery-open img{aspect-ratio:1/1.12}
.gallery-item:nth-child(5n) .gallery-open img{aspect-ratio:1.45/1}

.lightbox{position:fixed;inset:0;z-index:80;background:rgba(20,24,26,.94);display:flex;align-items:center;justify-content:center;padding:72px 80px 56px}
.lightbox[hidden]{display:none}
.lightbox img{width:auto;height:auto;max-width:min(1200px,92vw);max-height:82vh;object-fit:contain}
.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:transparent;color:#fff;cursor:pointer;font-size:36px;line-height:1;padding:8px 14px}
.lightbox-close{top:18px;right:22px;font-size:42px}
.lightbox-prev{left:18px;top:50%;transform:translateY(-50%)}
.lightbox-next{right:18px;top:50%;transform:translateY(-50%)}
.lightbox-cap{position:absolute;left:80px;right:80px;bottom:18px;margin:0;color:#c9cdcd;font-size:12px;letter-spacing:.03em;text-align:center}

@media(max-width:900px){
  .gallery-grid{grid-template-columns:1fr 1fr}
  .project-feature{margin-bottom:40px}
  .lightbox{padding:64px 52px 48px}
  .lightbox-cap{left:24px;right:24px}
}
@media(max-width:620px){
  .browse-row{margin-bottom:32px}
  .browse-row a{padding:9px 13px;font-size:11px}
  .gallery-grid{grid-template-columns:1fr;gap:22px}
  .gallery-item:nth-child(3n+1) .gallery-open img,.gallery-item:nth-child(5n) .gallery-open img{aspect-ratio:4/3}
  .gallery-heading h1{font-size:clamp(42px,12vw,58px)}
  .lightbox{padding:56px 16px 44px}
  .lightbox-prev{left:4px}
  .lightbox-next{right:4px}
  .lightbox-close{right:8px;top:10px}
}
@media(prefers-reduced-motion:reduce){.gallery-open img{transition:none}}
