/* ------------------------------------------------------------------
   Bonebed (vibrance.top) -- "fossil rubbing" hand.

   Flint-brown ground, bone-white type, silt edges, ochre only where the
   record itself is making a point.  Zero corner radius, 3px bed lines at the
   top of every panel, and a hairline text shadow so headings sit above the
   page like a raised cast rather than printed on it.
   ------------------------------------------------------------------ */

:root {
  --stratum-flint: #2A2521;
  --stratum-flint-lift: #332D28;
  --stratum-flint-deep: #1D1916;
  --stratum-bone: #D9C9A3;
  --stratum-bone-dim: #B49F76;
  --stratum-silt: #7A5C3E;
  --stratum-silt-soft: rgba(122, 92, 62, 0.42);
  --stratum-ochre: #A83B2E;
  --stratum-ash: #6F6558;
  --stratum-rule: 3px;
  --stratum-gap: 26px;
  --stratum-frame: 1180px;
  --stratum-relief: 0 1px 0 rgba(0, 0, 0, 0.55);
  --stratum-face-display: "Cinzel", "Times New Roman", serif;
  --stratum-face-text: "Source Serif 4", "Source Serif Pro", Georgia, "Songti SC", serif;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

.strata-body {
  margin: 0;
  background-color: var(--stratum-flint);
  background-image:
    radial-gradient(ellipse at 50% -10%, rgba(217, 201, 163, 0.07), transparent 62%),
    repeating-linear-gradient(180deg,
      rgba(122, 92, 62, 0.10) 0px,
      rgba(122, 92, 62, 0.10) 1px,
      transparent 1px,
      transparent 46px);
  color: var(--stratum-bone);
  font-family: var(--stratum-face-text);
  font-size: 17px;
  line-height: 1.62;
  padding-bottom: 0;
}

a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; text-decoration-color: var(--stratum-ochre); text-underline-offset: 3px; }

img { max-width: 100%; height: auto; display: block; }

.jump {
  position: absolute; left: -9999px; top: 0;
  background: var(--stratum-ochre); color: #fff; padding: 10px 16px; z-index: 60;
}
.jump:focus { left: 8px; top: 8px; }

/* ------------------------------ masthead ---------------------------- */

.bedframe {
  border-bottom: 1px solid var(--stratum-silt-soft);
  background: linear-gradient(180deg, rgba(29, 25, 22, 0.9), rgba(42, 37, 33, 0.72));
}
.bedframe__inner {
  max-width: var(--stratum-frame);
  margin: 0 auto;
  padding: 14px 22px;
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
}
.bedframe__mark { display: flex; align-items: baseline; gap: 10px; flex: 1 1 auto; }
.bedframe__glyph {
  width: 15px; height: 15px; flex: none;
  border: var(--stratum-rule) solid var(--stratum-bone-dim);
  border-bottom-color: transparent; border-right-color: transparent;
  transform: rotate(-45deg);
}
.bedframe__word {
  font-family: var(--stratum-face-display);
  font-weight: 700; font-size: 21px; letter-spacing: 0.18em;
  text-transform: uppercase; text-shadow: var(--stratum-relief);
}
.bedframe__tag {
  font-size: 12.5px; letter-spacing: 0.05em; color: var(--stratum-ash);
  border-left: 1px solid var(--stratum-silt-soft); padding-left: 10px;
}
.bedframe__tools { display: flex; align-items: center; gap: 14px; }
.langswitch {
  font-family: var(--stratum-face-display);
  font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase;
  border: 1px solid var(--stratum-silt); padding: 6px 12px;
  color: var(--stratum-bone-dim);
}
.langswitch:hover { border-color: var(--stratum-ochre); color: var(--stratum-bone); text-decoration: none; }

/* --------------------------- clade drawer --------------------------- */

