/* FrostTally — editorial ledger layout. White page, black rule work, one teal accent. */

:root {
  --ft-ink: #000000;
  --ft-paper: #ffffff;
  --ft-accent: #0f766e;
  --ft-rule: #000000;
  --ft-rule-soft: #d6d6d6;
  --ft-mute: #575757;

  --ft-font: "Inter", Arial, Helvetica, sans-serif;

  --ft-t-caption: 10px;
  --ft-t-label: 12px;
  --ft-t-body: 15px;
  --ft-t-lead: 20px;
  --ft-t-h3: 20px;
  --ft-t-h2: 30px;

  --ft-s-4: 4px;
  --ft-s-8: 8px;
  --ft-s-12: 12px;
  --ft-s-16: 16px;
  --ft-s-20: 20px;
  --ft-s-24: 24px;
  --ft-s-28: 28px;
  --ft-s-36: 36px;
  --ft-s-40: 40px;
  --ft-s-64: 64px;
  --ft-s-72: 72px;

  --ft-radius: 3px;
  --ft-shell: 1400px;
}

*,
*::before,
*::after { box-sizing: border-box; }

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

body {
  margin: 0;
  background: var(--ft-paper);
  color: var(--ft-ink);
  font-family: var(--ft-font);
  font-size: var(--ft-t-body);
  line-height: 1.55;
  font-weight: 400;
  font-feature-settings: "kern" 0, "liga" 0;
}

img { max-width: 100%; display: block; }
figure, blockquote { margin: 0; }

a { color: var(--ft-accent); text-decoration: underline; text-underline-offset: 2px; }
a:hover { text-decoration: none; }

h1, h2, h3, h4 { margin: 0; font-weight: 700; letter-spacing: -0.02em; line-height: 1.08; }
p { margin: 0 0 var(--ft-s-16); }
ul, ol { margin: 0 0 var(--ft-s-16); padding-left: 1.1em; }
li { margin-bottom: var(--ft-s-8); }

:focus-visible {
  outline: 2px solid var(--ft-accent);
  outline-offset: 2px;
}

.ft-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.ft-skip {
  position: absolute; left: -9999px; top: 0; z-index: 60;
  background: var(--ft-paper); color: var(--ft-ink);
  border: 1px solid var(--ft-rule); border-radius: var(--ft-radius);
  padding: var(--ft-s-8) var(--ft-s-16);
}
.ft-skip:focus { left: var(--ft-s-16); top: var(--ft-s-16); }

/* ---------- shell + band ---------- */

.ft-gutter {
  width: 100%;
  max-width: var(--ft-shell);
  margin-inline: auto;
  padding-inline: var(--ft-s-24);
}

.ft-band { padding-block: var(--ft-s-64); border-top: 1px solid var(--ft-rule); }
.ft-band--open { border-top: 0; padding-top: var(--ft-s-40); }
.ft-band--tight { padding-block: var(--ft-s-40); }

.ft-prose { max-width: 68ch; }
.ft-prose--mid { max-width: 60ch; }

/* ---------- wordmark ---------- */

.ft-mark {
  display: inline-block;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ft-ink);
  text-decoration: none;
  letter-spacing: -0.009em;
}
.ft-mark__accent { color: var(--ft-accent); }
.ft-mark--display { font-size: clamp(52px, 13vw, 148px); line-height: 1; letter-spacing: -0.03em; }
.ft-mark--bar { font-size: 19px; letter-spacing: 0.005em; line-height: 1; }
.ft-mark--foot { font-size: clamp(40px, 8vw, 96px); line-height: 1; letter-spacing: -0.03em; }

/* ---------- head ledger ---------- */

.ft-ledgehead { background: var(--ft-paper); }

