@tailwind base; @tailwind components; @tailwind utilities; @layer base { * { box-sizing: border-box; margin: 0; padding: 0; } html, body, #root { height: 100%; width: 100%; } body { font-family: 'Inter', system-ui, -apple-system, sans-serif; background: #0f0f1e; color: #f1f5f9; overflow: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #2a2a4a; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #3a3a5a; } } @layer components { .glass { background: rgba(28, 28, 54, 0.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(139, 92, 246, 0.2); } .glass-card { background: rgba(28, 28, 54, 0.9); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid #2a2a4a; border-radius: 1rem; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3); } .gradient-text { background: linear-gradient(135deg, #8b5cf6 0%, #22d3ee 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .gradient-border { position: relative; } .gradient-border::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; background: linear-gradient(135deg, rgba(139,92,246,0.4), rgba(34,211,238,0.2)); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; } .glow-accent { box-shadow: 0 0 20px rgba(139, 92, 246, 0.25), 0 0 40px rgba(139, 92, 246, 0.1); } .shimmer-bg { background: linear-gradient(90deg, transparent, rgba(139, 92, 246, 0.1), transparent); background-size: 200% 100%; animation: shimmer 2s linear infinite; } } /* Animated background orbs */ .bg-orbs { position: fixed; inset: 0; overflow: hidden; z-index: 0; pointer-events: none; } .bg-orb { position: absolute; border-radius: 50%; filter: blur(100px); opacity: 0.25; animation: float 8s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translate(0, 0); } 33% { transform: translate(30px, -40px); } 66% { transform: translate(-20px, 30px); } }