:root { --color-primary: #2563eb; --color-secondary: #4f46e5; --color-accent: #f8fafc; } body { font-family: 'Inter', sans-serif; } .font-sans { font-family: 'Inter', sans-serif; } /* Animations */ @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } } @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes progress { from { width: 0%; } } .animate-float { animation: float 3s ease-in-out infinite; } .animate-fade-in-up { animation: fadeInUp 0.8s ease-out forwards; } .delay-100 { animation-delay: 100ms; } .delay-200 { animation-delay: 200ms; } .animate-progress { animation: progress 1.5s ease-out forwards; } /* Smooth scroll */ html { scroll-behavior: smooth; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f5f9; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } /* Glass morphism utilities */ .glass { background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } /* Hover transitions */ .hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; } .hover-lift:hover { transform: translateY(-4px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } /* Bento grid specific styles */ .bento-card { background: white; border-radius: 1.5rem; border: 1px solid #e2e8f0; transition: all 0.3s ease; } .bento-card:hover { border-color: #3b82f6; box-shadow: 0 20px 25px -5px rgba(59, 130, 246, 0.1); } /* Audio visualizer animation for the dashboard mock */ @keyframes soundWave { 0%, 100% { height: 4px; } 50% { height: 16px; } } .sound-bar { animation: soundWave 1s ease-in-out infinite; } .sound-bar:nth-child(2) { animation-delay: 0.1s; } .sound-bar:nth-child(3) { animation-delay: 0.2s; } .sound-bar:nth-child(4) { animation-delay: 0.3s; }