/* ============================================================
   view-transitions.css — transitions natives entre pages (View
   Transitions API, navigation multi-documents). Chargé par les 3 layouts
   (public, admin, auth) — voir layouts/public.php, layouts/admin.php,
   layouts/auth.php. Dégradation silencieuse sur les navigateurs qui ne
   supportent pas encore @view-transition (Chrome/Edge 126+ à ce jour) :
   navigation inchangée, sans erreur ni flash.
   ============================================================ */
@view-transition {
  navigation: auto;
}

::view-transition-group(root) {
  animation-duration: 0.5s;
  animation-timing-function: cubic-bezier(.4, 0, .2, 1);
}

/* "Focus pull" : la page qui part avance légèrement vers l'œil (scale up)
   en se floutant, la nouvelle arrive de plus loin (scale down) et se nettoie
   — sensation de profondeur/traversée plutôt qu'un simple glissement latéral. */
::view-transition-old(root) {
  animation: ng-page-out 0.4s cubic-bezier(.4, 0, .2, 1) both;
}

::view-transition-new(root) {
  animation: ng-page-in 0.5s cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes ng-page-out {
  to { opacity: 0; transform: scale(1.045); filter: blur(6px); }
}

@keyframes ng-page-in {
  from { opacity: 0; transform: scale(0.965); filter: blur(6px); }
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(root),
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none !important;
  }
}
