/* Image-only, edge-to-edge collection with a seamless, duplicated track. */
.movie-marquee{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:4px 0 14px;display:block;scroll-snap-type:none}
.movie-track{display:flex;width:max-content;gap:0}
.movie-group{display:flex;flex:0 0 auto;gap:18px;padding-right:18px}
.movie-group .shelf-card{flex:0 0 220px;width:220px;min-width:0;margin:0}
.movie-group .shelf-card img{display:block;width:100%;height:330px;aspect-ratio:2/3;object-fit:cover;object-position:center;border-radius:14px;background:var(--bg,#121517)}
.movie-marquee.marquee-ready:not(.is-reduced-motion){overflow:hidden}
.marquee-ready .movie-track{animation:smartiptv-film-loop var(--movie-duration,135s) linear infinite;will-change:transform}
.movie-marquee.is-paused .movie-track,.movie-marquee.is-offscreen .movie-track,.movie-marquee:focus-within .movie-track{animation-play-state:paused}
.movie-group-copy{pointer-events:none;user-select:none}
.shelf-controls .movie-pause{width:auto;min-width:110px;height:36px;padding:0 15px;font-size:11px;letter-spacing:.02em}
.shelf-controls .movie-pause:disabled{opacity:.65;cursor:default}
.shelf-heading-right .shelf-controls{margin-top:16px}
.movie-marquee.is-reduced-motion .movie-track{animation:none;transform:none;will-change:auto}
.movie-marquee.is-reduced-motion .movie-group-copy{display:none}
@keyframes smartiptv-film-loop{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
/* Keep the approved outer layout; photos fill only their existing frames. */
.poster.sport-poster img{object-fit:cover;object-position:center}
.viewing-story .viewing-art .feature-photo{width:100%;height:100%;object-fit:cover;object-position:center;transform:none}
.motion-reveal{opacity:1;translate:0 0;transition:opacity .65s ease var(--reveal-delay,0ms),translate .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.motion-reveal.motion-pending{opacity:0;translate:0 20px}
.hero-copy{animation:smartiptv-intro .7s ease both}
@keyframes smartiptv-intro{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(hover:hover) and (pointer:fine){
 .movie-marquee:hover .movie-track{animation-play-state:paused}
 .button,.price-card,.feature-card,.step-card,.journal-card,.device-guide-card{transition:opacity .65s ease,translate .35s ease,box-shadow .25s ease,border-color .25s ease}
 .button:hover{translate:0 -2px}
 .price-card:hover,.feature-card:hover,.step-card:hover,.journal-card:hover,.device-guide-card:hover{translate:0 -4px;border-color:var(--mint,#a5eee0)}
 .button:active{translate:0 0}
}
@media(max-width:640px){
 .movie-group{gap:14px;padding-right:14px}
 .movie-group .shelf-card{flex-basis:45vw;width:45vw;max-width:220px}
 .movie-group .shelf-card img{height:auto;aspect-ratio:2/3;border-radius:12px}
 .shelf-section .section-heading{margin-bottom:24px}
}
@media(prefers-reduced-motion:reduce){
 .movie-marquee{overflow-x:auto!important}
 .movie-track,.hero-copy{animation:none!important;transform:none!important;will-change:auto}
 .movie-group-copy{display:none!important}
 .motion-reveal,.motion-reveal.motion-pending{opacity:1!important;translate:0 0!important;transition:none!important}
 .button,.price-card,.feature-card,.step-card,.journal-card,.device-guide-card{transition:none!important;translate:0 0!important}
}

.story-sport .viewing-art .feature-photo{object-position:50% 60%}
.story-cinema .viewing-art .feature-photo{object-position:50% 57%}
