:root{--light:#fcf6f4;--dark:#100f0f;--m:6.25vw;--rule:rgba(16,15,15,.12)}
*{margin:0;padding:0;list-style:none;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html{scroll-behavior:smooth}
body{background:var(--light);color:var(--dark);font-family:"Inter Tight",Helvetica,Arial,sans-serif;font-size:.972vw;line-height:1.389vw;letter-spacing:.02em}
a{color:inherit;text-decoration:none}
img,video{display:block;width:100%;height:auto}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:1px solid currentColor;outline-offset:4px}

.f-0{font-weight:500;font-size:20.417vw;line-height:16.319vw;letter-spacing:-.07em}
.f-2{font-weight:500;font-size:14.028vw;line-height:11.25vw;letter-spacing:-.05em}
.f-3{font-weight:500;font-size:10.208vw;line-height:8.6vw;letter-spacing:-.04em}
.f-4{font-weight:500;font-size:4.167vw;line-height:4.167vw;letter-spacing:-.03em}
.f-5{font-weight:500;font-size:3.299vw;line-height:2.986vw;letter-spacing:-.03em}
.f-6{font-weight:400;font-size:1.528vw;line-height:2.014vw;letter-spacing:-.005em}
.f-7{font-weight:500;font-size:1.389vw;line-height:1.25vw;letter-spacing:-.02em}
.f-8{font-weight:500;font-size:.972vw;line-height:1.111vw;letter-spacing:.02em;text-transform:uppercase}
.dim{opacity:.55}

.u{position:relative;display:inline-block}
.u:before{content:"";position:absolute;left:0;bottom:1px;width:100%;height:1px;background:currentColor;transform:scaleX(1);transform-origin:left;transition:transform .4s ease-out}
.u:hover:before{transform:scaleX(0);transform-origin:right}

/* MENU */
#a-menu{position:fixed;top:0;left:0;right:0;z-index:9;padding:3.5vw var(--m);pointer-events:none;mix-blend-mode:difference;color:var(--light)}
#a-menu ul{display:flex}
#a-menu li{pointer-events:all;margin-left:1.6vw}
#a-menu li:first-child{margin-left:0}
#a-menu li.push{margin-left:auto}
#a-menu a{position:relative;display:block}
#a-menu a:before{content:"";position:absolute;left:0;bottom:1px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transition:transform .4s ease-out}
#a-menu a:hover:before,#a-menu a[aria-current]:before{transform:scaleX(1)}
#a-menu .lang{opacity:.6}

/* HERO */
#h-hero{position:relative;width:100%;height:100vh;height:100svh;min-height:620px;overflow:hidden}
#h-hero .heading{position:absolute;top:50%;left:var(--m);right:var(--m);display:flex;transform:translateY(-10.5vw);overflow:hidden}
#h-hero .heading .word{margin-left:auto;display:block}
#h-hero .heading .word span{display:inline-block;transform:translateY(100%);animation:up 1.2s cubic-bezier(.19,1,.22,1) .15s forwards}
#h-hero .bottom-l{position:absolute;left:var(--m);bottom:var(--m)}
#h-hero .bottom-l h1{margin-bottom:1.6vw}
#h-hero .bottom-r{position:absolute;right:var(--m);bottom:var(--m);text-align:right}
#h-hero .bottom-r .f-7{line-height:2.5vw;margin-bottom:1.8vw}
#h-hero .bottom-r p{margin-bottom:1.6vw}
.fade{opacity:0;animation:fade 1s .7s forwards}
@keyframes up{to{transform:none}}
@keyframes fade{to{opacity:1}}

/* PAGE HEADER (inner pages) */
.p-head{padding:16vw var(--m) 0}
.p-head .f-8{margin-bottom:2.4vw}
.p-head .f-8:after{content:"";display:block;width:.833vw;height:1px;background:currentColor;margin-top:1.181vw}
.p-head .f-3{text-indent:-.6vw}
.p-head .lede{margin-top:3vw;max-width:52vw}

/* PROOF STRIP */
.proof{margin:0 var(--m);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.proof ul{display:flex;justify-content:space-between;gap:2vw;padding:1.6vw 0}
.proof li{white-space:nowrap}

/* SECTIONS */
.sec{position:relative;margin:11.806vw var(--m)}
.head{position:absolute;top:0;left:0}
.head .f-8:after{content:"";display:block;width:.833vw;height:1px;background:currentColor;margin-top:1.181vw}
.inset{margin-left:13.681vw}
.more{margin-top:3vw}

/* WHAT I DO */
.intro{max-width:60vw;margin-bottom:5.5vw}
.cols{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule)}
.col{padding:2.083vw 2vw 2.4vw 0;border-right:1px solid var(--rule)}
.col + .col{padding-left:2vw}
.col:last-child{border-right:0}
.col h3{margin-bottom:1.4vw}
.col .list{margin-bottom:2.6vw;opacity:.6}
.col p{max-width:24vw;margin-bottom:1.8vw}

/* WORK GRID */
.row{display:grid;grid-template-columns:repeat(12,1fr);column-gap:.694vw;margin-bottom:3.4vw}
.card a{display:block}
.block{position:relative;overflow:hidden;background:#e8e1df}
.block img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.19,1,.22,1)}
.block video{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);object-fit:cover;opacity:0;transition:opacity .4s}
@media (hover:hover){.card:hover img{transform:scale(1.04)}.card:hover video{opacity:1}}
.cap{display:flex;justify-content:space-between;gap:2vw;padding-top:1vw}
.cap h3{font-weight:500;font-size:1.389vw;line-height:1.6vw;letter-spacing:-.01em}
.cap .meta{text-align:right;white-space:nowrap}
.cap .meta,.cap .credit{opacity:.55}
.cap .credit{margin-top:.25vw}
.cap .log{margin-top:.6vw;max-width:34vw}
.l-d .card{grid-column:4/11}.l-d .block{height:28.472vw}
.l-c .card:nth-child(1){grid-column:3/9}.l-c .card:nth-child(1) .block{height:32.569vw}
.l-c .card:nth-child(2){grid-column:9/13;align-self:start}.l-c .card:nth-child(2) .block{height:21.458vw}
.l-b .card:nth-child(1){order:2;grid-column:7/13}.l-b .card:nth-child(1) .block{height:32.5vw}
.l-b .card:nth-child(2){grid-column:3/7;align-self:start}.l-b .card:nth-child(2) .block{height:21.528vw}
.l-a .card{grid-column:5/10}.l-a .block{height:20.278vw}
.next-line{margin-left:13.681vw;display:flex;justify-content:space-between;gap:2vw;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:1.6vw 0;margin-top:2vw}
.next-line span:last-child{opacity:.55;text-align:right}

