@media (prefers-reduced-motion: no-preference) {

  /* Symmetric fan float keyframes */
  @keyframes floatFront {
    0%,  100% { transform: rotate(0deg)    translateX(0px)   translateY(0px)  scale(1.0); }
    33%        { transform: rotate(0.4deg)  translateX(0px)   translateY(-9px) scale(1.0); }
    66%        { transform: rotate(-0.3deg) translateX(0px)   translateY(-4px) scale(1.0); }
  }
  /* card-mid = RIGHT card */
  @keyframes floatMid {
    0%,  100% { transform: rotate(12deg)   translateX(65px)  translateY(10px) scale(0.84); }
    33%        { transform: rotate(11.5deg) translateX(65px)  translateY(2px)  scale(0.84); }
    66%        { transform: rotate(12.4deg) translateX(65px)  translateY(6px)  scale(0.84); }
  }
  /* card-back = LEFT card */
  @keyframes floatBack {
    0%,  100% { transform: rotate(-12deg)   translateX(-65px) translateY(10px) scale(0.84); }
    33%        { transform: rotate(-11.5deg) translateX(-65px) translateY(2px)  scale(0.84); }
    66%        { transform: rotate(-12.4deg) translateX(-65px) translateY(6px)  scale(0.84); }
  }

  @keyframes glowPulse {
    0%   { border-color: #FF3D5A44; box-shadow: 0 0 0 0 #FF3D5A33; }
    50%  { border-color: #FF3D5A99; box-shadow: 0 0 12px 4px #FF3D5A22; }
    100% { border-color: #FF3D5A44; box-shadow: 0 0 0 0 #FF3D5A00; }
  }

  @keyframes playPulse {
    0%   { transform: translate(-50%, -50%) scale(1); }
    50%  { transform: translate(-50%, -50%) scale(1.15); }
    100% { transform: translate(-50%, -50%) scale(1); }
  }

  @keyframes spin {
    to { transform: rotate(360deg); }
  }

  @keyframes checkCircleIn {
    from { opacity: 0; transform: scale(0.7); }
    to   { opacity: 1; transform: scale(1); }
  }

  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  @keyframes countUp {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  /* Step slide transitions */
  .step-content.exit-left {
    animation: slideExitLeft 200ms var(--ease-out) forwards;
  }
  .step-content.enter-right {
    animation: slideEnterRight 250ms var(--ease-out) forwards;
  }
  .step-content.exit-right {
    animation: slideExitRight 200ms var(--ease-out) forwards;
  }
  .step-content.enter-left {
    animation: slideEnterLeft 250ms var(--ease-out) forwards;
  }

  @keyframes slideExitLeft {
    from { opacity: 1; transform: translateX(0); }
    to   { opacity: 0; transform: translateX(-20px); }
  }

  @keyframes slideEnterRight {
    from { opacity: 0; transform: translateX(20px); }
    to   { opacity: 1; transform: translateX(0); }
  }

  @keyframes slideExitRight {
    from { opacity: 1; transform: translateX(0); }
    to   { opacity: 0; transform: translateX(20px); }
  }

  @keyframes slideEnterLeft {
    from { opacity: 0; transform: translateX(-20px); }
    to   { opacity: 1; transform: translateX(0); }
  }

  .earning-range-update {
    animation: countUp 300ms var(--ease-out);
  }

  /* Card front scale on platform focus */
  .card-front.interact-scale {
    animation: none !important;
    transform: rotate(0deg) translateX(0) translateY(0) scale(1.02) !important;
    transition: transform 300ms var(--ease-out) !important;
  }
}

/* Always-on (not reduced-motion-gated) */
@keyframes spin {
  to { transform: rotate(360deg); }
}
