/* Full-width movie at its native ratio; copy stays outside the primary subject. */
.hero.hero-scroll{height:auto;min-height:0;overflow:visible;isolation:auto;background:#050505}
.hero-sticky{position:relative;min-height:0;height:100svh;max-height:none;overflow:hidden;isolation:isolate;background:#050505}
.hero-scroll.is-scrubbing{height:500svh}
.is-scrubbing .hero-sticky{position:sticky;top:0}
.hero-media{position:absolute;inset:0;z-index:-2;display:grid;align-items:center;overflow:hidden}
.hero-media img,.hero-media video{grid-area:1/1;width:100%;height:auto;max-height:100%;object-fit:contain;opacity:1}
.hero-media .hero-video{opacity:0}.has-video .hero-video{opacity:1}.has-video .hero-poster{opacity:0}
.hero-scroll .hero-content{min-height:0;height:100%;padding-top:120px;padding-bottom:115px;position:relative;pointer-events:none}
.hero-scroll .hero-content a{pointer-events:auto}
.hero-scroll h1{font-size:clamp(44px,4.5vw,76px);line-height:1.06;letter-spacing:-.05em;max-width:49%;text-wrap:balance}
.hero-scroll h1 em{color:#c3c7cb}
.hero-scroll .hero-eyebrow{font-size:12px;letter-spacing:.09em;margin-bottom:28px}
.hero-scroll .hero-description{margin-top:26px;max-width:39%;gap:26px}
.hero-scroll .hero-description p{font-size:clamp(16px,1.15vw,18px);max-width:425px;color:#c4c6ca;line-height:1.6}
.hero-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;font-size:14px}
.hero-primary{display:inline-flex;gap:22px;align-items:center;background:#f2f3f4;color:#161719;padding:14px 20px;border-radius:3px;border:1px solid #f2f3f4}
.hero-primary:hover{background:#d7edf0;border-color:#d7edf0}.hero-secondary{padding:12px 0;border-bottom:1px solid #777d84}
.hero-scroll .hero-bottom{bottom:25px;gap:24px;font-size:12px}
.hero-chapter{display:flex;flex-direction:column;gap:10px;min-width:200px}.hero-progress{display:block;height:2px;width:180px;background:#ffffff28}.hero-progress i{display:block;width:100%;height:100%;background:#a8c8cc;transform-origin:left;transform:scaleX(var(--hero-progress,0))}
.hero-controls{display:flex;gap:20px;align-items:center}.hero-controls button{font-size:12px;color:#c3c5c8;border-bottom:1px solid #62666d;min-height:44px}
.project-selector{grid-template-columns:repeat(5,minmax(0,1fr))}
.craft-visual>img{aspect-ratio:1.8;object-position:center top}
@media(min-width:1800px){.hero-scroll .hero-content{padding-top:125px}.hero-media{inset:0}.hero-sticky{max-height:none}}
@media(max-width:1100px) and (min-width:761px){.hero-scroll h1{font-size:clamp(40px,4.6vw,54px)}.hero-scroll .hero-description{max-width:41%}.hero-scroll .hero-eyebrow{font-size:11px}.hero-scroll .hero-bottom>span{display:none}}
@media(max-width:760px){
 .hero-sticky{height:100svh;min-height:0;max-height:none;display:flex;flex-direction:column}
 .hero-scroll.is-scrubbing{height:430svh}
 .hero-scroll .hero-content{height:auto;justify-content:flex-start;flex-shrink:0;padding-top:120px;padding-bottom:12px}
 .hero-scroll .hero-eyebrow{font-size:12px;letter-spacing:.055em;margin-bottom:20px}
 .hero-scroll h1{font-size:clamp(36px,8.7vw,56px);max-width:100%;line-height:1.04}
 .hero-scroll .hero-description{max-width:100%;margin-top:20px;gap:20px}.hero-scroll .hero-description p{max-width:520px;font-size:16px;line-height:1.5}
 .hero-actions{gap:18px;font-size:14px}.hero-primary{padding:11px 15px}
 .hero-media{position:relative;inset:auto;z-index:0;width:100%;flex:1;min-height:200px;margin-bottom:70px;align-items:center}
 .hero-media img,.hero-media video{width:100%;height:auto;max-height:100%;object-fit:contain}
 .hero-scroll .hero-bottom{bottom:16px;flex-wrap:nowrap;gap:10px;font-size:11px}.hero-scroll .hero-bottom>span{display:none}
 .hero-chapter{min-width:0;font-size:10px;gap:7px}.hero-progress{width:140px}.hero-controls{gap:12px}.hero-controls button{font-size:11px;max-width:88px;text-align:left;line-height:1.3}
 .project-selector{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-height:740px) and (min-width:761px){.hero-sticky{min-height:620px}.hero-scroll h1{font-size:48px}.hero-scroll .hero-content{padding-top:110px;padding-bottom:90px}.hero-scroll .hero-description p{font-size:16px}}

@media(max-width:760px) and (max-height:780px){
 .hero-sticky{height:100svh;min-height:0}.hero-scroll .hero-content{padding-top:102px;padding-bottom:0}.hero-scroll h1{font-size:34px;line-height:1.03}.hero-scroll .hero-eyebrow{margin-bottom:12px}.hero-scroll .hero-description{margin-top:14px;gap:14px}.hero-scroll .hero-description p{font-size:16px;line-height:1.4}.hero-media{min-height:145px;margin-bottom:60px}
}
@media(max-width:360px){.hero-actions{gap:12px;font-size:13px}.hero-primary{padding:10px 12px}.hero-scroll .hero-eyebrow{font-size:11px}}

/* Fixed media box: intrinsic video dimensions must never stretch the mobile stage. */
.hero-media>.hero-poster,.hero-media>.hero-video{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:contain;transform:none;filter:none}
.hero-media>.hero-video{background:#050505}
@media(max-width:760px){
 .hero-scroll .hero-content{order:0}
 .hero-scroll .hero-media{order:1;flex:1 1 0;min-height:0}
}
@media(min-width:761px) and (max-height:740px){
 .hero-sticky{min-height:0}
 .hero-scroll .hero-content{padding-top:95px;padding-bottom:75px}
 .hero-scroll h1{font-size:clamp(28px,4vw,48px)}
 .hero-scroll .hero-description{margin-top:14px;gap:12px}
 .hero-scroll .hero-description p{font-size:14px;line-height:1.4}
 .hero-scroll .hero-eyebrow{margin-bottom:14px}
}
/* In very short phone windows use a readable, unpinned stage. */
@media(max-width:760px) and (max-height:600px){
 .hero-sticky{height:740px}
}

/* Small black patch anchored to the contained film by positionCover(). */
.hero-mark-cover{position:absolute;display:block;background:#000;z-index:1;pointer-events:none}