/* IMPACT */
.lead{max-width:66vw;margin-bottom:5vw}
.igrid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:.694vw}
.igrid figure{grid-column:1/6}
.igrid figure .block{height:34vw}
.igrid figcaption{padding-top:1vw;opacity:.55}
.steps{grid-column:7/13}
.step{display:flex;gap:2vw;padding:2.083vw 0;border-top:1px solid var(--rule)}
.steps .step:last-of-type{border-bottom:1px solid var(--rule)}
.step .f-8{width:8vw;flex:0 0 auto;padding-top:.3vw}
.step p{max-width:30vw}
.partners{margin-top:2vw;opacity:.55}
.services{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);margin-top:6vw}
.services div{padding:2vw 2vw 2vw 0;border-right:1px solid var(--rule)}
.services div + div{padding-left:2vw}
.services div:last-child{border-right:0}
.services h3{margin-bottom:1vw}

/* DARK BLOCK */
.dark{background:var(--dark);color:var(--light);padding:11.806vw 0 6.944vw}
.dark .inner{margin:0 13.681vw;position:relative}
.dark .head{top:.4vw;left:-7.4vw}
.bio{display:grid;grid-template-columns:18vw 1fr;gap:4vw;align-items:start}
.bio img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1)}
.dark .f-5{margin-bottom:2.431vw}
.dark .f-6{max-width:43vw;opacity:.85}
.dark .f-6 + .f-6{margin-top:1.4vw}
.details{display:flex;padding:6.944vw 0;border-bottom:1px solid rgba(255,255,255,.2)}
.details li{flex-basis:20%;padding-right:1.5vw}
.details .f-8{opacity:.55;margin-bottom:1vw}
.year{position:relative;padding:2.083vw 0 2.083vw 7.639vw;border-bottom:1px solid rgba(255,255,255,.2)}
.year > .f-8{position:absolute;left:0;top:2.2vw}
.award{display:flex;padding:.35vw 0}
.award li:first-child{width:24vw;padding-right:2vw}
.award li:last-child{opacity:.6}
.press{padding-top:6.944vw}
.press .f-8{opacity:.55;margin-bottom:1.4vw}
.press ul{display:flex;flex-wrap:wrap;gap:1vw 2.4vw}
.press a{font-size:1.389vw;line-height:2vw}
.cta-dark{margin-top:5vw}

