
:root{
  --ink:#111814;
  --cream:#f3f0e8;
  --paper:#f8f6f0;
  --muted:#65716a;
  --line:rgba(17,24,20,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.55}
img{display:block;width:100%}
a{color:inherit}
.header{
  position:fixed;top:0;left:0;right:0;z-index:30;
  height:78px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;
  color:white;background:linear-gradient(to bottom,rgba(0,0,0,.48),rgba(0,0,0,0));
}
.logo{font-family:"Libre Caslon Display",serif;font-size:1.48rem;text-decoration:none}
nav{display:flex;gap:28px}
nav a,.menu-button{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.menu-button{display:none;border:0;background:none;color:white}
.hero{height:100svh;min-height:650px;position:relative;overflow:hidden}
.hero>img{height:100%;object-fit:cover;object-position:center 42%}
.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,10,8,.68),rgba(5,10,8,.18) 62%,rgba(5,10,8,.08))}
.hero-copy{position:absolute;left:5vw;bottom:9vh;color:white;max-width:820px}
.kicker{margin:0 0 14px;font-size:.73rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
h1,h2{font-family:"Libre Caslon Display",serif;font-weight:400;line-height:.96;margin:0;letter-spacing:-.02em}
h1{font-size:clamp(4.5rem,10vw,9rem)}
.hero .lede{font-size:clamp(1rem,1.8vw,1.3rem);max-width:520px;color:rgba(255,255,255,.88);margin:24px 0}
.hero-link{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:4px;font-size:.83rem;letter-spacing:.08em}
.section{padding:110px 5vw}
.intro{border-bottom:1px solid var(--line)}
.intro-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:9vw;align-items:end}
.intro h2,.section-title h2,.about h2,.contact h2{font-size:clamp(3rem,6vw,6.4rem)}
.intro-grid>p{color:var(--muted);font-size:1.05rem;max-width:560px}
.section-title{margin-bottom:45px}
.masonry{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
figure{margin:0;grid-column:span 6;cursor:zoom-in}
figure.portrait{grid-column:span 4}
figure.feature{grid-column:span 8}
figure img{height:520px;object-fit:cover;background:#d9ddd8;transition:filter .25s ease,transform .35s ease}
figure.portrait img{height:690px}
figure.feature img{height:600px}
figure:hover img{filter:brightness(.96);transform:scale(1.003)}
figcaption{padding-top:10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:#66726b}
.quote-band{background:var(--ink);color:var(--cream);padding:100px 7vw}
.quote-band p{font-family:"Libre Caslon Display",serif;font-size:clamp(2.8rem,6vw,6rem);line-height:1.02;margin:0;max-width:1100px}
.about{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:center}
.about-photo img{height:720px;object-fit:cover}
.about-copy p{color:var(--muted);max-width:610px}
.about-copy h2{margin-bottom:30px}
.text-link{display:inline-block;margin-top:18px;text-decoration:none;border-bottom:1px solid}
.contact{padding:120px 5vw;background:#d9dfd8}
.contact h2{max-width:1000px;margin-bottom:25px}
.contact>p:not(.kicker){max-width:650px}
.button{display:inline-block;background:var(--ink);color:white;text-decoration:none;padding:14px 20px;margin-top:16px;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase}
footer{padding:28px 5vw;display:flex;justify-content:space-between;gap:20px;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase}
.lightbox{position:fixed;inset:0;z-index:60;background:rgba(8,12,10,.96);display:none;place-items:center;padding:5vw}
.lightbox.open{display:grid}
.lightbox img{max-width:94vw;max-height:84vh;width:auto;height:auto}
.lightbox p{color:white;margin:13px 0 0;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
.close{position:absolute;right:24px;top:18px;border:0;background:none;color:white;font-size:2.4rem;cursor:pointer}
@media(max-width:780px){
  .header{height:68px}
  nav{display:none;position:absolute;top:68px;left:0;right:0;padding:24px 5vw;background:rgba(12,17,14,.97);flex-direction:column}
  nav.open{display:flex}
  .menu-button{display:block}
  .hero{min-height:620px}
  .hero-copy{left:6vw;right:6vw;bottom:9vh}
  .section{padding:80px 6vw}
  .intro-grid,.about{grid-template-columns:1fr;gap:38px}
  .masonry{display:block}
  figure,figure.portrait,figure.feature{margin-bottom:30px}
  figure img,figure.portrait img,figure.feature img{height:auto;max-height:none}
  .about-photo img{height:auto}
  .quote-band{padding:78px 6vw}
  .contact{padding:90px 6vw}
  footer{flex-direction:column}
}
