@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&family=Inter:wght@300;400;500;600;700&display=swap'); @import "tailwindcss"; @theme { --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --font-mono: 'Fira Code', 'Courier New', monospace; --color-border: hsl(var(--border)); --color-input: hsl(var(--input)); --color-ring: hsl(var(--ring)); --color-background: hsl(var(--background)); --color-foreground: hsl(var(--foreground)); --color-primary: hsl(var(--primary)); --color-primary-foreground: hsl(var(--primary-foreground)); --color-secondary: hsl(var(--secondary)); --color-secondary-foreground: hsl(var(--secondary-foreground)); --color-muted: hsl(var(--muted)); --color-muted-foreground: hsl(var(--muted-foreground)); --color-accent: hsl(var(--accent)); --color-accent-foreground: hsl(var(--accent-foreground)); --color-popover: hsl(var(--popover)); --color-popover-foreground: hsl(var(--popover-foreground)); --color-card: hsl(var(--card)); --color-card-foreground: hsl(var(--card-foreground)); --radius-lg: var(--radius); --radius-md: calc(var(--radius) - 2px); --radius-sm: calc(var(--radius) - 4px); } :root { /* High Fidelity Deep Purple Reference Theme */ --background: 250 33% 5%; /* #090810 */ --foreground: 250 20% 98%; /* #eae9fc */ --muted: 250 15% 12%; /* #1a1829 */ --muted-foreground: 250 12% 65%;/* #9c97b5 */ --popover: 250 33% 5%; /* #090810 */ --popover-foreground: 250 20% 98%; --card: 250 32% 10%; /* #131121 */ --card-foreground: 250 20% 98%; --border: 247 25% 15%; /* #1d1b2e */ --input: 247 25% 15%; --primary: 252 65% 55%; /* #6344d5 - Violet Accent */ --primary-foreground: 0 0% 100%; --secondary: 250 28% 18%; /* #2b1854 - Soft active capsule/bubble background */ --secondary-foreground: 250 20% 98%; --accent: 252 50% 20%; /* #251b47 */ --accent-foreground: 250 20% 98%; --destructive: 0 85% 60%; --destructive-foreground: 0 0% 100%; --ring: 252 65% 55%; --radius: 0.75rem; } .light { /* Light fallback matching the scale */ --background: 0 0% 100%; --foreground: 224 71% 4%; --muted: 220 14% 96%; --muted-foreground: 220 9% 46%; --popover: 0 0% 100%; --popover-foreground: 224 71% 4%; --card: 0 0% 99%; --card-foreground: 224 71% 4%; --border: 220 13% 91%; --input: 220 13% 91%; --primary: 252 65% 45%; --primary-foreground: 0 0% 100%; --secondary: 220 14% 96%; --secondary-foreground: 224 71% 4%; --accent: 252 40% 94%; --accent-foreground: 252 65% 45%; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-sans); font-size: 14px; background-color: hsl(var(--background)); color: hsl(var(--foreground)); overflow: hidden; transition: background-color 0.2s ease, color 0.2s ease; line-height: 1.5; -webkit-font-smoothing: antialiased; } /* Custom Scrollbars */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: hsl(var(--border)); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: hsl(var(--muted-foreground)); } /* Shimmer Loader Effect */ @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } .animate-shimmer { background: linear-gradient( 90deg, hsl(var(--card)) 25%, color-mix(in srgb, hsl(var(--muted)) 60%, transparent) 50%, hsl(var(--card)) 75% ); background-size: 200% 100%; animation: shimmer 1.5s infinite linear; } /* Custom interactive outline ring */ .focus-ring { outline: none; transition: box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .focus-ring:focus-visible { box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--primary)); border-color: hsl(var(--primary)); } /* Glassmorphic Blur panel */ .glass-panel { background: color-mix(in srgb, hsl(var(--card)) 70%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } /* Subtle Glowing Borders & Accents */ .glow-primary { box-shadow: 0 0 15px -3px color-mix(in srgb, hsl(var(--primary)) 40%, transparent); } .border-glow-hover:hover { border-color: color-mix(in srgb, hsl(var(--primary)) 50%, transparent); box-shadow: 0 0 12px -5px color-mix(in srgb, hsl(var(--primary)) 30%, transparent); } /* Premium Selection Colors */ ::selection { background-color: color-mix(in srgb, hsl(var(--primary)) 30%, transparent); color: hsl(var(--foreground)); } /* Micro Animations */ @keyframes pulse-glow { 0%, 100% { opacity: 0.15; transform: scale(1); } 50% { opacity: 0.35; transform: scale(1.05); } } .animate-pulse-glow { animation: pulse-glow 4s ease-in-out infinite; } /* Custom buttons */ .btn-primary { background-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-radius: var(--radius); transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .btn-primary:hover { transform: translateY(-1px); box-shadow: 0 4px 12px color-mix(in srgb, hsl(var(--primary)) 40%, transparent); } .btn-primary:active { transform: translateY(0); }