/* Zeus's bolt discharges (edge-strike.js): the one canvas the strike is drawn on, the bolt charging as he pulls it, and the card or coin
   it strikes crackling for a second. */
.strike-layer { position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; z-index: 2147483000; pointer-events: none; contain: strict; }
.strike-layer[hidden] { display: none; }

/* Pulled past the foot of its track, the bolt stretches down after the finger and its blue light holds on. */
.work-rail.charging .bolt-flash, .work-rail.striking .bolt-flash { opacity: 1; animation: none; }
.work-rail.charging .mark-bolt { filter: drop-shadow(0 0 4px rgba(140, 200, 255, 0.9)); }
.work-rail .mark-bolt { transition: transform 0.28s cubic-bezier(.2, 1.4, .4, 1); }
.work-rail.charging .mark-bolt { transition: none; }
.work-rail.striking .mark-bolt { filter: drop-shadow(0 0 6px #bfe2ff) drop-shadow(0 0 14px rgba(90, 140, 255, 0.9)) brightness(1.35); }

/* Struck: an electric rim inside the card (its outer glow is drawn on the canvas, which the lane's own clipping cannot cut). */
.detail .work-strip-item.strike-charged, .strike-charged.strike-card {
  border-color: #7cc0ff; box-shadow: inset 0 0 0 1px #5aa8ff, inset 0 0 16px rgba(70, 140, 255, 0.5);
}
.strike-charged.strike-coin { border-radius: 50%; filter: drop-shadow(0 0 5px rgba(160, 210, 255, 0.95)) drop-shadow(0 0 16px rgba(80, 130, 255, 0.7)) brightness(1.18); }
@media (prefers-reduced-motion: no-preference) {
  .strike-charged { animation: strike-crackle 1.15s steps(1) forwards; }
}
@keyframes strike-crackle {
  0% { filter: brightness(1.9) saturate(0.6); }
  8% { filter: brightness(1.15); }
  14% { filter: brightness(1.6) saturate(0.7); }
  22% { filter: brightness(1.05); }
  34% { filter: brightness(1.35); }
  46% { filter: brightness(1.08); }
  60% { filter: brightness(1.25); }
  76% { filter: brightness(1.05); }
  100% { filter: none; }
}
@keyframes strike-crackle-coin {
  0% { filter: drop-shadow(0 0 8px #e6f4ff) drop-shadow(0 0 22px rgba(90, 140, 255, 0.95)) brightness(1.9); }
  10% { filter: drop-shadow(0 0 4px rgba(160, 210, 255, 0.9)) brightness(1.1); }
  18% { filter: drop-shadow(0 0 7px #d6ecff) drop-shadow(0 0 18px rgba(90, 140, 255, 0.85)) brightness(1.55); }
  30% { filter: drop-shadow(0 0 4px rgba(160, 210, 255, 0.8)) brightness(1.08); }
  44% { filter: drop-shadow(0 0 6px rgba(190, 225, 255, 0.9)) brightness(1.3); }
  62% { filter: drop-shadow(0 0 3px rgba(160, 210, 255, 0.7)) brightness(1.05); }
  100% { filter: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .strike-charged.strike-coin { animation: strike-crackle-coin 1.15s steps(1) forwards; }
}