.ft-ledgehead__bar {
  position: sticky; top: 0; z-index: 40;
  background: var(--ft-paper);
  border-bottom: 1px solid var(--ft-rule);
}
.ft-ledgehead__barin {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--ft-s-16);
  padding-block: var(--ft-s-12);
}
.ft-ledgehead__links {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: var(--ft-s-16) var(--ft-s-20);
  list-style: none; margin: 0; padding: 0;
}
.ft-ledgehead__links li { margin: 0; }
.ft-ledgehead__link {
  font-size: var(--ft-t-label);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 500;
  color: var(--ft-ink);
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 1px solid transparent;
}
.ft-ledgehead__link:hover,
.ft-ledgehead__link:focus-visible { color: var(--ft-accent); border-bottom-color: var(--ft-accent); }

.ft-ledgehead__toggle {
  display: none;
  align-items: center; gap: var(--ft-s-8);
  background: var(--ft-paper);
  border: 1px solid var(--ft-rule);
  border-radius: var(--ft-radius);
  color: var(--ft-ink);
  font: 500 var(--ft-t-label)/1 var(--ft-font);
  text-transform: uppercase; letter-spacing: 0.08em;
  padding: 9px 12px;
  cursor: pointer;
}

.ft-ledgehead__masthead { padding-block: var(--ft-s-36) var(--ft-s-20); }
.ft-ledgehead__strap {
  display: flex; flex-wrap: wrap; gap: var(--ft-s-8) var(--ft-s-24);
  font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em;
  padding-bottom: var(--ft-s-12);
  margin: 0 0 var(--ft-s-20);
  border-bottom: 1px solid var(--ft-rule);
  list-style: none; padding-left: 0;
}
.ft-ledgehead__strap li { margin: 0; }
.ft-ledgehead__strap b { color: var(--ft-accent); font-weight: 500; }

/* ---------- hero frame (split) ---------- */

.ft-frame__grid {
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  border: 1px solid var(--ft-rule);
  border-radius: var(--ft-radius);
  overflow: hidden;
}
.ft-frame__text { padding: var(--ft-s-40); }
.ft-frame__eyebrow {
  font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em;
  margin-bottom: var(--ft-s-16); color: var(--ft-accent); font-weight: 500;
}
.ft-frame__title { font-size: clamp(30px, 4.4vw, 52px); line-height: 1.04; margin-bottom: var(--ft-s-20); }
.ft-frame__title em { font-style: normal; color: var(--ft-accent); }
.ft-frame__lead { font-size: var(--ft-t-lead); line-height: 1.4; max-width: 40ch; }
.ft-frame__acts { display: flex; flex-wrap: wrap; gap: var(--ft-s-12); margin-top: var(--ft-s-28); }
.ft-frame__notes {
  margin: var(--ft-s-36) 0 0; padding: var(--ft-s-16) 0 0;
  border-top: 1px solid var(--ft-rule-soft);
  list-style: none; padding-left: 0;
  display: grid; gap: var(--ft-s-8);
  font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em;
}
.ft-frame__notes li { margin: 0; }
.ft-frame__shots {
  border-left: 1px solid var(--ft-rule);
  display: grid; grid-template-columns: 1fr 1fr;
}
.ft-frame__shot { border-left: 1px solid var(--ft-rule-soft); }
.ft-frame__shot:first-child { border-left: 0; }
.ft-frame__pic { aspect-ratio: 3 / 5; overflow: hidden; }
.ft-frame__pic img { width: 100%; height: 100%; object-fit: cover; }
.ft-frame__cap {
  font-size: var(--ft-t-caption); text-transform: uppercase; letter-spacing: 0.08em;
  padding: var(--ft-s-8) var(--ft-s-12);
  border-top: 1px solid var(--ft-rule-soft);
  color: var(--ft-mute);
}

/* ---------- section heading ---------- */

