.motion-held { visibility: hidden !important; }
.motion-ghost {
  position: fixed; top: 0; left: 0; z-index: 85; pointer-events: none;
  transform-origin: center; will-change: transform, opacity;
  filter: drop-shadow(0 12px 10px #0009);
}
.motion-ghost .motion-face {
  position: absolute; inset: 0; width: 100% !important; height: 100%; margin: 0;
  transform: none !important; animation: none !important; transition: none !important;
  visibility: visible !important;
}
.motion-ghost .card img { display: block; width: 100%; height: 100%; object-fit: contain; }
.motion-ghost .unit__frame { filter: none; }
.motion-ghost .unit::after { display: none; }
.motion-strike {
  animation: motion-strike 260ms cubic-bezier(.2,.85,.28,1) both;
  transform-origin: center;
  will-change: transform, filter;
}
.motion-contact {
  animation: motion-contact 260ms cubic-bezier(.18,.8,.3,1) both;
  transform-origin: center;
  will-change: transform, filter;
}
@keyframes motion-strike {
  0% { transform: translateY(0) scale(1); filter: brightness(1); }
  42% { transform: translateY(-5px) scale(1.05); filter: brightness(1.18) saturate(1.12); }
  76% { transform: translateY(2px) scale(1.02); filter: brightness(1.25) saturate(1.2); }
  100% { transform: translateY(0) scale(1); filter: brightness(1); }
}
@keyframes motion-contact {
  0% { transform: translateY(0) scale(1); filter: brightness(1); }
  48% { transform: translateY(0) scale(1); filter: brightness(1); }
  70% { transform: translateY(3px) scale(.96); filter: brightness(1.32) saturate(1.2); }
  100% { transform: translateY(0) scale(1); filter: brightness(1); }
}
@media (prefers-reduced-motion: reduce) {
  .motion-strike, .motion-contact { animation: none; }
}
