@tailwind base; @tailwind components; @tailwind utilities; body { background-color: #000; color: #fff; font-family: 'Inter', sans-serif; } /* Enhanced Gradient Animations */ @keyframes gradient-animation { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .gradient-text { background-image: linear-gradient(90deg, #FF00FF, #00FF00, #00FFFF, #FF00FF); } .animated-gradient { background-size: 300% 300%; animation: gradient-animation 8s ease infinite; } /* Smooth Transitions */ * { transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 200ms; } /* Fade-in Animation for Tab Content */ @keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fade-in 0.3s ease-out; } /* Pulse Animation for Active Elements */ @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 5px rgba(255, 0, 255, 0.5); } 50% { box-shadow: 0 0 20px rgba(255, 0, 255, 0.8), 0 0 30px rgba(0, 255, 0, 0.5); } } .pulse-glow { animation: pulse-glow 2s ease-in-out infinite; } /* Button Hover Effects */ button { position: relative; overflow: hidden; transition: all 0.3s ease; } button:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(255, 0, 255, 0.4); } button:active { transform: translateY(0); } /* Ripple Effect */ @keyframes ripple { to { transform: scale(4); opacity: 0; } } button::after { content: ''; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; background: rgba(255, 255, 255, 0.5); opacity: 0; border-radius: 100%; transform: scale(1) translate(-50%, -50%); transform-origin: 0 0; } button:active::after { animation: ripple 0.6s ease-out; } /* Enhanced Input/Textarea Styling */ textarea, input { transition: all 0.3s ease; } textarea:focus, input:focus { transform: scale(1.01); box-shadow: 0 0 0 2px rgba(255, 0, 255, 0.3), 0 0 15px rgba(0, 255, 0, 0.2); } /* Glow on Hover */ .hover-glow:hover { box-shadow: 0 0 20px rgba(255, 0, 255, 0.6), 0 0 30px rgba(0, 255, 0, 0.3); border-color: rgba(255, 0, 255, 0.8); } /* Shimmer Effect */ @keyframes shimmer { 0% { background-position: -1000px 0; } 100% { background-position: 1000px 0; } } .shimmer { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); background-size: 1000px 100%; animation: shimmer 3s infinite; } /* Success Animation */ @keyframes success-bounce { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } } .success-bounce { animation: success-bounce 0.4s ease; } /* Tab Hover Effects */ li { position: relative; transition: all 0.3s ease; } li::before { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, #FF00FF, #00FF00); transition: width 0.3s ease; } li:hover::before { width: 100%; } /* Smooth Scroll */ html { scroll-behavior: smooth; } /* Card Hover Effects */ .card-hover { transition: all 0.3s ease; } .card-hover:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(255, 0, 255, 0.3); } /* Loading Spinner */ @keyframes spin { to { transform: rotate(360deg); } } .animate-spin { animation: spin 1s linear infinite; } /* Slide Up Animation */ @keyframes slide-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .animate-slide-up { animation: slide-up 0.4s ease-out; } /* Focus Ring Enhancement */ *:focus { outline: none; } *:focus-visible { outline: 2px solid rgba(255, 0, 255, 0.6); outline-offset: 2px; } /* Text Selection */ ::selection { background-color: rgba(255, 0, 255, 0.5); color: #fff; } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 12px; height: 12px; } ::-webkit-scrollbar-track { background: #1a1a1a; border-radius: 10px; } ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #FF00FF, #00FF00); border-radius: 10px; border: 2px solid #1a1a1a; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #ff33ff, #33ff33); }