:root {
  --lineups-grid-gap: var(--space-24);
}

.hero-lineups {
  position: relative;
}

.hero-lineups-inner {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr);
  gap: var(--space-32);
  align-items: center;
}

.hero-lineups-content .eyebrow {
  font-size: var(--font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--color-accent-blue);
  margin-bottom: var(--space-12);
}

.hero-lineups-content .hero-subtitle {
  max-width: 40rem;
  margin-bottom: var(--space-24);
}

.hero-meta {
  margin-bottom: var(--space-24);
}

.hero-cta-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-16);
}

.hero-lineups-visual {
  position: relative;
  justify-self: center;
}

.hero-lineups-orbit {
  position: relative;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  border: 1px dashed rgba(148, 163, 184, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at center, rgba(45, 212, 255, 0.18), transparent 60%);
  box-shadow: var(--shadow-soft);
}

.hero-lineups-node {
  position: absolute;
  padding: 0.25rem 0.75rem;
  border-radius: var(--radius-full);
  background: rgba(15, 23, 42, 0.95);
  border: 1px solid rgba(148, 163, 184, 0.65);
  font-size: var(--font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.hero-lineups-node--lead {
  position: static;
  padding: 0.45rem 1.2rem;
  border-color: rgba(255, 55, 94, 0.9);
  box-shadow: var(--shadow-neon-primary);
}

.hero-lineups-node--dps {
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
}

.hero-lineups-node--support {
  right: 2%;
  top: 50%;
  transform: translateY(-50%);
}

.hero-lineups-node--control {
  bottom: 10%;
  left: 14%;
}

.hero-lineups-node--tank {
  bottom: 10%;
  right: 14%;
}

.hero-lineups-caption {
  margin-top: var(--space-16);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  max-width: 20rem;
}

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

.section-intro {
  max-width: 44rem;
}

.section-header.text-center .section-intro {
  margin-left: auto;
  margin-right: auto;
}

.lineup-core-grid {
  gap: var(--lineups-grid-gap);
}

.lineup-list {
  list-style: disc;
  padding-left: 1.25rem;
  color: var(--color-text-muted);
}

.lineup-list li + li {
  margin-top: var(--space-8);
}

.lineup-steps {
  list-style: decimal;
  padding-left: 1.25rem;
  color: var(--color-text-muted);
}

.lineup-steps li + li {
  margin-top: var(--space-8);
}

.lineup-cta-inline {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-16);
  margin-top: var(--space-24);
}

.card-highlight {
  box-shadow: var(--shadow-strong);
}

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

.roles-item p {
  margin-bottom: 0;
}

.section-starter-lineups {
  background: radial-gradient(circle at top left, rgba(45, 212, 255, 0.08), transparent 55%),
    radial-gradient(circle at bottom right, rgba(255, 55, 94, 0.12), transparent 60%);
}

.starter-grid {
  gap: var(--lineups-grid-gap);
}

.starter-card {
  height: 100%;
}

.section-speed-vs-tank {
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.95), rgba(5, 8, 20, 0.98));
}

.speed-tank-grid {
  gap: var(--lineups-grid-gap);
}

.speed-card {
  border-color: rgba(45, 212, 255, 0.65);
}

.tank-card {
  border-color: rgba(255, 55, 94, 0.65);
}

.lineup-tip {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.section-synergy-pairs {
  background: radial-gradient(circle at center, rgba(45, 212, 255, 0.06), transparent 55%);
}

.synergy-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.8fr);
  gap: var(--space-32);
  align-items: stretch;
}

.synergy-figure {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.4);
  background: rgba(15, 23, 42, 0.8);
}

.synergy-figure img {
  width: 100%;
  height: auto;
}

.synergy-figure figcaption {
  padding: var(--space-16);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.synergy-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-24);
}

.section-arena-meta {
  background: radial-gradient(circle at top, rgba(255, 55, 94, 0.14), transparent 60%);
}

.arena-grid {
  gap: var(--lineups-grid-gap);
}

.lineup-cta-bar {
  margin-top: var(--space-32);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-16);
  justify-content: center;
}

.section-faction-wars {
  background: linear-gradient(160deg, rgba(5, 8, 20, 0.98), rgba(15, 23, 42, 0.96));
}

.faction-grid {
  gap: var(--lineups-grid-gap);
}

.section-counter-lineups {
  background: radial-gradient(circle at bottom, rgba(56, 189, 248, 0.12), transparent 60%);
}

.counter-grid {
  gap: var(--lineups-grid-gap);
}

.section-lineup-planner {
  background: radial-gradient(circle at top left, rgba(45, 212, 255, 0.1), transparent 60%);
}

.planner-grid {
  gap: var(--lineups-grid-gap);
}

.planner-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

.planner-row {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.planner-label {
  font-size: var(--font-size-sm);
  color: var(--color-text);
}

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

.planner-slot {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.planner-slot-label {
  font-size: var(--font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--color-text-muted);
}

.planner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-16);
}

.planner-tips {
  align-self: stretch;
}

.section-lineup-gallery {
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(3, 7, 18, 0.98));
}

.gallery-grid {
  gap: var(--lineups-grid-gap);
}

.gallery-figure {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.4);
  background: rgba(15, 23, 42, 0.85);
  margin-bottom: var(--space-16);
}

.gallery-figure img {
  width: 100%;
}

.gallery-figure figcaption {
  padding: var(--space-16);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.section-advanced-roles {
  background: radial-gradient(circle at center, rgba(255, 55, 94, 0.08), transparent 55%);
}

.advanced-grid {
  gap: var(--lineups-grid-gap);
}

.section-visual-showcase {
  background: linear-gradient(150deg, rgba(5, 8, 20, 0.98), rgba(15, 23, 42, 0.96));
}

.visual-grid {
  gap: var(--lineups-grid-gap);
}

.visual-figure {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.4);
  background: rgba(15, 23, 42, 0.85);
}

.visual-figure img {
  width: 100%;
}

.visual-figure figcaption {
  padding: var(--space-16);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.section-downloadable {
  background: radial-gradient(circle at top, rgba(45, 212, 255, 0.14), transparent 60%);
}

.cheat-sheet-card {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr);
  gap: var(--space-24);
  align-items: center;
}

.cheat-sheet-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-16);
  justify-content: flex-end;
}

.section-next-steps {
  text-align: center;
}

.next-steps-cta {
  margin-top: var(--space-24);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-16);
  justify-content: center;
}

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

  .hero-lineups-visual {
    order: -1;
  }

  .synergy-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .cheat-sheet-card {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 768px) {
  .hero-cta-group,
  .lineup-cta-inline,
  .lineup-cta-bar,
  .planner-actions,
  .cheat-sheet-actions,
  .next-steps-cta {
    justify-content: flex-start;
  }

  .roles-grid,
  .planner-lineup-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-lineups-orbit {
    width: 220px;
    height: 220px;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .hero-lineups-orbit {
    animation: orbit-pulse 8s ease-in-out infinite;
  }

  .hero-lineups-node {
    animation: node-glow 4s ease-in-out infinite alternate;
  }
}

@keyframes orbit-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(45, 212, 255, 0.5);
  }
  50% {
    box-shadow: 0 0 35px 6px rgba(45, 212, 255, 0.4);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(45, 212, 255, 0.5);
  }
}

@keyframes node-glow {
  0% {
    box-shadow: 0 0 0 rgba(255, 55, 94, 0.3);
  }
  100% {
    box-shadow: 0 0 14px rgba(255, 55, 94, 0.7);
  }
}
