/* ---------- home v3: quieter, fewer rhythms ---------- */
.statement{padding:clamp(6rem,16vh,12rem) 0}
.statement p{font-weight:300;text-transform:none;font-size:clamp(1.25rem,2.3vw,2rem);line-height:1.65;max-width:24em;letter-spacing:0}
.statement p + p{margin-top:1.8rem;color:var(--mut)}
.work-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;padding-bottom:3.5rem}
.work-link{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--mut);border-bottom:1px solid var(--line);padding-bottom:.4rem;transition:color .35s,border-color .35s;white-space:nowrap}
.work-link:hover{color:var(--ink);border-color:var(--ink)}
.feature{display:block;position:relative;margin-bottom:clamp(3rem,7vh,5.5rem)}
.feature .f-media{overflow:hidden;aspect-ratio:16/9}
.feature .f-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.6s cubic-bezier(.2,.6,.2,1)}
.feature:hover .f-media img{transform:scale(1.06)}
.feature .f-row{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;padding-top:1.1rem;flex-wrap:wrap}
.feature h3{font-weight:500;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(1rem,1.6vw,1.35rem)}
.feature .f-loc{color:var(--mut);font-weight:300}
.feature .f-year{font-size:10px;letter-spacing:.28em;color:var(--mut)}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:2.4vw}
.pair .feature .f-media{aspect-ratio:4/3}
@media(max-width:900px){.pair{grid-template-columns:1fr}}
.closing{padding:clamp(5rem,12vh,9rem) 0;border-top:1px solid var(--line)}
.closing .c-line{font-weight:300;font-size:clamp(1.05rem,1.8vw,1.5rem);line-height:1.7;max-width:26em;color:var(--mut)}
.closing .c-mail{margin-top:2.6rem}
.closing .c-mail a{font-weight:500;font-size:clamp(1.05rem,2.4vw,1.9rem);letter-spacing:.01em;border-bottom:1px solid var(--line);transition:color .4s,border-color .4s}
.closing .c-mail a:hover{color:var(--brass);border-color:var(--brass)}

/* Xforms Studio — v2, grotesque type system */
:root{
  --bg:#0B0A08;
  --bg2:#12100C;
  --ink:#E9E3D7;
  --mut:#8F8878;
  --brass:#B49B6C;
  --line:rgba(233,227,215,.13);
  --sans:'neue-haas-grotesk-display','Neue Haas Grotesk Display Pro','Inter Tight','Archivo','Helvetica Neue',Arial,sans-serif;
  --disp:var(--sans);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:initial}
html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased}
body{font-size:clamp(15px,1.11vw,21px);line-height:1.62;overflow-x:hidden}
::selection{background:var(--brass);color:var(--bg)}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{background:none;border:0;color:inherit;cursor:pointer;font:inherit}

/* type — uppercase grotesque, Yodezeen register */
.h-display{font-family:var(--disp);font-weight:600;text-transform:uppercase;font-size:clamp(1.7rem,4vw,3.4rem);line-height:.94;letter-spacing:-.028em}
.h-1{font-family:var(--disp);font-weight:600;text-transform:uppercase;font-size:clamp(1.7rem,4vw,3.4rem);line-height:.94;letter-spacing:-.028em}
.h-2{font-family:var(--sans);font-weight:500;text-transform:uppercase;font-size:clamp(1.2rem,2.2vw,1.8rem);line-height:1.2}
.label{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--mut);font-weight:400}
.serif-i{font-family:var(--sans);font-style:normal;font-weight:300;text-transform:uppercase;letter-spacing:.02em}
.lede{font-size:clamp(.98rem,1.25vw,1.15rem);line-height:1.9;color:var(--ink);max-width:36em}
.mut{color:var(--mut)}
.brass{color:var(--brass)}

/* layout */
.wrap{width:min(1520px,92vw);margin:0 auto}
.section{padding:clamp(4.5rem,6.7vw,8rem) 0}
.hairline{border-top:1px solid var(--line)}

