@keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-50px); } to { opacity: 1; transform: translateX(0); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(50px); } to { opacity: 1; transform: translateX(0); } }
@keyframes pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.7; } }
.animate-fade-in-up { opacity: 0; animation: fadeInUp 2s ease-out forwards; }
.animate-slide-in-left { opacity: 0; animation: slideInLeft 2s ease-out forwards; }
.animate-slide-in-right { opacity: 0; animation: slideInRight 2s ease-out forwards; }
.animation-delay-300 { animation-delay: 0.3s; }
.animation-delay-500 { animation-delay: 0.5s; }
.animation-delay-700 { animation-delay: 0.7s; }
.animation-delay-900 { animation-delay: 0.9s; }
.animation-delay-1100 { animation-delay: 1.1s; }
.animation-delay-1300 { animation-delay: 1.3s; }
.animation-delay-1000 { animation-delay: 1s; }
.backdrop-blur-sm { backdrop-filter: blur(4px); }
.backdrop-blur-md { backdrop-filter: blur(12px); }
.bg-clip-text { -webkit-background-clip: text; background-clip: text; }
html { scroll-behavior: smooth; }
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #1e40af; }
::-webkit-scrollbar-thumb { background: #d97706; border-radius: 4px; }
.max-h-96 { max-height: 24rem; }
.max-h-0 { max-height: 0; }
a:focus, button:focus { outline: 2px solid #3b82f6; outline-offset: 2px; }
button, .cursor-pointer { user-select: none; -webkit-user-select: none; }