.cladehatch { position: relative; }
.cladehatch__grip {
  list-style: none; cursor: pointer;
  font-family: var(--stratum-face-display); font-size: 13px;
  letter-spacing: 0.1em; text-transform: uppercase;
  border: 1px solid var(--stratum-silt); padding: 6px 12px;
  color: var(--stratum-bone-dim); display: flex; align-items: center; gap: 8px;
}
.cladehatch__grip::-webkit-details-marker { display: none; }
.cladehatch__grip::marker { content: ""; }
.cladehatch__caret { width: 0; height: 0; border: 5px solid transparent; border-top-color: var(--stratum-bone-dim); margin-top: 3px; }
.cladehatch[open] .cladehatch__grip { border-color: var(--stratum-ochre); color: var(--stratum-bone); }
.cladehatch[open] .cladehatch__caret { border-top-color: transparent; border-bottom-color: var(--stratum-ochre); margin-top: -3px; }
.cladehatch__drawer {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 40;
  width: min(720px, 88vw);
  background: var(--stratum-flint-deep);
  border: 1px solid var(--stratum-silt);
  border-top: var(--stratum-rule) solid var(--stratum-ochre);
  padding: 18px 20px 20px;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px 22px;
  max-height: 70vh; overflow: auto;
}
.cladehatch__shelfname {
  font-family: var(--stratum-face-display); font-size: 14px; letter-spacing: 0.08em;
  margin: 0 0 4px; text-transform: uppercase; color: var(--stratum-bone);
  display: flex; justify-content: space-between; gap: 8px;
}
.cladehatch__count { color: var(--stratum-ochre); font-size: 12px; }
.cladehatch__note { margin: 0 0 8px; font-size: 13px; color: var(--stratum-ash); line-height: 1.45; }
.cladehatch__branches { list-style: none; margin: 0; padding: 0; }
.cladehatch__branch { padding: 5px 0; border-top: 1px solid rgba(122, 92, 62, 0.28); font-size: 14.5px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.cladehatch__branch.is-empty { color: var(--stratum-ash); }
.cladehatch__tally { color: var(--stratum-ochre); font-size: 12px; }
.cladehatch__branchnote { flex-basis: 100%; font-size: 12px; color: var(--stratum-ash); line-height: 1.4; }

/* ---------------------------- time band ----------------------------- */

.timeband {
  position: sticky; top: 0; z-index: 30;
  background: rgba(29, 25, 22, 0.96);
  border-bottom: 1px solid var(--stratum-silt-soft);
  backdrop-filter: blur(3px);
}
.timeband__scroll { max-width: var(--stratum-frame); margin: 0 auto; padding: 8px 22px 10px; overflow-x: auto; }
.timeband__eras { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-bottom: 4px; }
.timeband__era {
  font-family: var(--stratum-face-display); font-size: 10.5px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--stratum-ash);
  border-bottom: 1px solid var(--stratum-silt-soft); padding-bottom: 2px;
}
.timeband__run {
  list-style: none; display: flex; gap: 2px; margin: 0; padding: 0; min-width: 900px;
}
.timeband__epoch { flex: 0 0 var(--epoch-w); min-width: 46px; }
.timeband__link, .timeband__sealed {
  display: block; padding: 9px 6px 8px;
  background: var(--epoch-tone);
  border-top: var(--stratum-rule) solid transparent;
  color: var(--stratum-flint-deep);
}
.timeband__link:hover { text-decoration: none; border-top-color: var(--stratum-ochre); }
.timeband__sealed { opacity: 0.3; cursor: not-allowed; }
.timeband__label {
  display: block; font-family: var(--stratum-face-display);
  font-size: 11.5px; letter-spacing: 0.04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.timeband__ma { display: block; font-size: 9.5px; color: rgba(29, 25, 22, 0.72); white-space: nowrap; overflow: hidden; }
.timeband__epoch.is-open .timeband__label { text-shadow: none; }
.timeband__link.is-active { border-top-color: var(--stratum-ochre); box-shadow: inset 0 -4px 0 var(--stratum-ochre); }

/* ------------------------------ quarry ------------------------------ */

.quarryfloor { max-width: var(--stratum-frame); margin: 0 auto; padding: 34px 22px 60px; }

.shelfhead { border-top: var(--stratum-rule) solid var(--stratum-silt); padding-top: 20px; margin-bottom: 40px; }
.shelfhead__title {
  font-family: var(--stratum-face-display); font-weight: 700;
  font-size: clamp(34px, 5.4vw, 58px); letter-spacing: 0.06em; line-height: 1.04;
  margin: 0 0 12px; text-shadow: var(--stratum-relief);
}
.shelfhead__lede { max-width: 62ch; font-size: 19px; margin: 0 0 12px; }
.shelfhead__tally { font-size: 14px; color: var(--stratum-ash); margin: 0; }
.shelfhead__tally strong { color: var(--stratum-bone); font-weight: 600; }

.cladefilter { margin: 0 0 26px; border-top: 1px solid var(--stratum-ochre); padding-top: 10px; }
.cladefilter__line { margin: 0; font-size: 14px; }
.cladefilter__label { font-family: var(--stratum-face-display); letter-spacing: 0.1em; text-transform: uppercase; font-size: 12px; color: var(--stratum-ash); }
.cladefilter__value { color: var(--stratum-bone); }
.cladefilter__clear { margin-left: 12px; color: var(--stratum-ochre); border-bottom: 1px solid var(--stratum-ochre); }

/* ----------------------------- cabinets ----------------------------- */

.cabinet { margin: 0 0 44px; scroll-margin-top: 132px; }
.cabinet[hidden] { display: none; }
.cabinet__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; border-bottom: var(--stratum-rule) solid var(--stratum-silt); padding-bottom: 8px; }
.cabinet__name {
  font-family: var(--stratum-face-display); font-size: 22px; font-weight: 700;
  letter-spacing: 0.06em; margin: 0; display: flex; align-items: center; gap: 10px;
  text-shadow: var(--stratum-relief);
}
.cabinet__tone { width: 13px; height: 13px; background: var(--epoch-tone); flex: none; }
.cabinet__meta { margin: 0; font-size: 13px; color: var(--stratum-ash); display: flex; gap: 12px; flex: 1 1 200px; }
.cabinet__open {
  font-family: var(--stratum-face-display); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--stratum-bone-dim); border: 1px solid var(--stratum-silt-soft); padding: 5px 10px;
}
.cabinet__open:hover { color: var(--stratum-bone); border-color: var(--stratum-ochre); text-decoration: none; }
.cabinet__gloss { font-size: 14.5px; color: var(--stratum-ash); margin: 12px 0 16px; max-width: 74ch; }

