/* Custom animations */ @keyframes fade-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes slide-up { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } @keyframes gradient-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .animate-fade-in { animation: fade-in 1s ease-out; } .animate-slide-up { animation: slide-up 1s ease-out 0.3s both; } .animate-slide-up-delay { animation: slide-up 1s ease-out 0.6s both; } .animate-gradient { background-size: 200% 200%; animation: gradient-shift 3s ease infinite; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: #1f2937; } ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #f43f5e, #eab308); border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #e11d48, #ca8a04); } /* Smooth scroll behavior */ html { scroll-behavior: smooth; } /* Glass morphism effect */ .glass { background: rgba(31, 41, 55, 0.7); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } /* Glow effects */ .glow-rose { box-shadow: 0 0 20px rgba(244, 63, 94, 0.5); } .glow-yellow { box-shadow: 0 0 20px rgba(234, 179, 8, 0.5); } /* Text gradient */ .text-gradient { background: linear-gradient(135deg, #f43f5e, #eab308); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Button hover effects */ .btn-hover { position: relative; overflow: hidden; transition: all 0.3s ease; } .btn-hover::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.2); transform: translate(-50%, -50%); transition: width 0.6s, height 0.6s; } .btn-hover:hover::before { width: 300px; height: 300px; } /* Card hover effects */ .card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .card-hover:hover { transform: translateY(-10px) scale(1.02); } /* Loading animation */ .loading-dots::after { content: ''; animation: dots 1.5s steps(4, end) infinite; } @keyframes dots { 0%, 20% { content: ''; } 40% { content: '.'; } 60% { content: '..'; } 80%, 100% { content: '...'; } } /* Neon text effect */ .neon-text { text-shadow: 0 0 10px rgba(244, 63, 94, 0.8), 0 0 20px rgba(244, 63, 94, 0.6), 0 0 30px rgba(244, 63, 94, 0.4); } /* Pulse animation */ .pulse-glow { animation: pulse-glow 2s infinite; } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 20px rgba(244, 63, 94, 0.5); } 50% { box-shadow: 0 0 40px rgba(244, 63, 94, 0.8); } } /* Responsive grid adjustments */ @media (max-width: 768px) { .grid-responsive { grid-template-columns: 1fr; } } /* Floating animation */ .floating { animation: floating 3s ease-in-out infinite; } @keyframes floating { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } } /* Border animation */ .border-animation { position: relative; } .border-animation::before { content: ''; position: absolute; inset: -2px; padding: 2px; background: linear-gradient(45deg, #f43f5e, #eab308, #f43f5e); border-radius: inherit; mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask-composite: exclude; animation: border-rotate 3s linear infinite; } @keyframes border-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }