@import "tailwindcss"; @import "tw-animate-css"; @import "shadcn/tailwind.css"; @custom-variant dark (&:is(.dark *)); @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar: var(--sidebar); --color-chart-5: var(--chart-5); --color-chart-4: var(--chart-4); --color-chart-3: var(--chart-3); --color-chart-2: var(--chart-2); --color-chart-1: var(--chart-1); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive: var(--destructive); --color-accent-foreground: var(--accent-foreground); --color-accent: var(--accent); --color-muted-foreground: var(--muted-foreground); --color-muted: var(--muted); --color-secondary-foreground: var(--secondary-foreground); --color-secondary: var(--secondary); --color-primary-foreground: var(--primary-foreground); --color-primary: var(--primary); --color-popover-foreground: var(--popover-foreground); --color-popover: var(--popover); --color-card-foreground: var(--card-foreground); --color-card: var(--card); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --radius-2xl: calc(var(--radius) + 8px); --radius-3xl: calc(var(--radius) + 12px); --radius-4xl: calc(var(--radius) + 16px); } :root { --radius: 0.75rem; --background: oklch(0.98 0.005 280); --foreground: oklch(0.15 0.02 280); --card: oklch(1 0 0); --card-foreground: oklch(0.15 0.02 280); --popover: oklch(1 0 0); --popover-foreground: oklch(0.15 0.02 280); --primary: oklch(0.55 0.25 270); --primary-foreground: oklch(0.98 0 0); --secondary: oklch(0.96 0.01 280); --secondary-foreground: oklch(0.25 0.02 280); --muted: oklch(0.96 0.005 280); --muted-foreground: oklch(0.5 0.02 280); --accent: oklch(0.55 0.25 270); --accent-foreground: oklch(0.98 0 0); --destructive: oklch(0.6 0.25 25); --border: oklch(0.92 0.01 280); --input: oklch(0.92 0.01 280); --ring: oklch(0.55 0.25 270); --chart-1: oklch(0.6 0.25 270); --chart-2: oklch(0.65 0.2 160); --chart-3: oklch(0.7 0.2 45); --chart-4: oklch(0.6 0.25 320); --chart-5: oklch(0.65 0.2 200); --sidebar: oklch(0.99 0.002 280); --sidebar-foreground: oklch(0.15 0.02 280); --sidebar-primary: oklch(0.55 0.25 270); --sidebar-primary-foreground: oklch(0.98 0 0); --sidebar-accent: oklch(0.96 0.02 270); --sidebar-accent-foreground: oklch(0.25 0.02 280); --sidebar-border: oklch(0.92 0.01 280); --sidebar-ring: oklch(0.55 0.25 270); } .dark { --background: oklch(0.08 0.006 275); --foreground: oklch(0.95 0.012 280); --card: oklch(0.13 0.01 275); --card-foreground: oklch(0.95 0.012 280); --popover: oklch(0.12 0.01 275); --popover-foreground: oklch(0.95 0.012 280); --primary: oklch(0.76 0.17 255); --primary-foreground: oklch(0.1 0.01 275); --secondary: oklch(0.18 0.012 276); --secondary-foreground: oklch(0.93 0.012 280); --muted: oklch(0.16 0.01 276); --muted-foreground: oklch(0.68 0.014 282); --accent: oklch(0.72 0.15 295); --accent-foreground: oklch(0.1 0.01 275); --destructive: oklch(0.67 0.23 26); --border: oklch(0.23 0.012 275); --input: oklch(0.22 0.012 275); --ring: oklch(0.74 0.16 262); --chart-1: oklch(0.74 0.17 255); --chart-2: oklch(0.76 0.15 205); --chart-3: oklch(0.73 0.17 318); --chart-4: oklch(0.78 0.14 160); --chart-5: oklch(0.8 0.13 98); --sidebar: oklch(0.1 0.008 275); --sidebar-foreground: oklch(0.93 0.01 280); --sidebar-primary: oklch(0.75 0.16 260); --sidebar-primary-foreground: oklch(0.1 0.01 275); --sidebar-accent: oklch(0.17 0.012 278); --sidebar-accent-foreground: oklch(0.93 0.01 280); --sidebar-border: oklch(0.2 0.012 275); --sidebar-ring: oklch(0.74 0.16 262); } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground antialiased; background-image: radial-gradient(1100px 650px at 90% -10%, oklch(0.72 0.16 255 / 0.22), transparent 55%), radial-gradient(900px 520px at -15% 0%, oklch(0.7 0.14 300 / 0.18), transparent 58%), radial-gradient(700px 420px at 50% 120%, oklch(0.72 0.14 205 / 0.12), transparent 65%), linear-gradient(180deg, oklch(0.09 0.006 275), oklch(0.075 0.004 275)); background-attachment: fixed; } } @layer utilities { .glass { @apply bg-card/80 backdrop-blur-xl border border-border/50; } .glass-hover { @apply hover:bg-card/90 hover:border-border transition-all duration-300; } .gradient-border { background: linear-gradient(var(--card), var(--card)) padding-box, linear-gradient(135deg, oklch(0.7 0.2 270), oklch(0.65 0.2 200)) border-box; border: 1px solid transparent; } .glow { box-shadow: 0 0 40px -10px oklch(0.7 0.2 270 / 0.3); } .glow-sm { box-shadow: 0 0 20px -5px oklch(0.7 0.2 270 / 0.2); } .glow-hover { transition: box-shadow 0.3s ease; } .glow-hover:hover { box-shadow: 0 0 30px -5px oklch(0.7 0.2 270 / 0.4); } .animate-fade-in { animation: fadeIn 0.5s ease-in-out; } .animate-slide-up { animation: slideUp 0.6s ease-out; } .animate-scale-in { animation: scaleIn 0.4s ease-out; } .shimmer { background: linear-gradient( 90deg, transparent 0%, oklch(0.7 0.2 270 / 0.1) 50%, transparent 100% ); background-size: 200% 100%; animation: shimmer 2s infinite; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }