:root {
  /* brand palette */
  --bg: #0b0b10;
  --bg-rgb: 11, 11, 16; /* for rgba fallbacks */
  --card: #14141c;
  --muted: #8c90a0;
  --text: #eef0f4;
  --accent: #a77cff;
  --accent-2: #63f5d4;

  /* legacy variables mapped to new scheme */
  --primary-color: var(--accent);
  --primary-color-dark: var(--accent-2);
  --text-color: var(--text);
  --text-light: var(--muted);
  --background-color: var(--bg);
  /* map Bootstrap color vars to custom palette */
  --bs-body-bg: var(--background-color);
  --bs-body-color: var(--text-color);
  --bs-emphasis-color: var(--text-color);
  --bs-accordion-bg: var(--card);
  --bs-accordion-color: var(--text-color);
  --bs-accordion-btn-bg: var(--card);
  --bs-accordion-btn-color: var(--text-color);
  --bs-list-group-bg: var(--card);
  --bs-list-group-color: var(--text-color);
  --bs-table-bg: var(--card);
  --bs-table-color: var(--text-color);
  --bs-table-striped-bg: rgba(255, 255, 255, 0.05);
  --bs-table-striped-color: var(--text-color);
  --gradient-primary: linear-gradient(
    90deg,
    var(--accent) 0%,
    var(--accent-2) 100%
  );
  --shadow-lg: 0 8px 28px rgba(0, 0, 0, 0.35);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family:
    system-ui,
    -apple-system,
    "Segoe UI",
    Roboto,
    sans-serif;
  color-scheme: dark;
  background:
    radial-gradient(
      1200px 800px at 80% -10%,
      rgba(167, 124, 255, 0.12),
      transparent 60%
    ),
    radial-gradient(
      1000px 700px at -10% 10%,
      rgba(99, 245, 212, 0.1),
      transparent 60%
    ),
    var(--background-color);
  color: var(--text-color);
  line-height: 1.6;
}

.btn-primary {
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  border: none;
  color: #06070b;
}

.btn-primary:hover {
  background: var(--primary-color-dark);
  color: #06070b;
}

.text-muted {
  color: var(--muted) !important;
}

/* ===== Buttons / CTAs ===== */
.cta-button {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  border: 0;
  border-radius: 0.5rem;
  text-decoration: none;
  background: var(--gradient-primary);
  color: #06070b;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  user-select: none;
  transition: transform 120ms ease, box-shadow 200ms ease;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  .cta-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
  }
}

.cta-button:active {
  transform: translateY(0);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.cta-button:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary-color-dark) 70%, white);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary-color-dark) 25%, transparent);
}

.cta-button[disabled],
.cta-button[aria-disabled="true"] {
  opacity: 0.6;
  pointer-events: none;
}

@media (prefers-contrast: more) {
  .cta-button {
    box-shadow: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cta-button {
    transition: none;
  }
}
