.duo-story { padding: 100px 5% 110px; max-width: 1440px; margin: 0 auto; scroll-margin-top: 100px; }
.duo-heading { text-align: center; margin: 0 auto 40px; }
.duo-heading .overline { color: #b4c4bd; margin: 0 0 18px; }
.duo-heading h2 { font-size: clamp(34px, 4.8vw, 64px); line-height: 1.06; letter-spacing: -.045em; font-weight: 550; margin: 0 0 20px; }
.duo-heading > p:last-child { color: #b4c4bd; font-size: clamp(16px, 1.6vw, 20px); line-height: 1.5; margin: 0; }
.duo-media { position: relative; aspect-ratio: 16 / 9; margin: 0; overflow: hidden; border-radius: 24px; background: #37434e; isolation: isolate; }
.duo-poster, .duo-video { position: absolute; inset: 0; width: 100%; height: 100%; }
.duo-poster img { display: block; width: 100%; height: 100%; object-fit: contain; }
.duo-video { object-fit: contain; opacity: 0; }
.duo-media.is-playing .duo-video { opacity: 1; }
.duo-playback { position: absolute; z-index: 2; right: 20px; bottom: 20px; min-height: 44px; padding: 10px 18px; border: 1px solid #ffffff40; border-radius: 30px; background: #101718e8; color: #eef1ed; font-size: 13px; }
.duo-playback:hover { background: #263332; }
@media (max-width: 700px) {
 .duo-story { padding: 65px 20px 75px; }
 .duo-heading { margin-bottom: 28px; }
 .duo-heading h2 { font-size: clamp(30px, 8vw, 44px); }
 .duo-media { aspect-ratio: 1; border-radius: 18px; }
 .duo-playback { right: 12px; bottom: 12px; }
}

/* Keep the complete composition in view while the native page scroll seeks the clip. */
.duo-story { padding: 0 5%; height: 185svh; }
.duo-stage { position: sticky; top: 80px; height: calc(100svh - 80px); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px 0 32px; }
.duo-heading { flex: 0 0 auto; margin-bottom: 28px; }
.duo-media { flex: 0 0 auto; width: min(100%, calc((100svh - 300px) * 16 / 9)); }
@media (max-width: 700px) {
 .duo-story { padding: 0 20px; height: 175svh; }
 .duo-stage { top: 66px; height: calc(100svh - 66px); padding: 20px 0; }
 .duo-heading .overline { font-size: 9px; letter-spacing: 1.5px; }
 .duo-heading { margin-bottom: 24px; }
 .duo-media { width: min(100%, calc(100svh - 280px)); }
}
@media (prefers-reduced-motion: reduce) {
 .duo-story { height: auto; padding-top: 65px; padding-bottom: 75px; }
 .duo-stage { position: static; height: auto; padding: 0; }
 .duo-media { width: 100%; }
}
