.lore-page {
  width: min(91%, 1160px);
  margin: 56px auto 88px;
}

.lore-heading h1 {
  font-size: clamp(3rem, 7vw, 5.2rem);
  line-height: 1;
  letter-spacing: -.04em;
  margin: 0 0 16px;
}

.lore-heading > p:not(.tags) {
  max-width: 62ch;
  color: #d4c9d5;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  line-height: 1.6;
}

.lore-filters {
  display: grid;
  grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto;
  align-items: end;
  gap: 14px;
  padding-block: 24px;
  margin: 26px 0;
  border-block: 1px solid #433552;
  font: .94rem/1.4 Arial, sans-serif;
}

.lore-filters label { display: grid; gap: 7px; }

.lore-filters input, .lore-filters select, .lore-filters button {
  min-width: 0;
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid #635074;
  border-radius: 5px;
  background: #171329;
  color: var(--ink);
  font: inherit;
}

.lore-filters button { background: #6232a0; cursor: pointer; }
.lore-filters button:hover { background: #7443af; }
.lore-filters :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.lore-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.lore-card > a {
  display: block;
  height: 100%;
  overflow-wrap: anywhere;
  border: 1px solid #3d314d;
  border-radius: 8px;
  background: #151125;
}

.lore-card > a:hover { border-color: var(--purple); }
.lore-card img, .lore-portrait img { display: block; width: 100%; height: auto; }
.lore-card img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: 7px 7px 0 0; }
.lore-card-copy { padding: 17px 19px 21px; }
.lore-card-copy h2 { margin: 4px 0 8px; font-size: 1.65rem; }
.lore-card-copy p { margin: 0; line-height: 1.5; }
.lore-card-copy p:last-child, .lore-empty { color: #d4c9d5; }
.lore-pagination { display: flex; justify-content: center; gap: 22px; margin-top: 32px; }
.lore-pagination a, .lore-back, .lore-related a { color: var(--purple); text-decoration: underline; text-underline-offset: 3px; }

.lore-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 64px);
  align-items: start;
  margin-top: 30px;
}

.lore-detail-grid:has(.lore-heading:only-child) { grid-template-columns: minmax(0, 760px); }
.lore-facts { display: grid; gap: 14px; margin: 24px 0 0; }
.lore-facts dt { color: #d9adff; font: 700 .84rem/1.4 Arial, sans-serif; }
.lore-facts dd { margin: 4px 0 0; line-height: 1.5; }
.lore-portrait { margin: 14px 0 0; }
.lore-portrait img { border-radius: 8px; }
.lore-portrait figcaption { margin-top: 9px; color: #b8afc2; font: .86rem/1.4 Arial, sans-serif; }
.lore-related { margin-top: 44px; max-width: 760px; }
.lore-related ul { list-style: none; padding: 0; }
.lore-related li { border-top: 1px solid #433552; padding: 16px 0; scroll-margin-top: 20px; }
.lore-related li:target { border-color: var(--gold); }
.lore-related p { margin: 7px 0 0; color: #d4c9d5; line-height: 1.55; }

@media (max-width: 860px) {
  .lore-grid, .lore-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 580px) {
  .lore-page { margin-top: 36px; }
  .lore-grid, .lore-detail-grid, .lore-filters { grid-template-columns: minmax(0, 1fr); }
}