.ft-gridline {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--ft-s-24);
  border-bottom: 1px solid var(--ft-rule);
  padding-bottom: var(--ft-s-12);
  margin-bottom: var(--ft-s-28);
}
.ft-gridline__title { font-size: clamp(26px, 3.6vw, 44px); text-transform: uppercase; line-height: 1.04; }
.ft-gridline__side {
  font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em;
  text-align: right; white-space: nowrap; color: var(--ft-mute);
}
.ft-gridline__side b { color: var(--ft-accent); font-weight: 500; }

/* ---------- cue (buttons) ---------- */

.ft-cue {
  display: inline-flex; align-items: center; gap: var(--ft-s-8);
  font: 500 var(--ft-t-label)/1 var(--ft-font);
  text-transform: uppercase; letter-spacing: 0.08em;
  padding: 11px 16px;
  border-radius: var(--ft-radius);
  border: 1px solid var(--ft-rule);
  background: var(--ft-paper);
  color: var(--ft-ink);
  text-decoration: none;
  cursor: pointer;
}
.ft-cue:hover { border-color: var(--ft-accent); color: var(--ft-accent); }
.ft-cue--solid { background: var(--ft-accent); border-color: var(--ft-accent); color: var(--ft-paper); }
.ft-cue--solid:hover { background: var(--ft-paper); color: var(--ft-accent); }
.ft-cue--wide { width: 100%; justify-content: center; }

/* ---------- stars ---------- */

.ft-stars { position: relative; display: inline-block; height: 13px; line-height: 0; vertical-align: -2px; }
.ft-stars__off, .ft-stars__on { display: block; white-space: nowrap; }
.ft-stars__on { position: absolute; left: 0; top: 0; overflow: hidden; }
.ft-stars svg { width: 13px; height: 13px; display: inline-block; }
.ft-stars__off svg { fill: var(--ft-rule-soft); }
.ft-stars__on svg { fill: var(--ft-accent); }

/* ---------- tally (features / steps) ---------- */

.ft-tally__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ft-rule-soft); }
.ft-tally__item {
  display: grid; grid-template-columns: 72px 1fr;
  gap: var(--ft-s-24);
  padding-block: var(--ft-s-24);
  border-bottom: 1px solid var(--ft-rule-soft);
  margin: 0;
}
.ft-tally__no {
  font-size: var(--ft-t-label); font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--ft-accent);
  padding-top: 4px;
}
.ft-tally__body { display: grid; grid-template-columns: minmax(220px, 340px) 1fr; gap: var(--ft-s-24); align-items: start; }
.ft-tally__name { font-size: var(--ft-t-h3); margin-bottom: var(--ft-s-8); }
.ft-tally__text { margin: 0; max-width: 72ch; }
.ft-tally__strip {
  margin-top: var(--ft-s-28);
  border: 1px solid var(--ft-rule);
  border-radius: var(--ft-radius);
  overflow: hidden;
}
.ft-tally__strip img { width: 100%; height: 220px; object-fit: cover; }
.ft-tally__stripcap {
  font-size: var(--ft-t-caption); text-transform: uppercase; letter-spacing: 0.08em;
  padding: var(--ft-s-8) var(--ft-s-12);
  border-top: 1px solid var(--ft-rule);
  color: var(--ft-mute);
}

/* ---------- game rows ---------- */

