:root{--black:#0f0f0e;--bone:#e9e5dd;--ink:#1a1917;--gray:#79736b;--line:#c9c3b8;--wine:#5a1d29;--light:#eeeae2;--serif:"Newsreader",Georgia,serif;--sans:"Hanken Grotesk",Arial,sans-serif;--pad:clamp(20px,4vw,64px);--hero-media-w:min(52vw,80.57svh)}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{display:block;max-width:100%}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:10px 14px;background:var(--bone);transform:translateY(-150%)}
.skip-link:focus{transform:none}
.section{padding:clamp(88px,12vw,184px) var(--pad)}

.site-header{position:fixed;z-index:100;top:0;left:0;width:100%;height:76px;padding:0 var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--light);transition:background .35s,color .35s}
.site-header.is-solid,.site-header.is-inner{background:rgba(233,229,221,.96);color:var(--ink);border-bottom:1px solid rgba(121,115,107,.25)}
.wordmark{font-family:var(--serif);font-size:22px;letter-spacing:-.025em}
.site-nav{display:flex;gap:32px;font-size:12px;text-transform:uppercase;letter-spacing:.13em}
.site-nav a,.lang-toggle,.text-link,.back-link{position:relative}
.site-nav a::after,.text-link::after,.back-link::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .25s}
.site-nav a:hover::after,.site-nav a:focus-visible::after,.text-link:hover::after,.back-link:hover::after{transform:scaleX(1);transform-origin:left}
.lang-toggle{justify-self:end;padding:6px 0;border:0;background:none;color:inherit;font-size:12px;letter-spacing:.12em;cursor:pointer}
.menu-toggle{display:none;border:0;background:none;color:inherit;padding:8px}
.menu-toggle span:not(.sr-only){display:block;width:23px;height:1px;background:currentColor;margin:5px}