/* logo */
.logo-img{height:40px;width:auto}
.mark{display:flex;align-items:center;gap:.9rem;font-weight:500;letter-spacing:.34em;font-size:.95rem;text-transform:uppercase}
.mark .wordmark{display:none}
footer .mark .wordmark{display:inline;letter-spacing:.34em}
footer .logo-img{height:34px}

/* preloader */
#loader{position:fixed;inset:0;background:var(--bg);z-index:200;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.6rem}
#loader .l-logo{width:clamp(64px,8vw,100px);opacity:0}
#loader .l-mark{font-family:var(--sans);font-weight:600;font-size:clamp(1.9rem,4.6vw,3.4rem);letter-spacing:.1em;padding-left:.1em;text-transform:uppercase;opacity:0;line-height:1}
#loader .l-slogan{font-family:var(--sans);font-weight:400;font-size:clamp(9px,1.1vw,11px);letter-spacing:.42em;padding-left:.42em;text-transform:uppercase;color:var(--mut);opacity:0;margin-top:-.6rem}
#loader.done{pointer-events:none}

/* nav */
header.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .45s ease, backdrop-filter .45s ease, border-color .45s ease;border-bottom:1px solid transparent}
header.nav.solid{background:rgba(11,10,8,.92);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.nav-in{display:flex;justify-content:space-between;align-items:center;padding:1.4rem 4vw}
.nav nav{display:flex;gap:2.4rem}
.nav nav a{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink);opacity:.72;transition:opacity .35s;font-weight:400}
.nav nav a:hover{opacity:1}
.burger{display:none;flex-direction:column;gap:5px;padding:6px}
.burger span{display:block;width:26px;height:1px;background:var(--ink)}

/* mobile menu */
#menu{position:fixed;inset:0;background:var(--bg);z-index:150;display:flex;flex-direction:column;justify-content:center;padding:0 8vw;gap:1.1rem;transform:translateY(-102%);transition:transform .7s cubic-bezier(.77,0,.18,1)}
#menu.open{transform:translateY(0)}
#menu a{font-weight:500;text-transform:uppercase;font-size:clamp(1.6rem,6.5vw,2.6rem);line-height:1.25;letter-spacing:.02em}
#menu .m-close{position:absolute;top:1.5rem;right:5vw;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--mut)}
#menu .m-foot{position:absolute;bottom:2rem;left:8vw;right:8vw;display:flex;justify-content:space-between}

/* hero */
.hero{position:relative;height:74svh;min-height:460px;overflow:hidden;display:flex;align-items:flex-end}
.hero-media{position:absolute;inset:0}
.hero-media .slide{position:absolute;inset:0;opacity:0;transform:scale(1.08)}
.hero-media .slide img{width:100%;height:100%;object-fit:cover;filter:brightness(.6)}
.hero-media .slide.active{opacity:1}
.hero-veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(11,10,8,.9) 0%,rgba(11,10,8,.12) 45%,rgba(11,10,8,.35) 100%)}
.hero-content{position:relative;z-index:2;padding-bottom:clamp(2.6rem,7vh,5rem);width:100%}
.hero .line{overflow:hidden}
.hero .line>span{display:block}
html.js .hero .line>span{transform:translateY(110%)}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:2.2rem;gap:2rem;flex-wrap:wrap}
.scroll-cue{width:1px;height:64px;background:var(--line);position:relative;overflow:hidden}
.scroll-cue::after{content:'';position:absolute;top:-40%;left:0;width:100%;height:40%;background:var(--brass);animation:cue 2.2s ease-in-out infinite}
@keyframes cue{0%{top:-40%}100%{top:110%}}

/* marquee */
.marquee{overflow:hidden;padding:1.8rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.marquee-track{display:flex;gap:4rem;width:max-content;will-change:transform}
.marquee-track span{font-weight:500;text-transform:uppercase;font-size:clamp(1.1rem,2.2vw,1.7rem);letter-spacing:.06em;white-space:nowrap;color:var(--mut)}
.marquee-track span b{color:var(--ink);font-weight:500}

/* manifesto */
.manifesto p{font-weight:400;font-size:clamp(1.15rem,2.1vw,1.8rem);line-height:1.55;max-width:34em;text-transform:uppercase;letter-spacing:.015em}
.manifesto .word{display:inline-block;opacity:.14}

/* category header */
.cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:2rem;padding:1.2rem 0;border-top:1px solid var(--line);margin-top:3rem}
.cat-head h3{font-weight:500;text-transform:uppercase;font-size:clamp(1.1rem,1.8vw,1.4rem);letter-spacing:.1em}
.cat-head .cat-count{font-size:11px;color:var(--mut);letter-spacing:.2em}