.ft-row { display: grid; gap: var(--ft-s-16); }
.ft-row__item {
  display: grid;
  grid-template-columns: 38% 1fr;
  border: 1px solid var(--ft-rule);
  border-radius: var(--ft-radius);
  overflow: hidden;
  background: var(--ft-paper);
}
.ft-row__shot {
  aspect-ratio: 4 / 3;
  border-right: 1px solid var(--ft-rule);
  overflow: hidden;
}
.ft-row__shot img { width: 100%; height: 100%; object-fit: cover; }
.ft-row__body { padding: var(--ft-s-24); display: flex; flex-direction: column; }
.ft-row__top { display: flex; align-items: flex-start; gap: var(--ft-s-16); margin-bottom: var(--ft-s-12); }
.ft-row__badge {
  width: 48px; height: 48px; flex: 0 0 48px;
  border: 1px solid var(--ft-rule-soft);
  border-radius: var(--ft-radius);
  overflow: hidden;
}
.ft-row__badge img { width: 100%; height: 100%; object-fit: cover; }
.ft-row__name { font-size: var(--ft-t-h3); text-transform: uppercase; margin-bottom: var(--ft-s-4); }
.ft-row__by { font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-mute); }
.ft-row__meta {
  display: flex; flex-wrap: wrap; gap: var(--ft-s-8) var(--ft-s-16);
  list-style: none; margin: 0 0 var(--ft-s-16); padding: var(--ft-s-12) 0;
  border-top: 1px solid var(--ft-rule-soft);
  border-bottom: 1px solid var(--ft-rule-soft);
  font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em;
}
.ft-row__meta li { margin: 0; display: flex; align-items: center; gap: 6px; }
.ft-row__meta b { font-weight: 500; color: var(--ft-accent); }
.ft-row__text { margin: 0 0 var(--ft-s-20); max-width: 62ch; }
.ft-row__acts { margin-top: auto; display: flex; flex-wrap: wrap; gap: var(--ft-s-12); align-items: center; }
.ft-row__pkg { font-size: var(--ft-t-caption); letter-spacing: 0.06em; color: var(--ft-mute); text-transform: uppercase; }

/* ---------- review stubs ---------- */

.ft-stub__set {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ft-rule);
  border-left: 1px solid var(--ft-rule);
}
.ft-stub__one {
  border-right: 1px solid var(--ft-rule);
  border-bottom: 1px solid var(--ft-rule);
  padding: var(--ft-s-20);
  display: flex; flex-direction: column;
}
.ft-stub__head { display: flex; align-items: center; justify-content: space-between; gap: var(--ft-s-12); margin-bottom: var(--ft-s-12); }
.ft-stub__score { font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-mute); }
.ft-stub__quote { margin: 0 0 var(--ft-s-16); font-size: 14px; }
.ft-stub__who { margin-top: auto; padding-top: var(--ft-s-12); border-top: 1px solid var(--ft-rule-soft); }
.ft-stub__name { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; }
.ft-stub__on { font-size: var(--ft-t-caption); text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-mute); }
.ft-stub__source { margin: var(--ft-s-16) 0 0; font-size: var(--ft-t-label); color: var(--ft-mute); max-width: 80ch; }

/* ---------- scale (stats) ---------- */

.ft-scale__set {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ft-rule);
  border-left: 1px solid var(--ft-rule);
}
.ft-scale__cell {
  border-right: 1px solid var(--ft-rule);
  border-bottom: 1px solid var(--ft-rule);
  padding: var(--ft-s-24);
}
.ft-scale__fig { font-size: clamp(36px, 5vw, 60px); font-weight: 700; line-height: 1; letter-spacing: -0.03em; color: var(--ft-accent); }
.ft-scale__key { margin: var(--ft-s-12) 0 0; font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; }
.ft-scale__note { margin: var(--ft-s-8) 0 0; font-size: 13px; color: var(--ft-mute); }

/* ---------- picks ---------- */

.ft-pickrail { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ft-s-16); }
.ft-pickrail__one { border: 1px solid var(--ft-rule); border-radius: var(--ft-radius); overflow: hidden; display: flex; flex-direction: column; }
.ft-pickrail__tag {
  font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em;
  padding: var(--ft-s-12) var(--ft-s-16);
  border-bottom: 1px solid var(--ft-rule);
  color: var(--ft-accent); font-weight: 500;
}
.ft-pickrail__pic { aspect-ratio: 4 / 3; overflow: hidden; border-bottom: 1px solid var(--ft-rule); }
.ft-pickrail__pic img { width: 100%; height: 100%; object-fit: cover; }
.ft-pickrail__body { padding: var(--ft-s-20); display: flex; flex-direction: column; flex: 1; }
.ft-pickrail__name { font-size: var(--ft-t-h3); text-transform: uppercase; margin-bottom: var(--ft-s-8); }
.ft-pickrail__text { font-size: 14px; margin-bottom: var(--ft-s-20); }
.ft-pickrail__foot { margin-top: auto; }

