/* Page-to-page transition (Ash 2026-11-10). Cross-document View Transitions: browsers without support load normally.
   Top ribbon + nav stay put; only the page content changes: old page dims, blurs and sinks back,
   new page rises and fades in. Motion OFF (footer toggle) = instant swap (vt.js skips the transition). */
@view-transition { navigation: auto; }
.ribbon { view-transition-name: hoa-ribbon; }
nav { view-transition-name: hoa-nav; }
main { view-transition-name: hoa-main; }
::view-transition-group(root),
::view-transition-old(root),
::view-transition-new(root),
::view-transition-group(hoa-ribbon), ::view-transition-old(hoa-ribbon), ::view-transition-new(hoa-ribbon),
::view-transition-group(hoa-nav), ::view-transition-old(hoa-nav), ::view-transition-new(hoa-nav) { animation: none; }
::view-transition-old(root), ::view-transition-old(hoa-ribbon), ::view-transition-old(hoa-nav) { display: none; }   /* show only the new bar/nav: no double underline */
::view-transition-group(hoa-main) { animation-duration: 420ms; }
::view-transition-old(hoa-main) { animation: hoa-vt-out 300ms cubic-bezier(.4,0,1,1) both; }
::view-transition-new(hoa-main) { animation: hoa-vt-in 420ms cubic-bezier(.2,.75,.2,1) 60ms both; }
@keyframes hoa-vt-out { to { opacity: 0; filter: blur(6px) brightness(.45) sepia(.3); transform: scale(.985); } }
@keyframes hoa-vt-in { from { opacity: 0; filter: brightness(.55) blur(2px); transform: translateY(22px); } }
/* With View Transitions the veil overlay (z-index 90, covers ribbon + nav) is not used. */
html.vt #veil { display: none; }
/* Fallback without View Transitions (vt.js sets html.vtjs): same out/in on <main>, ribbon + nav untouched.
   'backwards' (not 'both') on the way in: no transform stays on <main> afterwards (it would break position:fixed inside).
   Motion OFF: site.js .nomo turns all animations off and its click handler navigates at once. */
html.vtjs #veil { display: none; }
html.vtjs main { animation: hoa-vt-in 420ms cubic-bezier(.2,.75,.2,1) 60ms backwards; }
html.vtjs.leaving main { animation: hoa-vt-out 300ms cubic-bezier(.4,0,1,1) forwards; }
