/* Mouvements décoratifs limités au visuel de l'accueil. */
@media (prefers-reduced-motion: no-preference) {
  .hero .orb-scene .sphere {
    animation: hero-sphere-breathe 12s ease-in-out infinite;
  }
  .hero .orb-scene .orb-symbol {
    animation: hero-symbol-float 12s ease-in-out infinite;
  }
  .hero .orb-scene .sparkles {
    animation: hero-stars-breathe 16s ease-in-out infinite;
  }
  @supports (offset-path: ellipse(50% 50% at 50% 50%)) {
    .hero .orb-scene .orbit::after {
      left: 0;
      top: 0;
      width: 7px;
      height: 7px;
      offset-path: ellipse(50% 50% at 50% 50%);
      offset-anchor: center;
      offset-rotate: 0deg;
      animation: hero-orbit-travel 28s linear infinite;
    }
    .hero .orb-scene .orbit.o2::after {
      animation-duration: 36s;
      animation-delay: -14s;
      animation-direction: reverse;
    }
    .hero .orb-scene .orbit.o3::after {
      animation-duration: 44s;
      animation-delay: -29s;
      opacity: .6;
    }
  }
}
@keyframes hero-sphere-breathe {
  0%, 100% { scale: 1; translate: 0 0; }
  50% { scale: 1.018; translate: 0 -5px; }
}
@keyframes hero-symbol-float {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -5px; }
}
@keyframes hero-stars-breathe {
  0%, 100% { opacity: .3; }
  50% { opacity: .48; }
}
@keyframes hero-orbit-travel {
  from { offset-distance: 0%; }
  to { offset-distance: 100%; }
}
