 :root{--ink:#181814;--paper:#f2efe7;--moss:#485044;--line:rgba(24,24,20,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}img{display:block;width:100%}h1,h2{font-family:"Newsreader",serif;font-weight:400;line-height:.96;letter-spacing:-.045em}h1{font-size:clamp(3.8rem,7.3vw,7.6rem)}h2{font-size:clamp(2.8rem,5.6vw,5.8rem)}h3,p{margin-top:0}p{line-height:1.65}.site-header{position:absolute;z-index:20;width:100%;height:92px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;color:white;border-bottom:1px solid rgba(255,255,255,.3)}.logo{width:145px;height:74px}.logo img{height:100%;object-fit:contain;filter:invert(1)}.main-nav{display:flex;gap:2rem;align-items:center;font-size:.82rem}.nav-cta{border:1px solid rgba(255,255,255,.7);padding:.8rem 1rem}.menu-toggle{display:none}.hero{height:100svh;min-height:700px;position:relative;color:white;overflow:hidden}.hero>img{height:100%;object-fit:cover;object-position:center}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.42) 35%,rgba(0,0,0,.08) 72%),linear-gradient(0deg,rgba(0,0,0,.35),transparent 48%)}.hero-copy{position:absolute;left:4vw;bottom:10vh;z-index:2;max-width:820px}.hero-copy p:not(.eyebrow){font-size:clamp(1rem,1.4vw,1.25rem);max-width:600px}.hero-actions{display:flex;gap:2rem;align-items:center;margin-top:2rem}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:600}.eyebrow.dark{color:#5b6057}.button{display:inline-block;padding:1rem 1.35rem;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:600}.light-button{background:white;color:var(--ink)}.text-link{font-size:.84rem;border-bottom:1px solid;padding-bottom:.35rem}.light{color:white}.section-pad{padding:clamp(5rem,9vw,9rem) 4vw}.section-number{font-size:.68rem;letter-spacing:.15em;color:#6c6e68}.intro{display:grid;grid-template-columns:.35fr 1.45fr 1fr;gap:4vw;border-bottom:1px solid var(--line)}.intro h2{margin-top:0}.work-section{background:#e7e2d7}.section-heading{display:grid;grid-template-columns:.45fr 1.4fr 1fr;gap:3vw;align-items:end}.section-heading h2{margin-bottom:0}.project{padding:0 4vw 7rem}.media{display:block;overflow:hidden;background:#d3c8b8}.media img{height:100%;object-fit:cover;transition:transform .7s ease}.media:hover img{transform:scale(1.015)}.media.wide{aspect-ratio:16/6;min-height:300px;max-height:520px}.media.portrait{height:clamp(480px,55vw,760px)}.project-meta{display:grid;grid-template-columns:1.25fr 1fr .4fr;gap:2rem;border-top:1px solid var(--line);padding-top:1.3rem;margin-top:1rem}.project-meta>div{display:flex;gap:1rem}.project-meta span,.service-list span,.process li>span{font-size:.68rem;color:#64685f}.project-meta p{font-size:.9rem}.project-meta>a{text-align:right;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:4vw;padding:0 4vw}.project-grid .project{padding:0 0 6rem}.project-offset{padding-top:0!important}.compact{grid-template-columns:1fr}.compact p{padding-left:2rem}.compact>a{text-align:left;padding-left:2rem}.services{display:grid;grid-template-columns:1fr 1.35fr;gap:8vw}.service-list>div{display:grid;grid-template-columns:.18fr 1fr 1fr;gap:1.5rem;padding:1.7rem 0;border-top:1px solid var(--line)}.service-list p{font-size:.9rem}.quote-block{padding:10vw 12vw;background:var(--moss);color:white}.quote-block blockquote{font-family:"Newsreader",serif;font-size:clamp(2.4rem,5vw,5rem);line-height:1.05;margin:0 0 2rem}.quote-block p{text-transform:uppercase;letter-spacing:.14em;font-size:.68rem}.about{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.about-image{height:680px;overflow:hidden}.about-image img{height:100%;object-fit:cover}.about p{font-size:1.03rem}.process{display:grid;grid-template-columns:1fr 1.2fr;gap:8vw;border-top:1px solid var(--line)}.process ol{list-style:none;margin:0;padding:0}.process li{display:grid;grid-template-columns:.14fr 1fr;padding:1.5rem 0;border-top:1px solid var(--line)}.contact{background:#20231f;color:white;padding:9vw 4vw;display:grid;grid-template-columns:1.4fr 1fr auto;gap:4vw;align-items:end}.contact h2{font-size:clamp(3.5rem,7vw,7rem);margin-bottom:0}.contact-details{display:flex;flex-direction:column;gap:.7rem}.contact-details a{font-size:1.1rem}.contact-details p{font-size:.8rem;color:#c8cbc3}footer{padding:3rem 4vw;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;font-size:.75rem}footer img{width:150px}footer p:last-child{text-align:right}@media(max-width:850px){.site-header{height:78px}.logo{width:115px;height:58px}.menu-toggle{display:block;background:none;border:0;color:white;text-transform:uppercase;letter-spacing:.1em}.main-nav{display:none;position:absolute;top:78px;left:0;right:0;background:#20231f;padding:2rem 4vw;flex-direction:column;align-items:flex-start}.main-nav.open{display:flex}.hero-copy{left:6vw;right:6vw}.hero-actions{flex-direction:column;align-items:flex-start}.intro,.section-heading,.services,.about,.process,.contact{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.project-offset{padding-top:0!important}.project-meta{grid-template-columns:1fr}.project-meta>a{text-align:left}.media.wide{aspect-ratio:4/3;min-height:360px}.media.portrait{height:auto}.compact p,.compact>a{padding-left:0}.about-image{height:500px}footer{grid-template-columns:1fr;gap:1rem}footer p:last-child{text-align:left}}

/* Balanced project layout — prevents large empty grid areas */
.project-grid{
  align-items:start;
}

.project-grid .project{
  min-width:0;
}

.project-last{
  padding-top:1rem;
}

.exterior-focus img{
  object-position:center 58%;
}

@media(max-width:850px){
  .project-last{
    padding-top:0;
  }

  .exterior-focus img{
    object-position:center;
  }
}


/* Final mobile refinements */
.menu-toggle,
.main-nav a,
.button,
.text-link,
.project-meta > a{
  min-height:44px;
}

.menu-toggle{
  min-width:48px;
  padding:.65rem .8rem;
}

@media(max-width:850px){
  .main-nav a{
    display:flex;
    align-items:center;
    width:100%;
    padding:.85rem .7rem;
  }

  .project-meta{
    gap:1rem;
  }

  .project-meta > a{
    display:inline-flex;
    align-items:center;
    width:max-content;
    padding-right:.4rem;
  }
}

@media(max-width:560px){
  .section-pad{
    padding-left:6vw;
    padding-right:6vw;
  }

  .hero-copy{
    left:6vw;
    right:6vw;
  }

  .hero-actions{
    align-items:flex-start;
  }

  .button{
    display:inline-flex;
    align-items:center;
  }

  .contact{
    padding-left:6vw;
    padding-right:6vw;
  }
}


/* Mobile viewport and homepage hero correction */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

main,
.site-header,
.hero{
  width:100%;
  max-width:100%;
}

.hero{
  isolation:isolate;
}

.hero > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
}

