.codex-hero {
  min-height: 260px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: end;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background:
    radial-gradient(circle at 18% 20%, rgba(230, 197, 110, 0.16), transparent 28%),
    linear-gradient(135deg, rgba(2, 8, 19, 0.96), rgba(10, 30, 52, 0.84)),
    url("/assets/moonveil-academy-hero.png") center / cover no-repeat;
  box-shadow: var(--shadow);
}

.codex-hero h1 {
  margin: 8px 0;
  font-size: 2.8rem;
}

.codex-hero p:not(.eyebrow) {
  max-width: 680px;
  color: var(--soft);
  font-weight: 850;
}

.codex-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.codex-card {
  min-height: 300px;
  display: grid;
  align-content: space-between;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(198, 228, 255, 0.22);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.035)),
    rgba(8, 21, 38, 0.94);
  box-shadow: var(--shadow);
}

.codex-card.locked {
  opacity: 0.52;
  filter: grayscale(0.4);
}

.codex-card h2 {
  margin: 6px 0 8px;
}

.codex-card p,
.codex-card small,
.codex-card-foot span:last-child {
  color: var(--soft);
  font-weight: 850;
}

.codex-card-foot {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.language-detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.language-detail-grid .wide {
  grid-column: span 2;
}

@media (max-width: 920px) {
  .codex-hero,
  .language-detail-grid {
    display: grid;
    grid-template-columns: 1fr;
  }

  .language-detail-grid .wide {
    grid-column: span 1;
  }
}
