@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500&family=Inter:wght@400;500&display=swap');
:root{--paper:#eee9df;--paper-soft:#f6f2ea;--ink:#24231f;--muted:#66635c;--line:#c9c1b4;--olive:#45483d;--pad:clamp(1.25rem,4vw,4.5rem);--display:"Cormorant Garamond",Georgia,serif;--sans:Inter,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}img,video{display:block;width:100%}figure{margin:0}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:100;padding:.8rem 1rem;background:#fff;color:#111}.skip-link:focus{top:1rem}
.site-header{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:0 var(--pad);color:#fff;transition:background .35s,color .35s,border-color .35s}.site-header.scrolled{color:var(--ink);background:rgba(238,233,223,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.wordmark{font:400 clamp(1.25rem,2vw,1.65rem)/1 var(--display)}.site-nav{display:flex;gap:clamp(1.2rem,3vw,3rem);font-size:.7rem;text-transform:uppercase;letter-spacing:.16em}.site-nav a,.text-link,.contact-link{text-underline-offset:.35em}.site-nav a:hover,.site-nav a:focus-visible,.text-link:hover,.text-link:focus-visible,.contact-link:hover,.contact-link:focus-visible{text-decoration:underline}.menu-toggle{display:none;border:0;background:none;text-transform:uppercase;font-size:.7rem;letter-spacing:.15em;padding:.75rem 0 .75rem .75rem}
.hero{position:relative;min-height:100svh;background:#222;color:#fff;overflow:hidden}.hero-video,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-video{object-fit:cover}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.52),rgba(0,0,0,.10) 62%,rgba(0,0,0,.22)),linear-gradient(0deg,rgba(0,0,0,.32),transparent 55%)}.hero-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;min-height:100svh;padding:clamp(7rem,15vh,11rem) var(--pad) clamp(3rem,8vh,6rem);max-width:76rem}.eyebrow,.section-kicker,.feature-caption p,.pair-caption p{margin:0 0 1rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.18em}.hero h1{margin:0;max-width:9ch;font:400 clamp(3.8rem,10vw,9rem)/.86 var(--display);letter-spacing:-.045em}.hero-intro{max-width:35rem;margin:2rem 0 2.4rem;font-size:clamp(1rem,1.6vw,1.25rem);line-height:1.55}.text-link{display:inline-flex;gap:.7rem;width:fit-content;font-size:.74rem;text-transform:uppercase;letter-spacing:.15em}.video-control{position:absolute;z-index:3;right:var(--pad);bottom:2rem;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(0,0,0,.18);padding:.65rem .95rem;color:#fff;font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;backdrop-filter:blur(8px)}
.section-pad{padding:clamp(5rem,11vw,10rem) var(--pad)}.compact-pad{padding-bottom:clamp(2.5rem,5vw,5rem)}.top-tight{padding-top:0}.intro{display:grid;grid-template-columns:minmax(9rem,.6fr) 1.6fr 1fr;gap:clamp(2rem,5vw,6rem);align-items:start}.intro h2,.spread-heading h2,.services h2,.about h2,.contact h2{margin:0;font:400 clamp(2.8rem,6vw,6.2rem)/.98 var(--display);letter-spacing:-.035em}.intro-copy{max-width:28rem;margin:.4rem 0 0;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.65}
.spread-heading{display:grid;grid-template-columns:minmax(9rem,.5fr) 2fr;gap:clamp(2rem,6vw,8rem);align-items:start;border-top:1px solid var(--line)}.spread-heading h2{max-width:12ch;font-size:clamp(2.8rem,5vw,5.5rem)}.spread-heading p:last-child{max-width:31rem;margin:1.5rem 0 0;color:var(--muted);line-height:1.65}
.editorial-triptych{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(19rem,.85fr);gap:clamp(1rem,2vw,2rem);align-items:stretch}.editorial-triptych--mirrored{grid-template-columns:minmax(19rem,.85fr) minmax(0,1.35fr)}.triptych-main,.triptych-small{overflow:hidden;background:#ddd}.triptych-main{aspect-ratio:1}.triptych-stack{display:grid;grid-template-rows:1fr 1fr;gap:clamp(1rem,2vw,2rem)}.triptych-small{aspect-ratio:3/2}.triptych-main img,.triptych-small img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.triptych-main:hover img,.triptych-small:hover img{transform:scale(1.012)}
.feature{position:relative;min-height:82svh;overflow:hidden;background:#222;color:#fff}.feature-media,.feature-media picture,.feature-media img{width:100%;height:100%;min-height:82svh}.feature-media img{object-fit:cover}.feature::after{content:"";position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.48));pointer-events:none}.feature-caption{position:absolute;z-index:2;left:var(--pad);bottom:clamp(2rem,5vw,4rem);max-width:38rem}.feature-caption h3,.pair-caption h3{margin:0;font:400 clamp(2.5rem,5vw,5rem)/.96 var(--display);letter-spacing:-.035em}
.detail-pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,3vw,3rem)}.detail-card{aspect-ratio:4/3;overflow:hidden;background:#ddd}.detail-card img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.detail-card:hover img{transform:scale(1.012)}.pair-caption{grid-column:1/-1;display:grid;grid-template-columns:1fr 2fr;gap:2rem;align-items:end;margin-top:1.5rem}.pair-caption h3{max-width:14ch}
.services{border-top:1px solid var(--line)}.services>h2{max-width:13ch}.service-list{margin-top:clamp(4rem,9vw,8rem);border-top:1px solid var(--line)}.service-list>div{display:grid;grid-template-columns:4rem 1fr minmax(16rem,1fr);gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line);align-items:baseline}.service-list span{font-size:.7rem;letter-spacing:.15em}.service-list h3{margin:0;font:400 clamp(1.6rem,3vw,3rem)/1 var(--display)}.service-list p{margin:0;max-width:32rem;color:var(--muted);line-height:1.65}.about{background:var(--olive);color:#f4f0e8}.about-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:clamp(3rem,8vw,9rem);align-items:end}.about-grid p{margin:0;max-width:32rem;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.7}.contact{min-height:78svh;display:flex;flex-direction:column;justify-content:center}.contact h2{max-width:12ch}.contact-link{display:inline-block;width:fit-content;margin-top:clamp(3rem,7vw,6rem);font:400 clamp(1.6rem,3vw,3rem)/1.1 var(--display)}.contact-note{color:var(--muted);font-size:.8rem}.site-footer{display:flex;justify-content:space-between;padding:1.5rem var(--pad);border-top:1px solid var(--line);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:760px){:root{--pad:1.25rem}.site-header{min-height:64px}.menu-toggle{display:block}.site-nav{position:fixed;inset:64px 0 auto;display:grid;gap:0;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .3s ease}.site-nav.open{transform:translateY(0)}.site-nav a{padding:1rem var(--pad);border-top:1px solid var(--line)}.hero-content{padding-bottom:5rem}.hero h1{font-size:clamp(3.5rem,17vw,5.8rem)}.video-control{right:var(--pad);bottom:1rem}.intro,.spread-heading{grid-template-columns:1fr;gap:1.6rem}.intro h2,.spread-heading h2,.services h2,.about h2,.contact h2{font-size:clamp(2.8rem,13vw,4.6rem)}.editorial-triptych{grid-template-columns:1fr}.triptych-stack{grid-template-rows:auto;gap:1rem}.triptych-main{aspect-ratio:1}.triptych-small{aspect-ratio:4/3}.feature,.feature-media,.feature-media picture,.feature-media img{min-height:66svh}.feature-media img{object-position:50% center}.feature-caption h3{font-size:clamp(2.5rem,11vw,4rem);max-width:9ch}.detail-pair{grid-template-columns:1fr}.detail-card{aspect-ratio:4/5}.pair-caption{grid-column:1;grid-template-columns:1fr}.service-list>div{grid-template-columns:2.5rem 1fr}.service-list p{grid-column:2}.about-grid{grid-template-columns:1fr}.site-footer{gap:2rem;align-items:flex-end}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
