@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Italiana&display=swap');
:root{
  --paper:#f0eee8; --paper-2:#e7e3db; --ink:#24251f; --olive:#555b45; --sage:#b9b9a3;
  --line:rgba(36,37,31,.25); --white:#f7f5f0; --pad:clamp(20px,3.2vw,52px);
  --serif:'Italiana','Times New Roman',serif; --sans:'DM Sans',Arial,sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.45}
a{color:inherit;text-decoration:none} img{display:block;width:100%;height:100%;object-fit:cover;background:#c8c4b8}
button,input,textarea,select{font:inherit;color:inherit} button{cursor:pointer}
::selection{background:var(--olive);color:var(--paper)}
.site-header{position:relative;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:26px var(--pad);border-bottom:1px solid var(--line);background:var(--paper)}
.brand{font-family:var(--serif);font-size:clamp(22px,2.3vw,36px);letter-spacing:.02em;text-transform:uppercase}
.brand small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.25em;margin-top:2px;text-align:center}
.nav{display:flex;gap:24px;text-transform:uppercase;font-size:11px;letter-spacing:.12em}
.nav a{position:relative}.nav a:after{content:'';position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:.3s}.nav a:hover:after,.nav a.active:after{transform:scaleX(1);transform-origin:left}
.header-cta{justify-self:end;font-size:11px;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid currentColor;padding-bottom:4px}
.menu-toggle{display:none;justify-self:end;background:transparent;border:0;padding:6px 0;font-size:11px;text-transform:uppercase;letter-spacing:.14em}
.mobile-panel{display:none}
.display{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;line-height:.91;text-transform:uppercase}
.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.18em;margin:0 0 16px}
.hero{min-height:calc(100vh - 95px);display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);border-bottom:1px solid var(--line)}
.hero-copy{padding:clamp(44px,6vw,92px) var(--pad);display:flex;flex-direction:column;justify-content:space-between;min-height:690px}
.hero h1{font-size:clamp(74px,9vw,158px);margin:0;max-width:7ch}.hero-intro{display:grid;grid-template-columns:120px minmax(0,1fr);gap:28px;max-width:620px;align-items:start}.hero-intro p{margin:0;font-size:clamp(15px,1.5vw,20px)}
.hero-media{min-height:690px;position:relative;overflow:hidden}.hero-media:after{content:'RESIDENTIAL / 2026';position:absolute;right:16px;bottom:16px;background:var(--paper);padding:9px 11px;font-size:9px;letter-spacing:.14em}
.statement{padding:clamp(70px,10vw,160px) var(--pad);display:grid;grid-template-columns:.75fr 1.25fr;gap:5vw;border-bottom:1px solid var(--line)}
.statement h2{font-size:clamp(48px,7vw,116px);margin:0}.statement-copy{align-self:end;max-width:750px}.statement-copy p{font-size:clamp(20px,2.3vw,34px);margin:0 0 32px;font-family:var(--serif);line-height:1.18}
.text-link{display:inline-flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid;padding-bottom:5px}.text-link:after{content:'↗';font-size:13px}
.image-triptych{display:grid;grid-template-columns:1.25fr .7fr .8fr;gap:12px;padding:12px;background:var(--paper-2);border-bottom:1px solid var(--line)}
.image-triptych figure{margin:0;min-height:420px}.image-triptych figure:nth-child(2){margin-top:110px;min-height:500px}.image-triptych figure:nth-child(3){margin-bottom:100px;min-height:460px}
.projects{padding:clamp(80px,9vw,140px) var(--pad);border-bottom:1px solid var(--line)}
.projects-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:56px}.projects-head h2{font-size:clamp(54px,7vw,112px);margin:0}.project{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(28px,5vw,80px);padding:48px 0;border-top:1px solid var(--line);align-items:center}.project:nth-of-type(even){grid-template-columns:1.05fr .95fr}.project:nth-of-type(even) .project-media{order:2}.project-media{height:clamp(420px,55vw,740px)}.project-num{font-size:10px;letter-spacing:.14em}.project h3{font-family:var(--serif);font-size:clamp(48px,5vw,82px);font-weight:400;margin:18px 0 24px;text-transform:uppercase;line-height:.96}.project p{max-width:560px;margin:0 0 28px;font-size:16px}
.profile{display:grid;grid-template-columns:.85fr 1.15fr;background:var(--olive);color:var(--white)}.profile-media{min-height:680px}.profile-copy{padding:clamp(60px,8vw,120px) var(--pad);display:flex;flex-direction:column;justify-content:center}.profile h2{font-size:clamp(64px,8vw,124px);margin:0 0 38px}.profile p{max-width:670px;font-size:clamp(17px,1.5vw,22px)}
.contact-ribbon{display:grid;grid-template-columns:1.1fr .9fr;border-bottom:1px solid var(--line)}.contact-ribbon .copy{padding:clamp(60px,8vw,120px) var(--pad);display:flex;flex-direction:column;justify-content:center}.contact-ribbon h2{font-size:clamp(66px,8vw,132px);margin:0 0 24px}.contact-ribbon .media{min-height:530px}
.newsletter{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:54px var(--pad);border-bottom:1px solid var(--line);align-items:end}.newsletter h3{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4vw,58px);margin:0}.newsletter-form{display:flex;border-bottom:1px solid}.newsletter-form input{flex:1;background:transparent;border:0;padding:16px 0;outline:0}.newsletter-form button{border:0;background:transparent;text-transform:uppercase;letter-spacing:.14em;font-size:10px}
.footer{padding:44px var(--pad) 30px}.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px}.footer h4{font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px}.footer p,.footer a{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:3px 0;display:block}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:46px;padding-top:22px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}
.page-hero{padding:clamp(70px,9vw,140px) var(--pad) 44px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(74px,9vw,150px);margin:0;max-width:10ch}.page-hero p{max-width:620px;font-size:18px;margin:32px 0 0 auto}
.gallery-grid{padding:12px;display:grid;grid-template-columns:repeat(12,1fr);gap:12px;background:var(--paper-2)}.gallery-card{margin:0;position:relative;overflow:hidden;background:#c7c4b9;cursor:zoom-in}.gallery-card img{transition:transform .7s cubic-bezier(.2,.8,.2,1)}.gallery-card:hover img{transform:scale(1.025)}.gallery-card figcaption{position:absolute;left:12px;bottom:12px;background:var(--paper);padding:8px 10px;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.gallery-card:nth-child(1){grid-column:span 7;height:640px}.gallery-card:nth-child(2){grid-column:span 5;height:520px;margin-top:120px}.gallery-card:nth-child(3){grid-column:2/span 4;height:540px}.gallery-card:nth-child(4){grid-column:6/span 7;height:680px}.gallery-card:nth-child(5){grid-column:span 5;height:610px}.gallery-card:nth-child(6){grid-column:6/span 4;height:480px;margin-top:80px}.gallery-card:nth-child(7){grid-column:10/span 3;height:560px}.gallery-card:nth-child(8){grid-column:3/span 8;height:690px}
.lightbox{position:fixed;inset:0;background:rgba(20,21,18,.94);z-index:100;display:none;padding:5vh 5vw}.lightbox.open{display:flex;align-items:center;justify-content:center}.lightbox img{max-height:90vh;max-width:90vw;width:auto;height:auto;object-fit:contain}.lightbox button{position:absolute;right:24px;top:18px;color:white;background:transparent;border:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.story-intro{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px;background:var(--paper-2)}.story-intro .media{min-height:720px}.story-intro .media:nth-child(2){margin-top:120px}.story-copy{padding:clamp(70px,8vw,120px) var(--pad);display:grid;grid-template-columns:.65fr 1.35fr;gap:7vw;border-bottom:1px solid var(--line)}.story-copy h2{font-size:clamp(48px,6vw,92px);margin:0}.story-copy .lead{font-family:var(--serif);font-size:clamp(28px,3vw,46px);line-height:1.15;margin:0 0 32px}
.credentials{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.credentials>div{padding:60px var(--pad)}.credentials>div+div{border-left:1px solid var(--line)}.credentials h3{font-family:var(--serif);font-size:38px;font-weight:400;margin:0 0 28px}.credentials ul{list-style:none;margin:0;padding:0}.credentials li{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:12px 0;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.services-intro{display:grid;grid-template-columns:.75fr 1.25fr;gap:12px;padding:12px;background:var(--paper-2);align-items:start}.services-intro .media{height:560px}.services-intro .media:nth-child(2){height:760px}.services-copy{padding:clamp(70px,8vw,120px) var(--pad);display:grid;grid-template-columns:.75fr 1.25fr;gap:7vw;border-bottom:1px solid var(--line)}.services-copy h1{font-size:clamp(72px,8vw,130px);margin:0}.services-copy .lead{font-family:var(--serif);font-size:clamp(26px,3vw,44px);line-height:1.15;margin:0}
.service-row{display:grid;grid-template-columns:1fr 1fr;min-height:690px;border-bottom:1px solid var(--line)}.service-row:nth-child(even) .service-media{order:2}.service-copy{padding:clamp(55px,7vw,100px) var(--pad);display:flex;flex-direction:column;justify-content:center}.service-copy h2{font-size:clamp(58px,6vw,98px);margin:0 0 30px}.service-copy p{font-size:17px;max-width:620px}.service-media{min-height:540px}
.contact-page{display:grid;grid-template-columns:.95fr 1.05fr;min-height:760px;border-bottom:1px solid var(--line)}.contact-info{padding:clamp(60px,7vw,100px) var(--pad);background:var(--olive);color:var(--white)}.contact-info h1{font-size:clamp(64px,7vw,112px);margin:0 0 40px}.contact-info p{max-width:520px;font-size:18px}.contact-form-wrap{padding:clamp(60px,7vw,100px) var(--pad)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:9px;text-transform:uppercase;letter-spacing:.14em}.field input,.field textarea,.field select{background:transparent;border:0;border-bottom:1px solid var(--line);padding:13px 0;outline:0}.field textarea{min-height:110px;resize:vertical}.submit{margin-top:26px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:16px 22px;text-transform:uppercase;letter-spacing:.15em;font-size:10px;transition:.3s}.submit:hover{background:transparent;color:var(--ink)}.form-status{font-size:12px;margin-top:14px;min-height:18px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.reveal.in{opacity:1;transform:none}
@media(max-width:900px){
 .site-header{grid-template-columns:1fr auto}.nav,.header-cta{display:none}.menu-toggle{display:block}.brand{justify-self:start}.mobile-panel{position:fixed;inset:0;background:var(--olive);color:var(--white);z-index:60;padding:28px var(--pad);flex-direction:column}.mobile-panel.open{display:flex}.mobile-panel .close{align-self:flex-end;background:transparent;border:0;color:inherit;text-transform:uppercase;letter-spacing:.12em}.mobile-panel nav{margin:auto 0;display:flex;flex-direction:column;gap:14px}.mobile-panel nav a{font-family:var(--serif);font-size:clamp(44px,12vw,78px);text-transform:uppercase;line-height:1}.mobile-panel small{letter-spacing:.13em;text-transform:uppercase}
 .hero{grid-template-columns:1fr}.hero-copy{min-height:auto;padding-top:64px}.hero-media{min-height:70vh}.hero-intro{margin-top:72px}.statement,.story-copy,.services-copy{grid-template-columns:1fr;gap:40px}.image-triptych{grid-template-columns:1fr 1fr}.image-triptych figure:nth-child(3){grid-column:1/-1}.project,.project:nth-of-type(even){grid-template-columns:1fr}.project:nth-of-type(even) .project-media{order:0}.profile,.contact-ribbon,.newsletter,.story-intro,.credentials,.services-intro,.service-row,.contact-page{grid-template-columns:1fr}.story-intro .media:nth-child(2){margin-top:0}.credentials>div+div{border-left:0;border-top:1px solid var(--line)}.services-intro .media:nth-child(2){height:620px}.service-row:nth-child(even) .service-media{order:0}.gallery-card:nth-child(n){grid-column:auto;height:520px;margin:0}.gallery-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.page-hero p{margin-left:0}
}
@media(max-width:560px){
 .site-header{padding-top:20px;padding-bottom:20px}.brand{font-size:24px}.hero{min-height:auto}.hero-copy{padding-top:48px;padding-bottom:54px}.hero h1{font-size:clamp(64px,21vw,94px)}.hero-intro{grid-template-columns:1fr;margin-top:54px;gap:10px}.hero-media{min-height:62vh}.statement{padding-top:72px;padding-bottom:72px}.statement h2{font-size:18vw}.statement-copy p{font-size:27px}.image-triptych{grid-template-columns:1fr;padding:8px;gap:8px}.image-triptych figure:nth-child(n){grid-column:auto;min-height:64vh;margin:0}.projects{padding-top:74px}.projects-head{display:block}.projects-head .text-link{margin-top:20px}.project{padding:30px 0}.project-media{height:64vh}.project h3{font-size:15vw}.profile-media{min-height:66vh}.profile h2,.contact-ribbon h2{font-size:18vw}.contact-ribbon .media{min-height:60vh}.newsletter{gap:28px}.newsletter-form{display:grid}.newsletter-form button{text-align:left;padding:12px 0}.footer-grid{grid-template-columns:1fr;gap:24px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}.page-hero{padding-top:58px}.page-hero h1{font-size:19vw}.gallery-grid{grid-template-columns:1fr;padding:8px;gap:8px}.gallery-card:nth-child(n){height:68vh}.story-intro,.services-intro{padding:8px;gap:8px}.story-intro .media,.services-intro .media,.services-intro .media:nth-child(2){min-height:62vh;height:auto}.story-copy h2{font-size:15vw}.credentials>div{padding-top:48px;padding-bottom:48px}.service-row{min-height:0}.service-media{min-height:60vh}.service-copy h2{font-size:15vw}.contact-info h1{font-size:17vw}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}
}
/* QA hardening: grid min-content and very narrow viewport safety */
html,body{max-width:100%;overflow-x:clip}
main,section,article,div,figure,form{min-width:0}
@media(max-width:900px){
  .hero,.statement,.profile,.contact-ribbon,.newsletter,.story-intro,.story-copy,.credentials,.services-intro,.services-copy,.service-row,.contact-page{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:560px){
  .service-copy h2{font-size:13vw}
  .profile h2{font-size:14vw}
  .contact-ribbon h2{font-size:14vw}
  .display{overflow-wrap:break-word}
}
@media(max-width:560px){
  .hero h1{font-size:16vw;line-height:.92;letter-spacing:-.035em}
}
@media(max-width:560px){
  .hero h1{font-size:13.5vw;overflow-wrap:normal;word-break:normal;hyphens:none}
}
