/* Custom Animations Polyfill for TailwindCSS Animate */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideInFromBottom {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
}

@keyframes zoomIn {
    from { transform: scale(0.95); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.animate-in {
    animation-duration: 0.3s;
    animation-fill-mode: both;
    animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}

.fade-in {
    animation-name: fadeIn;
}

.slide-in-from-bottom {
    animation-name: slideInFromBottom;
}

.zoom-in-95 {
    animation-name: zoomIn;
}

/* Utility for hidden/visible transitions */
.hidden {
    display: none !important;
}

/* Gradient Text Fallback */
.gradient-text {
  background: linear-gradient(to right, #1e40af, #3b82f6);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