.hero-overlay{
  z-index:1;
}

.site-header{
  left:0;
  right:0;
}

@media(max-width:850px){
  .hero{
    width:100%;
    min-height:760px;
    height:100svh;
  }

  .hero > img{
    object-position:62% center;
  }

  .hero-copy{
    width:auto;
    max-width:none;
    bottom:7vh;
  }

  .hero-copy h1{
    max-width:100%;
    font-size:clamp(3.75rem,15.5vw,5.2rem);
    overflow-wrap:normal;
  }

  .hero-copy .eyebrow{
    max-width:100%;
    line-height:1.5;
  }
}

@media(max-width:560px){
  .hero{
    min-height:720px;
  }

  .hero > img{
    object-position:58% center;
  }

  .hero-copy{
    bottom:5.5vh;
  }

  .hero-copy h1{
    font-size:clamp(3.35rem,15vw,4.65rem);
    line-height:.92;
  }

  .hero-copy p:not(.eyebrow){
    max-width:31rem;
  }
}

@media(max-width:390px){
  .hero-copy h1{
    font-size:3.25rem;
  }

  .hero-actions{
    gap:1rem;
    margin-top:1.35rem;
  }
}


/* Final art-direction pass */
:root{
  --page-gutter:clamp(1.35rem,4vw,4.5rem);
  --section-space:clamp(5.5rem,9vw,10rem);
  --soft-line:rgba(24,24,20,.14);
}

