.spinner {
  border-top-color: #8b5cf6; /* Matches purple-500 */
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes pulse-purple {
  0% { box-shadow: 0 0 5px rgba(20,184,166,0.6), 0 0 10px rgba(20,184,166,0.6); }
  50% { box-shadow: 0 0 20px rgba(20,184,166,1), 0 0 40px rgba(20,184,166,0.8); }
  100% { box-shadow: 0 0 5px rgba(20,184,166,0.6), 0 0 10px rgba(20,184,166,0.6); }
}