.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* HERO: the count */
.hero{position:relative;height:100vh;height:100svh;min-height:620px;max-height:1000px;display:flex;flex-direction:column;background:var(--ink);overflow:hidden}
.stage{position:relative;width:100%;flex:1 1 auto;min-height:300px;background:#070505}
.stage img,.stage canvas{position:absolute;inset:0;width:100%;height:100%}
.stage img{object-fit:cover;object-position:58% 56%}
.anim .stage img{opacity:0}
.anim.done .stage img{opacity:1}
.stage canvas{transition:opacity .8s ease}
.stage canvas.gone{opacity:0}
.stage::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:42%;background:linear-gradient(rgba(12,10,9,0),rgba(12,10,9,.75) 60%,var(--ink));pointer-events:none}
.hcopy{position:relative;z-index:2;flex:none;padding:0 var(--gut) 26px;margin-top:-108px}
.hcopy .eyebrow{margin:0 0 4px;font-size:11px;letter-spacing:.24em}
.count{margin:0;display:flex;align-items:baseline;gap:12px;font-family:var(--display);line-height:.86}
.count .num{font-size:clamp(104px,31vw,240px);font-weight:400;color:var(--cream);font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.04em;min-width:1.9ch;text-align:right}
.count .lab{font-family:var(--body);font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.hero .line{font-style:italic;font-size:clamp(30px,8.4vw,58px);color:var(--cream);margin-top:6px;opacity:1;transition:opacity 1s ease .1s,transform 1s ease .1s}
/* copy stays put during the count (no empty band, no flash); the line warms from gold to cream when the count lands */
.anim .line{color:var(--gold2);transition:color 1.2s ease}
.anim.done .line{color:var(--cream)}
.hero .sub{color:var(--mute);margin:12px 0 18px;max-width:440px;font-size:16px;transition:opacity 1s ease .3s,transform 1s ease .3s}
.hcopy .ctas{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;transition:opacity 1s ease .5s,transform 1s ease .5s}

@media (min-width:900px){
  .hero{flex-direction:row;align-items:stretch;min-height:640px;height:100vh}
  .stage{position:absolute;right:0;top:0;bottom:0;width:56%;height:auto}
  .stage::after{inset:0 auto 0 -1px;width:38%;height:auto;background:linear-gradient(90deg,var(--ink),rgba(12,10,9,0))}
  .stage::before{content:"";position:absolute;inset:0 0 auto 0;height:140px;background:linear-gradient(rgba(12,10,9,.55),rgba(12,10,9,0));z-index:1;pointer-events:none}
  .hcopy{margin:0;align-self:center;width:52%;padding:90px 0 40px max(var(--gut),calc((100vw - 1320px)/2))}
  .count .num{font-size:clamp(150px,15vw,250px)}
  .hero .line{font-size:clamp(44px,4.4vw,70px)}
  .hero .sub{font-size:18px}
}

/* sections */
section{position:relative}
.counts{padding:88px 0 72px;background:var(--ink)}
.counts .head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:30px}
.counts h2,.film h2,.card h2,.close h2{font-size:clamp(40px,7.4vw,76px)}
.counts h2 .it,.film h2 .it,.card h2 .it{color:var(--gold2)}
.strip{list-style:none;margin:0;padding:0 var(--gut) 8px;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--deep) transparent;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.strip li{flex:none;width:min(62vw,280px);scroll-snap-align:start}
.strip a{display:block;position:relative;text-decoration:none;aspect-ratio:3/4.4;overflow:hidden;background:var(--soot)}
.strip img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.strip a:hover img{transform:scale(1.04)}
.strip a::after{content:"";position:absolute;inset:45% 0 0 0;background:linear-gradient(rgba(12,10,9,0),rgba(12,10,9,.88))}
.strip b{position:absolute;left:16px;bottom:30px;z-index:1;font-family:var(--display);font-weight:400;font-size:74px;line-height:1;color:var(--cream)}
.strip span{position:absolute;left:19px;bottom:16px;z-index:1;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
@media (min-width:1300px){.strip{padding-left:calc((100vw - 1240px)/2 + var(--gut))}}

.film{padding:72px 0;background:linear-gradient(var(--ink),#120c0b 40%,var(--ink))}
.film .grid,.card .grid{display:grid;grid-template-columns:1fr;gap:34px;align-items:center}
.film .vbox{aspect-ratio:9/16;width:min(78%,380px);margin:0 auto;border:1px solid var(--line)}
.facts{list-style:none;padding:0;margin:28px 0 0;border-top:1px solid var(--line)}
.facts li{display:flex;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}
.facts b{font-family:var(--display);font-weight:400;font-size:34px;min-width:84px;color:var(--cream)}
.facts span{color:var(--mute)}
@media (min-width:900px){.film .grid{grid-template-columns:420px 1fr;gap:80px}.film .vbox{width:100%}.card .grid{grid-template-columns:1fr 1fr;gap:80px}}

.card{padding:72px 0}
.card figure{margin:0}
.card figure img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 40%}
.card figcaption{font-family:var(--display);font-style:italic;color:var(--mute);margin-top:12px;font-size:17px}
.card .copy p{color:var(--mute);max-width:440px;margin:18px 0 26px;font-size:18px}

.words{padding:64px 0 72px;border-top:1px solid var(--line)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 18px}
.trio figure{margin:0}
.trio img{width:100%;aspect-ratio:9/15;object-fit:cover}
.trio figcaption{font-family:var(--display);font-style:italic;font-size:clamp(14px,2.2vw,24px);margin-top:10px;line-height:1.2}
@media (min-width:900px){.trio{gap:24px}}

.close{padding:96px 0 110px;text-align:center;background:radial-gradient(ellipse 70% 60% at 50% 100%,rgba(126,13,21,.42),rgba(12,10,9,0) 70%),var(--ink)}
.close h2 .it{color:var(--gold2)}
.close p{color:var(--mute);margin:18px auto 28px;max-width:420px;font-size:18px}
.close .ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