/* ---------- plates (pricing) ---------- */

.ft-plate__set { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--ft-s-16); }
.ft-plate__one { border: 1px solid var(--ft-rule); border-radius: var(--ft-radius); padding: var(--ft-s-28); display: flex; flex-direction: column; }
.ft-plate__tier { font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: var(--ft-s-16); }
.ft-plate__sum { font-size: clamp(34px, 4.4vw, 52px); font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
.ft-plate__one--plus .ft-plate__sum { color: var(--ft-accent); }
.ft-plate__per { font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-mute); margin: var(--ft-s-8) 0 var(--ft-s-20); }
.ft-plate__list { list-style: none; margin: 0 0 var(--ft-s-24); padding: 0; border-top: 1px solid var(--ft-rule-soft); }
.ft-plate__list li { margin: 0; padding: var(--ft-s-12) 0; border-bottom: 1px solid var(--ft-rule-soft); font-size: 14px; }
.ft-plate__foot { margin-top: auto; }
.ft-plate__note { margin: var(--ft-s-20) 0 0; font-size: 13px; color: var(--ft-mute); max-width: 90ch; }

/* ---------- slip (form) ---------- */

.ft-slip__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ft-s-40); align-items: start; }
.ft-slip__form { border: 1px solid var(--ft-rule); border-radius: var(--ft-radius); padding: var(--ft-s-28); }
.ft-slip__field { margin-bottom: var(--ft-s-20); }
.ft-slip__label { display: block; font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: var(--ft-s-8); }
.ft-slip__input {
  width: 100%;
  border: 1px solid var(--ft-rule-soft);
  border-radius: var(--ft-radius);
  background: var(--ft-paper);
  color: var(--ft-ink);
  font: 400 15px/1.4 var(--ft-font);
  padding: 11px 12px;
}
.ft-slip__input:focus { border-color: var(--ft-ink); outline: 2px solid var(--ft-accent); outline-offset: 1px; }
.ft-slip__check { display: flex; gap: var(--ft-s-12); align-items: flex-start; font-size: 13px; margin-bottom: var(--ft-s-24); }
.ft-slip__check input { margin: 2px 0 0; width: 16px; height: 16px; accent-color: var(--ft-accent); flex: 0 0 16px; }
.ft-slip__ok {
  display: none;
  margin-top: var(--ft-s-16);
  border: 1px solid var(--ft-accent);
  border-radius: var(--ft-radius);
  padding: var(--ft-s-12) var(--ft-s-16);
  font-size: 14px;
  color: var(--ft-accent);
}
.ft-slip__ok.is-on { display: block; }
.ft-slip__fine { font-size: 13px; color: var(--ft-mute); margin: var(--ft-s-16) 0 0; }

/* ---------- fold (FAQ) — full container width ---------- */

.ft-fold { border-top: 1px solid var(--ft-rule); }
.ft-fold__item { border-bottom: 1px solid var(--ft-rule); }
.ft-fold__q {
  width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: var(--ft-s-16);
  background: none; border: 0; cursor: pointer;
  padding: var(--ft-s-20) 0;
  text-align: left;
  font: 700 var(--ft-t-h3)/1.25 var(--ft-font);
  letter-spacing: -0.01em;
  color: var(--ft-ink);
}
.ft-fold__q:hover { color: var(--ft-accent); }
.ft-fold__sign {
  flex: 0 0 auto;
  width: 28px; height: 28px;
  border: 1px solid var(--ft-rule);
  border-radius: var(--ft-radius);
  display: grid; place-items: center;
  font-size: 15px; font-weight: 400; line-height: 1;
}
.ft-fold__item.is-open .ft-fold__sign { border-color: var(--ft-accent); color: var(--ft-accent); }
.ft-fold__a { display: none; padding: 0 0 var(--ft-s-24); }
.ft-fold__item.is-open .ft-fold__a { display: block; }
.ft-fold__a p { max-width: 82ch; margin-bottom: var(--ft-s-12); }
.ft-fold__a p:last-child { margin-bottom: 0; }

