body {
  --bs-radius-5: 0.5rem;
  --bs-spacer: 1rem;
  --bs-primary-base: var(--bs-purple-500);
  --bs-primary-bg: var(--bs-primary-base);
  --bs-primary-bg-subtle: light-dark(var(--bs-purple-100), var(--bs-purple-900));
  --bs-primary-fg: light-dark(var(--bs-purple-600), var(--bs-purple-400));
  --bs-primary-border: light-dark(var(--bs-purple-300), var(--bs-purple-600));
}

/* ── Purple accent utility ── */
.theme-primary {
  color: var(--bs-primary-fg) !important;
}

.heading-glow {
  color: var(--bs-primary-fg);
  text-shadow: 0 0 40px color-mix(in srgb, var(--bs-primary-base) 30%, transparent);
}

/* ── Nav toggler ── */
.dungeon-toggler {
  border: 1px solid var(--bs-primary-border) !important;
  padding: 0.4rem 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: none;
}

.dungeon-toggler:focus {
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--bs-primary-base) 40%, transparent);
}

.dungeon-toggler-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--bs-primary-fg);
  border-radius: 1px;
}

/* ── Hero section ── */
.dungeon-hero {
  min-height: 70vh;
  border-bottom: 1px solid var(--bs-primary-bg-subtle);
}

/* ── Entity cards ── */
.entity-card {
  max-width: 18rem;
  margin-inline: auto;
  background: var(--bs-body-bg);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.entity-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--bs-primary-base) 20%, transparent);
}

.entity-img {
  aspect-ratio: 1;
  object-fit: contain;
  background: var(--bs-primary-bg-subtle);
  padding: 1rem;
}

.entity-meta {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 0.75rem;
  font-size: 0.875rem;
}

.entity-meta dt {
  color: var(--bs-primary-fg);
  font-weight: 600;
}

.entity-meta dd {
  margin: 0;
  color: var(--bs-secondary-color);
}

/* ── Callout ── */
.callout {
  padding: 1rem;
  border-left: 0.25rem solid var(--bs-primary-border);
  border-radius: var(--bs-radius-5);
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-body-color);
  font-size: 0.875rem;
}

/* ── Smooth scroll ── */
html {
  scroll-behavior: smooth;
}
