:root{--ink:#191713;--paper:#f1eee6;--muted:#777166;--gold:#a27d3f;--line:rgba(25,23,19,.22)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.45}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}
.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 3.5vw;border-bottom:1px solid var(--line);position:relative;z-index:2}
.wordmark{font-weight:600;letter-spacing:.12em}.wordmark span{color:var(--gold);padding:0 .22rem}
nav{display:flex;gap:2rem;font-size:.875rem}nav a{border-bottom:1px solid transparent}nav a:hover{border-color:currentColor}
.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:34% 66%;padding:3.5vw;gap:3.5vw;align-items:end}
.hero-copy{align-self:center}.eyebrow,.index{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:600}
h1,h2{font-family:"Playfair Display",serif;font-weight:500;margin:0;line-height:.91;letter-spacing:-.045em}
h1{font-size:clamp(3.7rem,7.5vw,8.8rem);margin:.7em 0 .45em}
.role{font-size:clamp(1rem,1.45vw,1.35rem);color:var(--muted)}
.hero-image img{height:min(75vh,900px);object-fit:cover}.hero-image figcaption,.gallery figcaption{font-size:.77rem;margin-top:.75rem;color:var(--muted)}
.portrait-hero img{object-position:center 34%}
.intro{margin:7rem 3.5vw;display:grid;grid-template-columns:24% 1fr;gap:3.5vw;padding-top:1.25rem;border-top:1px solid var(--line)}
.statement{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,4.5rem);line-height:1.08;max-width:23ch;margin:0}
.project{padding:2rem 3.5vw 8rem;background:var(--ink);color:var(--paper)}
.project-heading{min-height:68vh;display:grid;grid-template-columns:1fr 34%;gap:5vw;align-items:end;padding-bottom:4rem}
h2{font-size:clamp(3rem,6.8vw,7.2rem);margin-top:.35em}
.project-meta{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;color:#b8b2a7;font-size:.87rem}.project-meta span{display:block;color:var(--paper);text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;margin-bottom:.75rem}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:7vw 2vw;align-items:start}
.gallery figure{margin:0}.gallery .wide{grid-column:1/9}.gallery .offset{grid-column:7/13;margin-top:10vw}.gallery>figure:nth-child(2){grid-column:9/13;margin-top:18vw}
.gallery .porsche-pair{grid-column:1/7;margin-top:10vw}
.feature{grid-column:1/13;display:grid!important;grid-template-columns:58% 1fr;gap:7vw;align-items:end}.feature-note{max-width:28rem;font-family:"Playfair Display",serif;font-size:1.5rem}.feature-note .eyebrow{font-family:"DM Sans",sans-serif;color:#aaa398}
.closing{grid-column:3/11;margin-top:3vw!important}.closing img{max-height:1000px;object-fit:cover}
.london-project{padding:2rem 3.5vw 8rem;background:#d9d4c9;color:var(--ink)}
.london-heading{min-height:62vh}.london-heading .project-meta{color:#69645b}.london-heading .project-meta span{color:var(--ink)}
.london-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:7vw 2vw;align-items:start}
.london-gallery figure{margin:0}.london-gallery figcaption{font-size:.77rem;margin-top:.75rem;color:#625e56}
.london-entrance{grid-column:1/13}.london-wide{grid-column:2/12}
.london-portrait{grid-column:1/7}.london-detail{grid-column:7/13;margin-top:12vw!important}
.london-ballwall{grid-column:1/13;display:grid!important;grid-template-columns:62% 1fr;gap:7vw;align-items:end}
.london-ballwall .feature-note{font-size:1.45rem}.london-ballwall .feature-note .eyebrow{color:#69645b}
.london-lounge{grid-column:2/12}
.services{padding:8rem 3.5vw;display:grid;grid-template-columns:24% 1fr;gap:3.5vw}
.service-list p{font-family:"Playfair Display",serif;font-size:clamp(1.9rem,4vw,4.3rem);margin:0;padding:.17em 0;border-bottom:1px solid var(--line)}
footer{padding:2rem 3.5vw;display:grid;grid-template-columns:1fr 1fr auto;gap:2rem;border-top:1px solid var(--line);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media (max-width:760px){
 .site-header{height:68px;padding:0 1.25rem}nav{gap:1rem}
 .hero{min-height:auto;display:flex;flex-direction:column;padding:3rem 1.25rem 1.25rem;gap:2.5rem;align-items:stretch}.hero-copy{order:1}.hero-image{order:2}.hero-image img{height:68vh}
 h1{font-size:clamp(3.4rem,16vw,5.8rem)}
 .intro{margin:5rem 1.25rem;display:block}.intro .index{margin-bottom:2.5rem}.statement{font-size:2.05rem}
 .project{padding:2rem 1.25rem 5rem}.project-heading{min-height:auto;display:block;padding:6rem 0 4rem}.project-meta{margin-top:3rem}
 .gallery{display:block}.gallery figure,.gallery .offset,.gallery>figure:nth-child(2),.gallery .closing{margin:0 0 4rem!important}.feature{display:block!important}.feature-note{margin:2rem 0}
 .london-project{padding:2rem 1.25rem 5rem}.london-gallery{display:block}.london-gallery figure,.london-gallery .london-detail{margin:0 0 4rem!important}.london-ballwall{display:block!important}
 .services{padding:5rem 1.25rem;display:block}.service-list{margin-top:2.5rem}.service-list p{font-size:2rem;padding:.3em 0}
 footer{padding:2rem 1.25rem;display:block}footer>*{margin:.75rem 0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
