/* Custom animations and styles */ @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-20px); } } @keyframes text-shine { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } } @keyframes scroll { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(10px); opacity: 0; } } /* Custom styles */ .animate-float { animation: float 6s ease-in-out infinite; } .animate-text-shine { background-size: 200% auto; animation: text-shine 3s linear infinite; } .animate-scroll { animation: scroll 2s ease-in-out infinite; } /* Particles canvas styling */ #particles-js { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 0; } /* Counter animation */ .counter { transition: all 0.3s ease-out; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: #1f2937; } ::-webkit-scrollbar-thumb { background: linear-gradient(45deg, #06b6d4, #8b5cf6); border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(45deg, #0891b2, #7c3aed); } /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Focus styles */ input:focus { outline: none; box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.1), 0 0 0 1px rgba(6, 182, 212, 0.5); } /* Glass morphism effect */ .glass { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); } /* Gradient border */ .gradient-border { position: relative; background: linear-gradient(90deg, #06b6d4, #8b5cf6, #ec4899); padding: 2px; border-radius: 1rem; } .gradient-border > * { background: #111827; border-radius: calc(1rem - 2px); } /* Hover effects */ .hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; } .hover-lift:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); } /* Loading animation */ @keyframes spin { to { transform: rotate(360deg); } } .animate-spin-slow { animation: spin 3s linear infinite; }