@tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { /* Light theme - Off-white, Gray tones */ --background: 40 20% 97%; /* Off-white/Ivory */ --foreground: 0 0% 10%; --card: 0 0% 100%; --card-foreground: 0 0% 10%; --popover: 0 0% 100%; --popover-foreground: 0 0% 10%; --primary: 0 0% 20%; /* Dark Gray */ --primary-foreground: 0 0% 98%; --secondary: 0 0% 96%; --secondary-foreground: 0 0% 10%; --muted: 0 0% 94%; --muted-foreground: 0 0% 45%; --accent: 0 0% 35%; /* Medium Gray */ --accent-foreground: 0 0% 98%; --destructive: 0 0% 30%; --destructive-foreground: 0 0% 98%; --border: 0 0% 88%; --input: 0 0% 88%; --ring: 0 0% 20%; --radius: 0.5rem; } .dark { /* Dark theme - Black and Grays */ --background: 0 0% 6%; /* Near Black */ --foreground: 0 0% 95%; --card: 0 0% 10%; --card-foreground: 0 0% 95%; --popover: 0 0% 10%; --popover-foreground: 0 0% 95%; --primary: 0 0% 85%; /* Light Gray */ --primary-foreground: 0 0% 10%; --secondary: 0 0% 15%; --secondary-foreground: 0 0% 95%; --muted: 0 0% 15%; --muted-foreground: 0 0% 60%; --accent: 0 0% 70%; /* Medium Light Gray */ --accent-foreground: 0 0% 10%; --destructive: 0 0% 70%; --destructive-foreground: 0 0% 10%; --border: 0 0% 18%; --input: 0 0% 18%; --ring: 0 0% 70%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; background: linear-gradient(to bottom right, hsl(var(--background)), hsl(0 0% 8%)); background-attachment: fixed; } } @layer utilities { .glass { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } .glass-dark { background: rgba(0, 0, 0, 0.2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.05); } .glow { box-shadow: 0 0 20px rgba(255, 255, 255, 0.2), 0 0 40px rgba(255, 255, 255, 0.15), 0 0 60px rgba(255, 255, 255, 0.1); } .glow-hover:hover { box-shadow: 0 0 30px rgba(255, 255, 255, 0.3), 0 0 60px rgba(255, 255, 255, 0.2), 0 0 90px rgba(255, 255, 255, 0.15); transition: box-shadow 0.3s ease-in-out; } .glow-dark { box-shadow: 0 0 20px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.2), 0 0 60px rgba(0, 0, 0, 0.1); } .glow-gray { box-shadow: 0 0 20px rgba(150, 150, 150, 0.3), 0 0 40px rgba(150, 150, 150, 0.2), 0 0 60px rgba(150, 150, 150, 0.1); } .glow-white { box-shadow: 0 0 20px rgba(255, 255, 255, 0.25), 0 0 40px rgba(255, 255, 255, 0.15), 0 0 60px rgba(255, 255, 255, 0.1); } .animate-glow { animation: glow-pulse 2s ease-in-out infinite; } @keyframes glow-pulse { 0%, 100% { box-shadow: 0 0 20px rgba(255, 255, 255, 0.2), 0 0 40px rgba(255, 255, 255, 0.15); } 50% { box-shadow: 0 0 30px rgba(255, 255, 255, 0.3), 0 0 60px rgba(255, 255, 255, 0.2); } } .liquid-gradient { background: linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0%, rgba(150, 150, 150, 0.05) 50%, rgba(255, 255, 255, 0.08) 100%); background-size: 400% 400%; animation: liquid-flow 15s ease infinite; } @keyframes liquid-flow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .border-gradient { border: 2px solid transparent; background-clip: padding-box; position: relative; } .border-gradient::before { content: ''; position: absolute; inset: -2px; border-radius: inherit; padding: 2px; background: linear-gradient(135deg, #fff, #888, #fff); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; } .shimmer { position: relative; overflow: hidden; } .shimmer::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); animation: shimmer 3s infinite; } @keyframes shimmer { 0% { left: -100%; } 100% { left: 100%; } } @keyframes spin-smooth { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .animate-spin-smooth { animation: spin-smooth 1s linear infinite; } }