.hero{position:relative;height:100svh;min-height:680px;overflow:hidden;background:var(--black);color:var(--light)}
.hero-media{position:absolute;inset:0 0 0 auto;width:var(--hero-media-w);height:100%;overflow:hidden;background:var(--black)}
.hero-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;background:transparent}
.hero-shade{display:none}
.hero-frame--secondary{opacity:0;transition:opacity 1.35s cubic-bezier(.45,0,.2,1)}
.hero.is-second .hero-frame--secondary{opacity:1}
.hero-copy{position:absolute;left:var(--pad);bottom:clamp(140px,18vh,205px);z-index:2;width:calc(100% - var(--hero-media-w) - var(--pad) - var(--pad));max-width:980px}
.eyebrow{margin:0 0 24px;font-size:11px;line-height:1.2;text-transform:uppercase;letter-spacing:.17em;color:var(--gray)}
.eyebrow.light{color:rgba(238,234,226,.72)}
.hero h1{margin:0;max-width:940px;font-family:var(--serif);font-size:clamp(52px,5.2vw,92px);font-weight:300;line-height:.82;letter-spacing:-.055em}
.hero h1 em,.contact h2 em{font-weight:300;color:#e0b7ad}
.hero-intro{max-width:390px;margin:38px 0 0;font-size:15px;color:rgba(238,234,226,.82)}
.hero-project{position:absolute;z-index:2;right:var(--pad);bottom:47px;display:grid;grid-template-columns:auto auto auto;gap:18px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.hero-project span+span{padding-left:18px;border-left:1px solid rgba(238,234,226,.4)}
.scroll-cue{position:absolute;z-index:2;left:var(--pad);bottom:47px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.site-header:not(.is-solid):not(.is-inner) .site-nav{position:absolute;left:0;width:calc(100% - var(--hero-media-w));transform:none;justify-content:center}

.section-head{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;align-items:end;margin-bottom:clamp(55px,8vw,110px)}
.section-head .eyebrow{grid-column:1/4;margin:0}
.section-head h2{grid-column:4/11;margin:0;font-family:var(--serif);font-size:clamp(48px,6vw,91px);font-weight:300;line-height:.93;letter-spacing:-.045em}
.section-head .text-link{grid-column:11/13;justify-self:end;font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.selected-work{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(46px,7vw,110px) 20px}
.work-item{grid-column:span 6}
.work-item:nth-child(1){grid-column:1/10}
.work-item:nth-child(2){grid-column:7/13}
.work-item:nth-child(3){grid-column:1/13}
.work-item:nth-child(4){grid-column:3/9}
.work-image{overflow:hidden;background:transparent}
.work-image img{width:100%;height:auto;object-fit:contain;transition:opacity .25s ease}
.work-item:hover img{opacity:.94}
.work-item:nth-child(3) .work-image{height:min(82vh,900px);background:#d6d0c5}
.work-item:nth-child(3) img{height:100%;object-position:center;object-fit:contain}
.work-caption{display:grid;grid-template-columns:1fr auto;gap:10px;padding-top:14px;border-top:1px solid var(--ink);margin-top:13px}
.work-caption h3{margin:0;font-family:var(--serif);font-size:clamp(28px,3vw,45px);font-weight:400;letter-spacing:-.03em}
.work-caption p,.work-caption span{margin:4px 0 0;color:var(--gray);font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.work-caption span{text-align:right}

.manifesto{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.manifesto .eyebrow{grid-column:1/3}
.manifesto-line{grid-column:3/11;margin:0;font-family:var(--serif);font-size:clamp(38px,5.3vw,82px);font-weight:300;line-height:1.02;letter-spacing:-.04em}
.manifesto-note{grid-column:9/12;margin:60px 0 0;color:var(--gray);font-size:14px}

.services{padding-bottom:0}
.service-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.service-list li{display:grid;grid-template-columns:1fr 5fr 4fr;gap:20px;align-items:start;padding:30px 0;border-bottom:1px solid var(--line)}
.service-list li>span{font-size:11px;color:var(--gray);letter-spacing:.13em}
.service-list h3{margin:0;font-family:var(--serif);font-size:clamp(34px,4.5vw,65px);font-weight:300;line-height:1}
.service-list p{margin:7px 0 0;max-width:440px;color:var(--gray)}

.process{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.process-intro{grid-column:1/5;position:sticky;top:130px;align-self:start}
.process-intro h2{margin:0 0 28px;font-family:var(--serif);font-size:clamp(44px,5vw,72px);font-weight:300;line-height:.98;letter-spacing:-.04em}
.process-intro>p:last-child{max-width:300px;color:var(--gray)}
.process-steps{grid-column:7/13;list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.process-steps li{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:30px 0 75px;border-bottom:1px solid var(--line)}
.process-steps span{font-size:11px;color:var(--gray)}
.process-steps h3{margin:0 0 15px;font-family:var(--serif);font-size:clamp(35px,4vw,56px);font-weight:300}
.process-steps p{margin:0;color:var(--gray)}

.about{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;background:#dcd7ce}
.about-image{grid-column:1/6}
.about-image img{width:100%;height:auto;object-fit:contain}
.about-copy{grid-column:7/13;align-self:center}
.about-copy h2{margin:0 0 40px;font-family:var(--serif);font-size:clamp(40px,5vw,72px);font-weight:300;line-height:1.02;letter-spacing:-.04em}
.about-copy>p:not(.eyebrow){max-width:570px;color:#514d47}
.about-copy .concept-note{margin-top:45px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:var(--gray)}

.contact{padding:clamp(100px,14vw,210px) var(--pad) 55px;background:var(--black);color:var(--light)}
.contact h2{max-width:1100px;margin:0;font-family:var(--serif);font-size:clamp(58px,9vw,140px);font-weight:300;line-height:.84;letter-spacing:-.055em}
.contact>p:not(.eyebrow){max-width:520px;margin:52px 0 70px;color:rgba(238,234,226,.7)}
.contact-cta{display:flex;justify-content:space-between;align-items:center;padding:21px 0;border-top:1px solid rgba(238,234,226,.55);border-bottom:1px solid rgba(238,234,226,.55);font-family:var(--serif);font-size:clamp(26px,3vw,42px)}
.contact-meta{display:flex;gap:35px;margin-top:80px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:rgba(238,234,226,.65)}
.contact-meta span{margin-left:auto}
.site-footer{display:flex;justify-content:space-between;align-items:center;padding:30px var(--pad);background:var(--black);color:var(--light);border-top:1px solid rgba(238,234,226,.16);font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.site-footer .wordmark{text-transform:none;letter-spacing:-.025em;font-size:21px}

.archive-view,.project-view{padding-top:76px}
.archive-head{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;padding-bottom:75px}
.archive-head .eyebrow{grid-column:1/4}
.archive-head h1{grid-column:3/11;margin:0;font-family:var(--serif);font-size:clamp(70px,11vw,164px);font-weight:300;line-height:.8;letter-spacing:-.055em}
.archive-head>p:last-child{grid-column:9/13;margin:40px 0 0;color:var(--gray)}
.archive-grid{padding-top:0;display:grid;grid-template-columns:repeat(12,1fr);gap:70px 20px}
.archive-card{grid-column:span 4}
.archive-card:nth-child(4n+1),.archive-card:nth-child(4n+4){grid-column:span 5}
.archive-card:nth-child(4n+2),.archive-card:nth-child(4n+3){grid-column:span 7}
.archive-card img{width:100%;height:auto;object-fit:contain}
.archive-card h2{margin:14px 0 3px;font-family:var(--serif);font-size:32px;font-weight:400}
.archive-card p{margin:0;color:var(--gray);font-size:11px;text-transform:uppercase;letter-spacing:.12em}

.project-head{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;padding-bottom:70px}
.project-head .back-link{grid-column:1/4;align-self:start;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.project-head .eyebrow{grid-column:4/13;margin:0}
.project-head h1{grid-column:3/13;margin:32px 0 0;font-family:var(--serif);font-size:clamp(72px,12vw,180px);font-weight:300;line-height:.78;letter-spacing:-.06em}
.project-deck{grid-column:8/13;margin:36px 0 0;color:var(--gray);font-size:17px}
.project-cover{padding:0 var(--pad)}
.project-cover{background:var(--black)}
.project-cover img{width:100%;height:min(88vh,1000px);object-fit:contain;background:var(--black)}
.project-info{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.project-info dl{grid-column:1/5;margin:0}
.project-info dl>div{display:grid;grid-template-columns:1fr 2fr;gap:12px;padding:13px 0;border-top:1px solid var(--line)}
.project-info dt{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--gray)}
.project-info dd{margin:0}
.project-description{grid-column:7/13;font-family:var(--serif);font-size:clamp(26px,3vw,40px);line-height:1.2}
.project-description p{margin:0 0 1em}
.project-gallery{padding-top:0;display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(35px,6vw,95px) 20px}
.gallery-button{grid-column:span 6;padding:0;border:0;background:none;cursor:zoom-in}
.gallery-button:nth-child(3n+1){grid-column:1/8}
.gallery-button:nth-child(3n+2){grid-column:8/13;margin-top:15vw}
.gallery-button:nth-child(3n){grid-column:3/11}
.gallery-button img{width:100%;height:auto;max-height:none;object-fit:contain}
.production-note{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;border-top:1px solid var(--line)}
.production-note .eyebrow{grid-column:1/4}
.production-note>p:last-child{grid-column:7/13;max-width:650px;font-family:var(--serif);font-size:clamp(25px,3vw,39px);line-height:1.2;margin:0}
.next-project{display:grid;grid-template-columns:2fr 8fr auto;gap:20px;align-items:end;padding:60px var(--pad);background:var(--wine);color:var(--light)}
.next-project>span:first-child{font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.next-project strong{font-family:var(--serif);font-size:clamp(50px,8vw,110px);font-weight:300;line-height:.85}
.next-project>span:last-child{font-size:35px}

.lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;border:0;background:rgba(15,15,14,.97);color:var(--light)}
.lightbox::backdrop{background:rgba(15,15,14,.97)}
.lightbox figure{width:100%;height:100%;margin:0;display:grid;place-items:center;padding:50px 80px}
.lightbox img{max-width:100%;max-height:calc(100vh - 100px);object-fit:contain}
.lightbox figcaption{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.12em}
.lightbox button{position:absolute;z-index:2;border:0;background:none;color:var(--light);cursor:pointer}
.lightbox-close{right:25px;top:15px;font-size:36px}
.lightbox-prev,.lightbox-next{top:50%;font-size:30px}
.lightbox-prev{left:25px}
.lightbox-next{right:25px}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.reveal.is-visible{opacity:1;transform:none}

@media(max-width:820px){.section{padding:78px 20px}
.site-header{height:64px;padding:0 20px;grid-template-columns:1fr auto auto;gap:14px}
.menu-toggle{display:block;order:2}
.lang-toggle{order:3}
.site-nav{position:fixed;inset:64px 0 0;background:var(--bone);color:var(--ink);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;opacity:0;visibility:hidden;transition:opacity .25s}
.site-header:not(.is-solid):not(.is-inner) .site-nav{position:fixed;left:0;width:auto;transform:none}
.site-nav a{font-family:var(--serif);font-size:43px;text-transform:none;letter-spacing:-.03em}
.menu-open .site-nav{opacity:1;visibility:visible}
.hero{height:max(860px,100svh);min-height:860px}
.hero-media{inset:0 0 auto 0;width:100%;height:min(56svh,480px);border:0}
.hero-copy{left:20px;top:calc(min(56svh,480px) + 30px);bottom:auto;width:calc(100% - 40px)}
.hero h1{font-size:clamp(44px,13vw,58px);line-height:.84}
.hero-intro{margin-top:22px;max-width:330px;font-size:14px}
.hero-frame{object-position:center;object-fit:cover}
.hero-project{left:20px;right:20px;bottom:30px;grid-template-columns:1fr auto}
.hero-project span:nth-child(2){display:none}
.scroll-cue{display:none}
.section-head{display:block;margin-bottom:50px}
.section-head .eyebrow{margin-bottom:20px}
.section-head h2{font-size:52px}
.section-head .text-link{display:inline-block;margin-top:26px}
.selected-work{display:block}
.work-item{margin-bottom:60px}
.work-item:nth-child(n) .work-image{height:auto;aspect-ratio:auto;background:transparent}
.work-item:nth-child(n) .work-image img{width:100%;height:auto;object-fit:contain}
.work-caption h3{font-size:31px}
.manifesto{display:block}
.manifesto-line{font-size:40px}
.manifesto-note{margin:40px 0 0}
.service-list li{grid-template-columns:45px 1fr;padding:24px 0}
.service-list p{grid-column:2}
.process{display:block}
.process-intro{position:static;margin-bottom:65px}
.process-steps li{padding-bottom:48px}
.about{display:flex;flex-direction:column}
.about-image{order:2;margin-top:50px}
.about-copy h2{font-size:42px}
.contact{padding:100px 20px 38px}
.contact h2{font-size:57px;line-height:.88}
.contact-meta{flex-wrap:wrap;gap:20px}
.contact-meta span{width:100%;margin:15px 0 0}
.site-footer{padding:24px 20px}
.archive-head{display:block;padding-bottom:55px}
.archive-head h1{font-size:77px}
.archive-head>p:last-child{margin-top:28px}
.archive-grid{display:block;padding-top:0}
.archive-card{margin-bottom:60px}
.archive-card img,.archive-card:nth-child(n) img{height:auto;aspect-ratio:auto;object-fit:contain}
.project-head{display:block;padding-bottom:55px}
.project-head .eyebrow{margin:55px 0 0}
.project-head h1{font-size:73px;margin-top:25px}
.project-deck{margin-top:27px}
.project-cover{padding:0;background:var(--black)}
.project-cover img{height:min(72svh,620px);aspect-ratio:auto;object-fit:contain;background:var(--black)}
.project-info{display:block}
.project-info dl{margin-bottom:65px}
.project-description{font-size:27px}
.project-gallery{display:block;padding-top:0}
.gallery-button{display:block;width:100%;margin:0 0 35px!important}
.gallery-button img{height:auto}
.production-note{display:block}
.production-note>p:last-child{font-size:27px}
.next-project{grid-template-columns:1fr auto;padding:45px 20px}
.next-project>span:first-child{grid-column:1/3}
.next-project strong{font-size:53px}
.lightbox figure{padding:55px 15px}
.lightbox-prev,.lightbox-next{top:auto;bottom:14px}
.lightbox-prev{left:20px}
.lightbox-next{right:20px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
.reveal{opacity:1;transform:none}
.hero-frame--secondary{display:none}
}

.hero-shade{background:rgba(15,15,14,.34)}

.work-image--diptych{display:grid;grid-template-columns:2fr 1fr;gap:2px}
.work-image--diptych img:last-child{object-position:center}