/* FILM PAGE */
.f-hero{margin:4vw var(--m) 0}
.f-hero .block{height:52vw}
.f-meta{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--rule);margin:0 var(--m);padding:1.6vw 0}
.f-meta .f-8{opacity:.55;margin-bottom:.6vw}
.f-body{display:grid;grid-template-columns:repeat(12,1fr);column-gap:.694vw;margin:8vw var(--m)}
.f-body .syn{grid-column:3/9}
.f-body .side{grid-column:10/13}
.f-body .side h3{margin:0 0 1vw}
.f-body .side ul{margin-bottom:2.6vw}
.f-body .side li{padding:.5vw 0;border-bottom:1px solid var(--rule)}
.f-body .links{margin-top:3vw;display:flex;gap:2.4vw;flex-wrap:wrap}
.notice{margin-top:2vw;opacity:.55}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.694vw;margin:0 var(--m)}
.gallery .block{height:17vw}
.f-next{margin:8vw var(--m) 0;border-top:1px solid var(--rule);padding-top:2vw;display:flex;justify-content:space-between;align-items:flex-end}
.f-next .f-4{display:block;margin-top:1vw}

/* CONTACT */
.big a{position:relative;display:inline-block;white-space:nowrap}
.big a:before{content:"";position:absolute;left:0;bottom:-1.5vw;width:100%;height:3px;background:var(--dark);transform-origin:left;transition:transform .5s ease-out}
.big a:hover:before{transform:scaleX(.15)}
.offers{margin-top:6vw;border-top:1px solid var(--rule)}
.offer{display:flex;align-items:center;border-bottom:1px solid var(--rule);min-height:4.861vw;padding:1vw 0}
.offer .f-8{width:21.528vw;flex:0 0 auto}
.offer li:nth-child(2){flex:1}
.offer li:last-child{text-align:right}
.direct{margin-top:4vw;display:flex;gap:4vw;flex-wrap:wrap}
.form{margin-top:6vw;display:grid;grid-template-columns:1fr 1fr;gap:2vw 2vw;max-width:62vw}
.form label{display:block}
.form label span{display:block;margin-bottom:.6vw;opacity:.55}
.form input,.form textarea,.form select{width:100%;font:inherit;color:inherit;background:transparent;border:0;border-bottom:1px solid var(--dark);padding:.6vw 0;border-radius:0;-webkit-appearance:none;appearance:none}
.form textarea{min-height:10vw;resize:vertical}
.form .full{grid-column:1/-1}
.form button{justify-self:start;font:inherit;font-size:1.389vw;font-weight:500;background:var(--dark);color:var(--light);border:0;padding:1.2vw 2.4vw;cursor:pointer}
.form .note{grid-column:1/-1;opacity:.55}

/* FOOTER */
#a-footer{margin:12.153vw var(--m) 4.167vw}
#a-footer ul{display:flex}
#a-footer li{flex-basis:calc(100%/3)}
#a-footer li:nth-child(2){text-align:center}
#a-footer li:nth-child(3){text-align:right}
#a-footer li a + a{margin-left:1.4vw}

