.story-term .family-timeline {
  list-style: none;
  margin: 1.5rem 0;
  padding: 0;
}
.story-term .family-timeline li {
  position: relative;
  display: grid;
  grid-template-columns: 7.25rem minmax(0, 1fr);
  gap: .3rem 1rem;
  border-inline-start: 2px solid var(--blue-mid);
  padding: .1rem 0 1.2rem 1.1rem;
}
.story-term .family-timeline li:last-child { padding-bottom: .25rem; }
.story-term .family-timeline li::before {
  position: absolute;
  inset-inline-start: -5px;
  top: .53rem;
  width: 8px;
  height: 8px;
  border: 2px solid var(--blue);
  border-radius: 50%;
  background: var(--surface);
  content: "";
}
.story-term .family-timeline time { color: var(--blue); font-size: .95em; font-weight: 650; }
.story-term .family-timeline p { margin: .25rem 0 0; }
.story-term .term-checkpoint {
  padding: 1rem 1.25rem;
  border-inline-start: 3px solid var(--blue);
  background: var(--blue-soft);
}
.story-term .term-checkpoint p { margin: .4rem 0; }
.story-term .term-checkpoint strong { color: var(--navy); font-size: 1.16rem; font-variant-numeric: tabular-nums; }
.story-term .term-provisions { margin: 1rem 0; }
.story-term .term-provisions > div {
  padding-block: 1rem;
  border-block-start: 1px solid var(--rule);
}
.story-term .term-provisions dt { color: var(--ink); font-weight: 700; }
.story-term .term-provisions dd { margin: .35em 0 0; color: var(--secondary); line-height: 1.68; text-align: start; }
@container (min-width: 32rem) {
  .story-term .term-provisions dd { text-align: justify; hyphens: auto; }
}
@container (max-width: 33rem) {
  .story-term .family-timeline li { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 420px) {
  .story-term .term-checkpoint { padding: .8rem 1rem; }
}
@media print {
  .story-term .family-timeline li, .story-term .term-checkpoint, .story-term .term-provisions > div { break-inside: avoid; }
}