body{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

::selection{
  background:#c9c2b2;
  color:var(--ink);
}

.site-header{
  padding-left:var(--page-gutter);
  padding-right:var(--page-gutter);
  backdrop-filter:saturate(115%);
}

.main-nav a,
.text-link,
.project-meta>a{
  transition:opacity .2s ease,border-color .2s ease,transform .2s ease;
}

.main-nav a:hover,
.text-link:hover,
.project-meta>a:hover{
  opacity:.66;
}

.button{
  transition:transform .22s ease,background-color .22s ease,color .22s ease;
}

.button:hover{
  transform:translateY(-2px);
}

.button:focus-visible,
.text-link:focus-visible,
.main-nav a:focus-visible,
.project-meta>a:focus-visible,
.media:focus-visible,
.menu-toggle:focus-visible{
  outline:2px solid currentColor;
  outline-offset:4px;
}

.hero-copy{
  left:var(--page-gutter);
  max-width:min(900px,76vw);
}

.hero-copy h1{
  margin:.25rem 0 1.25rem;
  text-wrap:balance;
}

.hero-copy p:not(.eyebrow){
  margin-bottom:0;
  max-width:580px;
}

.hero-actions{
  margin-top:2.35rem;
}

.section-pad{
  padding:var(--section-space) var(--page-gutter);
}

.intro,
.section-heading{
  column-gap:clamp(2rem,4vw,5rem);
}

.intro p:last-child,
.section-heading p:last-child{
  margin-bottom:0;
}

.work-section{
  padding-bottom:clamp(3rem,6vw,7rem);
}

.project{
  padding-left:var(--page-gutter);
  padding-right:var(--page-gutter);
  padding-bottom:clamp(5rem,8vw,8rem);
}

.project-grid{
  gap:clamp(2.5rem,4vw,5rem);
  padding-left:var(--page-gutter);
  padding-right:var(--page-gutter);
}

.project-grid .project{
  padding-bottom:clamp(4.5rem,7vw,7rem);
}

.media{
  box-shadow:0 1px 0 rgba(24,24,20,.06);
}

.media img{
  transform:scale(1.001);
}

.media:hover img{
  transform:scale(1.025);
}

.project-meta{
  margin-top:1.25rem;
  padding-top:1.45rem;
  border-color:var(--soft-line);
}

.project-meta h3{
  margin-bottom:0;
  font-size:clamp(1.05rem,1.35vw,1.3rem);
}

.project-meta p{
  max-width:46rem;
  color:#33342f;
}

.compact{
  padding-right:clamp(0rem,2vw,2rem);
}

.services,
.process,
.about{
  column-gap:clamp(3rem,8vw,9rem);
}

.service-list>div,
.process li{
  border-color:var(--soft-line);
}

.quote-block{
  padding:clamp(7rem,10vw,11rem) clamp(2rem,12vw,13rem);
}

.quote-block blockquote{
  max-width:1150px;
  text-wrap:balance;
}

.about-image{
  min-height:560px;
  height:clamp(560px,58vw,760px);
}

.about-image img{
  object-position:center 45%;
}

.contact{
  padding:clamp(6.5rem,9vw,10rem) var(--page-gutter);
}

.contact-details a{
  width:max-content;
  border-bottom:1px solid rgba(255,255,255,.3);
}

footer{
  padding:3.2rem var(--page-gutter);
  border-top:1px solid var(--soft-line);
}

/* Individual homepage crop refinements */
.project-grid .project:nth-child(1) .media img{
  object-position:center 46%;
}

.project-grid .project:nth-child(2) .media img{
  object-position:center 42%;
}

.project-grid .project:nth-child(3) .media img{
  object-position:center 50%;
}

.project-grid .project:nth-child(4) .media img{
  object-position:center 44%;
}

@media(max-width:850px){
  :root{
    --page-gutter:6vw;
    --section-space:clamp(4.75rem,12vw,7rem);
  }

  .hero-copy{
    max-width:none;
  }

  .hero-copy h1{
    max-width:11ch;
  }

  .hero-actions{
    gap:1.2rem;
  }

  .project{
    padding-bottom:5.5rem;
  }

  .project-grid{
    gap:0;
  }

  .project-grid .project{
    padding-bottom:5.5rem;
  }

  .project-meta{
    padding-top:1.2rem;
  }

  .project-meta>div{
    align-items:baseline;
  }

  .project-meta p{
    max-width:38rem;
  }

  .about-image{
    min-height:0;
    height:min(125vw,620px);
  }

  .quote-block{
    padding-left:var(--page-gutter);
    padding-right:var(--page-gutter);
  }

  .contact{
    gap:2.5rem;
  }
}

@media(max-width:560px){
  .site-header{
    height:74px;
  }

  .hero{
    min-height:700px;
  }

  .hero-copy{
    bottom:4.75vh;
  }

  .hero-copy h1{
    max-width:9.8ch;
    margin-bottom:1rem;
  }

  .hero-copy p:not(.eyebrow){
    line-height:1.55;
  }

  .intro{
    gap:1.75rem;
  }

  .section-heading{
    gap:1.4rem;
  }

  .media.wide{
    min-height:330px;
  }

  .project-meta h3{
    font-size:1.1rem;
  }

  .service-list>div{
    grid-template-columns:.15fr 1fr;
    gap:1rem;
  }

  .service-list>div p{
    grid-column:2;
  }

  .process li{
    grid-template-columns:.15fr 1fr;
    gap:1rem;
  }

  footer img{
    width:130px;
  }
}


/* In the Workshop feature */
.workshop-feature{
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(340px,.78fr);
  min-height:720px;
  margin-top:clamp(3rem,7vw,8rem);
  background:#171714;
  color:white;
}

.workshop-image{
  position:relative;
  display:block;
  min-height:720px;
  overflow:hidden;
  background:#2d2a24;
}

.workshop-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 44%;
  transition:transform .9s cubic-bezier(.2,.7,.2,1);
}

