/* Roster page transitions (r6). Pairs with transition.js and the inline head snippet (qa/transitions/make-snippet.mjs).
   No cross-document view transitions: they snapshot the header, crossfade two different headers (theme, CTA, page label,
   scrolled state) and, because a view-transition-named element is a backdrop root, they kill the header's glass blur
   on every page. The header is now static HTML present in the first frame and never animates between pages; on an
   internal navigation only the page content fades in (html.pgt-fade, set by the head snippet). */

/* incoming page: everything but the header fades in */
html.pgt-fade body > :not([data-roster-nav]) { animation: pgt-fade-in .24s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes pgt-fade-in { from { opacity: 0; } }

/* links to another page draw their hover line in that page's colors */
.dotlink[data-pgt-to], .u-draw[data-pgt-to] { --ul-img: linear-gradient(90deg, var(--pgt-d0), var(--pgt-d1)); }

@media (prefers-reduced-motion: reduce) {
  html.pgt-fade body > :not([data-roster-nav]) { animation: none; }
}
