.characters-hero {
  position: relative;
  overflow: hidden;
  padding-block: var(--space-16);
}

.characters-hero__media {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0.4;
}

.characters-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.characters-hero__content {
  position: relative;
  z-index: 1;
}

.characters-hero__eyebrow {
  font-size: var(--font-size-sm);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-accent-gold);
  margin-bottom: var(--space-2);
}

.characters-hero__lead {
  font-size: var(--font-size-lg);
  color: var(--gray-100);
}

.characters-hero__actions {
  margin-top: var(--space-6);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.characters-anchor-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  background: linear-gradient(to bottom, rgba(5, 5, 9, 0.96), rgba(5, 5, 9, 0.9));
  border-bottom: 1px solid var(--color-border-subtle);
  backdrop-filter: blur(18px);
}

.characters-anchor-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding-block: var(--space-3);
}

.characters-anchor-nav__link {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  background-color: rgba(17, 17, 27, 0.9);
  color: var(--gray-200);
  transition: background-color var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal), transform var(--transition-fast);
}

.characters-anchor-nav__link:hover {
  background-color: var(--color-primary-soft);
  border-color: rgba(230, 194, 107, 0.7);
  color: var(--gray-50);
  transform: translateY(-1px);
}

.characters-anchor-nav__link--active {
  background: radial-gradient(circle at 10% 0, rgba(230, 194, 107, 0.22), rgba(195, 34, 43, 0.95));
  border-color: rgba(25, 200, 217, 0.75);
  color: var(--gray-50);
}

.characters-intro__list {
  display: grid;
  gap: var(--space-3);
  font-size: var(--font-size-sm);
}

.characters-intro__card {
  align-self: stretch;
}

.characters-intro__cta {
  margin-top: var(--space-6);
}

.characters-section-header {
  margin-bottom: var(--space-8);
}

.characters-factions__grid,
.characters-classes__grid,
.characters-progression__grid,
.characters-relations__grid,
.characters-facts__grid,
.characters-bestiary__content {
  align-items: flex-start;
}

.characters-factions__card,
.characters-classes__card,
.characters-progression__card,
.characters-relations__card,
.characters-facts__card,
.characters-stories__card,
.characters-interviews__card,
.characters-gallery3d__mockup {
  height: 100%;
}

.characters-bestiary__list,
.characters-gallery3d__viewer,
.characters-interviews__steps,
.characters-facts__list {
  display: grid;
  gap: var(--space-3);
  font-size: var(--font-size-sm);
}

.characters-gallery3d__viewer {
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background: radial-gradient(circle at top, rgba(25, 200, 217, 0.08), rgba(5, 5, 9, 0.98));
  border: 1px solid rgba(25, 200, 217, 0.35);
}

.characters-gallery3d__model-info {
  margin-bottom: var(--space-4);
}

.characters-gallery3d__controls {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.characters-gallery3d__control {
  flex: 1 1 auto;
}

.characters-gallery3d__hint {
  font-size: var(--font-size-xs);
}

.characters-epic-battles img {
  border-radius: var(--radius-lg);
}

.characters-stories .characters-story + .characters-story,
.characters-interviews .characters-interview + .characters-interview {
  margin-top: var(--space-4);
}

.characters-facts__list li::marker {
  color: var(--color-accent-gold);
}

@media (max-width: 768px) {
  .characters-hero {
    padding-block: var(--space-12);
  }

  .characters-anchor-nav {
    top: auto;
  }

  .characters-gallery3d__controls {
    flex-direction: column;
  }
}