.cabinet__rail {
  list-style: none; margin: 0; padding: 0 0 12px;
  display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity;
  scrollbar-color: var(--stratum-silt) transparent;
}
.cabinet__rail::-webkit-scrollbar { height: 8px; }
.cabinet__rail::-webkit-scrollbar-thumb { background: var(--stratum-silt); }
.cabinet__ticket { flex: 0 0 296px; scroll-snap-align: start; }
.cabinet__ticket[hidden] { display: none; }
.ticket__link {
  display: block; background: var(--stratum-flint-lift);
  border-top: var(--stratum-rule) solid var(--stratum-silt);
  padding: 0 0 14px;
}
.ticket__link:hover { text-decoration: none; border-top-color: var(--stratum-ochre); }
.ticket__plate { display: block; overflow: hidden; }
.boneplate { width: 100%; height: auto; }
.ticket__link:hover .boneplate { filter: brightness(1.1); }
.ticket__names { display: block; padding: 12px 14px 0; }
.ticket__genus { display: block; font-family: var(--stratum-face-display); font-size: 16px; letter-spacing: 0.03em; text-shadow: var(--stratum-relief); }
.ticket__latin { display: block; font-style: italic; font-size: 13px; color: var(--stratum-bone-dim); }
.ticket__facts { display: flex; justify-content: space-between; gap: 10px; padding: 10px 14px 0; font-size: 12px; color: var(--stratum-ash); border-top: 1px solid rgba(122, 92, 62, 0.28); margin-top: 10px; }

.cladefilter__noscript { font-size: 13px; color: var(--stratum-ash); }

/* ----------------------------- shelf note --------------------------- */

