@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+Devanagari:wght@300;400;500;600;700&display=swap'); @tailwind base; @tailwind components; @tailwind utilities; /* Voice Cloning App Design System - AI-themed with bilingual support */ @layer base { :root { /* Core backgrounds and surfaces */ --background: 240 10% 3.9%; --foreground: 210 40% 98%; --surface: 240 10% 7%; --surface-elevated: 240 9% 12%; /* AI-themed brand colors */ --primary: 262 83% 58%; --primary-foreground: 210 40% 98%; --primary-glow: 262 100% 70%; --secondary: 240 10% 15%; --secondary-foreground: 210 40% 98%; --accent: 196 75% 50%; --accent-foreground: 210 40% 98%; --accent-glow: 196 100% 60%; /* UI elements */ --card: 240 10% 7%; --card-foreground: 210 40% 98%; --border: 240 10% 18%; --input: 240 10% 12%; --ring: 262 83% 58%; /* Interactive states */ --muted: 240 5% 25%; --muted-foreground: 240 5% 64%; --destructive: 0 84% 60%; --destructive-foreground: 210 40% 98%; /* Audio visualization */ --waveform-primary: 262 83% 58%; --waveform-secondary: 196 75% 50%; --audio-glow: 262 100% 70%; /* Gradients */ --gradient-primary: linear-gradient(135deg, hsl(262 83% 58%), hsl(196 75% 50%)); --gradient-surface: linear-gradient(135deg, hsl(240 10% 7%), hsl(240 9% 12%)); --gradient-glow: radial-gradient(circle at center, hsl(262 100% 70% / 0.3), transparent 70%); /* Shadows and effects */ --shadow-glow: 0 0 50px hsl(262 83% 58% / 0.3); --shadow-accent: 0 0 30px hsl(196 75% 50% / 0.2); --shadow-elevated: 0 10px 40px hsl(240 10% 3.9% / 0.5); /* Popover elements */ --popover: 240 10% 7%; --popover-foreground: 210 40% 98%; --radius: 0.75rem; } .light { /* Light mode for future extensibility */ --background: 0 0% 100%; --foreground: 240 10% 3.9%; --surface: 240 5% 96%; --surface-elevated: 0 0% 100%; --primary: 262 83% 48%; --primary-foreground: 210 40% 98%; --primary-glow: 262 83% 58%; --card: 0 0% 100%; --card-foreground: 240 10% 3.9%; --border: 240 5% 89%; --input: 240 5% 96%; --ring: 262 83% 48%; --muted: 240 5% 96%; --muted-foreground: 240 5% 45%; --gradient-primary: linear-gradient(135deg, hsl(262 83% 48%), hsl(196 75% 40%)); --shadow-glow: 0 0 50px hsl(262 83% 48% / 0.2); } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground font-sans antialiased; font-family: 'Inter', 'Noto Sans Devanagari', system-ui, sans-serif; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { @apply bg-surface; } ::-webkit-scrollbar-thumb { @apply bg-muted rounded-full; } ::-webkit-scrollbar-thumb:hover { @apply bg-muted-foreground; } } @layer components { /* Waveform animation */ .waveform-bar { @apply bg-gradient-to-t from-primary to-accent; animation: waveform 1.5s ease-in-out infinite; } .waveform-bar:nth-child(2) { animation-delay: 0.1s; } .waveform-bar:nth-child(3) { animation-delay: 0.2s; } .waveform-bar:nth-child(4) { animation-delay: 0.3s; } .waveform-bar:nth-child(5) { animation-delay: 0.4s; } /* Glow effects */ .glow-primary { box-shadow: var(--shadow-glow); } .glow-accent { box-shadow: var(--shadow-accent); } /* Recording pulse */ .recording-pulse { animation: pulse-glow 2s ease-in-out infinite; } /* Gradient text */ .gradient-text { background: var(--gradient-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Hindi text optimization */ .hindi-text { font-family: 'Noto Sans Devanagari', 'Inter', system-ui, sans-serif; line-height: 1.7; } } @layer utilities { .glass-effect { @apply bg-surface/50 backdrop-blur-xl border border-border/50; } .surface-elevated { @apply bg-surface-elevated shadow-elevated; } } @keyframes waveform { 0%, 100% { transform: scaleY(0.3); } 50% { transform: scaleY(1); } } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 20px hsl(var(--primary) / 0.5); } 50% { box-shadow: 0 0 40px hsl(var(--primary) / 0.8), 0 0 60px hsl(var(--primary) / 0.4); } } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } }