/* Optional, one-pass motion for evidence guides. It is intentionally scoped and removable. */
@media (prefers-reduced-motion: no-preference) {
  .fmp-motion .guide-kicker span { animation: fmp-signal-ready .62s cubic-bezier(.2,.8,.2,1) .12s both; }
  .fmp-motion .valorant-hero::after,
  .fmp-motion .cs2-hero::after,
  .fmp-motion .apex-hero::after,
  .fmp-motion .fortnite-hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.15) 50%,transparent 65%); transform:translateX(-115%); animation:fmp-hero-sweep .9s cubic-bezier(.2,.7,.2,1) .14s both; }
  .fmp-motion .status-card { animation:fmp-status-arrive .58s cubic-bezier(.2,.8,.2,1) .18s both; }
  .fmp-motion .quick-grid>div,
  .fmp-motion .signal-key>div,
  .fmp-motion .test-log tbody tr { transition:transform .18s ease, background-color .18s ease, box-shadow .18s ease; }
  .fmp-motion .quick-grid>div:hover,
  .fmp-motion .signal-key>div:hover,
  .fmp-motion .test-log tbody tr:hover { transform:translateY(-2px); background-color:rgba(255,255,255,.045); box-shadow:0 10px 26px rgba(0,0,0,.14); }
  .fmp-motion a:focus-visible,
  .fmp-motion summary:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
}
@keyframes fmp-signal-ready { from { opacity:0; transform:scale(.45); } to { opacity:1; transform:scale(1); } }
@keyframes fmp-hero-sweep { from { opacity:0; transform:translateX(-115%); } 20% { opacity:1; } to { opacity:0; transform:translateX(115%); } }
@keyframes fmp-status-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce) { .fmp-motion *, .fmp-motion *::before, .fmp-motion *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