/* ---------- note (editorial model) ---------- */

.ft-note__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: var(--ft-s-40); align-items: start; }
.ft-note__pic { border: 1px solid var(--ft-rule); border-radius: var(--ft-radius); overflow: hidden; }
.ft-note__pic img { width: 100%; height: 260px; object-fit: cover; }
.ft-note__cap { font-size: var(--ft-t-caption); text-transform: uppercase; letter-spacing: 0.08em; padding: var(--ft-s-8) var(--ft-s-12); border-top: 1px solid var(--ft-rule); color: var(--ft-mute); }
.ft-note__lead { font-size: 18px; line-height: 1.45; max-width: 62ch; }

/* ---------- steps ---------- */

.ft-steps__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--ft-s-40); align-items: start; }
.ft-steps__pic { border: 1px solid var(--ft-rule); border-radius: var(--ft-radius); overflow: hidden; }
.ft-steps__pic img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.ft-steps__cap { font-size: var(--ft-t-caption); text-transform: uppercase; letter-spacing: 0.08em; padding: var(--ft-s-8) var(--ft-s-12); border-top: 1px solid var(--ft-rule); color: var(--ft-mute); }
.ft-steps__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ft-rule-soft); counter-reset: ftstep; }
.ft-steps__item { display: grid; grid-template-columns: 56px 1fr; gap: var(--ft-s-20); padding-block: var(--ft-s-20); border-bottom: 1px solid var(--ft-rule-soft); margin: 0; }
.ft-steps__no { font-size: var(--ft-t-label); font-weight: 500; letter-spacing: 0.08em; color: var(--ft-accent); padding-top: 3px; }
.ft-steps__name { font-size: 17px; margin-bottom: 6px; }
.ft-steps__text { margin: 0; font-size: 14px; max-width: 64ch; }

/* ---------- foot ledger ---------- */

.ft-ledgerfoot { border-top: 1px solid var(--ft-rule); padding-block: var(--ft-s-40) var(--ft-s-28); }
.ft-ledgerfoot__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--ft-s-40); padding-bottom: var(--ft-s-28); border-bottom: 1px solid var(--ft-rule-soft); }
.ft-ledgerfoot__blurb { font-size: 14px; max-width: 46ch; margin-top: var(--ft-s-16); }
.ft-ledgerfoot__ttl { font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: var(--ft-s-16); color: var(--ft-mute); }
.ft-ledgerfoot__list { list-style: none; margin: 0; padding: 0; }
.ft-ledgerfoot__list li { margin-bottom: var(--ft-s-8); }
.ft-ledgerfoot__list a { font-size: 14px; color: var(--ft-ink); text-decoration: none; }
.ft-ledgerfoot__list a:hover { color: var(--ft-accent); text-decoration: underline; }
.ft-ledgerfoot__base { display: flex; flex-wrap: wrap; gap: var(--ft-s-12) var(--ft-s-24); justify-content: space-between; padding-top: var(--ft-s-20); font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-mute); }

/* ---------- cookie veil + uptick ---------- */

.ft-veil {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  background: var(--ft-paper);
  border-top: 1px solid var(--ft-rule);
  display: none;
}
.ft-veil.is-on { display: block; }
.ft-veil__in { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ft-s-16); justify-content: space-between; padding-block: var(--ft-s-16); }
.ft-veil__text { margin: 0; font-size: 13px; max-width: 72ch; }
.ft-veil__acts { display: flex; gap: var(--ft-s-12); flex-wrap: wrap; }

