/* Custom scrollbar styles */ .scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; } .scrollbar-hide::-webkit-scrollbar { display: none; } /* Card hover effects */ .card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .card-hover:hover { transform: translateY(-4px); } /* Gradient text transitions */ .gradient-text { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; transition: all 0.3s ease; } .gradient-text:hover { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Smooth scroll behavior */ .smooth-scroll { scroll-behavior: smooth; } /* Animation classes */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.6s ease-out; } /* Glass morphism effect */ .glass { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } /* Custom button styles */ .btn-gradient { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); transition: all 0.3s ease; } .btn-gradient:hover { background: linear-gradient(135deg, #764ba2 0%, #667eea 100%); transform: scale(1.05); } /* Loading skeleton animation */ @keyframes skeleton { 0% { background-position: -200px 0; } 100% { background-position: calc(200px + 100%) 0; } } .skeleton { background-image: linear-gradient(90deg, #1f2937 0px, #374151 40px, #1f2937 80px); background-size: 200px 100%; animation: skeleton 1.5s ease-in-out infinite; } /* Badge animations */ .badge-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } } /* Tab indicator */ .tab-indicator { position: absolute; bottom: 0; height: 2px; background: linear-gradient(90deg, #8b5cf6, #ec4899); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }