/* Shared public navigation: brief movement with a quick start and gentle finish. */
@view-transition { navigation: auto; }
html { scroll-behavior: auto; }
::view-transition-group(root) { animation-duration: 220ms; animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); }
::view-transition-old(root) { animation: public-page-exit 140ms ease-out both; }
::view-transition-new(root) { animation: public-page-enter 220ms cubic-bezier(0.16, 1, 0.3, 1) both; }
html.public-navigation-enter body { animation: public-fallback-enter 220ms cubic-bezier(0.16, 1, 0.3, 1) both; }
@keyframes public-page-exit {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes public-page-enter {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes public-fallback-enter {
  from { opacity: 0.45; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-group(root), ::view-transition-old(root), ::view-transition-new(root),
  html.public-navigation-enter body { animation: none !important; }
}
