/* Custom animations */ @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .float-animation { animation: float 3s ease-in-out infinite; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; } ::-webkit-scrollbar-thumb { background: linear-gradient(to bottom, #8b5cf6, #ec4899); border-radius: 10px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(to bottom, #7c3aed, #db2777); } /* Custom selection color */ ::selection { background: #8b5cf6; color: white; } /* Smooth transitions */ a, button { transition: all 0.3s ease; } /* Custom focus styles */ button:focus, a:focus { outline: 2px solid #8b5cf6; outline-offset: 2px; } /* Notification alert animation */ @keyframes slideIn { from { transform: translate(-50%, -100%); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } } .fixed.top-4 { animation: slideIn 0.3s ease-out forwards; } /* Responsive tweaks */ @media (max-width: 768px) { .hero-text { font-size: 2.5rem; } }