/* Light changes with the film. All decorative layers are non-interactive. */
@property --scene-glow{syntax:'<color>';inherits:true;initial-value:#f0bb78}
@property --scene-wash{syntax:'<color>';inherits:true;initial-value:#edac6230}
.cinema-edition .hero{transition:--scene-glow 1.4s ease,--scene-wash 1.4s ease}
.cinema-environment{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:layout paint}
.environment-layer{position:absolute;inset:0;opacity:0;transition:opacity 1.5s ease;pointer-events:none}
.hero[data-atmosphere="space"] .environment-space,.hero[data-atmosphere="suspense"] .environment-mist,.hero[data-atmosphere="desert"] .environment-warm,.hero[data-atmosphere="neon"] .environment-neon{opacity:1}
.cinema-edition .hero-atmosphere:before{background:linear-gradient(118deg,transparent 24%,var(--scene-wash) 43%,var(--scene-wash) 45%,transparent 66%)}
.cinema-edition .cinema-lens{background:radial-gradient(ellipse at 78% 33%,var(--scene-wash),transparent 48%),linear-gradient(113deg,transparent 38%,var(--scene-wash) 48%,transparent 61%)}
.cinema-edition .hero:not([data-atmosphere="desert"]) .dust{opacity:0!important;animation:none!important}
.cinema-star{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#e8f5ff;box-shadow:0 0 8px #b5ddff90;animation:star-breathe 7s ease-in-out var(--delay) infinite alternate;opacity:.18}
.orbital-light{position:absolute;inset:10% -12% 28% 45%;border-radius:50%;background:radial-gradient(ellipse,#a0ccff15,transparent 67%);transform:rotate(-20deg);animation:orbit-drift 22s ease-in-out infinite alternate}
.environment-mist span{position:absolute;inset:18% -20% 0 28%;border-radius:50%;background:radial-gradient(ellipse at 65% 60%,#bdc7c01b,transparent 65%);animation:mist-drift 24s ease-in-out infinite alternate}
.environment-mist span:nth-child(2){inset:30% -10% -20% 20%;animation-delay:-12s;animation-duration:31s;opacity:.7}
.environment-mist span:nth-child(3){inset:0 -25% 30% 38%;animation-delay:-6s;opacity:.45}
.environment-warm span{position:absolute;inset:-20% -15% 0 33%;background:linear-gradient(118deg,transparent 33%,#ffd29c10 45%,#ffcc8b20 47%,transparent 60%);animation:light-drift 19s ease-in-out infinite alternate}
.environment-warm span:nth-child(2){inset:-10% -30% 0 50%;opacity:.5;animation-delay:-10s;animation-duration:27s}
.environment-neon span{position:absolute;inset:5% -20% 18% 40%;background:radial-gradient(ellipse at 70% 50%,#c6a2ff22,transparent 64%);animation:mist-drift 21s ease-in-out infinite alternate}
.environment-neon span:nth-child(2){inset:23% 0 -15% 35%;background:radial-gradient(ellipse at 70% 50%,#7ac9e915,transparent 65%);animation-delay:-12s}
@keyframes star-breathe{to{opacity:.68;transform:translate3d(0,-5px,0)}}
@keyframes orbit-drift{to{transform:translate3d(-24px,8px,0) rotate(-14deg);opacity:.45}}
@keyframes mist-drift{from{transform:translate3d(-3%,2%,0) scale(.96)}to{transform:translate3d(4%,-2%,0) scale(1.06)}}
@keyframes light-drift{from{transform:translate3d(-2%,0,0) rotate(-4deg);opacity:.3}to{transform:translate3d(3%,0,0) rotate(3deg);opacity:.8}}
.cinema-edition .environment-layer:not(.environment-space) span{will-change:auto}
.cinema-edition .hero:not([data-atmosphere="space"]) .environment-space *,.cinema-edition .hero:not([data-atmosphere="suspense"]) .environment-mist *,.cinema-edition .hero:not([data-atmosphere="desert"]) .environment-warm *,.cinema-edition .hero:not([data-atmosphere="neon"]) .environment-neon *{animation-play-state:paused}
/* Depth uses the existing pointer/scroll values rather than another event loop. */
.cinema-edition .premiere-hero-poster{translate:calc(var(--scene-x,0px) * -1.2) calc(var(--scene-y,0px) * -1.2);transition:transform .8s ease,translate .6s ease}
.cinema-edition .hero-print{border-color:#ffffff30;box-shadow:22px 30px 70px #0009,-3px 0 0 #ffffff12,0 0 36px var(--scene-wash);transition:box-shadow 1.4s ease}
@media(hover:hover) and (pointer:fine){
 .cinema-edition.motion-on .film-card:hover .poster{box-shadow:0 18px 38px #0008,0 0 0 1px #e4c9b94a,0 0 23px var(--scene-wash)}
 .cinema-edition.motion-on .film-card:hover .poster:before{opacity:.35;background:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,30%),#ffe9d540,transparent 63%)}
}
/* Each week's programme keeps a distinct light palette. */
.cinema-edition .living-theme{isolation:isolate}
.edition-illumination{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;border-radius:inherit}
.edition-illumination span{position:absolute;inset:-40%;background:radial-gradient(ellipse at 75% 50%,var(--edition-light),transparent 50%);opacity:.09;animation:edition-breathe 18s ease-in-out infinite alternate}
.edition-illumination span:nth-child(2){inset:-10% -35%;opacity:.06;animation-delay:-9s;transform:rotate(30deg)}
.cinema-edition .living-theme-copy{z-index:1}
.cinema-edition .living-theme .section-kicker{color:var(--edition-light)}
.cinema-edition .living-theme .btn-primary{background:var(--edition-light);color:#171218}
.cinema-edition .living-theme[data-cinema-theme="nineties"] .living-theme-art img{filter:sepia(.25) saturate(.65)}
.cinema-edition .living-theme[data-cinema-theme="mystery"] .living-theme-art img{filter:saturate(.4) contrast(1.08)}
.cinema-edition .living-theme[data-cinema-theme="joy"] .living-theme-art img{filter:saturate(1.08)}
@keyframes edition-breathe{to{transform:translate3d(-3%,2%,0) rotate(8deg);opacity:.17}}
.hero.scene-paused .cinema-environment *,.cinema-paused .cinema-environment *,.cinema-resting .edition-illumination *,.visual-resting .edition-illumination *{animation-play-state:paused!important}
.cinema-paused .hero,.cinema-paused .environment-layer,.cinema-paused .hero-print{transition:none!important}
.cinema-paused .premiere-hero-poster{translate:none!important;transition:none!important}
.cinema-paused .film-card .poster,.cinema-paused .film-card .poster:before{transition:none!important;transform:none!important}
@media(max-width:680px),(pointer:coarse){
 .cinema-star:nth-child(n+8),.environment-mist span:nth-child(n+2),.environment-warm span:nth-child(n+2),.environment-neon span:nth-child(n+2),.orbital-light{display:none}
 .cinema-environment{opacity:.65}
 .cinema-edition .premiere-hero-poster{translate:none}
 .edition-illumination span:nth-child(2){display:none}
 .cinema-edition .hero-print{box-shadow:8px 10px 30px #0009}
}
@media(prefers-reduced-motion:reduce){
 .cinema-environment,.edition-illumination{display:none!important}
 .cinema-edition .hero,.cinema-edition .hero-print,.cinema-edition .premiere-hero-poster,.cinema-edition .environment-layer{transition:none!important;translate:none!important}
}