.shelfnote { border-top: var(--stratum-rule) solid var(--stratum-silt); padding-top: 20px; margin-top: 20px; }
.shelfnote__title { font-family: var(--stratum-face-display); font-size: 20px; letter-spacing: 0.08em; margin: 0 0 18px; text-transform: uppercase; text-shadow: var(--stratum-relief); }
.shelfnote__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 22px; }
.shelfnote__cell { border-top: 1px solid var(--stratum-silt-soft); padding-top: 12px; }
.shelfnote__cellname { font-family: var(--stratum-face-display); font-size: 15px; margin: 0 0 6px; letter-spacing: 0.04em; }
.shelfnote__cell p { margin: 0; font-size: 15px; color: var(--stratum-bone-dim); }

/* --------------------------- entry (detail) ------------------------- */

.entrysheet { }
.cladespine { margin: 0 0 26px; }
.cladespine__run { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--stratum-silt-soft); }
.cladespine__node { padding-left: calc(4px + var(--depth) * 22px); display: flex; align-items: baseline; gap: 8px; font-size: 13.5px; color: var(--stratum-ash); }
.cladespine__tick { width: 16px; height: 1px; background: var(--stratum-silt); flex: none; transform: translateY(-4px); }
.cladespine__node:last-child { color: var(--stratum-bone); }
.cladespine__node:last-child .cladespine__tick { background: var(--stratum-ochre); }

.entrysheet__head { border-top: var(--stratum-rule) solid var(--stratum-silt); padding-top: 18px; margin-bottom: 26px; }
.entrysheet__eyebrow { font-family: var(--stratum-face-display); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--stratum-ash); margin: 0 0 10px; display: flex; align-items: center; gap: 10px; }
.entrysheet__eyebrow a { color: var(--stratum-ochre); }
.entrysheet__dot { width: 4px; height: 4px; background: var(--stratum-silt); display: inline-block; }
.entrysheet__title { font-family: var(--stratum-face-display); font-size: clamp(30px, 4.6vw, 46px); line-height: 1.06; margin: 0 0 6px; letter-spacing: 0.02em; text-shadow: var(--stratum-relief); }
.entrysheet__second { font-style: italic; font-size: 18px; color: var(--stratum-bone-dim); margin: 0 0 14px; }
.entrysheet__lede { max-width: 68ch; font-size: 19.5px; margin: 0 0 12px; }
.entrysheet__stamp { font-size: 13px; color: var(--stratum-ash); margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* Editorial credit -- the desk that signs the entry, in the stamp row. */
.entrysheet__byline { font-family: var(--stratum-face-display); font-size: 12.5px; letter-spacing: 0.08em; color: var(--stratum-bone-dim); }

.plateslab { margin: 0 0 34px; border-top: var(--stratum-rule) solid var(--stratum-silt); background: var(--stratum-flint-deep); }
.plateslab__img { width: 100%; }
.plateslab__cap { font-size: 13px; color: var(--stratum-ash); padding: 10px 14px; border-top: 1px solid var(--stratum-silt-soft); }

.entrysheet__grid { display: grid; grid-template-columns: minmax(240px, 320px) minmax(0, 1fr); gap: 40px; align-items: start; }
.entrysheet__grid--wide { grid-template-columns: minmax(0, 1fr); }

.factboard { border-top: var(--stratum-rule) solid var(--stratum-ochre); background: var(--stratum-flint-lift); padding: 16px 18px 18px; position: sticky; top: 116px; }
.factboard__title { font-family: var(--stratum-face-display); font-size: 18px; margin: 0 0 12px; letter-spacing: 0.04em; font-style: italic; }
.factboard__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.factboard__table th, .factboard__table td { text-align: left; padding: 7px 0; vertical-align: top; border-bottom: 1px solid rgba(122, 92, 62, 0.24); }
.factboard__table th { font-family: var(--stratum-face-display); font-weight: 500; font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--stratum-ash); width: 42%; padding-right: 12px; }
.factboard__aside { display: block; font-size: 12px; color: var(--stratum-ash); }