/* MOBILE */
@media (max-width:1023px){
  :root{--m:min(8.333vw,35.8px)}
  body{font-size:min(3.889vw,16.7px);line-height:min(5.833vw,25.1px)}
  .f-0{font-size:min(30vw,129.0px);line-height:min(26vw,111.8px)}
  .f-2{font-size:min(16vw,68.8px);line-height:min(14vw,60.2px)}
  .f-3{font-size:min(13.194vw,56.7px);line-height:min(11.944vw,51.4px)}
  .f-4{font-size:min(8.333vw,35.8px);line-height:min(8.889vw,38.2px)}
  .f-5{font-size:min(7.2vw,31.0px);line-height:min(7.4vw,31.8px)}
  .f-6{font-size:min(3.889vw,16.7px);line-height:min(5.833vw,25.1px);letter-spacing:.01em}
  .f-7{font-size:min(5vw,21.5px);line-height:min(5vw,21.5px)}
  .f-8{font-size:min(3.333vw,14.3px);line-height:min(3.889vw,16.7px)}
  #a-menu{padding:min(6vw,25.8px) var(--m)}
  #a-menu li{margin-left:min(4.5vw,19.3px)}
  #a-menu li.hide-m{display:none}
  #h-hero{min-height:0;height:auto;padding:min(20vw,86.0px) var(--m) min(10vw,43.0px)}
  #h-hero .heading,#h-hero .bottom-l,#h-hero .bottom-r{position:relative;top:auto;left:auto;right:auto;bottom:auto;transform:none}
  #h-hero .heading .word{margin-left:0}
  #h-hero .bottom-l{margin:min(6vw,25.8px) 0 min(12vw,51.6px)}
  #h-hero .bottom-l h1{margin-bottom:min(3vw,12.9px)}
  #h-hero .bottom-r{text-align:left}
  #h-hero .bottom-r br{display:none}
  #h-hero .bottom-r .f-7{line-height:min(6vw,25.8px);margin-bottom:min(3vw,12.9px)}
  #h-hero .bottom-r p{margin-bottom:min(4vw,17.2px)}
  .p-head{padding:min(28vw,120.4px) var(--m) 0}
  .p-head .f-8{margin-bottom:min(6vw,25.8px)}
  .p-head .f-8:after{width:3.333vw;margin-top:min(4.167vw,17.9px)}
  .p-head .lede{max-width:none;margin-top:min(6vw,25.8px)}
  .proof ul{flex-wrap:wrap;justify-content:flex-start;gap:min(2vw,8.6px) min(5vw,21.5px);padding:min(4vw,17.2px) 0}
  .sec{margin:min(16.667vw,71.7px) var(--m)}
  .head,.dark .head{position:relative;top:auto;left:auto;margin-bottom:min(8.333vw,35.8px)}
  .head .f-8:after{width:3.333vw;margin-top:min(4.167vw,17.9px)}
  .inset,.next-line{margin-left:0}
  .intro{max-width:none;margin-bottom:min(8vw,34.4px)}
  .cols,.services{grid-template-columns:1fr}
  .col,.col + .col,.services div,.services div + div{border-right:0;border-bottom:1px solid var(--rule);padding:min(6vw,25.8px) 0}
  .col p{max-width:none;margin-bottom:min(4vw,17.2px)}
  .col h3{margin-bottom:min(3vw,12.9px)}
  .col .list{margin-bottom:min(4vw,17.2px)}
  .row{grid-template-columns:1fr;margin-bottom:0}
  .row .card{grid-column:1/-1!important;order:0!important;margin-bottom:min(9vw,38.7px)}
  .row .block{height:58vw!important}
  .block video.on{opacity:1}
  .cap{flex-direction:column;gap:min(1vw,4.3px);padding-top:min(3vw,12.9px)}
  .cap h3{font-size:min(5vw,21.5px);line-height:min(6vw,25.8px)}
  .cap .meta{text-align:left;white-space:normal}
  .cap .log{max-width:none;margin-top:min(2vw,8.6px)}
  .next-line{flex-direction:column;padding:min(4vw,17.2px) 0}
  .next-line span:last-child{text-align:left}
  .lead{max-width:none;margin-bottom:min(8vw,34.4px)}
  .igrid{grid-template-columns:1fr}
  .igrid figure,.steps{grid-column:1/-1}
  .igrid figure .block{height:64vw}
  .igrid figcaption{padding:min(3vw,12.9px) 0 min(8vw,34.4px)}
  .step{flex-direction:column;gap:min(2vw,8.6px);padding:min(5vw,21.5px) 0}
  .step .f-8{width:auto}
  .step p{max-width:none}
  .dark{padding:min(16.667vw,71.7px) 0}
  .dark .inner{margin:0 var(--m)}
  .bio{grid-template-columns:1fr;gap:min(6vw,25.8px)}
  .bio img{width:40vw}
  .dark .f-6{max-width:none}
  .details{flex-wrap:wrap;gap:min(6vw,25.8px) 0}
  .details li{flex-basis:50%}
  .year{padding-left:0}
  .year > .f-8{position:relative;top:auto;margin-bottom:min(3vw,12.9px)}
  .award{flex-direction:column;padding:min(1.5vw,6.4px) 0}
  .award li:first-child{width:auto}
  .press a{font-size:min(4.4vw,18.9px);line-height:min(7vw,30.1px)}
  .f-hero .block{height:64vw}
  .f-meta{grid-template-columns:1fr 1fr;gap:min(4vw,17.2px);padding:min(5vw,21.5px) 0}
  .f-meta .f-8{margin-bottom:min(1vw,4.3px)}
  .f-body{grid-template-columns:1fr;margin:min(12vw,51.6px) var(--m)}
  .f-body .syn,.f-body .side{grid-column:1/-1}
  .f-body .side{margin-top:min(10vw,43.0px)}
  .f-body .side h3{margin-bottom:min(3vw,12.9px)}
  .f-body .side li{padding:min(2vw,8.6px) 0}
  .f-body .side ul{margin-bottom:min(8vw,34.4px)}
  .f-body .links{gap:min(6vw,25.8px);margin-top:min(8vw,34.4px)}
  .gallery{grid-template-columns:1fr 1fr;gap:min(2vw,8.6px)}
  .gallery .block{height:32vw}
  .f-next{margin-top:min(14vw,60.2px);padding-top:min(5vw,21.5px);flex-direction:column;align-items:flex-start;gap:min(4vw,17.2px)}
  .offer{flex-wrap:wrap;gap:min(1vw,4.3px);padding:min(4vw,17.2px) 0}
  .offer .f-8,.offer li:nth-child(2){width:100%;flex:0 0 100%}
  .offer li:last-child{text-align:left}
  .direct{flex-direction:column;gap:min(2vw,8.6px);margin-top:min(8vw,34.4px)}
  .form{grid-template-columns:1fr;max-width:none;gap:min(6vw,25.8px);margin-top:min(10vw,43.0px)}
  .form label span{margin-bottom:min(1.5vw,6.4px)}
  .form input,.form textarea,.form select{padding:min(2vw,8.6px) 0}
  .form textarea{min-height:36vw}
  .form button{font-size:min(4.4vw,18.9px);padding:min(4vw,17.2px) min(7vw,30.1px)}
  #a-footer{margin:min(16.667vw,71.7px) var(--m) min(8.333vw,35.8px)}
  #a-footer li:nth-child(1){display:none}
  #a-footer li{flex-basis:50%}
  #a-footer li:nth-child(2){text-align:left}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  #h-hero .heading .word span{transform:none}.fade{opacity:1}
}

