/* Shared utility styles */
.text-shadow-sm { text-shadow: 0 1px 2px rgba(0,0,0,0.1); }
.text-shadow-md { text-shadow: 0 4px 6px rgba(0,0,0,0.3); }

/* Reusable animation helpers */
@keyframes blob {
  0% { transform: translate(0px, 0px) scale(1); }
  33% { transform: translate(30px, -50px) scale(1.1); }
  66% { transform: translate(-20px, 20px) scale(0.9); }
  100% { transform: translate(0px, 0px) scale(1); }
}

.animate-blob { animation: blob 7s infinite; }
.animation-delay-2000 { animation-delay: 2s; }
.animate-spin-slow { animation: spin 12s linear infinite; }

/* Form focus ring helper */
.input-focus-ring:focus-within {
  box-shadow: 0 0 0 4px rgba(45, 212, 191, 0.2);
  border-color: #2dd4bf;
}

/* Feedback animation */
@keyframes fadeOut {
  0% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(-10px); }
}

.animate-fade-out { animation: fadeOut 1s ease-out forwards; }