.ft-uptick {
  position: fixed; right: 20px; bottom: 20px; z-index: 45;
  width: 42px; height: 42px;
  display: none; place-items: center;
  background: var(--ft-paper);
  border: 1px solid var(--ft-rule);
  border-radius: var(--ft-radius);
  color: var(--ft-ink);
  cursor: pointer;
}
.ft-uptick.is-on { display: grid; }
.ft-uptick:hover { border-color: var(--ft-accent); color: var(--ft-accent); }
.ft-uptick svg { width: 16px; height: 16px; fill: currentColor; }

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

.ft-leaf__title { font-size: clamp(30px, 5vw, 56px); text-transform: uppercase; line-height: 1.04; margin-bottom: var(--ft-s-12); }
.ft-leaf__date { font-size: var(--ft-t-label); text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-mute); padding-bottom: var(--ft-s-16); border-bottom: 1px solid var(--ft-rule); margin-bottom: var(--ft-s-28); }
.ft-leaf__body { max-width: 80ch; }
.ft-leaf__body h2 { font-size: 24px; text-transform: uppercase; margin: var(--ft-s-36) 0 var(--ft-s-12); padding-top: var(--ft-s-16); border-top: 1px solid var(--ft-rule-soft); }
.ft-leaf__body h3 { font-size: 17px; margin: var(--ft-s-24) 0 var(--ft-s-8); }
.ft-leaf__back { margin-bottom: var(--ft-s-28); }
.ft-leaf__lost { text-align: left; padding-block: var(--ft-s-72); }

/* ---------- responsive ---------- */

@media (max-width: 1100px) {
  .ft-stub__set { grid-template-columns: repeat(2, 1fr); }
  .ft-scale__set { grid-template-columns: repeat(2, 1fr); }
  .ft-pickrail { grid-template-columns: 1fr; }
  .ft-note__grid, .ft-steps__grid, .ft-slip__grid { grid-template-columns: 1fr; gap: var(--ft-s-28); }
  .ft-tally__body { grid-template-columns: 1fr; gap: var(--ft-s-8); }
  .ft-ledgerfoot__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .ft-ledgehead__toggle { display: inline-flex; }
  .ft-ledgehead__links {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--ft-s-16);
    padding: var(--ft-s-20) 0 var(--ft-s-8);
    border-top: 1px solid var(--ft-rule-soft);
    margin-top: var(--ft-s-12);
  }
  .ft-ledgehead__links.is-on { display: flex; }
  .ft-ledgehead__barin { flex-wrap: wrap; }
  .ft-frame__grid { grid-template-columns: 1fr; }
  .ft-frame__text { padding: var(--ft-s-24); }
  .ft-frame__shots { border-left: 0; border-top: 1px solid var(--ft-rule); }
  .ft-row__item { grid-template-columns: 1fr; }
  .ft-row__shot { border-right: 0; border-bottom: 1px solid var(--ft-rule); aspect-ratio: 16 / 10; }
  .ft-plate__set { grid-template-columns: 1fr; }
  .ft-band { padding-block: var(--ft-s-40); }
}

@media (max-width: 620px) {
  .ft-stub__set { grid-template-columns: 1fr; }
  .ft-scale__set { grid-template-columns: 1fr; }
  .ft-ledgerfoot__grid { grid-template-columns: 1fr; gap: var(--ft-s-24); }
  .ft-tally__item { grid-template-columns: 1fr; gap: var(--ft-s-8); }
  .ft-tally__body { grid-template-columns: 1fr; gap: var(--ft-s-8); }
  .ft-steps__item { grid-template-columns: 1fr; gap: var(--ft-s-4); }
  .ft-gridline { flex-direction: column; align-items: flex-start; gap: var(--ft-s-12); }
  .ft-gridline__side { text-align: left; }
  .ft-gutter { padding-inline: var(--ft-s-16); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