/* projects grid — uniform, ordered */
.proj-list{display:grid;grid-template-columns:1fr 1fr;gap:3.5vw 2.5vw;padding-top:2rem}
.proj-card{position:relative}
.proj-card .pc-media{overflow:hidden;aspect-ratio:4/3}
.proj-card .pc-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.proj-card:hover .pc-media img{transform:scale(1.08)}
.proj-card .pc-body{padding-top:1.1rem;display:flex;justify-content:space-between;gap:1.5rem;align-items:baseline}
.proj-card .pc-idx{font-size:10px;letter-spacing:.28em;color:var(--mut);white-space:nowrap}
.proj-card h3{font-weight:500;text-transform:uppercase;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.3;letter-spacing:.03em}
.proj-card h3 .mut{display:block;font-weight:300;font-size:.85em;margin-top:.2rem}
.proj-card .pc-meta{display:none}
.pc-link{position:absolute;inset:0;z-index:3}
.proj-card.wide{grid-column:span 2}
.proj-card.wide .pc-media{aspect-ratio:21/9}

/* register (not published) */
.register li{list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:2rem;padding:1.4rem 0;border-top:1px solid var(--line);flex-wrap:wrap}
.register li:last-child{border-bottom:1px solid var(--line)}
.register .r-name{font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(.95rem,1.7vw,1.3rem)}
.register .r-tag{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--mut)}

/* film */
.film{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center}
.film .phone{aspect-ratio:9/16;max-height:72vh;margin:0 auto;overflow:hidden}
.film video{width:100%;height:100%;object-fit:cover}
.band{position:relative;height:90vh;min-height:520px;overflow:hidden;background:#0B0A08}
.band video,.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band .band-cap{position:absolute;left:4vw;bottom:2.2rem;z-index:2}
.band::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(11,10,8,.55),transparent 50%)}

/* gallery (project pages) — ordered halves and fulls */
.p-hero{position:relative;height:88svh;min-height:540px;overflow:hidden;display:flex;align-items:flex-end}
.p-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.64)}
.p-hero .ph-in{position:relative;z-index:2;padding-bottom:3.6rem;width:100%}
.p-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(11,10,8,.9),transparent 55%);z-index:1}
.p-meta{display:flex;gap:3.5rem;flex-wrap:wrap;padding:1.8rem 0}
.p-meta div{display:flex;flex-direction:column;gap:.35rem}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:2vw;padding-bottom:3rem}
.g-item{overflow:hidden}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s cubic-bezier(.2,.6,.2,1)}
.g-item:hover img{transform:scale(1.04)}
.g-item.w6,.g-item.w4,.g-item.w8{grid-column:span 6}
.g-item.w12{grid-column:span 12;max-height:92vh}
.g-item.w12 img{height:100%}
.g-caption{font-weight:400;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(.95rem,1.6vw,1.25rem);color:var(--mut);max-width:30em;padding:2.6rem 0}
.p-desc{max-width:44em;padding:0 0 3rem}
.p-desc p{color:var(--mut);margin-bottom:1.4rem;line-height:1.9}
.p-desc p strong{color:var(--ink);font-weight:400}
.p-next{display:block;padding:clamp(3.5rem,9vh,6rem) 0;text-align:center}
.p-next .n-label{margin-bottom:1rem}
.p-next h3{font-weight:500;text-transform:uppercase;font-size:clamp(1.4rem,4vw,3rem);letter-spacing:.03em;transition:color .4s}
.p-next:hover h3{color:var(--brass)}

