/* Global Styles */ :root { --color-primary: #EAB308; --color-bg: #0a0a0a; --color-surface: #171717; } body { background-color: var(--color-bg); color: #e5e7eb; } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: #0a0a0a; } ::-webkit-scrollbar-thumb { background: #262626; border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: #EAB308; } /* Utility for gradients */ .text-gradient { background: linear-gradient(to right, #EAB308, #CA8A04); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } .animate-fade-in { animation: fadeIn 0.8s ease-out forwards; } .animate-slide-up { animation: slideUp 0.8s ease-out forwards; } .animate-scale-in { animation: scaleIn 0.6s ease-out forwards; } /* Scroll Reveal Classes */ .reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s ease; } .reveal.active { opacity: 1; transform: translateY(0); } .reveal-left { opacity: 0; transform: translateX(-50px); transition: all 0.8s ease; } .reveal-left.active { opacity: 1; transform: translateX(0); } .reveal-right { opacity: 0; transform: translateX(50px); transition: all 0.8s ease; } .reveal-right.active { opacity: 1; transform: translateX(0); } /* Blinking Cursor Animation */ @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } .cursor-blink { animation: blink 1s step-end infinite; } /* Background Grid Pattern */ .bg-grid-pattern { background-image: linear-gradient(rgba(234, 179, 8, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(234, 179, 8, 0.05) 1px, transparent 1px); background-size: 40px 40px; } /* Glitch Effect on Hover */ .glitch-hover:hover { animation: glitch 0.3s cubic-bezier(.25, .46, .45, .94) both infinite; color: #EAB308; } @keyframes glitch { 0% { transform: translate(0) } 20% { transform: translate(-2px, 2px) } 40% { transform: translate(-2px, -2px) } 60% { transform: translate(2px, 2px) } 80% { transform: translate(2px, -2px) } 100% { transform: translate(0) } } /* Smooth Scroll Behavior */ html { scroll-behavior: smooth; } /* Selection Styling */ ::selection { background: #EAB308; color: #0a0a0a; } /* Focus Styles */ a:focus, button:focus, input:focus { outline: 2px solid #EAB308; outline-offset: 2px; } /* Improved Button Hover Effects */ .btn-primary { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .btn-primary:active { transform: scale(0.95); } /* Card Hover 3D Effect */ .card-3d { perspective: 1000px; } .card-3d-inner { transition: transform 0.6s; transform-style: preserve-3d; } .card-3d:hover .card-3d-inner { transform: rotateY(5deg) rotateX(5deg); } /* Gradient Text Animation */ .gradient-text-animate { background: linear-gradient(90deg, #EAB308, #CA8A04, #EAB308); background-size: 200% auto; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: gradientMove 3s linear infinite; } @keyframes gradientMove { 0% { background-position: 0% center; } 100% { background-position: 200% center; } } /* Magnetic Button Effect */ .magnetic-btn { transition: transform 0.3s ease; }