/* Lore Page Styles — CityGaerGame */
.hero-lore {
  background: linear-gradient(180deg, rgba(212,168,83,0.12), rgba(232,204,118,0.06));
  padding: var(--space-16) 0 var(--space-12);
}
.hero-lore .hero-content p {
  color: var(--color-text-muted);
}
.hero-figure {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.toc {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: var(--color-surface);
  border-top: 1px solid var(--color-border-light);
  border-bottom: 1px solid var(--color-border-light);
}
.toc .toc-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  padding: var(--space-3) 0;
}
.toc .toc-list a {
  font-family: var(--font-family-ui);
  font-size: var(--font-size-sm);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}
.toc .toc-list a:hover {
  background: var(--color-gray-100);
}

.lore-section { padding: var(--space-12) 0; }
.lore-section.alt { background: var(--color-surface-secondary); }

.media-figure {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border-light);
  background: var(--color-surface);
  box-shadow: var(--shadow-base);
}
.media-figure figcaption {
  font-family: var(--font-family-ui);
  font-size: var(--font-size-sm);
  color: var(--color-text-light);
  padding: var(--space-2) var(--space-3);
  background: var(--color-gray-50);
}

/* Archives */
.archive-group {
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  margin-bottom: var(--space-4);
  overflow: hidden;
}
.archive-title {
  cursor: pointer;
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-family-ui);
  font-weight: var(--font-weight-semibold);
  background: linear-gradient(90deg, var(--color-primary-pale), transparent);
}
.archive-list { padding: 0 var(--space-4) var(--space-4); }
.archive-list li { padding: var(--space-2) 0; }
.archive-list a { color: var(--color-primary-dark); }
.archive-list a:hover { text-decoration: underline; }
.archive-empty { color: var(--color-text-light); }

/* Small utility for block small text */
small.block { display: block; }

@media (max-width: 767px) {
  .hero-lore { padding: var(--space-12) 0; }
}