/* studio page */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start}
.portrait{aspect-ratio:4/5;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover}
.fact-list li{list-style:none;padding:1.2rem 0;border-top:1px solid var(--line);display:grid;grid-template-columns:200px 1fr;gap:2rem}
.fact-list li:last-child{border-bottom:1px solid var(--line)}
@media(max-width:760px){.fact-list li{grid-template-columns:1fr}}

/* faq */
.faq-item{border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;text-align:left;font-weight:400;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(.95rem,1.6vw,1.2rem);gap:2rem}
.faq-q .fx{font-size:1.4rem;color:var(--mut);transition:transform .4s}
.faq-item.open .fx{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .55s cubic-bezier(.2,.6,.2,1)}
.faq-a p{padding:0 0 1.8rem;color:var(--mut);max-width:44em}

/* contact */
.contact-big a{font-weight:500;font-size:clamp(1.2rem,3.4vw,2.8rem);letter-spacing:.02em;line-height:1.25;border-bottom:1px solid var(--line);transition:color .4s,border-color .4s}
.contact-big a:hover{color:var(--brass);border-color:var(--brass)}

/* footer */
footer{padding:clamp(3.5rem,8vh,6rem) 0 2.5rem;border-top:1px solid var(--line)}
.f-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;margin-bottom:3.5rem}
@media(max-width:1100px){.f-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.f-grid{grid-template-columns:1fr}}
.f-grid h5{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--mut);font-weight:400;margin-bottom:1.1rem}
.f-grid a{display:block;padding:.28rem 0;color:var(--ink);opacity:.75;font-size:13.5px;transition:opacity .3s}
.f-grid a:hover{opacity:1}
.f-bottom{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding-top:2rem;border-top:1px solid var(--line);color:var(--mut);font-size:11px;letter-spacing:.08em;text-transform:uppercase}

/* reveal utilities */
html.js .rv{opacity:0;transform:translateY(46px)}
.rv-img{clip-path:inset(12% 6% 12% 6%);transform:scale(1.06)}
[data-parallax] img{will-change:transform}

/* page transition veil */
#veil{position:fixed;inset:0;background:var(--bg);z-index:180;transform:translateY(102%);pointer-events:none}

@media(max-width:900px){
  .nav nav{display:none}
  .burger{display:flex}
  .proj-list{grid-template-columns:1fr;gap:2.6rem}
  .proj-card.wide{grid-column:span 1}
  .proj-card.wide .pc-media{aspect-ratio:4/3}
  .film{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
  .gallery{gap:3vw}
  .g-item.w6,.g-item.w4,.g-item.w8{grid-column:span 12}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){
  .rv,.rv-img{opacity:1!important;transform:none!important;clip-path:none!important}
  .hero-media .slide{transform:none}
}

/* ---------- lightbox ---------- */
.g-item{position:relative;cursor:zoom-in}
.g-item::after{content:'';position:absolute;inset:0;background:rgba(11,10,8,0);transition:background .4s}
.g-item:hover::after{background:rgba(11,10,8,.12)}
.g-zoom{position:absolute;right:12px;bottom:12px;z-index:2;width:30px;height:30px;border:1px solid rgba(233,227,215,.5);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .4s;pointer-events:none;background:rgba(11,10,8,.35)}
.g-zoom::before,.g-zoom::after{content:'';position:absolute;background:var(--ink)}
.g-zoom::before{width:11px;height:1px}
.g-zoom::after{width:1px;height:11px}
.g-item:hover .g-zoom{opacity:1}
#lb{position:fixed;inset:0;z-index:300;background:rgba(8,7,6,.97);display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .35s}
#lb.on{display:flex}
#lb.vis{opacity:1}
#lb img{max-width:94vw;max-height:88vh;object-fit:contain;box-shadow:0 40px 120px rgba(0,0,0,.7)}
#lb .lb-close{position:absolute;top:1.4rem;right:4vw;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--mut);padding:.6rem;transition:color .3s}
#lb .lb-close:hover{color:var(--ink)}
#lb .lb-count{position:absolute;bottom:1.5rem;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.3em;color:var(--mut)}
#lb .lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;display:flex;align-items:center;justify-content:center;color:var(--mut);font-size:1.6rem;transition:color .3s}
#lb .lb-nav:hover{color:var(--ink)}
#lb .lb-prev{left:1.5vw}
#lb .lb-next{right:1.5vw}
@media(max-width:760px){#lb .lb-nav{width:44px;font-size:1.3rem}#lb img{max-width:96vw;max-height:80vh}}

/* project film block */
.p-film{display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:center;padding:1rem 0 3.5rem}
.p-film .phone{aspect-ratio:9/16;max-height:74vh;margin:0 auto;overflow:hidden;width:100%}
.p-film video{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.p-film{grid-template-columns:1fr;gap:2rem}}


/* ---------- anti-overlap safety ---------- */
.nav-in{padding:1.1rem 4vw}
section.section:first-of-type{padding-top:clamp(7rem,14vh,10rem)}
.p-hero,.hero{margin-top:0}
.contact-big a,.closing .c-mail a{display:inline-block;max-width:100%;overflow-wrap:anywhere}
.p-meta{gap:2rem 3rem}
.p-meta div{min-width:0}
.wrap{position:relative;z-index:1}

/* inline project film — 16:9, never cropped tall */
.p-video{position:relative;margin:3rem 0;overflow:hidden;background:#0B0A08}
.p-video video{width:100%;height:auto;display:block}
.pv-cap{position:absolute;left:1.4rem;bottom:1.1rem;z-index:2}
.pv-cap .label{color:var(--ink);text-shadow:0 1px 12px rgba(0,0,0,.7)}

/* ============================================================
   MOTION LAYER — oversized type, cursor, sticky sections
   ============================================================ */

/* custom cursor */
#cur{position:fixed;top:0;left:0;width:34px;height:34px;border:1px solid rgba(233,227,215,.55);
  border-radius:50%;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%) scale(1);transition:width .3s,height .3s,border-color .3s,opacity .3s;
  will-change:transform;opacity:0}
.inv #cur,#cur.dark{border-color:rgba(20,18,14,.5)}
#cur.on{opacity:1}
#cur.grow{width:74px;height:74px;border-color:rgba(180,155,108,.9)}
@media(hover:none),(max-width:900px){#cur{display:none}}

/* light / dark alternation */
.inv{background:#EFEDE8;color:#14120E}
.inv .label,.inv .mut{color:#6E695E}
.inv .hairline,.inv .p-meta{border-color:rgba(20,18,14,.14)}
.inv .lede{color:#14120E}

/* oversized display moments */
.mega{font-family:var(--disp);font-weight:600;text-transform:uppercase;
  font-size:clamp(2.4rem,8vw,8.5rem);line-height:.82;letter-spacing:-.048em}
.mega .ln{display:block;overflow:hidden}
.mid .ln{display:block}
html.js .mega .ln>span{transform:translateY(105%)}
.mega .ln>span,.mid .ln>span{display:block}
.mid{font-family:var(--disp);font-weight:600;text-transform:uppercase;
  font-size:clamp(1.8rem,4.6vw,4.2rem);line-height:.87;letter-spacing:-.032em}

/* video hero with type on top */
.vhero{position:relative;height:68svh;min-height:460px;overflow:hidden;display:flex;
  align-items:center;justify-content:center;text-align:center}
.vhero video,.vhero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.52)}
.vhero .vh-in{position:relative;z-index:2;width:min(1520px,92vw)}
.vhero .vh-sub{position:absolute;left:0;right:0;bottom:2.4rem;z-index:2;text-align:center}

/* counters */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.stats .st{padding:clamp(2rem,5vh,3.6rem) 1.4rem;border-right:1px solid var(--line)}
.stats .st:last-child{border-right:0}
.stats .num{font-weight:600;font-size:clamp(2rem,5.2vw,4.4rem);line-height:1;letter-spacing:-.02em}
.stats .cap{margin-top:.9rem;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--mut)}
.inv .stats,.inv .stats .st{border-color:rgba(20,18,14,.14)}
.inv .stats .cap{color:#6E695E}
@media(max-width:820px){.stats{grid-template-columns:1fr 1fr}
  .stats .st:nth-child(2n){border-right:0}
  .stats .st{border-bottom:1px solid var(--line)}}

/* sticky reasons — image wipes behind the headline */
.reasons{position:relative}
.rs-sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.rs-media{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(76vw,1240px);aspect-ratio:16/9;height:auto;overflow:hidden;
  clip-path:inset(0 50% 0 50%)}
.rs-media img{width:100%;height:100%;object-fit:cover}
.rs-head{position:relative;z-index:3;text-align:center;pointer-events:none;
  text-shadow:0 2px 30px rgba(0,0,0,.85),0 1px 6px rgba(0,0,0,.7)}
.rs-head .label{color:var(--ink);opacity:.9}
.rs-list{position:relative;z-index:4}
.rs-item{min-height:78svh;display:flex;align-items:center}
.rs-item .rs-n{font-size:10px;letter-spacing:.3em;color:var(--mut);display:block;margin-bottom:1rem}
.rs-item h4{font-weight:500;text-transform:uppercase;font-size:clamp(1.2rem,2.6vw,2.1rem);
  line-height:1.15;letter-spacing:.01em;max-width:16em}
.rs-item p{margin-top:1.2rem;color:var(--mut);max-width:34em;line-height:1.85}

/* founder block */
.founder{position:relative;padding:clamp(4rem,12vh,9rem) 0;overflow:hidden}
.fd-grid{display:grid;grid-template-columns:1fr minmax(0,1.05fr) 1fr;align-items:center;gap:2vw}
.fd-grid img{width:100%;filter:grayscale(1) contrast(1.04)}
.fd-mid{text-align:center;position:relative;z-index:2}
.fd-ghost{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:0;
  font-weight:600;text-transform:uppercase;font-size:clamp(3rem,13vw,13rem);line-height:.9;
  letter-spacing:-.048em;color:rgba(233,227,215,.09);white-space:nowrap;pointer-events:none}
.inv .fd-ghost{color:rgba(20,18,14,.08)}
.fd-body{margin-top:1.6rem;color:var(--mut);max-width:30em;margin-inline:auto;line-height:1.9}
@media(max-width:900px){.fd-grid{grid-template-columns:1fr 1fr}.fd-mid{grid-column:1/-1;order:-1}}

/* team collage */
.team{position:relative;min-height:120svh;padding:clamp(4rem,10vh,8rem) 0}
.tm-title{position:sticky;top:44%;text-align:center;z-index:3;pointer-events:none}
.tm-field{position:relative;height:100%}
.tm-p{position:absolute;overflow:hidden;filter:grayscale(1)}
.tm-p img{width:100%;height:100%;object-fit:cover}
.tm-p .tm-n{position:absolute;left:.6rem;bottom:.5rem;font-size:9px;letter-spacing:.24em;
  text-transform:uppercase;opacity:0;transition:opacity .35s}
.tm-p:hover .tm-n{opacity:1}
.tm-filter{display:flex;flex-direction:column;gap:.35rem;align-items:center;margin-top:3rem;position:relative;z-index:5}
.tm-filter button{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--mut);font-weight:500}
.tm-filter button.on{color:var(--ink)}
.inv .tm-filter button.on{color:#14120E}
.tm-empty{text-align:center;padding:5rem 0;color:var(--mut)}

/* giant closing CTA */
.cta{position:relative;padding:clamp(6rem,20vh,14rem) 0;text-align:center;overflow:hidden}
.cta .cta-ghost{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-weight:600;text-transform:uppercase;font-size:clamp(4rem,17vw,17rem);line-height:.85;
  letter-spacing:-.048em;color:rgba(233,227,215,.055);white-space:nowrap;pointer-events:none;z-index:0}
.inv .cta .cta-ghost{color:rgba(20,18,14,.055)}
.cta .cta-in{position:relative;z-index:2}
.pill{display:inline-flex;align-items:center;gap:.9rem;margin-top:2.4rem;padding:1rem 1.5rem;
  border:1px solid var(--line);border-radius:999px;font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;transition:background .4s,color .4s,border-color .4s}
.pill .arw{width:26px;height:26px;border-radius:50%;background:rgba(233,227,215,.12);
  display:grid;place-items:center;font-size:12px;transition:background .4s,color .4s}
.pill:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pill:hover .arw{background:rgba(11,10,8,.15)}
.inv .pill{border-color:rgba(20,18,14,.2)}
.inv .pill:hover{background:#14120E;color:#EFEDE8}

/* ---- project spec sheet, editorial chapters, credits ---- */
.gl-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.chapter{display:grid;grid-template-columns:minmax(140px,18%) 1fr;gap:2rem;
  padding:clamp(2.2rem,5vh,3.4rem) 0;border-top:1px solid var(--line);align-items:start}
.chapter .ch-body p{max-width:34em;line-height:1.85;color:var(--mut)}
.chapter .ch-body p + p{margin-top:1.1rem}
.pullq{font-family:var(--disp);font-weight:600;text-transform:uppercase;
  font-size:clamp(1.4rem,4.2vw,3.2rem);line-height:.95;letter-spacing:-.032em;
  max-width:16em;padding:clamp(2.4rem,6vh,4rem) 0;border-top:1px solid var(--line)}
.nearby,.credits{display:grid;grid-template-columns:minmax(140px,18%) 1fr;gap:2rem;
  padding:clamp(2rem,4vh,3rem) 0;border-top:1px solid var(--line)}
.nearby ul,.credits ul{list-style:none;max-width:40em}
.nearby li,.credits li{display:flex;gap:1.6rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.nearby li:last-child,.credits li:last-child{border-bottom:0}
.nearby .np-d{min-width:5.5em;color:var(--ink);font-variant-numeric:tabular-nums}
.credits li span:first-child{min-width:14em}
@media(max-width:800px){.chapter,.nearby,.credits{grid-template-columns:1fr;gap:1rem}}

/* ---- nav marquee on hover ---- */
.nav nav a{position:relative;overflow:hidden;display:inline-block;height:1.2em}
.nav nav a .mq{display:block;transition:transform .45s cubic-bezier(.65,0,.35,1)}
.nav nav a:hover .mq{transform:translateY(-100%)}
.ph-sub{margin-top:1.4rem}
/* home hero: stacked clips, crossfaded */
.vh-media{position:absolute;inset:0}
.vh-media .vh-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:brightness(.52);opacity:0;transition:opacity 1.2s ease}
.vh-media .vh-v.on{opacity:1}
/* team list — used until portraits exist */
.tl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3vw}
.tl-col ul{list-style:none;margin-top:1.4rem}
.tl-col li{padding:.9rem 0;border-top:1px solid var(--line)}
.tl-n{display:block;font-weight:500;text-transform:uppercase;letter-spacing:-.01em;
  font-size:clamp(.95rem,1.4vw,1.15rem)}
.tl-r{display:block;font-size:.82em;margin-top:.2rem}
@media(max-width:900px){.tl-grid{grid-template-columns:1fr}}


/* ---- Let's Talk panel ---- */
.lt-btn{display:inline-flex;align-items:center;gap:.7rem;padding:.62rem 1rem .62rem 1.15rem;
  border:1px solid var(--line);border-radius:999px;font-size:10.5px;letter-spacing:.24em;
  text-transform:uppercase;transition:background .4s,color .4s,border-color .4s;white-space:nowrap}
.lt-btn .plus{width:20px;height:20px;border-radius:50%;background:rgba(233,227,215,.12);
  display:grid;place-items:center;font-size:13px;line-height:1;transition:.4s}
.lt-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.lt-btn:hover .plus{background:rgba(11,10,8,.16)}
#lt{position:fixed;inset:0;z-index:180;background:#EFEDE8;color:#14120E;
  transform:translateY(-101%);transition:transform .8s cubic-bezier(.76,0,.24,1);overflow-y:auto}
#lt.open{transform:translateY(0)}
#lt .lt-in{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;gap:4vw;
  align-items:center;padding:7rem 5vw 4rem}
#lt .lt-mark{font-family:var(--disp);font-weight:600;text-transform:uppercase;
  font-size:clamp(2.6rem,9vw,8rem);line-height:.86;letter-spacing:-.048em;align-self:end}
