/* ==========================================================================
   Books & Further Reading — a bibliography, set like one. Numbered section
   heads, entries with a metadata gutter, verified-fact tables, and a
   research panel. Typography carries this page; there is no photography.
   ========================================================================== */

/* ---------------- Page head ---------------- */
.bk-head { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(3.5rem, 7vw, 6rem); }
.bk-head__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .7fr);
  gap: clamp(2.2rem, 5vw, 5rem);
  align-items: center;
}
.bk-head__title {
  font-family: var(--display);
  font-size: clamp(2.4rem, 6.8vw, 5rem);
  line-height: .97;
  letter-spacing: -.03em;
  color: var(--ink);
}
.bk-head__lede { margin-top: 1.8rem; max-width: 54ch; }
.bk-head__plate { max-width: 26rem; margin-left: auto; }

@media (max-width: 900px) {
  .bk-head__grid { grid-template-columns: minmax(0, 1fr); }
  .bk-head__plate { margin-left: 0; max-width: 24rem; }
}

/* ---------------- How to read ---------------- */
.bk-how__grid {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: clamp(2rem, 4.5vw, 4.5rem);
  align-items: start;
}
.srckinds { display: grid; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.srckinds li {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1.2rem;
  padding-block: 1.2rem;
  border-bottom: 1px solid var(--rule);
}
.srckinds__n { font-size: 1.15rem; color: var(--brass-ink); }
.srckinds__h { font-size: clamp(1.05rem, 1.5vw, 1.22rem); margin-bottom: .5rem; }
.srckinds li p { font-size: .93rem; line-height: 1.7; color: var(--ink-mute); }

@media (max-width: 820px) {
  .bk-how__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---------------- Section heads ---------------- */
.bk-sec__head {
  display: grid;
  grid-template-columns: clamp(3.5rem, 7vw, 6rem) minmax(0, 1fr);
  gap: .3rem clamp(1rem, 2.5vw, 2rem);
  align-items: baseline;
  padding-bottom: clamp(1.5rem, 3vw, 2.4rem);
  border-bottom: 2px solid var(--ink);
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.bk-sec__n { font-size: clamp(1.6rem, 3vw, 2.4rem); color: var(--oxblood); line-height: 1; }
.bk-sec__sub {
  grid-column: 2;
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-top: .6rem;
}
.bk-sec__head--night { border-bottom-color: var(--brass); }
.bk-sec__head--night .bk-sec__n { color: var(--brass-lt); }
.bk-sec__head--night .bk-sec__sub { color: var(--night-mute); }

@media (max-width: 560px) {
  .bk-sec__head { grid-template-columns: minmax(0, 1fr); }
  .bk-sec__sub { grid-column: 1; }
}

/* ---------------- Bibliography entries ---------------- */
.biblio { display: grid; list-style: none; margin: 0; padding: 0; }
.entry {
  display: grid;
  grid-template-columns: clamp(7rem, 13vw, 11rem) minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 3rem);
  padding-block: clamp(1.8rem, 3.5vw, 2.8rem);
  border-bottom: 1px solid var(--rule);
  position: relative;
}
.entry--key::before {
  content: "";
  position: absolute;
  left: calc(-1 * clamp(.7rem, 1.5vw, 1.2rem));
  top: clamp(1.8rem, 3.5vw, 2.8rem);
  bottom: clamp(1.8rem, 3.5vw, 2.8rem);
  width: 2px;
  background: var(--oxblood);
}
.entry__year { font-size: clamp(1.4rem, 2.4vw, 1.9rem); color: var(--ink); line-height: 1; }
.entry__kind {
  margin-top: .6rem;
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.entry__title { font-size: clamp(1.25rem, 2.2vw, 1.75rem); line-height: 1.18; margin-bottom: .5rem; }
.entry__title em { font-style: italic; }
.entry__author {
  font-family: var(--mono);
  font-size: .74rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--oxblood);
  margin-bottom: 1.1rem;
}
.entry__text { font-size: .97rem; line-height: 1.78; color: var(--ink-mute); max-width: 66ch; }
.entry__text em { font-style: italic; }

.entry__facts {
  display: grid;
  margin: 1.4rem 0 0;
  max-width: 46rem;
  border-top: 1px solid var(--rule-soft);
}
.entry__facts > div {
  display: grid;
  grid-template-columns: minmax(0, .5fr) minmax(0, 1.5fr);
  gap: .8rem;
  padding-block: .55rem;
  border-bottom: 1px solid var(--rule-soft);
}
.entry__facts dt {
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.entry__facts dd { margin: 0; font-size: .88rem; color: var(--ink-soft); line-height: 1.6; }

/* Night variant */
.biblio--night .entry { border-bottom-color: var(--rule-night); }
.biblio--night .entry__year { color: var(--paper); }
.biblio--night .entry__kind { color: var(--night-mute); }
.biblio--night .entry__title { color: var(--paper); }
.biblio--night .entry__author { color: var(--brass-lt); }
.biblio--night .entry__text { color: var(--night-text); }
.biblio--night .entry__facts,
.biblio--night .entry__facts > div { border-color: var(--rule-night); }
.biblio--night .entry__facts dt { color: var(--night-mute); }
.biblio--night .entry__facts dd { color: var(--night-text); }
.biblio--night .entry--key::before { background: var(--brass); }

@media (max-width: 620px) {
  .entry { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
  .entry__meta { display: flex; align-items: baseline; gap: 1rem; }
  .entry__kind { margin-top: 0; }
  .entry__facts > div { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
  .entry--key::before { left: -.6rem; }
}

/* ---------------- Further research ---------------- */
.bk-research__head { max-width: 26ch; margin-bottom: clamp(2rem, 4vw, 3rem); }
.bk-research__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.4rem, 3vw, 2.6rem);
}
.rescard {
  background: var(--paper);
  border: 1px solid var(--rule);
  border-top: 3px solid var(--brass);
  padding: clamp(1.4rem, 3vw, 2.2rem);
}
.rescard__h {
  font-family: var(--mono);
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 1.3rem;
}
.rescard__list { display: grid; gap: 1.2rem; list-style: none; margin: 0; padding: 0; }
.rescard__list li { display: grid; gap: .35rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--rule-soft); }
.rescard__list li:last-child { border-bottom: 0; padding-bottom: 0; }
.rescard__list a {
  font-family: var(--display);
  font-size: 1.1rem;
  color: var(--oxblood);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  width: fit-content;
  transition: border-color .3s var(--ease);
}
.rescard__list a:hover, .rescard__list a:focus-visible { border-bottom-color: var(--oxblood); }
.rescard__list strong { font-family: var(--display); font-size: 1.1rem; font-weight: 500; color: var(--ink); }
.rescard__list span { font-size: .9rem; line-height: 1.66; color: var(--ink-mute); }
.rescard__note {
  margin-top: 1.3rem;
  padding-top: 1rem;
  border-top: 1px solid var(--rule);
  font-family: var(--mono);
  font-size: .68rem;
  line-height: 1.75;
  color: var(--ink-faint);
}

.bk-help {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  margin-top: clamp(2.2rem, 4.5vw, 3.5rem);
  padding-top: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid var(--rule);
}
.bk-help__h { font-size: clamp(1.25rem, 2vw, 1.6rem); margin-bottom: .8rem; }
.bk-help__t { font-size: .96rem; line-height: 1.75; color: var(--ink-mute); max-width: 60ch; }

@media (max-width: 820px) {
  .bk-research__grid { grid-template-columns: minmax(0, 1fr); }
  .bk-help { grid-template-columns: minmax(0, 1fr); }
}
