/* Cross-document enhancement. Standard navigation remains the source of truth. */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }

  /* Keep the custom header out of the content fade. One header per document. */
  .gf-site-header { view-transition-name: gf-site-header; }

  ::view-transition-group(root) { animation-duration: 280ms; }
  ::view-transition-old(root) {
    animation: gf-page-out 160ms cubic-bezier(.4,0,1,1) both;
    mix-blend-mode: normal;
  }
  ::view-transition-new(root) {
    animation: gf-page-in 280ms cubic-bezier(.22,1,.36,1) both;
    mix-blend-mode: normal;
  }
  ::view-transition-group(gf-site-header) { animation-duration: 0s; z-index: 2; }
  ::view-transition-old(gf-site-header) { animation: none; opacity: 0; }
  ::view-transition-new(gf-site-header) { animation: none; opacity: 1; mix-blend-mode: normal; }
  /* Native snapshots must not swallow a rapid second click. */
  ::view-transition { pointer-events: none; }
}
@keyframes gf-page-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes gf-page-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
