/* Boucles animées sans voix : bougies, boule de cristal, étoiles. Légères (aucune vidéo). */
.scene{display:block}
.hero-art{perspective:900px}
.hero-art .scene{transition:transform .5s ease-out}
.hero-art:hover .scene{transform:rotateY(-4deg) rotateX(2deg)}
@keyframes flicker{0%,100%{transform:translate(0,0) scale(1,1);opacity:1}20%{transform:translate(.6px,-1px) scale(.96,1.05);opacity:.92}45%{transform:translate(-.5px,0) scale(1.03,.97);opacity:1}70%{transform:translate(.4px,-.6px) scale(.98,1.04);opacity:.88}}
.flame{transform-box:fill-box;transform-origin:50% 100%;animation:flicker 1.6s infinite ease-in-out}
.c2 .flame{animation-duration:2.1s;animation-delay:-.7s}
@keyframes glowpulse{0%,100%{opacity:.55}50%{opacity:.95}}
.flame-glow{animation:glowpulse 1.8s infinite ease-in-out}
.c2 .flame-glow{animation-delay:-.9s}
@keyframes halo{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.95;transform:scale(1.06)}}
.halo{transform-box:fill-box;transform-origin:50% 50%;animation:halo 4s infinite ease-in-out}
@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:1}}
.twinkle{animation:twinkle 3s infinite ease-in-out}
.t2{animation-delay:-.8s}.t3{animation-delay:-1.6s}.t4{animation-delay:-2.2s}.t5{animation-delay:-.4s}
@keyframes spark{0%,100%{opacity:0}50%{opacity:.95}}
.spark{animation:spark 3.2s infinite ease-in-out}
.sp2{animation-delay:-1.1s}.sp3{animation-delay:-2.1s}
@keyframes shine{0%,100%{opacity:.35}50%{opacity:.7}}
.shine{animation:shine 4s infinite ease-in-out}
@keyframes smoke{0%{opacity:0;transform:translateY(10px)}35%{opacity:.55}100%{opacity:0;transform:translateY(-24px)}}
.smoke{transform-box:fill-box;transform-origin:50% 100%;animation:smoke 5s infinite ease-in-out}
.s2{animation-delay:-1.7s}.s3{animation-delay:-3.3s}
/* hors écran : en pause */
[data-loop].loop-paused *{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){
  .scene *{animation:none!important}
  .hero-art:hover .scene{transform:none}
}
