/* Atlas motion layer:cross-page view transitions, load fade, reveal-on-scroll.
   Everything here is disabled under prefers-reduced-motion. */
html{scroll-behavior:smooth;scroll-padding-top:110px}
[id]{scroll-margin-top:110px}
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .header{view-transition-name:atlas-header}
  .footer{view-transition-name:atlas-footer}
  .site-brand{view-transition-name:atlas-logo}
  ::view-transition-group(root){animation-duration:560ms;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
  ::view-transition-old(root){animation:atlas-vt-out 360ms cubic-bezier(.4,0,.2,1) both}
  ::view-transition-new(root){animation:atlas-vt-in 560ms cubic-bezier(.22,.61,.36,1) 80ms both}
  ::view-transition-group(atlas-header),::view-transition-group(atlas-logo),::view-transition-group(atlas-footer){animation-duration:480ms;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
  @keyframes atlas-vt-out{to{opacity:0;transform:translateY(-10px);filter:blur(6px)}}
  @keyframes atlas-vt-in{from{opacity:0;transform:translateY(16px);filter:blur(8px)}}
  /* Fallback when cross-document view transitions are unsupported (or file://) */
  html.motion-fallback main{animation:atlas-load-in 520ms cubic-bezier(.22,.61,.36,1) both}
  @keyframes atlas-load-in{from{opacity:0;transform:translateY(12px)}}
  /* Reveal-on-scroll:hidden state only once JS adds .motion-ready */
  html.motion-ready .reveal:not(.is-in){opacity:0;transform:translateY(22px)}
  html.motion-ready .reveal{transition:opacity 700ms cubic-bezier(.22,.61,.36,1),transform 700ms cubic-bezier(.22,.61,.36,1);transition-delay:var(--reveal-delay,0ms)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
