:root {
  --cw-ink: #0f172a;
  --cw-ink-muted: #475569;
  --cw-azure: #2563eb;
  --cw-mint: #22c55e;
  --cw-amber: #f59e0b;
  --cw-panel: rgba(255, 255, 255, 0.8);
  --cw-border: rgba(15, 23, 42, 0.08);
  --cw-glow: 0 10px 35px rgba(37, 99, 235, 0.18);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  background: radial-gradient(120% 120% at 15% 10%, rgba(59, 130, 246, 0.12), transparent),
    radial-gradient(80% 80% at 80% 10%, rgba(52, 211, 153, 0.12), transparent),
    #f7f9fc;
  color: var(--cw-ink);
}

.cw-grid {
  background-image: linear-gradient(rgba(15, 23, 42, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 23, 42, 0.05) 1px, transparent 1px);
  background-size: 28px 28px;
}

.cw-glass {
  background: var(--cw-panel);
  border: 1px solid var(--cw-border);
  box-shadow: var(--cw-glow);
}

.cw-badge {
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.9);
}

.cw-pill {
  border: 1px solid var(--cw-border);
  background: rgba(255, 255, 255, 0.9);
}

.cw-blur {
  backdrop-filter: blur(12px);
}

.cw-cta {
  transition: transform 150ms ease, box-shadow 150ms ease;
}

.cw-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(37, 99, 235, 0.24);
}

.cw-card-hover {
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.cw-card-hover:hover {
  transform: translateY(-4px);
  border-color: rgba(37, 99, 235, 0.35);
  background: rgba(255, 255, 255, 0.96);
}

@keyframes pulse-soft {
  0% {
    box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.15);
  }
  50% {
    box-shadow: 0 0 0 12px rgba(34, 197, 94, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
  }
}

.cw-pulse {
  animation: pulse-soft 2.4s infinite;
}
