/* Site-wide baseline, loaded on every page. Created 2026-08-26.
   The site had no universal stylesheet, which is why the rules below had never been
   applied globally: 71 of 138 files animate, and only 2 honoured reduced motion.
   Keep this file tiny. It is loaded render-blocking on all 129 pages on purpose,
   because both rules below must apply before first paint to be worth anything. */

/* Respect the OS "reduce motion" setting. Durations are collapsed rather than set to
   none, so animations still reach their END STATE. Setting animation:none would leave
   any element that starts at opacity:0 and is revealed by an animation permanently
   invisible, which is how this rule usually gets rolled back after breaking a page. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    animation-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
}

/* Keyboard focus fallback. Only applies where a page has not styled focus itself, and
   :focus-visible means mouse users never see it. 38 of 138 files style focus; the rest
   relied on a browser default that several of them override away with outline:none. */
:focus-visible {
  outline: 2px solid #38bdf8;
  outline-offset: 2px;
}
