/* Native same-origin page navigation. No link interception or client router. */
@layer reset, styles, prewind, site;

@layer styles {
  @view-transition { navigation: auto; }
  @keyframes flea-page-out { from { opacity: 1; } to { opacity: 0; } }
  @keyframes flea-page-in { from { opacity: 0; } to { opacity: 1; } }
  ::view-transition-old(root), ::view-transition-old(flea-page) {
    animation: flea-page-out 240ms ease both;
    mix-blend-mode: normal;
  }
  ::view-transition-new(root), ::view-transition-new(flea-page) {
    animation: flea-page-in 240ms ease both;
    mix-blend-mode: normal;
  }
  /* The standard layout fades content, leaving the header and owner bar steady.
     Other layouts receive a whole-page fade without adding wrappers. */
  body > main:only-of-type { view-transition-name: flea-page; }
  ::view-transition-group(flea-page) { animation: none; }
  html:has(> body > main:only-of-type)::view-transition-old(root) { display: none; }
  html:has(> body > main:only-of-type)::view-transition-new(root) { animation: none; }
  /* The same named underline moves between the current desktop links. */
  ::view-transition-group(navigation-indicator) {
    animation-duration:var(--motion-navigation);
    animation-timing-function:var(--ease-navigation);
  }
  ::view-transition-old(navigation-indicator),
  ::view-transition-new(navigation-indicator) {
    width:100%;
    height:100%;
    animation:none;
    mix-blend-mode:normal;
  }
  @media (prefers-reduced-motion: reduce) {
    @view-transition { navigation: none; }
    ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none; }
  }
}
