Spaces:
Running
Running
The design is very intentional, with each section's layout tailored to its specific purpose.
45755db verified | /* 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); | |
| } |