/* Fail closed: the early controller opts in only with cross-document lifecycle support. */
@view-transition { navigation: none; }
:root { --page-fade-duration:240ms; }
.site-header { view-transition-name:site-header; }
::view-transition-group(root),::view-transition-group(site-header) { animation:none; }
::view-transition-old(root) { animation:none;opacity:1;mix-blend-mode:normal; }
::view-transition-new(root) { animation:page-crossfade var(--page-fade-duration) cubic-bezier(0.23,1,0.32,1) both;mix-blend-mode:normal; }
::view-transition-old(site-header) { animation:none;opacity:0; }
::view-transition-new(site-header) { animation:none;opacity:1; }
@keyframes page-crossfade { from {opacity:0} to {opacity:1} }
@media(prefers-reduced-motion:reduce) {
  :root { --page-fade-duration:100ms; }
  ::view-transition-new(root) { animation:page-crossfade 100ms cubic-bezier(0.23,1,0.32,1) both!important; }
}

/* Unsupported-engine fallback: incoming fade only, never a delayed outgoing fade. */
html[data-page-entry="pending"] .gifts-page-heading,
html[data-page-entry="pending"] main > section > .section-wrap { opacity:0; }

/* Footer is a stable surface in both native navigation and scroll reveals. */
.site-footer{view-transition-name:site-footer;opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
::view-transition-group(site-footer){animation:none}
::view-transition-old(site-footer){animation:none;opacity:0}
::view-transition-new(site-footer){animation:none;opacity:1}