/* text-length adaptations for the original copy */
#h-hero .bottom-r p{max-width:32vw;margin-left:auto}
#h-hero .bottom-r br{display:none}
.case-label{margin-bottom:1.6vw}
.imp-intro{max-width:52vw;margin-top:1.4vw}
.imp-intro + .imp-intro{margin-top:1vw}
.lead{margin-bottom:0}
.inset + .igrid{margin-top:5vw}
.steps-title{margin-bottom:1.2vw}
.step{flex-direction:column;gap:.6vw}
.step .f-8{width:auto}
.step p{max-width:40vw}
.dark .bio .f-5{font-size:2.6vw;line-height:2.6vw}
@media (max-width:1023px){
  #h-hero .bottom-r p{max-width:none}
  .case-label{margin-bottom:min(4vw,17.2px)}
  .imp-intro{max-width:none;margin-top:min(4vw,17.2px)}
  .inset + .igrid{margin-top:min(10vw,43.0px)}
  .steps-title{margin-bottom:min(3vw,12.9px)}
  .step p{max-width:none}
  .dark .bio .f-5{font-size:min(6.4vw,27.5px);line-height:min(6.8vw,29.2px)}
}
@media (max-width:1023px){.big.f-2{font-size:min(13vw,55.9px);line-height:min(12vw,51.6px)}}
/* FR: longer "Contactez-moi" */
html[lang=fr] .big.f-2,html[lang=fr] .p-head h1.f-2{font-size:12vw;line-height:11.2vw}

