@tailwind base; @tailwind components; @tailwind utilities; @layer base { html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { @apply font-sans text-slate-300; } h1, h2, h3, h4, h5, h6 { @apply font-sans font-bold tracking-tight; } code, pre { @apply font-mono; } } @layer components { /* Animated gradient background */ .bg-animated-gradient { background: linear-gradient( 135deg, rgba(245, 158, 11, 0.1) 0%, transparent 50%, rgba(245, 158, 11, 0.05) 100% ); background-size: 200% 200%; animation: gradientShift 8s ease-in-out infinite; } /* Floating particles */ .particle { position: absolute; width: 4px; height: 4px; background: rgba(245, 158, 11, 0.4); border-radius: 50%; pointer-events: none; } /* Glass effect */ .glass { @apply bg-slate-900/60 backdrop-blur-xl border border-slate-700/50; } /* Glow effect */ .glow-amber { box-shadow: 0 0 40px rgba(245, 158, 11, 0.15); } /* Animated underline */ .animated-underline { position: relative; } .animated-underline::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, #f59e0b, #fbbf24); transition: width 0.3s ease; } .animated-underline:hover::after { width: 100%; } /* Animated border */ .animated-border { position: relative; overflow: hidden; } .animated-border::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 1px; background: linear-gradient(90deg, transparent, #f59e0b, transparent); animation: borderSlide 3s linear infinite; } @keyframes borderSlide { 0% { left: -100%; } 100% { left: 100%; } } } @layer utilities { .animation-delay-100 { animation-delay: 0.1s; } .animation-delay-200 { animation-delay: 0.2s; } .animation-delay-300 { animation-delay: 0.3s; } .animation-delay-400 { animation-delay: 0.4s; } .animation-delay-500 { animation-delay: 0.5s; } /* Text gradient */ .text-gradient { @apply bg-gradient-to-r from-amber-400 to-amber-500 bg-clip-text text-transparent; } /* Opacity starting state for animations */ .opacity-0-start { opacity: 0; } }