:root{--ink:#0b0b0a;--paper:#f1efe9;--muted:#a7a59f;--gold:#d8b36a;--line:rgba(241,239,233,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.55}img{display:block;width:100%}button,a{font:inherit}a{color:inherit}.site-header{position:absolute;z-index:10;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:28px 4vw}.brand{display:flex;gap:12px;align-items:baseline;text-decoration:none;font-weight:600;font-size:1.1rem}.brand span{color:var(--muted);font-size:.78rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase}.site-header nav{display:flex;gap:32px}.site-header nav a{text-decoration:none;font-size:.92rem}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--gold)}.menu-button{display:none;background:none;border:1px solid var(--line);color:inherit;padding:8px 14px}.hero{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.8fr) 1.25fr .45fr;gap:2vw;align-items:end;padding:120px 4vw 4vw}.hero-copy{align-self:center;padding-right:2vw}.eyebrow{margin:0 0 18px;color:var(--gold);font-size:.76rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase}.hero h1,.section-heading h2,.about-copy h2,.contact-section h2{font-family:"Playfair Display",serif;font-weight:500;line-height:.98;margin:0}.hero h1{font-size:clamp(3.2rem,6vw,7rem);letter-spacing:-.04em}.hero em,.contact-section em{font-weight:500;color:var(--gold)}.intro{max-width:460px;margin:30px 0;color:#c7c4bd;font-size:1.08rem}.text-link{display:inline-block;text-underline-offset:6px;text-decoration-thickness:1px}.text-link span{margin-left:8px;color:var(--gold)}figure{margin:0}.hero-image img{height:72vh;object-fit:cover}.hero-image figcaption{margin-top:10px;color:var(--muted);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}.hero-detail{padding-bottom:6vh}.hero-detail img{height:36vh;object-fit:cover}.work-section{padding:130px 4vw}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:48px}.section-heading h2{font-size:clamp(3rem,5vw,5.5rem)}.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filter{border:1px solid var(--line);border-radius:100px;background:transparent;color:var(--muted);padding:9px 17px;cursor:pointer}.filter:hover,.filter:focus-visible,.filter.active{background:var(--paper);border-color:var(--paper);color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-flow:dense;gap:14px}.photo{position:relative;min-height:330px;padding:0;border:0;overflow:hidden;background:#171716;cursor:zoom-in;color:white;text-align:left}.photo.wide{grid-column:span 2}.photo.tall{grid-row:span 2;min-height:674px}.photo img{height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .55s ease,filter .4s ease}.photo span{position:absolute;left:18px;bottom:16px;z-index:1;opacity:0;transform:translateY(8px);transition:.3s ease;font-size:.85rem;letter-spacing:.06em;text-shadow:0 1px 8px #000}.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.7));opacity:0;transition:.3s}.photo:hover img,.photo:focus-visible img{transform:scale(1.035);filter:brightness(.8)}.photo:hover::after,.photo:hover span,.photo:focus-visible::after,.photo:focus-visible span{opacity:1;transform:none}.photo[hidden]{display:none}.about-section{display:grid;grid-template-columns:minmax(260px,.62fr) 1.1fr;gap:8vw;align-items:center;padding:120px 12vw;background:var(--paper);color:var(--ink)}.about-portrait img{max-height:680px;object-fit:cover;filter:saturate(.85)}.about-copy h2{font-size:clamp(2.8rem,5vw,5rem);max-width:850px;margin-bottom:38px}.about-copy p:not(.eyebrow){max-width:720px;color:#474641;font-size:1.05rem}.contact-section{padding:150px 8vw}.contact-section h2{font-size:clamp(3.8rem,8vw,9rem);max-width:1150px}.email{display:inline-block;margin-top:48px;font-size:clamp(1.2rem,2vw,2rem);text-underline-offset:8px;text-decoration-color:var(--gold)}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:28px 4vw;color:var(--muted);font-size:.85rem}footer a{text-decoration:none}.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;border:0;padding:3vw;background:rgba(4,4,4,.96);color:white}.lightbox[open]{display:grid;place-items:center}.lightbox::backdrop{background:#000}.lightbox img{max-width:88vw;max-height:84vh;width:auto;height:auto}.lightbox p{position:absolute;left:4vw;bottom:2vw;margin:0;color:#ccc}.lightbox-close{position:absolute;z-index:2;right:3vw;top:2vw;border:0;background:none;color:white;font-size:2.5rem;cursor:pointer}.lightbox-close:focus-visible,.photo:focus-visible,.filter:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
@media(max-width:900px){.hero{grid-template-columns:1fr 1.2fr}.hero-detail{display:none}.gallery{grid-template-columns:repeat(2,1fr)}.about-section{padding:90px 6vw;gap:6vw}}
@media(max-width:640px){.site-header{padding:20px 5vw}.brand span{display:none}.menu-button{display:block}.site-header nav{position:absolute;top:68px;right:5vw;display:none;flex-direction:column;gap:16px;padding:20px 28px;background:var(--paper);color:var(--ink)}.site-header nav.open{display:flex}.hero{display:flex;flex-direction:column;min-height:auto;align-items:stretch;padding:120px 5vw 60px}.hero-copy{order:2;padding-top:32px}.hero-image{order:1}.hero-image img{height:56vh}.hero h1{font-size:clamp(3.1rem,16vw,5rem)}.work-section{padding:90px 5vw}.section-heading{display:block}.filters{justify-content:flex-start;margin-top:28px}.gallery{grid-template-columns:1fr;gap:10px}.photo,.photo.tall{grid-column:auto;grid-row:auto;min-height:62vh}.photo.wide{grid-column:auto}.photo span,.photo::after{opacity:1;transform:none}.about-section{grid-template-columns:1fr;padding:80px 6vw}.about-portrait img{max-height:70vh}.contact-section{padding:100px 6vw}.contact-section h2{font-size:clamp(3rem,15vw,5.5rem)}footer{padding:24px 5vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.photo img,.photo span,.photo::after{transition:none}}
