.finale-scene{margin:16px 0;border-radius:18px;overflow:hidden;background:var(--woodDeep);border:2px solid var(--brass)}
.finale-animation{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--woodDeep)}
.finale-animation img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.finale-animation .scene-end{opacity:0}.finale-scene figcaption{background:var(--woodDark);color:var(--cardLight);padding:14px;font-weight:800;text-align:center;font-size:17px}
.scene-ready .scene-start{animation:scene-camera 6s ease both;animation-delay:var(--scene-elapsed,0ms)}
.scene-ready .has-ending .scene-start{animation:scene-before 6s ease both;animation-delay:var(--scene-elapsed,0ms)}
.scene-ready .scene-end{animation:scene-after 6s ease both;animation-delay:var(--scene-elapsed,0ms)}
.finale-animation::after{content:'';position:absolute;inset:0;background:var(--woodDeep);opacity:0;pointer-events:none}
.scene-ready .has-ending::after{animation:scene-cut 6s linear both;animation-delay:var(--scene-elapsed,0ms)}
.art-off .finale-animation{display:none}
@keyframes scene-camera{from{transform:scale(1.035)}to{transform:scale(1)}}
@keyframes scene-before{0%{transform:scale(1);opacity:1}42%{transform:scale(1.035);opacity:1}43%,100%{opacity:0}}
@keyframes scene-after{0%,42%{opacity:0;transform:scale(1.035)}43%{opacity:1;transform:scale(1.035)}100%{opacity:1;transform:scale(1)}}
@keyframes scene-cut{0%,32%,65%,100%{opacity:0}41%,45%{opacity:1}}
@media(prefers-reduced-motion:reduce){.finale-scene *,.finale-scene *::after{animation:none!important}.scene-ready .has-ending .scene-end{opacity:1}}
