/* ════════════════════════════════════════════════════════════════════
   baseball-moment-beat.css · DH #355 — Baseball Moment heartbeat windup skin
   ────────────────────────────────────────────────────────────────────
   Activated by the heartbeat ENGINE's data-moment-beat="1" on the active
   felt during the ~1s windup (flag MOMENT_BEAT, baseball-only, sport-gated).
   PURE VISUAL anticipation — the betting lock is engine/server-driven and is
   NOT touched here. pointer-events:none so it can never intercept a tap.
   Per-game accent: LiveRoll gold (default) · LiveCrash cyan (.fp2-device).
   ════════════════════════════════════════════════════════════════════ */
[data-moment-beat="1"]        { --beat-accent: #d4a843; }   /* LiveRoll gold */
.fp2-device[data-moment-beat="1"] { --beat-accent: #2af0ff; }   /* LiveCrash cyan */

@keyframes lg-beat-charge { from { transform: scaleX(0); opacity: .35; } to { transform: scaleX(1); opacity: 1; } }
@keyframes lg-beat-glow {
  0%   { box-shadow: inset 0 0 0 0 transparent; }
  55%  { box-shadow: inset 0 0 40px -10px var(--beat-accent, #d4a843); }
  100% { box-shadow: inset 0 0 0 0 transparent; }
}

[data-moment-beat="1"] {
  position: relative;
  animation: lg-beat-glow 1s cubic-bezier(0.2, 0.8, 0.2, 1);
}
/* a thin "charging" line sweeps across the top of the felt as the pitch winds up */
[data-moment-beat="1"]::after {
  content: "";
  position: absolute; left: 0; right: 0; top: 0; height: 2px;
  transform-origin: left center;
  background: linear-gradient(90deg, transparent, var(--beat-accent, #d4a843));
  box-shadow: 0 0 10px -1px var(--beat-accent, #d4a843);
  animation: lg-beat-charge 1s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
  pointer-events: none;
  z-index: 6;
}
@media (prefers-reduced-motion: reduce) {
  [data-moment-beat="1"], [data-moment-beat="1"]::after { animation: none; }
}
