:root {
  --background: oklch(0.99 0.005 90);
  --foreground: oklch(0.25 0.04 240);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.25 0.04 240);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.25 0.04 240);
  --primary: oklch(0.35 0.06 240);
  --primary-foreground: oklch(0.99 0.005 90);
  --secondary: oklch(0.94 0.01 240);
  --secondary-foreground: oklch(0.25 0.04 240);
  --muted: oklch(0.96 0.005 240);
  --muted-foreground: oklch(0.5 0.02 240);
  --accent: oklch(0.72 0.12 75);
  --accent-foreground: oklch(0.15 0.04 240);
  --destructive: oklch(0.577 0.245 27.325);
  --destructive-foreground: oklch(0.99 0.005 90);
  --border: oklch(0.9 0.01 240);
  --input: oklch(0.9 0.01 240);
  --ring: oklch(0.72 0.12 75);
}

.bg-background { background-color: var(--background); }
.text-foreground { color: var(--foreground); }
.bg-primary { background-color: var(--primary); }
.text-primary-foreground { color: var(--primary-foreground); }
.bg-secondary\/30 { background-color: color-mix(in oklch, var(--secondary) 30%, transparent); }
.text-muted-foreground { color: var(--muted-foreground); }
.bg-card { background-color: var(--card); }
.text-card-foreground { color: var(--card-foreground); }
.border { border-width: 1px; }
.border-border { border-color: var(--border); }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-md { border-radius: 0.375rem; }
.container { max-width: 1200px; }
.container.mx-auto { margin-left: auto; margin-right: auto; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }
.pt-32 { padding-top: 8rem; }
.pb-20 { padding-bottom: 5rem; }
.lg\:pt-40 { padding-top: 10rem; }
.lg\:pb-32 { padding-bottom: 8rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.lg\:text-6xl { font-size: 3.75rem; line-height: 1; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.lg\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.font-bold { font-weight: 700; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.min-h-screen { min-height: 100vh; }
.grid { display: grid; }
.lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gap-12 { gap: 3rem; }
.items-center { align-items: center; }
.space-y-8 > * + * { margin-top: 2rem; }
.inline-flex { display: inline-flex; }
.flex { display: flex; }
.flex-col { flex-direction: column; }
.sm\:flex-row { flex-direction: row; }
.justify-center { justify-content: center; }
.items-center { align-items: center; }
.gap-4 { gap: 1rem; }
.gap-8 { gap: 2rem; }
.w-12 { width: 3rem; }
.h-12 { height: 3rem; }
.w-72 { width: 18rem; }
.h-72 { height: 18rem; }
.w-96 { width: 24rem; }
.h-96 { height: 24rem; }
.w-px { width: 1px; }
.h-12 { height: 3rem; }
.text-balance { text-wrap: balance; }
.text-pretty { text-wrap: pretty; }
.animate-float { animation: float 6s ease-in-out infinite; }
.animate-fade-in-up { animation: fadeInUp 0.8s ease-out forwards; }
.group:hover .group-hover\:translate-x-1 { transform: translateX(0.25rem); }

@keyframes float { 0%,100% { transform: translateY(0px);} 50% { transform: translateY(-20px);} }
@keyframes fadeInUp { from { opacity:0; transform: translateY(30px);} to { opacity:1; transform: translateY(0);} }