/* validated v2: original lists + press page */
.award.one li{width:auto!important;opacity:1!important}
.year.wide{padding-left:0}
.year.wide > .f-8{position:relative;top:auto;margin-bottom:1vw}
.press-list{border-top:1px solid rgba(16,15,15,.15)}
.press-list li{display:grid;grid-template-columns:16vw 1fr;gap:2vw;padding:1.6vw 0;border-bottom:1px solid rgba(16,15,15,.15)}
.press-list .f-8{opacity:.55}
.review{margin:1.4vw 0 1.6vw;max-width:60vw}
@media (max-width:1023px){.press-list li{grid-template-columns:1fr;gap:min(1vw,4.3px);padding:min(4vw,17.2px) 0}.review{max-width:none;margin:min(3vw,12.9px) 0 min(4vw,17.2px)}.year.wide > .f-8{margin-bottom:min(3vw,12.9px)}}
@media (min-width:1024px){.proof ul{display:grid;grid-template-columns:repeat(5,auto);justify-content:space-between;row-gap:1vw}}

/* affiliations logos */
.logos{display:block;width:100%;max-width:64vw;height:auto}
@media (max-width:1023px){.logos{max-width:none}}

/* v3: partners band, posters */
.partners-band{background:var(--dark);color:var(--light);margin-top:8vw;padding:4.2vw var(--m)}
.partners-band .f-8{opacity:.55;margin-bottom:2.4vw}
.partners-band ul{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:3vw 4vw}
.partners-band img{display:block;height:calc(var(--h,3) * 1vw);width:auto}
img.poster{display:block;width:100%;height:auto}
.f-body .side img.poster{margin-bottom:2.6vw}
.igrid.goals figure{grid-column:3/6}
.igrid.goals .steps{align-self:start}
@media (max-width:1023px){.partners-band{padding:min(10vw,43.0px) var(--m)}.partners-band .f-8{margin-bottom:min(6vw,25.8px)}.partners-band ul{justify-content:flex-start;gap:min(7vw,30.1px) min(9vw,38.7px)}.partners-band img{height:calc(var(--h,3) * 2.3vw)}.igrid.goals figure{grid-column:auto;width:60%;margin-bottom:min(6vw,25.8px)}.f-body .side img.poster{width:60%;margin-bottom:min(6vw,25.8px)}}

/* accessibility: visible keyboard focus */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.dark a:focus-visible{outline-color:var(--light)}

.block video.on{opacity:1}
/* contact form: inline errors + thank-you */
.form label span i{font-style:normal}
.form .err{display:block;font-style:normal;color:#a3261b;margin-top:.5vw;font-size:.9em}
.form .err:empty{display:none}
.form [aria-invalid="true"]{border-bottom-color:#a3261b}
.form button[disabled]{opacity:.55;cursor:default}
.form-ok{margin-top:6vw;max-width:62vw}
.form-ok h3{margin-bottom:1.2vw;outline:none}
@media (max-width:1023px){.form .err{margin-top:min(1.5vw,6.4px)}.form-ok{margin-top:min(10vw,43.0px);max-width:none}.form-ok h3{margin-bottom:min(3vw,12.9px)}}
/* affiliations as separate logos */
.aff{display:grid;grid-template-columns:repeat(5,1fr);align-items:center;justify-items:center;gap:3.2vw 2vw;max-width:64vw}
.aff img{display:block;height:calc(var(--h,2.4) * 1vw);width:auto;max-width:100%}
@media (max-width:1023px){.aff{grid-template-columns:repeat(3,1fr);gap:min(9vw,38.7px) min(5vw,21.5px);max-width:none}.aff img{height:calc(var(--h,2.4) * 2.5vw)}}

/* cards with a clip take the clip's own frame (no cropping of the film) */
.row .card .block.has-video{height:auto!important;aspect-ratio:var(--ar,16/9)}
/* The Unburied Past card shows the poster's title area, not its middle */
.card a[href$="the-unburied-past.html"] .block img{object-position:50% 0}

/* password-protected film pages */
.lock{margin-top:6vw}
.lock .lock-note{max-width:44vw;margin-bottom:1vw}
.lock .form{max-width:30vw;grid-template-columns:1fr}
@media (max-width:1023px){.lock{margin-top:min(12vw,51.6px)}.lock .lock-note{max-width:none}.lock .form{max-width:none}}

/* ===== MOTION ===== */
/* page cover: lifts on load, drops on leave (doubles as preloader + page transition) */
body::after{content:"";position:fixed;inset:0;z-index:100;background:var(--dark);pointer-events:none;transform:translateY(0);animation:cover-lift .9s cubic-bezier(.77,0,.18,1) .25s forwards}
html.leaving body::after{transform:translateY(100%);animation:cover-drop .55s cubic-bezier(.77,0,.18,1) forwards}
@keyframes cover-lift{to{transform:translateY(-100%)}}
@keyframes cover-drop{from{transform:translateY(100%)}to{transform:translateY(0)}}
#h-hero .heading .word span{animation-delay:.75s}
.fade{animation-delay:1.25s}

/* split-text reveal */
.sw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.sw > span{display:inline-block;transform:translateY(110%);transition:transform 1.1s cubic-bezier(.19,1,.22,1)}
.split.in .sw > span{transform:none}

/* image reveal */
html.anim .reveal{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s cubic-bezier(.77,0,.18,1)}
html.anim .reveal img{transform:scale(1.15);transition:transform 1.8s cubic-bezier(.19,1,.22,1)}
html.anim .reveal.in{clip-path:inset(0 0 0 0)}
html.anim .reveal.in img{transform:none}
@media (hover:hover){html.anim .card:hover .reveal.in img{transform:scale(1.04)}}

/* soft fade-up for small blocks */
html.anim .rise{opacity:0;transform:translateY(2.4vw);transition:opacity 1s ease,transform 1.2s cubic-bezier(.19,1,.22,1)}
html.anim .rise.in{opacity:1;transform:none}

/* lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

@media (prefers-reduced-motion:reduce){
  body::after{display:none}
  .sw > span,html.anim .reveal,html.anim .reveal img,html.anim .rise{transform:none!important;clip-path:none!important;opacity:1!important;transition:none!important}
}
/* mobile menu + footer polish */
#a-menu li.push{padding-left:2vw}
@media (max-width:1023px){
  #a-menu li{margin-left:min(3.6vw,15.5px)}
  #a-menu a{font-size:min(3.6vw,15.5px)}
  #a-menu li.push{padding-left:min(3vw,12.9px)}
  #a-footer ul{justify-content:space-between;align-items:baseline}
  #a-footer li{flex-basis:auto}
  #a-footer li:nth-child(2){text-align:left}
  #a-footer li a + a{margin-left:min(4vw,17.2px)}
}
@media (max-width:1023px){
  #a-footer li:nth-child(2){display:flex;flex-wrap:wrap;gap:min(2vw,8.6px) min(4.5vw,19.3px);flex:1 1 auto}
  #a-footer li:nth-child(2) a + a{margin-left:0}
  #a-footer li:nth-child(3){flex:0 0 auto;margin-left:min(4vw,17.2px)}
  #a-footer li:nth-child(3) a{width:auto}
}
/* home cards: keep clips in their native 16:9 frame */
.card .block.has-video{height:auto!important;aspect-ratio:var(--ar,16/9)}

/* hero v3: smaller name, readable bio */
#h-hero .heading .word.f-0{font-size:13.5vw;line-height:11vw}
#h-hero .heading{transform:translateY(-14vw)}
#h-hero .bottom-r{text-align:left;width:42vw}
#h-hero .bottom-r p{max-width:none;margin-left:0;font-size:1.667vw;line-height:2.3vw;letter-spacing:-.01em;margin-bottom:2vw}
#h-hero .bottom-r a{font-size:1.111vw}
#h-hero .bottom-l h1{font-size:1.667vw;line-height:2vw}
@media (max-width:1023px){
  #h-hero .heading .word.f-0{font-size:min(22vw,94.6px);line-height:min(19vw,81.7px)}
  #h-hero .heading{transform:none}
  #h-hero .bottom-r{width:auto}
  #h-hero .bottom-r p{font-size:min(4.6vw,19.8px);line-height:min(6.4vw,27.5px);margin-bottom:min(5vw,21.5px)}
  #h-hero .bottom-r a{font-size:min(3.8vw,16.3px)}
  #h-hero .bottom-l h1{font-size:min(4.6vw,19.8px);line-height:min(6vw,25.8px)}
}
/* hero v4: reel first */
#h-hero.v4{height:auto;min-height:0;padding:7.5vw var(--m) 0;overflow:visible}
#h-hero.v4 .reel{position:relative;aspect-ratio:16/9;background:#111;overflow:hidden}
#h-hero.v4 .reel video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
#h-hero.v4 .heading{position:absolute;top:auto;bottom:1.6vw;left:2vw;right:auto;transform:none;color:#fcf6f4}
#h-hero.v4 .heading .word{margin-left:0}
#h-hero.v4 .heading .word.f-0{font-size:13.5vw;line-height:11vw}
#h-hero.v4 .intro{display:grid;grid-template-columns:1fr 42vw;gap:4vw;align-items:start;padding:3.2vw 0 1vw}
#h-hero.v4 .intro h1{font-size:1.667vw;line-height:2.3vw}
#h-hero.v4 .bio-r p{font-size:1.667vw;line-height:2.3vw;letter-spacing:-.01em;margin-bottom:2vw}
#h-hero.v4 .bio-r a{font-size:1.111vw}
@media (max-width:1023px){
  #h-hero.v4{padding:min(20vw,86.0px) var(--m) min(4vw,17.2px)}
  #h-hero.v4 .heading{bottom:min(2vw,8.6px);left:min(3vw,12.9px)}
  #h-hero.v4 .heading .word.f-0{font-size:min(19vw,81.7px);line-height:min(16vw,68.8px)}
  #h-hero.v4 .intro{grid-template-columns:1fr;gap:min(3vw,12.9px);padding:min(6vw,25.8px) 0 min(4vw,17.2px)}
  #h-hero.v4 .intro h1{font-size:min(4.6vw,19.8px);line-height:min(6vw,25.8px)}
  #h-hero.v4 .bio-r p{font-size:min(4.6vw,19.8px);line-height:min(6.4vw,27.5px);margin-bottom:min(5vw,21.5px)}
  #h-hero.v4 .bio-r a{font-size:min(3.8vw,16.3px)}
}
#h-hero.v4 .intro{grid-template-columns:minmax(0,1fr) 42vw!important}
#h-hero.v4 .intro .bio-r{grid-column:2}
@media (max-width:1023px){#h-hero.v4 .intro{grid-template-columns:1fr!important}#h-hero.v4 .intro .bio-r{grid-column:1}}
#h-hero.v4 .intro{max-width:none;margin-bottom:0}
#h-hero.v4 .intro{padding-bottom:5vw}
@media (max-width:1023px){#h-hero.v4 .intro{padding-bottom:min(6vw,25.8px)}}
#h-hero.v4 .reel video{opacity:0;transition:opacity .8s ease}
#h-hero.v4 .reel video.on{opacity:1}
#h-hero.v4 .reel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* narrow cards: stack caption so meta never overflows */
.l-c .card:nth-child(2) .cap,.l-b .card:nth-child(2) .cap{flex-direction:column;gap:.6vw}
.l-c .card:nth-child(2) .cap .meta,.l-b .card:nth-child(2) .cap .meta{text-align:left;white-space:normal}
/* stills strip (photos from the original site) */
@media (min-width:1024px){#h-hero{height:76vh;height:76svh;min-height:560px}}
.stills{overflow:hidden;margin:0 0 6vw}
.st-track{display:flex;gap:.7vw;width:max-content;animation:st-roll 170s linear infinite}
.stills:hover .st-track{animation-play-state:paused}
.st{flex:0 0 auto;width:30vw;aspect-ratio:16/9;overflow:hidden;background:#e8e1df}
.st img{width:100%;height:100%;object-fit:cover}
@keyframes st-roll{to{transform:translateX(-50%)}}
@media (max-width:1023px){.st{width:70vw}.st-track{gap:min(2vw,8.6px);animation-duration:130s}.stills{margin-bottom:min(12vw,51.6px)}}
@media (prefers-reduced-motion:reduce){.st-track{animation:none}.stills{overflow-x:auto}}
/* The Well: designed visual until stills exist */
.l-e .card{grid-column:7/12}.l-e .block{height:24vw}
.art{position:absolute;inset:0;overflow:hidden;background:linear-gradient(180deg,#f3e2c3 0%,#e7bf88 45%,#c98a4f 70%,#9a5a2f 100%)}
.art .sun{position:absolute;left:64%;top:26%;width:8%;aspect-ratio:1;border-radius:50%;background:#fcf3e2;box-shadow:0 0 5vw 1.2vw rgba(252,243,226,.6)}
.art .dune{position:absolute;left:-20%;right:-20%;top:60%;height:120%;border-radius:50% 50% 0 0/22% 22% 0 0;background:linear-gradient(180deg,#b9733f,#6e3a1d)}
.art .dune.d2{left:20%;right:-60%;top:72%;background:linear-gradient(180deg,#8f4f27,#4a2512)}
