body {
  background-attachment: fixed;
}

.campaign-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: var(--space-24);
  align-items: stretch;
}

@media (max-width: 900px) {
  .campaign-hero {
    grid-template-columns: minmax(0, 1fr);
  }
}

.campaign-hero-text {
  max-width: 38rem;
}

.campaign-kicker {
  font-size: var(--font-size-sm);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: var(--space-8);
}

.campaign-hero-lead {
  font-size: var(--font-size-lg);
  color: var(--color-text-muted);
  margin-top: var(--space-8);
}

.campaign-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  margin-top: var(--space-16);
}

.campaign-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  margin-top: var(--space-16);
}

.campaign-hero-visual {
  display: flex;
  align-items: stretch;
}

.campaign-hero-map {
  width: 100%;
}

.campaign-breadcrumbs {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background-color: rgba(5, 8, 19, 0.9);
}

.campaign-breadcrumbs-nav ol {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  padding-block: var(--space-8);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.campaign-breadcrumbs-nav li + li::before {
  content: "/";
  margin-inline: var(--space-4);
  color: var(--color-text-muted);
}

.campaign-overview-grid {
  gap: var(--space-24);
  align-items: flex-start;
}

.campaign-overview-list {
  margin-top: var(--space-8);
}

.campaign-overview-list li + li {
  margin-top: var(--space-4);
}

.campaign-map-shell {
  margin-top: var(--space-8);
}

.campaign-map-header {
  padding: var(--space-12) var(--space-16) 0 var(--space-16);
}

.campaign-map-body {
  padding: 0 var(--space-16) var(--space-16) var(--space-16);
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.campaign-map-legend {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.campaign-map-legend-item {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-6);
  align-items: baseline;
  font-size: var(--font-size-sm);
}

.campaign-map-cta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  margin-top: var(--space-8);
}

.campaign-section-header {
  max-width: 44rem;
  margin-inline: auto;
}

.campaign-timeline .card {
  padding-top: var(--space-12);
}

.campaign-mission-facts {
  font-size: var(--font-size-sm);
}

.campaign-mission-facts li + li {
  margin-top: var(--space-4);
}

.campaign-story-grid {
  gap: var(--space-24);
  align-items: flex-start;
}

.campaign-locations {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-16);
}

@media (max-width: 900px) {
  .campaign-locations {
    grid-template-columns: minmax(0, 1fr);
  }
}

.campaign-bosses-grid {
  align-items: stretch;
}

.campaign-bosses-cards {
  align-items: stretch;
}

.campaign-strategy-grid,
.campaign-rewards-grid {
  align-items: stretch;
}

.campaign-gallery-section .gallery-grid {
  max-width: 60rem;
  margin-inline: auto;
}

.campaign-gallery-cta p {
  margin-top: 0;
}

@media (max-width: 600px) {
  .campaign-hero-actions,
  .campaign-map-cta,
  .campaign-gallery-cta .campaign-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }
}
