/* NOVA 12.5.82 — transitions de navigation fluides */
@view-transition { navigation: auto; }

::view-transition-old(root) {
  animation: nova-page-out .16s cubic-bezier(.4,0,1,1) both;
}
::view-transition-new(root) {
  animation: nova-page-in .26s cubic-bezier(.16,1,.3,1) both;
}

@keyframes nova-page-in {
  from { opacity: 0; transform: translateY(8px) scale(.997); filter: blur(2px); }
  to   { opacity: 1; transform: none; filter: none; }
}
@keyframes nova-page-out {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateY(-4px) scale(.999); }
}
@keyframes nova-content-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: none; }
}

html.nova-motion-fallback body {
  animation: nova-page-in .25s cubic-bezier(.16,1,.3,1) both;
}
html.nova-motion-fallback.nova-leaving body {
  animation: nova-page-out .11s cubic-bezier(.4,0,1,1) both;
  pointer-events: none;
}

.nova-motion-item {
  animation: nova-content-in .34s cubic-bezier(.16,1,.3,1) both;
  animation-delay: var(--nova-motion-delay, 0ms);
}

/* Les changements d'état internes restent doux sans rendre le site lourd. */
main, .media-rail, .catalog-grid, .home-rows, [data-catalog-grid], [data-episodes], [data-comments] {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-old(root),
  ::view-transition-new(root),
  html.nova-motion-fallback body,
  html.nova-motion-fallback.nova-leaving body,
  .nova-motion-item {
    animation: none !important;
    transform: none !important;
    filter: none !important;
  }
  main, .media-rail, .catalog-grid, .home-rows, [data-catalog-grid], [data-episodes], [data-comments] {
    scroll-behavior: auto;
  }
}
