@keyframes fade-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fade-in 1s ease-out forwards; } /* Product card hover effect */ .custom-product-card:hover .product-image { transform: scale(1.05); opacity: 0.9; } .custom-product-card:hover .product-title { color: #f59e0b; } /* Navbar scroll effect */ .scrolled { background-color: white; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; } /* Button hover effect */ .btn-hover-effect:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); } /* Loading spinner */ .spinner { animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Pulse animation */ .animate-pulse { animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } /* Floating animation */ .animate-float { animation: float 3s ease-in-out infinite; } @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } /* Particles.js container */ #particles-js { position: absolute; width: 100%; height: 100%; background-color: #000000; background-image: linear-gradient(135deg, #667eea 0%, #764ba2 100%); background-repeat: no-repeat; background-size: cover; background-position: 50% 50%; }