@keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-20px); } } @keyframes float-delayed { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } } @keyframes spin-slow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .animate-float { animation: float 6s ease-in-out infinite; } .animate-float-delayed { animation: float-delayed 8s ease-in-out infinite; } .animate-spin-slow { animation: spin-slow 20s linear infinite; } .font-inter { font-family: 'Inter', sans-serif; } .gradient-text { background: linear-gradient(135deg, #3b82f6, #1e40af); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; } .hover-lift:hover { transform: translateY(-8px); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); } /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #3b82f6; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #2563eb; } /* Glass morphism effect */ .glass { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); } /* Pulse animation for important elements */ @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 5px rgba(59, 130, 246, 0.5); } 50% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.8); } } .animate-pulse-glow { animation: pulse-glow 2s ease-in-out infinite; } /* Gradient borders */ .gradient-border { position: relative; background: linear-gradient(45deg, #3b82f6, #1e40af); padding: 2px; border-radius: 12px; } .gradient-border > div { background: white; border-radius: 10px; } /* Mobile menu animation */ .mobile-menu-enter { transform: translateX(100%); } .mobile-menu-enter-active { transform: translateX(0); transition: transform 0.3s ease-in-out; } .mobile-menu-exit { transform: translateX(0); } .mobile-menu-exit-active { transform: translateX(100%); transition: transform 0.3s ease-in-out; }