.entrysheet__prose { font-size: 17.5px; max-width: 74ch; }
.entrysheet__prose h2 {
  font-family: var(--stratum-face-display); font-size: 21px; letter-spacing: 0.03em;
  margin: 34px 0 10px; padding-top: 12px; border-top: 1px solid var(--stratum-silt-soft);
  text-shadow: var(--stratum-relief);
}
.entrysheet__prose h2:first-child { margin-top: 0; }
.entrysheet__prose p { margin: 0 0 14px; }
.entrysheet__prose ul, .entrysheet__prose ol { margin: 0 0 16px; padding-left: 20px; }
.entrysheet__prose li { margin-bottom: 7px; }
.entrysheet__prose table { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 0 0 18px; }
.entrysheet__prose th, .entrysheet__prose td { border: 1px solid var(--stratum-silt-soft); padding: 8px 10px; text-align: left; vertical-align: top; }
.entrysheet__prose thead th { background: var(--stratum-flint-lift); font-family: var(--stratum-face-display); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; }
.entrysheet__prose em { color: var(--stratum-bone-dim); }

.debateboard { margin: 30px 0 0; border-left: 3px solid var(--stratum-silt); padding: 4px 0 4px 18px; }
.debateboard__title { font-family: var(--stratum-face-display); font-size: 15px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--stratum-bone-dim); margin: 0 0 8px; }
.debateboard p { margin: 0; font-size: 16.5px; }

.misread { margin: 32px 0 0; border: 1px solid var(--stratum-ochre); border-top-width: var(--stratum-rule); padding: 16px 20px 18px; background: rgba(168, 59, 46, 0.07); }
.misread__title { font-family: var(--stratum-face-display); font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--stratum-ochre); margin: 0 0 14px; }
.misread__list { list-style: none; margin: 0; padding: 0; }
.misread__item { padding: 12px 0; border-top: 1px solid rgba(168, 59, 46, 0.3); }
.misread__item:first-child { border-top: 0; padding-top: 0; }
.misread__claim, .misread__fix { margin: 0 0 6px; font-size: 16px; }
.misread__fix { margin-bottom: 0; color: var(--stratum-bone-dim); }
.misread__tag { display: inline-block; font-family: var(--stratum-face-display); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--stratum-ochre); margin-right: 8px; }

.coeval { margin: 46px 0 0; border-top: var(--stratum-rule) solid var(--stratum-silt); padding-top: 16px; }
.coeval__title { font-family: var(--stratum-face-display); font-size: 16px; letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 16px; }
.coeval__period { color: var(--stratum-ochre); }
.coeval__rail { list-style: none; margin: 0; padding: 0 0 10px; display: flex; gap: 14px; overflow-x: auto; }
.coeval__item { flex: 0 0 190px; }
.coeval__link { display: block; border-top: 1px solid var(--stratum-silt-soft); padding-top: 8px; }
.coeval__link:hover { border-top-color: var(--stratum-ochre); text-decoration: none; }
.coeval__plate { width: 100%; height: auto; }
.coeval__genus { display: block; font-family: var(--stratum-face-display); font-size: 13.5px; margin-top: 6px; }
.coeval__mass { display: block; font-size: 11.5px; color: var(--stratum-ash); }

/* ------------------------------- versus ----------------------------- */

.combatants { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin: 0 0 34px; }
.combatant { border-top: var(--stratum-rule) solid var(--stratum-silt); padding-top: 12px; }
.combatant[data-side="1"] { --side-tone: var(--stratum-bone-dim); }
.combatant[data-side="2"] { --side-tone: var(--stratum-ochre); }
.combatant[data-side="2"] { border-top-color: var(--stratum-ochre); }
.combatant__name { font-family: var(--stratum-face-display); font-size: 19px; margin: 0 0 2px; font-style: italic; }
.combatant__latin { font-size: 13.5px; color: var(--stratum-ash); margin: 0 0 10px; }
.combatant__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.combatant__table th, .combatant__table td { text-align: left; padding: 6px 0; border-bottom: 1px solid rgba(122, 92, 62, 0.24); vertical-align: top; }
.combatant__table th { font-family: var(--stratum-face-display); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--stratum-ash); width: 38%; }