#lt .lt-close{position:absolute;top:1.6rem;right:5vw;display:inline-flex;align-items:center;gap:.7rem;
  padding:.62rem 1rem;border:1px solid rgba(20,18,14,.2);border-radius:999px;
  font-size:10.5px;letter-spacing:.24em;text-transform:uppercase}
#lt .lt-close:hover{background:#14120E;color:#EFEDE8}
#lt h2{font-family:var(--disp);font-weight:600;text-transform:uppercase;
  font-size:clamp(1.1rem,2.1vw,1.9rem);line-height:1.05;letter-spacing:-.03em;max-width:20em}
#lt .fields{margin-top:3rem;display:grid;gap:2.2rem;max-width:44em}
#lt .f{position:relative}
#lt label{display:block;font-size:10px;letter-spacing:.26em;text-transform:uppercase;
  color:#6E695E;margin-bottom:.5rem}
#lt input,#lt textarea,#lt select{width:100%;background:none;border:0;
  border-bottom:1px solid rgba(20,18,14,.28);padding:.5rem 0;font:inherit;color:#14120E;
  font-size:1rem;border-radius:0}
#lt input:focus,#lt textarea:focus,#lt select:focus{outline:none;border-bottom-color:#14120E}
#lt textarea{resize:vertical;min-height:4.5em}
#lt .two{display:grid;grid-template-columns:8rem 1fr;gap:1.4rem}
#lt .lt-send{margin-top:2.6rem;display:inline-flex;align-items:center;gap:.9rem;
  padding:1rem 1.5rem;border:1px solid rgba(20,18,14,.25);border-radius:999px;
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;transition:.4s}
#lt .lt-send:hover{background:#14120E;color:#EFEDE8;border-color:#14120E}
#lt .lt-note{margin-top:1.6rem;font-size:.82rem;color:#6E695E;max-width:34em}
@media(max-width:900px){#lt .lt-in{grid-template-columns:1fr;padding-top:6rem}
  #lt .lt-mark{order:2;align-self:start}}

/* ---- project credit over hero footage ---- */
.vh-credit{position:absolute;left:0;right:0;bottom:1.6rem;z-index:3;padding:0 4vw}
.vh-credit a{display:flex;align-items:baseline;gap:2.4rem;flex-wrap:wrap}
.vh-credit .vc-n{font-family:var(--disp);font-weight:600;text-transform:uppercase;
  letter-spacing:-.02em;font-size:clamp(.9rem,1.3vw,1.15rem)}
.vh-credit .vc-l{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:rgba(233,227,215,.7)}
.vh-credit .vc-go{margin-left:auto;display:inline-flex;align-items:center;gap:.6rem;
  padding:.6rem 1.1rem;border:1px solid rgba(233,227,215,.3);border-radius:999px;
  font-size:10px;letter-spacing:.24em;text-transform:uppercase;transition:.4s}
.vh-credit .vc-go em{font-style:normal}
.vh-credit a:hover .vc-go{background:var(--ink);color:var(--bg);border-color:var(--ink)}
@media(max-width:700px){.vh-credit .vc-go{margin-left:0}}


/* ---- projects filter row ---- */
.filters{display:flex;gap:.6rem;flex-wrap:wrap;padding:1.6rem 0 0}
.filters button{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  padding:.75rem 1.25rem;border:1px solid var(--line);color:var(--mut);
  border-radius:999px;transition:.35s;display:inline-flex;align-items:center;gap:.6rem}
.filters button:hover{color:var(--ink);border-color:rgba(233,227,215,.35)}
.filters button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.filters .p-count{font-size:9px;letter-spacing:.18em;opacity:.65}
.cat-block.hide{display:none}


/* full-screen footage on phones, a band on desktop */
@media(max-width:820px){
  .vhero{height:100svh;min-height:0}
  .hero{height:88svh}
  .vh-credit{bottom:5.5rem}
  .vh-credit a{gap:.4rem}
  .vh-credit .vc-go{margin-left:0;margin-top:.6rem}
}

/* discourage casual saving of the work */
img,video,.vh-media,.p-video,.g-item,.f-media,.pc-media{
  -webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}
video::-webkit-media-controls{display:none!important}
