/* DJASSO global motion layer — transform/opacity only, no layout shift. Cut by Connexion faible, Pause des animations and prefers-reduced-motion. */
@media (prefers-reduced-motion: no-preference) {
  #nav a { transition: background-color .18s ease, color .18s ease, transform .18s ease; }
  #nav a:hover { transform: translateX(3px); }
  #nav a .nav-icon { transition: transform .18s ease; }
  #nav a:hover .nav-icon { transform: scale(1.18); }
  .brand img { animation: dj-brand-float 6s ease-in-out infinite; }
  @keyframes dj-brand-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
  #content :is(.stat,.dj-card,.pc-card,.tool-card,.ch-hubtile,.soc-card,.sv-site,.mt-card) { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
  #content :is(.stat,.dj-card,.pc-card,.tool-card,.ch-hubtile):hover { transform: translateY(-3px); box-shadow: 0 10px 26px #00000059; }
  #content .ch-choice { transition: transform .22s ease, box-shadow .22s ease; transform-style: preserve-3d; }
  #content .ch-choice:hover { transform: perspective(900px) rotateX(5deg) rotateY(-6deg) translateY(-3px); box-shadow: 0 16px 34px #00000059; }
  #content :is(.primary,.secondary) { transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease; }
  #content :is(.primary,.secondary):hover { transform: translateY(-1px); box-shadow: 0 6px 14px #0000004d; }
  #content table tbody tr { transition: background-color .15s ease; }
}
@media (prefers-reduced-motion: reduce) {
  #nav a, #nav a .nav-icon, .brand img, #content :is(.stat,.dj-card,.pc-card,.tool-card,.ch-hubtile,.ch-choice,.primary,.secondary) { animation: none !important; transition: none !important; }
}
