@import "tailwindcss"; @theme inline { --font-sans: var(--font-inter); --animate-float: float 6s ease-in-out infinite; --animate-float-delayed: float 6s ease-in-out infinite 2s; --animate-pulse-slow: pulse-slow 4s ease-in-out infinite; --animate-gradient: gradient 8s ease infinite; --animate-shimmer: shimmer 2s linear infinite; --animate-fade-in: fade-in 0.6s ease-out; --animate-slide-up: slide-up 0.6s ease-out; --animate-slide-down: slide-down 0.3s ease-out; --animate-scale-in: scale-in 0.3s ease-out; } /* Base styles */ body { background: #ffffff; color: #18181b; } /* Keyframe animations */ @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-20px); } } @keyframes pulse-slow { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes shimmer { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes slide-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes slide-down { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } @keyframes scale-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } /* Animation utility classes */ .animate-float { animation: float 6s ease-in-out infinite; } .animate-float-delayed { animation: float 6s ease-in-out infinite; animation-delay: 2s; } .animate-pulse-slow { animation: pulse-slow 4s ease-in-out infinite; } .animate-gradient { background-size: 200% 200%; animation: gradient 8s ease infinite; } .animate-shimmer { animation: shimmer 2s linear infinite; } .animate-fade-in { animation: fade-in 0.6s ease-out forwards; } .animate-slide-up { animation: slide-up 0.6s ease-out forwards; } .animate-slide-down { animation: slide-down 0.3s ease-out forwards; } .animate-scale-in { animation: scale-in 0.3s ease-out forwards; } /* Staggered animation delays */ .animation-delay-100 { animation-delay: 100ms; } .animation-delay-200 { animation-delay: 200ms; } .animation-delay-300 { animation-delay: 300ms; } .animation-delay-400 { animation-delay: 400ms; } .animation-delay-500 { animation-delay: 500ms; } /* Gradient text */ .gradient-text { background: linear-gradient(135deg, #dc2626 0%, #ef4444 50%, #f87171 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Animated gradient background */ .animated-gradient-bg { background: linear-gradient(-45deg, #18181b, #27272a, #3f3f46, #27272a); background-size: 400% 400%; animation: gradient 15s ease infinite; } .animated-gradient-bg-red { background: linear-gradient(-45deg, #dc2626, #b91c1c, #ef4444, #dc2626); background-size: 400% 400%; animation: gradient 8s ease infinite; } /* Card hover effects */ .card-hover { transition: all 0.3s ease; } .card-hover:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.1); } /* Link hover underline effect */ .link-underline { position: relative; } .link-underline::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: currentColor; transition: width 0.3s ease; } .link-underline:hover::after { width: 100%; } /* Glass effect */ .glass { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); } /* Smooth scroll */ html { scroll-behavior: smooth; } /* Focus styles */ *:focus-visible { outline: 2px solid #dc2626; outline-offset: 2px; }