.versustable { width: 100%; border-collapse: collapse; margin: 0 0 26px; font-size: 15px; }
.versustable th, .versustable td { border: 1px solid var(--stratum-silt-soft); padding: 10px 12px; text-align: left; vertical-align: top; }
.versustable thead th { background: var(--stratum-flint-lift); font-family: var(--stratum-face-display); font-size: 13px; letter-spacing: 0.05em; }
.versustable tbody th { font-family: var(--stratum-face-display); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--stratum-ash); width: 26%; }

/* ---------------------------- cabinet page -------------------------- */

.cabinetpage__head { border-top: var(--stratum-rule) solid var(--epoch-tone, var(--stratum-silt)); padding-top: 18px; margin-bottom: 30px; }
.cabinetpage__eyebrow { font-family: var(--stratum-face-display); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--stratum-ash); margin: 0 0 10px; }
.cabinetpage__title { font-family: var(--stratum-face-display); font-size: clamp(30px, 4.4vw, 44px); margin: 0 0 6px; letter-spacing: 0.05em; text-shadow: var(--stratum-relief); }
.cabinetpage__span { font-size: 15px; color: var(--stratum-bone-dim); margin: 0 0 12px; }
.cabinetpage__gloss { max-width: 72ch; margin: 0 0 10px; font-size: 16.5px; }
.cabinetpage__count { font-size: 13px; color: var(--stratum-ash); margin: 0; }
.cabinetpage__empty { font-size: 16px; color: var(--stratum-ash); }
.cabinetpage__grid { list-style: none; margin: 0 0 40px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 20px; }
.shelfcard__link { display: block; border-top: var(--stratum-rule) solid var(--stratum-silt); background: var(--stratum-flint-lift); padding-bottom: 12px; }
.shelfcard__link:hover { border-top-color: var(--stratum-ochre); text-decoration: none; }
.shelfcard__plate { width: 100%; }
.shelfcard__link:hover .shelfcard__plate { filter: brightness(1.1); }
.shelfcard__genus { display: block; font-family: var(--stratum-face-display); font-size: 15.5px; padding: 10px 12px 0; text-shadow: var(--stratum-relief); }
.shelfcard__latin { display: block; font-style: italic; font-size: 12.5px; color: var(--stratum-bone-dim); padding: 0 12px; }
.shelfcard__meta { display: block; font-size: 12px; color: var(--stratum-ash); padding: 6px 12px 0; }
.shelfcard__stamp { display: block; font-size: 11.5px; color: var(--stratum-ash); padding: 2px 12px 0; }

.periodstep { display: flex; justify-content: space-between; gap: 20px; border-top: var(--stratum-rule) solid var(--stratum-silt); padding-top: 14px; }
.periodstep__link { display: flex; flex-direction: column; gap: 2px; }
.periodstep__link--next { text-align: right; margin-left: auto; }
.periodstep__dir { font-family: var(--stratum-face-display); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--stratum-ash); }
.periodstep__name { font-family: var(--stratum-face-display); font-size: 18px; }

/* ------------------------------- legal ------------------------------ */

.legalpage__inner { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 40px; align-items: start; }
.legalrail { border-top: var(--stratum-rule) solid var(--stratum-silt); padding-top: 14px; position: sticky; top: 116px; }
.legalrail__title { font-family: var(--stratum-face-display); letter-spacing: 0.14em; text-transform: uppercase; font-size: 13px; margin: 0 0 10px; }
.legalrail__list { list-style: none; margin: 0 0 12px; padding: 0; font-size: 14.5px; }
.legalrail__list li { padding: 5px 0; border-bottom: 1px solid rgba(122, 92, 62, 0.2); }
.legalrail__list li.is-current a { color: var(--stratum-ochre); }
.legalrail__mail { font-size: 13px; color: var(--stratum-ash); margin: 0; }
.legalpage__prose { max-width: 76ch; font-size: 16.5px; }
.legalpage__title { font-family: var(--stratum-face-display); font-size: clamp(26px, 3.6vw, 38px); margin: 0 0 18px; letter-spacing: 0.04em; text-shadow: var(--stratum-relief); }
.legalpage__prose h2 { font-family: var(--stratum-face-display); font-size: 18px; margin: 30px 0 8px; padding-top: 10px; border-top: 1px solid var(--stratum-silt-soft); }
.legalpage__prose h3 { font-family: var(--stratum-face-display); font-size: 15.5px; margin: 22px 0 6px; color: var(--stratum-bone-dim); }
.legalpage__prose ul { padding-left: 20px; }
.legalpage__prose li { margin-bottom: 8px; }
.legalpage__prose strong { color: var(--stratum-bone); }
.legalpage__stamp { font-size: 13px; color: var(--stratum-ash); border-top: 1px solid var(--stratum-silt-soft); padding-top: 10px; margin-top: 30px; }

