/* Page transitions, 8 Nov 2026: native cross-document View Transitions. The header stays put (its own group, no animation);
   the page content fades out quickly and fades in with a short 6px rise, all ease-out and under 250ms.
   Browsers without support navigate normally; reduced motion gets no animation. Loaded last so it settles the earlier layers. */
@view-transition{navigation:auto}
.hdr{view-transition-name:site-header}
main{view-transition-name:vm-main}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-fade{from{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(6px)}}
@media(prefers-reduced-motion:no-preference){
 html::view-transition-group(root),html::view-transition-group(site-header),html::view-transition-group(vm-main){animation:none!important}
 html::view-transition-old(site-header){display:none}
 html::view-transition-new(site-header){animation:none!important}
 html::view-transition-old(root){animation:vt-out .16s cubic-bezier(.23,1,.32,1) both!important}
 html::view-transition-new(root){animation:vt-fade .22s cubic-bezier(.23,1,.32,1) both!important}
 html::view-transition-old(vm-main){animation:vt-out .14s cubic-bezier(.23,1,.32,1) both!important}
 html::view-transition-new(vm-main){animation:vt-in .24s cubic-bezier(.23,1,.32,1) both!important}
}
@media(prefers-reduced-motion:reduce){
 html::view-transition-group(*),html::view-transition-old(*),html::view-transition-new(*){animation:none!important}
}
