:root {
  --background: 42 100% 98%;
  --foreground: 222 27% 16%;
  --primary: 173 78% 36%;
  --secondary: 40 70% 93%;
  --muted: 38 28% 90%;
  --destructive: 3 78% 56%;
  --border: 28 28% 84%;
  --card: 0 0% 100%;
  --chart-2: 31 92% 56%;
  --chart-3: 276 75% 58%;
  --shadow-sm: 0 6px 18px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 14px 34px rgba(15, 23, 42, 0.10);
  --shadow-lg: 0 24px 60px rgba(15, 23, 42, 0.16);
  --transition-fast: 160ms ease;
  --transition-smooth: 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
}

.dark {
  --background: 223 28% 10%;
  --foreground: 40 33% 96%;
  --primary: 171 70% 47%;
  --secondary: 223 22% 16%;
  --muted: 223 18% 20%;
  --destructive: 4 85% 63%;
  --border: 223 18% 22%;
  --card: 223 24% 13%;
  --chart-2: 32 92% 60%;
  --chart-3: 277 78% 68%;
  --shadow-sm: 0 6px 18px rgba(0, 0, 0, 0.22);
  --shadow-md: 0 14px 34px rgba(0, 0, 0, 0.28);
  --shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.36);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background:
    radial-gradient(circle at top left, hsl(var(--primary) / 0.10), transparent 30%),
    radial-gradient(circle at top right, hsl(var(--chart-2) / 0.10), transparent 28%),
    linear-gradient(180deg, hsl(var(--background)), hsl(var(--background)));
  color: hsl(var(--foreground));
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
}

.hero-mesh {
  background:
    radial-gradient(circle at 15% 20%, hsl(var(--primary) / 0.22), transparent 24%),
    radial-gradient(circle at 85% 30%, hsl(var(--chart-2) / 0.18), transparent 22%),
    radial-gradient(circle at 60% 80%, hsl(var(--chart-3) / 0.16), transparent 20%);
}

button,
a,
input,
select {
  transition: all var(--transition-fast);
}

input::placeholder {
  color: hsl(var(--foreground) / 0.42);
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-thumb {
  background: hsl(var(--border));
  border-radius: 999px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

.animate-pulse {
  animation: pulse 1.4s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% {
    opacity: 0.65;
  }
  50% {
    opacity: 1;
  }
}
