/* ═══════════════════════════════════════════════════════
   animations.css — Keyframes & Transition Helpers
═══════════════════════════════════════════════════════ */

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

@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.2; }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateX(-50%) translateY(16px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

@keyframes popIn {
  from { opacity: 0; transform: scale(0.9); }
  to   { opacity: 1; transform: scale(1); }
}

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

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes pulse-marker {
  0%, 100% { transform: scale(1);   opacity: 1; }
  50%       { transform: scale(1.4); opacity: 0.5; }
}

/* Live dot pulse */
.dot.live {
  animation: blink 1.4s ease-in-out infinite;
}

/* Card hover lift */
.lot-card {
  will-change: transform;
}

/* Panel open smooth reveal */
.map-panel.open {
  animation: slideUp 0.22s ease forwards;
}

/* Modal backdrop fade */
.modal-bg.open {
  animation: fadeIn 0.18s ease forwards;
}
