.folio-story > p,
.folio-story > ul,
.folio-story > ol {
  max-width: 38rem;
  margin-block: 0;
  font-size: var(--folio-step-0);
  line-height: 1.72;
  text-wrap: pretty;
}

.folio-story > p + p,
.folio-story > p + ul,
.folio-story > p + ol,
.folio-story > ul + p,
.folio-story > ol + p {
  margin-block-start: var(--folio-space-3);
}

.folio-story > .folio-heading {
  max-width: 24ch;
  margin-block: var(--folio-space-8) var(--folio-space-3);
  font-weight: 580;
  letter-spacing: -0.022em;
  line-height: 1.16;
  text-wrap: balance;
}

.folio-story > h2.folio-heading {
  font-size: var(--folio-step-2);
}

.folio-story > h3.folio-heading {
  margin-block-start: var(--folio-space-6);
  font-size: var(--folio-step-1);
}

.folio-story > h4.folio-heading {
  margin-block-start: var(--folio-space-4);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.folio-points,
.folio-steps {
  padding-inline-start: var(--folio-space-4);
}

.folio-points li::marker {
  color: var(--folio-accent);
  content: "§ ";
}

.folio-steps li::marker {
  color: var(--folio-accent);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
}

.folio-story code {
  font-size: 0.9em;
  letter-spacing: 0.02em;
}

.folio-plate {
  margin-block: var(--folio-space-6);
  margin-inline: 0;
}

.folio-plate--lead {
  margin-block-start: 0;
}

.folio-plate__image {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border: 1px solid var(--folio-rule-colour);
}

.folio-plate--lead .folio-plate__image {
  aspect-ratio: 16 / 10;
}

.folio-plate__image--x0 { object-position: 0% var(--folio-plate-y, 50%); }
.folio-plate__image--x25 { object-position: 25% var(--folio-plate-y, 50%); }
.folio-plate__image--x50 { object-position: 50% var(--folio-plate-y, 50%); }
.folio-plate__image--x75 { object-position: 75% var(--folio-plate-y, 50%); }
.folio-plate__image--x100 { object-position: 100% var(--folio-plate-y, 50%); }
.folio-plate__image--y0 { --folio-plate-y: 0%; }
.folio-plate__image--y25 { --folio-plate-y: 25%; }
.folio-plate__image--y50 { --folio-plate-y: 50%; }
.folio-plate__image--y75 { --folio-plate-y: 75%; }
.folio-plate__image--y100 { --folio-plate-y: 100%; }

.folio-plate__caption {
  margin-block-start: var(--folio-space-1);
  color: var(--folio-muted);
  font-size: var(--folio-step--1);
  font-style: italic;
}

.folio-exhibit {
  margin-block: var(--folio-space-8);
  margin-inline: 0;
  padding-block: var(--folio-space-4);
  border-block: 1px solid var(--folio-rule-colour);
}

.folio-exhibit__caption {
  margin-block-end: var(--folio-space-3);
  font-size: var(--folio-step-1);
  font-weight: 560;
  line-height: 1.2;
}

.folio-exhibit__number {
  display: block;
  color: var(--folio-accent);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  font-weight: 720;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.folio-exhibit__frame {
  overflow-x: auto;
}

.folio-exhibit__remark,
.folio-exhibit__method,
.folio-exhibit__citation,
.folio-exhibit__ledger-file {
  margin-block: var(--folio-space-2) 0;
  color: var(--folio-muted);
  font-size: var(--folio-step--1);
}

.folio-ledger {
  inline-size: 100%;
  border-collapse: collapse;
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
}

.folio-ledger__caption {
  caption-side: bottom;
  padding-block-start: var(--folio-space-1);
  color: var(--folio-muted);
  text-align: start;
}

.folio-ledger th,
.folio-ledger td {
  padding-block: var(--folio-space-1);
  padding-inline: 0 var(--folio-space-2);
  border-block-end: 1px dotted var(--folio-rule-colour);
  text-align: start;
  vertical-align: top;
}

.folio-ledger thead th {
  border-block-end: 0.12rem solid var(--folio-ink);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.folio-ledger__section + .folio-ledger__section {
  border-block-start: 0.12rem solid var(--folio-rule-colour);
}

.folio-ledger__range th {
  padding-block: var(--folio-space-2) var(--folio-space-1);
  color: var(--folio-accent);
  font-size: var(--folio-step--1);
  font-variant: small-caps;
  letter-spacing: 0.08em;
}

.folio-bars {
  display: block;
  inline-size: 100%;
  block-size: auto;
  margin-block-end: var(--folio-space-2);
}

.folio-bars rect {
  fill: var(--folio-accent);
}

.folio-chronology {
  display: grid;
  gap: var(--folio-space-1) var(--folio-space-3);
  margin: 0;
}

.folio-chronology dt {
  color: var(--folio-accent);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  font-variant-numeric: tabular-nums;
}

.folio-chronology dd {
  margin: 0 0 var(--folio-space-2);
  line-height: 1.55;
}

.folio-sum__statement {
  margin: 0;
  line-height: 1.6;
}

.folio-sum {
  display: grid;
  gap: var(--folio-space-2);
  margin-block-start: var(--folio-space-3);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
}

.folio-sum[hidden],
.folio-plans__choices[hidden],
.folio-plans__memory[hidden],
.folio-plan[hidden],
.folio-plan__tally[hidden] {
  display: none;
}

.folio-sum__field {
  display: grid;
  gap: var(--folio-space-1);
  margin: 0;
}

.folio-sum__field input {
  inline-size: min(100%, 12rem);
  min-block-size: 2.75rem;
  padding-inline: var(--folio-space-2);
  border: 1px solid var(--folio-ink);
  background: var(--folio-paper);
  color: var(--folio-ink);
  font: inherit;
}

.folio-sum__field input[aria-invalid="true"] {
  border-color: var(--folio-accent);
  outline: 1px dashed var(--folio-accent);
}

.folio-sum__unit,
.folio-sum__range {
  color: var(--folio-muted);
}

.folio-sum__answer {
  margin: 0;
  font-size: var(--folio-step-0);
  font-weight: 700;
}

.folio-endnotes,
.folio-method {
  margin-block-start: var(--folio-space-8);
  padding-block-start: var(--folio-space-4);
  border-block-start: 0.18rem double var(--folio-rule-colour);
  font-size: var(--folio-step--1);
}

.folio-endnotes__title,
.folio-plans__title,
.folio-method__title {
  margin-block: 0 var(--folio-space-3);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  font-weight: 720;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.folio-endnotes__list {
  padding-inline-start: var(--folio-space-4);
}

.folio-endnotes__note {
  margin-block-end: var(--folio-space-3);
  line-height: 1.55;
}

.folio-endnotes__note p {
  margin: 0;
}

.folio-endnotes__excerpt {
  margin-block: var(--folio-space-1);
  margin-inline: 0;
  padding-inline-start: var(--folio-space-2);
  border-inline-start: 0.12rem solid var(--folio-rule-colour);
  color: var(--folio-muted);
  font-style: italic;
}

.folio-endnotes__cite cite {
  font-style: normal;
}

.folio-endnotes__works {
  margin-block: var(--folio-space-4) var(--folio-space-1);
  font-size: var(--folio-step--1);
}

.folio-endnotes__sources {
  padding-inline-start: var(--folio-space-3);
  line-height: 1.6;
}

.folio-plans {
  margin-block-start: var(--folio-space-8);
  padding: var(--folio-space-4);
  background: var(--folio-paper-deep);
}

.folio-plans__lede {
  margin-block: 0 var(--folio-space-3);
  color: var(--folio-muted);
}

.folio-plans__choices {
  display: flex;
  flex-wrap: wrap;
  gap: var(--folio-space-1);
  margin: 0 0 var(--folio-space-3);
}

.folio-plans__choice,
.folio-plans__clear {
  min-block-size: 2.75rem;
  padding-inline: var(--folio-space-3);
  border: 1px solid var(--folio-ink);
  border-radius: 999px;
  background: transparent;
  color: var(--folio-ink);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  cursor: pointer;
}

.folio-plans__choice[aria-pressed="true"] {
  background: var(--folio-ink);
  color: var(--folio-paper);
}

.folio-plan__title {
  margin-block: 0 var(--folio-space-2);
  font-size: var(--folio-step-1);
  font-weight: 560;
}

.folio-plan__route,
.folio-plan__tasks {
  margin-block: 0 var(--folio-space-3);
  padding-inline-start: var(--folio-space-4);
  line-height: 1.6;
}

.folio-plan__tasks label {
  display: inline-flex;
  gap: var(--folio-space-1);
  align-items: center;
  min-block-size: 2.75rem;
}

.folio-plan__tasks input,
.folio-plans__memory input {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  accent-color: var(--folio-accent);
}

.folio-plan__tally,
.folio-plans__state {
  color: var(--folio-muted);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
}

.folio-onward--essay {
  display: block;
}

.folio-onward__list {
  display: grid;
  gap: var(--folio-space-2);
  margin: var(--folio-space-2) 0 0;
  padding: 0;
  list-style: none;
}

.folio-onward__why {
  display: block;
  color: var(--folio-muted);
  font-size: var(--folio-step--1);
}

.folio-archive {
  padding-block: var(--folio-space-12) var(--folio-space-8);
}

.folio-archive__title {
  max-width: 17ch;
  margin: 0;
  font-size: var(--folio-step-4);
  font-weight: 540;
  letter-spacing: -0.038em;
  line-height: 0.98;
}

.folio-archive__deck {
  max-width: 41ch;
  margin-block: var(--folio-space-4) var(--folio-space-8);
  color: var(--folio-muted);
  font-size: var(--folio-step-1);
  font-style: italic;
}

.folio-contents {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: folio-entry;
}

.folio-contents__entry {
  display: grid;
  gap: var(--folio-space-1);
  padding-block: var(--folio-space-3);
  border-block-start: 1px solid var(--folio-rule-colour);
  counter-increment: folio-entry;
}

.folio-contents__link {
  font-size: var(--folio-step-1);
  text-decoration: none;
}

.folio-contents__title {
  font-style: normal;
  font-weight: 580;
}

.folio-contents__deck {
  color: var(--folio-muted);
  line-height: 1.5;
}

.folio-contents__date {
  color: var(--folio-muted);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.folio-proof {
  margin: var(--folio-space-3) 0 0;
  padding: var(--folio-space-2) var(--folio-space-3);
  border-inline-start: 0.28rem solid var(--folio-accent);
  background: var(--folio-paper-deep);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
}

.folio-story :focus-visible,
.folio-archive :focus-visible {
  outline: 0.18rem solid var(--folio-focus);
  outline-offset: 0.2rem;
}

@media (min-width: 40rem) {
  .folio-chronology {
    grid-template-columns: 9rem 1fr;
  }

  .folio-contents__entry {
    grid-template-columns: 1fr 10rem;
  }

  .folio-contents__date {
    grid-column: 2;
    grid-row: 1;
    text-align: end;
  }
}

.folio-toc {
  margin-block: 0 var(--folio-space-8);
  padding-block: var(--folio-space-3);
  border-block: 1px solid var(--folio-rule-colour);
  font-family: var(--folio-sans);
}

.folio-toc__title {
  margin: 0 0 var(--folio-space-2);
  color: var(--folio-accent);
  font-size: var(--folio-step--1);
  font-weight: 720;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.folio-toc__list {
  display: grid;
  gap: var(--folio-space-1);
  margin: 0;
  padding-inline-start: var(--folio-space-4);
}

.folio-toc__item::marker {
  color: var(--folio-muted);
}

.folio-byline__revised {
  color: var(--folio-muted);
  font-style: italic;
}

.folio-review {
  margin-block: var(--folio-space-2) 0;
  color: var(--folio-muted);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  line-height: 1.45;
}

.folio-lineage {
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--folio-space-1);
  margin: 0 0 var(--folio-space-3);
  padding: 0;
  color: var(--folio-muted);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  list-style: none;
}

.folio-lineage__step {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.folio-lineage__step + .folio-lineage__step::before {
  display: inline-block;
  height: 0.8em;
  margin-inline: 0.1em var(--folio-space-1);
  border-inline-end: 1px solid var(--folio-rule-colour);
  content: "";
  transform: rotate(18deg);
  vertical-align: -0.08em;
}

.folio-lineage__archive {
  color: var(--folio-ink);
  text-decoration-color: var(--folio-accent);
  text-underline-offset: 0.2em;
}

.folio-method__summary {
  margin-block: 0 var(--folio-space-2);
  line-height: 1.55;
}

.folio-method__terms dt {
  margin-block-start: var(--folio-space-2);
  font-family: var(--folio-sans);
  font-weight: 720;
}

.folio-method__terms dd {
  margin-inline-start: 0;
  line-height: 1.55;
}

.folio-cited {
  margin-block-start: var(--folio-space-6);
  padding-inline-start: var(--folio-space-3);
  border-inline-start: 0.25rem solid var(--folio-accent);
}

.folio-cited__title {
  margin-block: 0 var(--folio-space-1);
  font-size: var(--folio-step-1);
  font-style: italic;
  font-weight: 400;
}

.folio-cited__lede {
  margin-block: 0 var(--folio-space-2);
  color: var(--folio-muted);
  font-size: var(--folio-step--1);
}

.folio-cited__list {
  margin: 0;
  padding-inline-start: var(--folio-space-4);
  list-style: lower-roman;
}

.folio-cited__entry {
  margin-block-end: var(--folio-space-2);
  line-height: 1.6;
}

.folio-cited__value {
  font-variant-numeric: oldstyle-nums;
  white-space: nowrap;
}

.folio-cited__entry cite {
  font-style: italic;
}

.folio-cited__note {
  color: var(--folio-muted);
}

.folio-exhibit__bench {
  margin-block: var(--folio-space-2) 0;
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
}

.folio-bench {
  margin-block-start: var(--folio-space-6);
  padding-block-start: var(--folio-space-3);
  border-block-start: 1px solid var(--folio-rule-colour);
}

.folio-bench__title {
  margin-block: 0 var(--folio-space-2);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  font-weight: 720;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.folio-bench__note {
  max-width: 38rem;
  margin-block: 0 var(--folio-space-2);
  line-height: 1.6;
}

.folio-story > .folio-bench__source {
  margin-block-start: var(--folio-space-6);
  color: var(--folio-muted);
  font-style: italic;
}

.folio-compared {
  max-width: 38rem;
  margin-block: var(--folio-space-4) var(--folio-space-8);
  padding-inline-start: var(--folio-space-3);
  border-inline-start: 0.18rem solid var(--folio-accent);
  font-size: var(--folio-step--1);
}

.folio-compared__title {
  margin-block: 0 var(--folio-space-2);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  font-weight: 720;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.folio-compared__part {
  margin-block: var(--folio-space-3) var(--folio-space-1);
  font-family: var(--folio-sans);
  font-size: var(--folio-step--1);
  font-weight: 720;
}

.folio-compared__lead,
.folio-compared__text {
  margin-block: 0 var(--folio-space-2);
  line-height: 1.55;
}

.folio-compared__points,
.folio-compared__fits {
  margin-block: 0 var(--folio-space-2);
  padding-inline-start: var(--folio-space-4);
  line-height: 1.55;
}

.folio-compared__fits strong {
  font-family: var(--folio-sans);
}

.folio-record {
  max-width: 38rem;
  margin-block-start: var(--folio-space-6);
  padding-block-start: var(--folio-space-2);
  border-block-start: 1px solid var(--folio-rule-colour);
  color: var(--folio-muted);
  font-size: var(--folio-step--1);
}

.folio-record__title {
  margin-block: 0 var(--folio-space-2);
  color: var(--folio-ink);
  font-size: var(--folio-step-0);
  font-style: italic;
  font-weight: 400;
}

.folio-record__entry {
  margin-block: 0 var(--folio-space-1);
  line-height: 1.6;
}

.folio-record__policy {
  margin-block: var(--folio-space-2) 0;
  font-family: var(--folio-sans);
}

.folio-method + .folio-toc {
  margin-block-start: var(--folio-space-8);
}

.folio-mast__device {
  width: auto;
  height: 1.15em;
  height: 1lh;
  margin-inline-end: 0.4em;
  vertical-align: top;
}
