:root{--black:#090909;--white:#f2f2f0;--line:#303030;--serif:"Prata",serif;--sans:"Manrope",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--white);font-family:var(--sans);font-size:16px;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.header{position:fixed;z-index:20;top:0;left:0;width:100%;height:72px;padding:0 3vw;display:flex;align-items:center;justify-content:space-between;mix-blend-mode:difference}
.wordmark{font-family:var(--serif);font-size:1.3rem}
.menu-button{display:none;background:0;border:0;color:inherit;font:500 .8rem var(--sans);text-transform:uppercase;letter-spacing:.12em}
.menu{display:flex;gap:2.4rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.16em}
.menu a{position:relative}
.menu a:after,.text-link:after,.contact-link:after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:currentColor;transition:right .35s}
.menu a:hover:after,.text-link:hover:after,.contact-link:hover:after{right:0}
.hero{min-height:100svh;position:relative;padding:8rem 3vw 3vw;display:grid;grid-template-columns:1fr 48vw;grid-template-rows:auto 1fr auto}
.hero-kicker{grid-column:1/-1;display:flex;justify-content:space-between;font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;border-top:1px solid var(--line);padding-top:.8rem}
.hero h1{position:absolute;z-index:2;left:3vw;top:16vh;margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(5.4rem,12.2vw,13rem);line-height:.77;letter-spacing:-.055em;pointer-events:none}
.hero h1 span,.hero h1 em{display:block}
.hero h1 em{font-weight:400;margin-left:24vw;color:transparent;-webkit-text-stroke:1px var(--white)}
.hero-media{grid-column:2;grid-row:2/4;height:71vh;margin-top:3vh}
.image{background:#1b1b1b;filter:grayscale(1);overflow:hidden}
.image img{display:block;width:100%;height:100%;object-fit:cover}
.hero-note{align-self:end;font-family:var(--serif);font-size:clamp(1rem,1.35vw,1.4rem);line-height:1.55;margin:0 0 1rem}
.round-link{position:absolute;z-index:3;right:43vw;bottom:4vw;width:130px;height:130px;border:1px solid #aaa;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;transition:.35s}
.round-link:hover{background:var(--white);color:var(--black);transform:rotate(-8deg)}
.round-link b{font-size:1rem}
.manifesto{padding:18vh 10vw 20vh;display:grid;grid-template-columns:1fr 3fr;gap:2rem}
.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.16em;margin:0}
.statement{grid-column:2;font-family:var(--serif);font-size:clamp(2.2rem,5vw,5.7rem);line-height:1.1;letter-spacing:-.035em;margin:0}
.statement i,.contact h2 i{font-weight:400;color:#777}
.body-copy{grid-column:2;width:min(480px,100%);margin:2rem 0 0 auto;line-height:1.75;color:#aaa}
.works{padding:0 3vw 18vh}
.section-head{border-top:1px solid var(--line);padding-top:.8rem;display:flex;justify-content:space-between;margin-bottom:12vh}
.section-head p:last-child{margin:0;font-size:.69rem;letter-spacing:.12em}
.work{margin-bottom:10vh}
.work .image{transition:filter .5s,transform .5s}
.work:hover .image{filter:grayscale(0);transform:scale(.995)}
.work-wide{width:75vw}
.work-wide .image{height:65vw;max-height:920px}
.caption{display:flex;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--line);font-size:.78rem;text-transform:uppercase;letter-spacing:.11em}
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:end}
.work-tall{width:34vw}
.work-tall .image{height:53vw}
.work-small{width:38vw}
.work-small .image{height:28vw}
.work-offset{width:62vw;margin-left:auto}
.work-offset .image{height:42vw}
.about{background:var(--white);color:var(--black);min-height:100vh;padding:10vh 7vw;display:grid;grid-template-columns:42% 1fr;gap:10vw;align-items:center}
.about-image{height:78vh}
.about-copy h2{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,6.7vw,7rem);line-height:.9;letter-spacing:-.05em;margin:8vh 0}
.about-copy>p:not(.eyebrow){max-width:560px;line-height:1.7}
.text-link{position:relative;display:inline-flex;gap:2rem;margin-top:3rem;text-transform:uppercase;font-size:.72rem;letter-spacing:.14em}
.services{padding:18vh 5vw}
.services>.eyebrow{margin-bottom:10vh}
.service-row{display:grid;grid-template-columns:7vw 1fr 36%;gap:2vw;align-items:center;border-top:1px solid var(--line);padding:2.1rem 0}
.service-row:last-child{border-bottom:1px solid var(--line)}
.service-row span{font-size:.69rem;color:#777}
.service-row h3{font-family:var(--serif);font-size:clamp(2rem,4.2vw,4.6rem);font-weight:400;margin:0}
.service-row p{color:#888;line-height:1.5}
.contact{min-height:95vh;padding:13vh 3vw 3vw;display:flex;flex-direction:column}
.contact h2{font-family:var(--serif);font-size:clamp(3.5rem,8.7vw,9.5rem);font-weight:400;line-height:.98;letter-spacing:-.05em;margin:auto 0}
.contact-link{position:relative;align-self:flex-end;font-size:clamp(1.3rem,2.3vw,2.3rem);font-family:var(--serif);margin-bottom:10vh}
.contact-link span{font-family:var(--sans);font-size:1rem;margin-left:2rem}
.footer-line{border-top:1px solid var(--line);padding-top:1rem;display:flex;justify-content:space-between;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em}
.reveal{opacity:1;transform:none}

.image-hero img{object-position:center 28%}
.image-1 img{object-position:center 42%}
.image-2 img{object-position:center 38%}
.image-3 img{object-position:center 45%}
.image-4 img{object-position:center 30%}
.image-about img{object-position:center 42%}
.more-work{padding:2vh 3vw 20vh}
.more-work-head{display:grid;grid-template-columns:1fr 2.1fr 1fr;gap:3vw;align-items:start;border-top:1px solid var(--line);padding-top:1rem;margin-bottom:8vh}
.more-work-head h2{font:400 clamp(2.2rem,4.5vw,5rem)/1.05 var(--serif);letter-spacing:-.04em;margin:0}
.more-work-head h2 i{color:#777;font-weight:400}
.more-work-head>p:last-child{color:#999;line-height:1.65;margin:0}
.photo-wall{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:10vw;gap:1vw}
.photo-card{grid-column:span 4;grid-row:span 3;border:0;padding:0;background:#171717;cursor:zoom-in;overflow:hidden;filter:grayscale(1)}
.photo-card-tall{grid-column:span 3;grid-row:span 4}
.photo-card-wide{grid-column:span 5;grid-row:span 3}
.photo-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s ease,filter .5s ease}
.photo-card:hover img,.photo-card:focus-visible img{transform:scale(1.025);filter:contrast(1.06)}
.photo-card:focus-visible{outline:2px solid var(--white);outline-offset:4px}
.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:4vh 5vw;border:0;background:rgba(5,5,5,.96);color:var(--white)}
.lightbox[open]{display:grid;place-items:center}
.lightbox::backdrop{background:rgba(0,0,0,.92)}
.lightbox img{max-width:88vw;max-height:88vh;object-fit:contain}
.lightbox-close{position:fixed;z-index:2;right:2rem;top:1.5rem;border:0;background:none;color:var(--white);font:500 .8rem var(--sans);text-transform:uppercase;letter-spacing:.12em;cursor:pointer}

@media(max-width:760px){.header{height:60px}
.menu-button{display:block}
.menu{position:fixed;inset:0;background:#090909;display:flex;flex-direction:column;justify-content:center;align-items:center;font:400 2.4rem var(--serif);text-transform:none;letter-spacing:0;opacity:0;visibility:hidden;transition:.3s}
.menu.open{opacity:1;visibility:visible}
.menu-button{position:relative;z-index:2}
.hero{padding:6rem 5vw 6vw;display:block}
.hero-kicker{margin-bottom:5vh}
.hero h1{top:19vh;left:5vw;font-size:18vw;line-height:.82}
.hero h1 em{margin-left:11vw}
.hero-media{height:65vh;margin:10vh 0 0 12vw}
.hero-note{margin-top:1.5rem}
.round-link{right:auto;left:2vw;bottom:10vh;width:100px;height:100px}
.manifesto{padding:15vh 5vw;display:block}
.statement{margin-top:8vh;font-size:10vw}
.body-copy{margin-top:3rem}
.works{padding:0 5vw 14vh}
.section-head{margin-bottom:8vh}
.work-wide,.work-tall,.work-small,.work-offset{width:100%;margin-left:0}
.work-wide .image{height:115vw}
.work-grid{display:block}
.work-tall .image{height:135vw}
.work-small .image{height:76vw}
.work-offset .image{height:92vw}
.work{margin-bottom:12vh}
.about{padding:9vh 5vw;display:block}
.about-image{height:115vw}
.about-copy{margin-top:10vh}
.about-copy h2{margin:6vh 0;font-size:15vw}
.services{padding:14vh 5vw}
.service-row{grid-template-columns:2rem 1fr;gap:1rem;padding:1.5rem 0}
.service-row p{grid-column:2;margin:.25rem 0}
.contact{padding:11vh 5vw 5vw}
.contact h2{font-size:14vw}
.contact-link{align-self:flex-start}
.footer-line{gap:2rem}
.footer-line span{max-width:50%}
.more-work{padding:0 5vw 14vh}
.more-work-head{display:block;margin-bottom:6vh}
.more-work-head h2{font-size:11vw;margin:5vh 0}
.photo-wall{grid-template-columns:1fr 1fr;grid-auto-rows:62vw;gap:3vw}
.photo-card,.photo-card-tall,.photo-card-wide{grid-column:span 1;grid-row:span 1}
.photo-card:nth-child(3n+1){grid-column:1/-1}
.lightbox{padding:3vh 3vw}
.lightbox-close{right:1rem;top:1rem}
}


/* Hero v2: identity first */
.hero{display:block;padding:7.2rem 3vw 3vw}
.hero-kicker{position:relative;z-index:4}
.hero-media{width:54vw;height:76vh;margin:3vh 0 0 auto}
.hero-title{position:absolute;z-index:5;left:3vw;bottom:8vh;width:70vw}
.hero-role{display:flex;align-items:center;gap:1rem;margin:0 0 1.3rem;font-size:clamp(1rem,1.55vw,1.55rem);font-weight:600;text-transform:uppercase;letter-spacing:.18em}
.hero-role:before{content:"";width:4.5rem;height:2px;background:var(--white)}
.hero h1{position:static;margin:0;font-family:var(--serif);font-size:clamp(4.8rem,9.5vw,10.4rem);font-weight:400;line-height:.82;letter-spacing:-.06em;color:var(--white);text-shadow:0 2px 24px rgba(0,0,0,.48)}
.hero h1 span,.hero h1 strong{display:block;font-weight:400}
.hero h1 strong{margin-left:7vw}
.hero-note{position:absolute;z-index:5;left:3vw;top:32vh;margin:0;font-family:var(--sans);font-size:clamp(.9rem,1.05vw,1.05rem);line-height:1.55;color:#b8b8b8}
.round-link{right:48vw;bottom:3.5vh}

@media(max-width:760px){.hero{min-height:100svh;padding:5.3rem 5vw 5vw}
.hero-kicker span:first-child{display:none}
.hero-kicker{justify-content:flex-end}
.hero-media{width:83vw;height:69vh;margin:3vh 0 0 auto}
.hero-title{left:5vw;bottom:8.5vh;width:90vw}
.hero-role{margin-bottom:1rem;font-size:.82rem}
.hero-role:before{width:2.5rem}
.hero h1{font-size:17vw;line-height:.86}
.hero h1 strong{margin-left:7vw}
.hero-note{display:none}
.round-link{left:auto;right:3vw;bottom:27vh;width:86px;height:86px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.reveal{opacity:1;transform:none;transition:none}
}
