/* ==========================================================================
   Reveal primitives and the prefers-reduced-motion escape hatch.
   Loads last so it can override anything above it.
   ========================================================================== */

.reveal{ opacity:0; transform:translateY(28px); will-change:transform,opacity; }
@media (prefers-reduced-motion:reduce){
  /* .dot rather than a list of the four places a dot appears. The list was
     an allowlist that had to be kept in sync by hand, and it had already
     fallen out of sync: .cl-sla .dot in the contact panel kept pulsing
     forever under reduce, because nobody added it when that panel was built.
     Every pulsing dot on the site carries this class, so matching the class
     covers the next one too.

     !important is load-bearing here, not laziness. This file loading last
     only breaks ties at EQUAL specificity, and the component rules are more
     specific than a bare class -- .hero .eyebrow .dot is (0,3,0) against
     (0,1,0). Without it the broader selector silently loses and MORE dots
     animate than before. A reduced-motion kill switch has to beat every
     component rule by construction; that is exactly what !important is for. */
  .grain,.hero .scrollcue .bar::after,.strip .mq-track,.dot{ animation:none !important; }
  .reveal{ opacity:1; transform:none; }
  .ph .ph-out li,.ph .ph-ok{ opacity:1; transform:none; }
}
