/* Global Styles */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@300;400;500&display=swap'); :root { --primary: #4F46E5; --secondary: #EC4899; --accent: #06B6D4; --background: #0F172A; --surface: #1E293B; --text: #F8FAFC; --subtle: #94A3B8; } * { margin: 0; padding: 0; box-sizing: border-box; } body { background: var(--background); color: var(--text); font-family: 'Inter', sans-serif; min-height: 100vh; position: relative; overflow-x: hidden; } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--surface); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--secondary); } /* Glass Effect */ .glass { background: rgba(30, 41, 59, 0.7); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } /* Gradient Background */ .gradient-bg { background: linear-gradient(135deg, var(--primary), var(--secondary), var(--accent)); background-size: 400% 400%; animation: gradient 15s ease infinite; } /* Animated Background Grid */ .bg-grid-white\/10 { background-image: linear-gradient(to right, rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,.1) 1px, transparent 1px); background-size: 50px 50px; } /* Neon Glow Effect */ .neon-glow { position: relative; } .neon-glow::after { content: ''; position: absolute; inset: -2px; background: linear-gradient(45deg, var(--primary), var(--secondary), var(--accent)); border-radius: inherit; filter: blur(10px); opacity: 0.5; z-index: -1; } /* Floating Animation */ @keyframes float { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(5deg); } } /* Particle Effect */ .particle { position: absolute; border-radius: 50%; background: radial-gradient(circle at center, var(--accent) 0%, transparent 70%); pointer-events: none; } /* Responsive Design */ @media (max-width: 768px) { .container { padding-left: 1rem; padding-right: 1rem; } .hero-section { padding: 2rem 1rem !important; } } /* Dark Mode Enhancements */ .dark .invert-dark { filter: invert(1) hue-rotate(180deg); } /* Loading Animation */ .loading-dots { display: inline-flex; align-items: center; } .loading-dots span { width: 8px; height: 8px; margin: 0 3px; background: var(--accent); border-radius: 50%; animation: loading 1.4s ease-in-out infinite; } .loading-dots span:nth-child(2) { animation-delay: 0.2s; } .loading-dots span:nth-child(3) { animation-delay: 0.4s; } @keyframes loading { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(0.5); opacity: 0.5; } } /* Chat Message Styles */ .chat-message { max-width: 80%; margin: 1rem 0; padding: 1rem; border-radius: 1rem; position: relative; } .chat-message.user { background: linear-gradient(135deg, var(--primary), var(--accent)); margin-left: auto; border-bottom-right-radius: 0; } .chat-message.ai { background: var(--surface); border: 1px solid rgba(255, 255, 255, 0.1); margin-right: auto; border-bottom-left-radius: 0; } /* Card Hover Effects */ .hover-card { transition: all 0.3s ease; } .hover-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); } /* Typing Animation */ .typing-indicator { display: inline-flex; align-items: center; padding: 12px 20px; background: var(--surface); border-radius: 25px; } .typing-indicator span { width: 6px; height: 6px; margin: 0 2px; background: var(--accent); border-radius: 50%; opacity: 0.4; animation: typing 1.5s infinite; } @keyframes typing { 0%, 100% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-5px); } }