/* -------------------------------- 404 ------------------------------- */

.lostpage { border-top: var(--stratum-rule) solid var(--stratum-ochre); padding-top: 24px; max-width: 68ch; }
.lostpage__code { font-family: var(--stratum-face-display); font-size: 70px; letter-spacing: 0.2em; color: var(--stratum-silt); margin: 0 0 6px; }
.lostpage__title { font-family: var(--stratum-face-display); font-size: 30px; margin: 0 0 12px; }
.lostpage__body { font-size: 17px; color: var(--stratum-bone-dim); margin: 0 0 12px; }
.lostpage__actions { display: flex; gap: 14px; margin: 24px 0 0; }
.lostpage__cta { border: 1px solid var(--stratum-ochre); color: var(--stratum-bone); padding: 9px 16px; font-family: var(--stratum-face-display); font-size: 13px; letter-spacing: 0.08em; }
.lostpage__alt { padding: 9px 0; color: var(--stratum-ash); }

/* ------------------------------ footer ------------------------------ */

.quarryfoot { border-top: 1px solid var(--stratum-silt-soft); background: var(--stratum-flint-deep); }
.quarryfoot__inner { max-width: var(--stratum-frame); margin: 0 auto; padding: 26px 22px 34px; }
.quarryfoot__note { font-size: 14px; color: var(--stratum-ash); max-width: 72ch; margin: 0 0 12px; }
.quarryfoot__disclaimer { font-size: 13px; color: var(--stratum-ash); max-width: 72ch; margin: 0 0 14px; border-left: 2px solid var(--stratum-silt-soft); padding-left: 10px; }
.quarryfoot__legal { display: flex; flex-wrap: wrap; gap: 16px; font-family: var(--stratum-face-display); font-size: 12.5px; letter-spacing: 0.1em; text-transform: uppercase; }
.quarryfoot__legal a { border-bottom: 1px solid var(--stratum-silt); }
.quarryfoot__meta { font-size: 12px; color: var(--stratum-ash); margin: 12px 0 0; }

/* ---------------------------- breakpoints --------------------------- */

@media (max-width: 900px) {
  .entrysheet__grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .factboard, .legalrail { position: static; }
  .legalpage__inner { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .combatants { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .strata-body { font-size: 16.5px; padding-bottom: 84px; }
  .bedframe__tag { display: none; }
  /* the time band moves to the bottom of the viewport and scrolls sideways */
  .timeband { position: fixed; top: auto; bottom: 0; left: 0; right: 0; border-top: 1px solid var(--stratum-silt-soft); border-bottom: 0; }
  .timeband__scroll { padding: 6px 14px 8px; }
  .timeband__eras { display: none; }
  .timeband__run { min-width: 760px; }
  .timeband__link, .timeband__sealed { padding: 7px 5px 6px; }
  .timeband__label { font-size: 10.5px; }
  .timeband__ma { display: none; }
  .quarryfloor { padding: 24px 16px 40px; }
  .cladehatch__drawer { position: fixed; left: 12px; right: 12px; width: auto; max-height: 62vh; }
  .cabinet__ticket { flex-basis: 246px; }
  .cabinet__rail { scroll-snap-type: x mandatory; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

@media print {
  .timeband, .quarryfoot, .cladehatch, .langswitch { display: none; }
  .strata-body { background: #fff; color: #111; }
}