.workshop-image:hover img{
  transform:scale(1.018);
}

.workshop-status{
  position:absolute;
  top:2rem;
  left:2rem;
  padding:.7rem .9rem;
  background:rgba(245,242,234,.94);
  color:#171714;
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.workshop-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(4rem,7vw,8rem) clamp(2.5rem,5vw,6rem);
}

.workshop-copy .section-number,
.workshop-copy .eyebrow{
  color:rgba(255,255,255,.58);
}

.workshop-copy h2{
  max-width:11ch;
  margin:2.2rem 0 2rem;
  font-family:"Newsreader",serif;
  font-size:clamp(3.5rem,5.7vw,6.5rem);
  font-weight:400;
  line-height:.91;
  letter-spacing:-.045em;
}

.workshop-copy > p{
  max-width:34rem;
  color:rgba(255,255,255,.77);
  line-height:1.75;
}

.workshop-copy .workshop-note{
  margin-top:1rem;
  color:rgba(255,255,255,.48);
  font-size:.86rem;
  font-style:italic;
}

.workshop-copy .text-link{
  width:max-content;
  margin-top:1.6rem;
  color:white;
}

@media(max-width:900px){
  .workshop-feature{
    grid-template-columns:1fr;
    min-height:0;
  }

  .workshop-image{
    min-height:0;
    height:86vw;
    max-height:680px;
  }

  .workshop-copy{
    padding:4.5rem 6vw 5rem;
  }

  .workshop-copy h2{
    font-size:clamp(3.45rem,12vw,5.4rem);
  }
}

@media(max-width:560px){
  .workshop-feature{
    margin-top:2rem;
  }

  .workshop-image{
    height:108vw;
    max-height:590px;
  }

  .workshop-status{
    top:1rem;
    left:1rem;
  }

  .workshop-copy{
    padding:4rem 6vw 4.5rem;
  }

  .workshop-copy h2{
    margin-top:1.8rem;
    font-size:clamp(3.15rem,14vw,4.35rem);
  }
}

/* Mobile homepage menu button — match gallery pages */
@media(max-width:850px){
  .menu-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:48px;
    min-height:48px;
    padding:.7rem .85rem;
    border:1px solid rgba(255,255,255,.58);
    background:rgba(20,20,18,.2);
    color:white;
    font:inherit;
    font-size:.68rem;
    font-weight:600;
    letter-spacing:.1em;
    text-transform:uppercase;
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    touch-action:manipulation;
  }

  .menu-toggle[aria-expanded="true"]{
    background:rgba(255,255,255,.96);
    color:var(--ink);
    border-color:white;
  }
}
