/* ============================================================
   PERIMTR — Neighbourhood Intelligence Report
   Cleaned reading layout. Strict palette: white / black / blue.
   No alarm red. Hierarchy by scale, weight, and the blue italic.
   ============================================================ */

html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--ink); margin: 0; -webkit-font-smoothing: antialiased; }
* { box-sizing: border-box; }

/* ---- TYPEFACE SYSTEMS (Tweakable) ---------------------------------
   Default is "Plain" — Atkinson Hyperlegible, engineered for maximum
   legibility. The Tweaks panel switches to Editorial (Boska/Switzer)
   or System. Mono stays JetBrains for tabular number alignment. */
:root {
  --serif: 'Atkinson Hyperlegible', system-ui, -apple-system, sans-serif;
  --sans:  'Atkinson Hyperlegible', system-ui, -apple-system, sans-serif;
}
html[data-typeface="editorial"] {
  --serif: 'Boska', 'Times New Roman', Georgia, serif;
  --sans:  'Switzer', 'Helvetica Neue', Arial, sans-serif;
}
html[data-typeface="system"] {
  --serif: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --sans:  system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
/* Plain & System are sans — italics read better slightly less tight. */
html:not([data-typeface="editorial"]) .sec-head h2 em,
html:not([data-typeface="editorial"]) .card h3 em,
html:not([data-typeface="editorial"]) .cover .know,
html:not([data-typeface="editorial"]) .verdict { letter-spacing: 0; }

/* Reading width (Tweakable) */
html[data-width="wide"] .wrap { max-width: 1480px; }

/* The reading column. One width, centred, generous gutters. */
.wrap { max-width: 1240px; margin: 0 auto; padding: 0 64px; }
@media (max-width: 860px) { .wrap { padding: 0 28px; } }

/* ----------------------------------------------------------------
   META STRIP — quiet utility bar
   ---------------------------------------------------------------- */
.meta-strip {
  border-bottom: 1px solid var(--rule);
}
.meta-strip .wrap {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 16px; padding-bottom: 16px;
  font-family: var(--mono); font-size: 9px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted);
}
.meta-strip .id b { color: var(--accent); font-weight: 500; }
.meta-strip .actions { display: flex; gap: 22px; }
.meta-strip .actions a {
  color: var(--ink); text-decoration: none; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 6px;
  transition: opacity .15s ease;
}
.meta-strip .actions a:hover { opacity: 0.55; }
.meta-strip .actions a.accent { color: var(--accent); }
.meta-strip .actions i { width: 13px; height: 13px; stroke-width: 1.5; }

/* ----------------------------------------------------------------
   COVER
   ---------------------------------------------------------------- */
.cover { padding-top: 112px; padding-bottom: 96px; border-bottom: 2px solid var(--ink); }
.cover .eyebrow {
  font-family: var(--sans); font-weight: 500;
  font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--accent); display: block; margin-bottom: 10px;
}
.cover .know {
  font-family: var(--serif); font-style: italic; font-weight: 500;
  font-size: 19px; color: var(--muted); display: block; margin-bottom: 72px;
}
.cover h1 {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(56px, 9vw, 132px);
  letter-spacing: -0.04em; line-height: 0.9; margin: 0 0 28px;
}
.cover .place {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 18px;
}
.cover .nbhd {
  font-family: var(--sans); font-weight: 500;
  font-size: 13px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink);
}
.cover .ward {
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.1em; color: var(--muted); text-transform: uppercase;
}
.cover-meta {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
  margin-top: 80px; padding-top: 28px; border-top: 1px solid var(--rule);
}
.cover-meta .k {
  font-family: var(--sans); font-weight: 500; font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent);
  display: block; margin-bottom: 8px;
}
.cover-meta .v { font-family: var(--mono); font-size: 14px; font-weight: 500; color: var(--ink); }
.cover-disc {
  margin: 24px 0 0; font-family: var(--mono); font-size: 9px;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted-soft);
}
.cover-disc a { color: var(--accent); text-decoration: none; }

/* ----------------------------------------------------------------
   KEY SIGNALS BAND — the anchor read. White, hairline columns.
   ---------------------------------------------------------------- */
.signals { padding-top: 64px; padding-bottom: 64px; border-bottom: 2px solid var(--ink); }
.signals .head {
  font-family: var(--sans); font-weight: 500; font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent);
  margin-bottom: 36px;
}
.signals-row {
  display: grid; grid-template-columns: repeat(5, 1fr);
}
.signal { padding: 4px 28px; border-left: 1px solid var(--rule); }
.signal:first-child { padding-left: 0; border-left: 0; }
.signal .lbl {
  font-family: var(--sans); font-weight: 500; font-size: 10px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted);
  display: block; margin-bottom: 16px;
}
.signal .big {
  font-family: var(--serif); font-weight: 900; letter-spacing: -0.04em;
  line-height: 0.92; color: var(--accent); font-size: 52px;
}
.signal .big .u { font-family: var(--sans); font-weight: 700; font-size: 15px; letter-spacing: 0; vertical-align: super; margin-left: 2px; }
.signal .read {
  font-family: var(--sans); font-size: 13px; line-height: 1.45;
  color: var(--muted); margin-top: 14px;
}
.signal .read b { color: var(--ink); font-weight: 500; }
@media (max-width: 980px) {
  .signals-row { grid-template-columns: repeat(2, 1fr); gap: 36px 0; }
  .signal:nth-child(odd) { padding-left: 0; border-left: 0; }
}

/* ----------------------------------------------------------------
   SECTION SCAFFOLD
   ---------------------------------------------------------------- */
.section { padding-top: 96px; padding-bottom: 8px; }
.section.dim-bg { background: var(--dim); padding-bottom: 96px; }
.sec-head {
  display: flex; align-items: baseline; gap: 20px;
  padding-bottom: 18px; margin-bottom: 44px;
  border-bottom: 2px solid var(--ink);
}
.sec-head .num {
  font-family: var(--mono); font-weight: 500; font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent);
  flex-shrink: 0; position: relative; top: -2px;
}
.sec-head h2 {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(30px, 3.6vw, 46px); letter-spacing: -0.03em;
  line-height: 1; margin: 0;
}
.sec-head h2 em { font-family: var(--serif); font-style: italic; font-weight: 700; color: var(--accent); }
.sec-head .sub {
  margin-left: auto; max-width: 320px; text-align: right;
  font-family: var(--sans); font-size: 13px; line-height: 1.45; color: var(--muted);
}
@media (max-width: 760px) {
  .sec-head { flex-wrap: wrap; gap: 8px 16px; }
  .sec-head .sub { margin-left: 0; text-align: left; width: 100%; }
}

/* ----------------------------------------------------------------
   BENTO GRID + CARDS
   ---------------------------------------------------------------- */
.bento { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; }
.bento + .bento { margin-top: 24px; }

.card {
  border: 1px solid var(--rule); background: var(--bg);
  padding: 32px; display: flex; flex-direction: column;
}
.card.dim { background: var(--dim); border-color: transparent; }
.card.accent-line { border: 2px solid var(--accent); }
.card.ink { background: var(--ink); color: #fff; border: 0; }
.card.ink .lbl { color: rgba(255,255,255,0.6); }
.card.ink .big, .card.ink .numeral { color: #fff; }

.card .lbl {
  font-family: var(--sans); font-weight: 500; font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent);
  display: block; margin-bottom: 18px;
}
.card h3 {
  font-family: var(--serif); font-weight: 500; font-size: 27px;
  letter-spacing: -0.02em; line-height: 1.05; margin: 0 0 14px;
}
.card h3 em { font-family: var(--serif); font-style: italic; font-weight: 700; color: var(--accent); }
.card.ink h3 em { color: #fff; }
.card p { font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--muted); margin: 0; }
.card p + p { margin-top: 12px; }
.card p b { color: var(--ink); font-weight: 600; }
.card.ink p { color: rgba(255,255,255,0.82); }
.card.ink p b { color: #fff; }

/* spans */
.s2{grid-column:span 2}.s3{grid-column:span 3}.s4{grid-column:span 4}
.s5{grid-column:span 5}.s6{grid-column:span 6}.s7{grid-column:span 7}
.s8{grid-column:span 8}.s9{grid-column:span 9}.s12{grid-column:span 12}
@media (max-width: 860px) {
  .bento { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .s2,.s3,.s4,.s5,.s6,.s7,.s8,.s9 { grid-column: span 1; }
  .s12 { grid-column: span 2; }
}

/* ----------------------------------------------------------------
   NUMERALS
   ---------------------------------------------------------------- */
.numeral { font-family: var(--serif); font-weight: 900; line-height: 0.88; color: var(--accent); letter-spacing: -0.05em; }
.numeral.xl { font-size: 104px; }
.numeral.lg { font-size: 76px; }
.numeral.md { font-size: 52px; }
.numeral .unit { font-family: var(--sans); font-weight: 700; font-size: 15px; margin-left: 4px; letter-spacing: 0; vertical-align: super; opacity: 0.85; }

/* stat — label over numeral, repeating mini-metric */
.stat .stat-lbl {
  font-family: var(--sans); font-weight: 500; font-size: 10px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted);
  display: block; margin-bottom: 10px;
}

/* ----------------------------------------------------------------
   KEY / VALUE ROWS
   ---------------------------------------------------------------- */
.kv { font-family: var(--mono); font-size: 12.5px; }
.kv .row { display: flex; justify-content: space-between; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--rule); }
.kv .row:last-child { border-bottom: 0; }
.kv .k { color: var(--muted); }
.kv .v { font-weight: 500; text-align: right; }
.kv .v.accent { color: var(--accent); }

/* ----------------------------------------------------------------
   SIGNAL BARS (crime categories)
   ---------------------------------------------------------------- */
.sig { padding: 16px 0; border-bottom: 1px solid var(--rule); }
.sig:last-child { border-bottom: 0; }
.sig .top { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; }
.sig .name { font-family: var(--sans); font-weight: 500; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; }
.sig .name .rank { font-family: var(--mono); color: var(--muted-soft); margin-right: 12px; font-weight: 400; }
.sig .val { font-family: var(--serif); font-weight: 900; font-size: 22px; letter-spacing: -0.03em; color: var(--ink); }
.sig .val.lead { color: var(--accent); }
.sig .track { width: 100%; height: 3px; background: var(--rule); margin-top: 12px; }
.sig .fill { height: 100%; background: var(--accent); }
.sig .breakdown { font-family: var(--mono); font-size: 10.5px; color: var(--muted); margin-top: 10px; letter-spacing: 0.02em; line-height: 1.5; }
.sig .breakdown b { color: var(--ink); font-weight: 500; }

/* ----------------------------------------------------------------
   DISTANCE BANDS
   ---------------------------------------------------------------- */
.bands { margin-top: 6px; }
.band { display: grid; grid-template-columns: 120px 1fr 72px; gap: 18px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--rule); }
.band:last-child { border-bottom: 0; }
.band .label { font-family: var(--mono); font-size: 11px; font-weight: 500; letter-spacing: 0.06em; }
.band .track { height: 3px; background: var(--rule); position: relative; }
.band .track::after { content:''; position:absolute; left:0; top:0; height:100%; background: var(--accent); width: var(--w, 0); }
.band .n { text-align: right; font-family: var(--serif); font-weight: 900; font-size: 20px; letter-spacing: -0.03em; }

/* ----------------------------------------------------------------
   TIME WINDOWS — peak emphasised with ink black, not red
   ---------------------------------------------------------------- */
.windows { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 4px; }
.window { padding: 20px; background: var(--bg); border: 1px solid var(--rule); }
.window.peak { background: var(--ink); border: 0; color: #fff; }
.window .w-label { font-family: var(--sans); font-weight: 500; font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.window.peak .w-label { color: rgba(255,255,255,0.7); }
.window .w-hours { font-family: var(--mono); font-size: 10px; color: var(--muted-soft); display: block; margin-top: 5px; }
.window.peak .w-hours { color: rgba(255,255,255,0.55); }
.window .w-num { font-family: var(--serif); font-weight: 900; font-size: 38px; letter-spacing: -0.04em; line-height: 1; display: block; margin-top: 18px; color: var(--accent); }
.window.peak .w-num { color: #fff; }
.window .w-tag { font-family: var(--sans); font-weight: 500; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; color: #fff; display: inline-block; margin-top: 8px; }

/* ----------------------------------------------------------------
   TABLES
   ---------------------------------------------------------------- */
.tbl { width: 100%; border-collapse: collapse; font-family: var(--mono); font-size: 12.5px; }
.tbl thead th {
  text-align: left; font-family: var(--sans); font-weight: 500; font-size: 10px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent);
  padding: 0 12px 14px; border-bottom: 2px solid var(--ink); white-space: nowrap;
}
.tbl tbody td { padding: 15px 12px; border-bottom: 1px solid var(--rule); vertical-align: top; }
.tbl tbody tr:last-child td { border-bottom: 0; }
.tbl tbody tr:hover td { background: var(--accent-wash); }
.tbl .num { text-align: right; font-variant-numeric: tabular-nums; }
.tbl .accent { color: var(--accent); font-weight: 700; }
.tbl .primary { font-family: var(--sans); font-weight: 500; font-size: 13px; letter-spacing: 0.02em; color: var(--ink); }
.tbl .sub2 { display: block; color: var(--muted); margin-top: 3px; font-size: 11px; }
.tbl td:first-child { padding-left: 0; }
.tbl th:first-child { padding-left: 0; }
.tbl td:last-child { padding-right: 0; }
.tbl th:last-child { padding-right: 0; }

/* ranked list (311) */
.ranked { font-family: var(--mono); }
.ranked .r { display: grid; grid-template-columns: 28px 1fr auto; gap: 14px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid var(--rule); }
.ranked .r:last-child { border-bottom: 0; }
.ranked .rk { color: var(--muted-soft); font-size: 11px; }
.ranked .nm { font-family: var(--sans); font-size: 13.5px; color: var(--ink); }
.ranked .ct { font-family: var(--serif); font-weight: 900; font-size: 18px; letter-spacing: -0.02em; color: var(--accent); }

/* ----------------------------------------------------------------
   SEASONAL
   ---------------------------------------------------------------- */
.seasons { display: grid; grid-template-columns: 1fr; }
.season { display: grid; grid-template-columns: 96px 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--rule); }
.season:last-child { border-bottom: 0; }
.season .nm { font-family: var(--sans); font-weight: 500; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); }
.season .items { font-family: var(--mono); font-size: 12.5px; line-height: 1.9; color: var(--muted); }
.season .items b { color: var(--ink); font-weight: 500; }

/* ----------------------------------------------------------------
   SENTINEL NARRATIVE (§06)
   ---------------------------------------------------------------- */
.sentinel-tag {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--accent); display: flex; align-items: center; gap: 10px; margin-bottom: 8px;
}
.sentinel-tag .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: var(--shadow-glow-accent); }
.takeaway p { font-family: var(--sans); font-size: 16px; line-height: 1.65; color: var(--ink); margin: 0; }
.takeaway p b { font-weight: 600; color: var(--accent); }
.narrative-body { font-family: var(--sans); font-size: 15px; line-height: 1.72; color: var(--muted); }
.narrative-body b { color: var(--ink); font-weight: 600; }
.watch .w-item { padding: 18px 0; border-bottom: 1px solid var(--rule); display: flex; gap: 16px; align-items: baseline; }
.watch .w-item:last-child { border-bottom: 0; }
.watch .w-item .idx { font-family: var(--serif); font-weight: 900; font-size: 22px; color: var(--accent); letter-spacing: -0.03em; line-height: 1; min-width: 30px; }
.watch .w-item .txt { font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: var(--ink); }

/* ----------------------------------------------------------------
   INFRASTRUCTURE PIECES
   ---------------------------------------------------------------- */
.species { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.species .sp { font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em; padding: 7px 12px; border: 1px solid var(--rule); color: var(--ink); }
.cycle-row { display: flex; justify-content: space-between; font-family: var(--mono); font-size: 12.5px; padding: 11px 0; border-bottom: 1px solid var(--rule); }
.cycle-row:last-child { border-bottom: 0; }
.cycle-row b { color: var(--accent); font-weight: 700; }
.verdict-row { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 20px 22px; border: 2px solid var(--accent); }
.verdict-row .label { font-family: var(--sans); font-weight: 500; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.verdict-row .verdict { font-family: var(--serif); font-style: italic; font-weight: 700; font-size: 22px; color: var(--accent); }

/* ----------------------------------------------------------------
   PROXIMITY ROWS
   ---------------------------------------------------------------- */
.prox { font-family: var(--mono); }
.prox-row { display: grid; grid-template-columns: 140px 1fr auto auto; gap: 20px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--rule); }
.prox-row:last-child { border-bottom: 0; }
.prox-row .type { font-family: var(--sans); font-weight: 500; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); display: flex; align-items: center; gap: 9px; }
.prox-row .type i { width: 15px; height: 15px; stroke-width: 1.5; color: var(--accent); }
.prox-row .place { font-family: var(--sans); font-size: 14px; color: var(--ink); }
.prox-row .dist { font-family: var(--serif); font-weight: 900; font-size: 19px; letter-spacing: -0.03em; text-align: right; }
.prox-row .walk { font-size: 11px; color: var(--muted); text-align: right; min-width: 64px; }
.prox-row.near .dist { color: var(--accent); }
@media (max-width: 760px) {
  .prox-row { grid-template-columns: 1fr auto; gap: 6px 16px; }
  .prox-row .place { grid-column: 1 / -1; }
}

/* ----------------------------------------------------------------
   METHODOLOGY
   ---------------------------------------------------------------- */
.method h4 { font-family: var(--serif); font-weight: 500; font-size: 19px; letter-spacing: -0.015em; margin: 0 0 8px; }
.method p { font-family: var(--sans); font-size: 13.5px; line-height: 1.65; color: var(--muted); margin: 0 0 22px; }
.method p b { color: var(--ink); font-weight: 600; }
.class-card .tag { font-family: var(--sans); font-weight: 700; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); display:block; margin-bottom: 6px; }
.class-card .sub { font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); display: block; margin-bottom: 16px; }
.class-card .desc { font-family: var(--sans); font-size: 13px; line-height: 1.55; color: var(--ink); margin: 0 0 16px; }
.class-card ul { list-style: none; padding: 0; margin: 0; font-family: var(--mono); font-size: 11px; line-height: 1.95; color: var(--muted); }
.class-card li::before { content: '·'; color: var(--accent); margin-right: 9px; }
.notlist { list-style: none; padding: 0; margin: 0; }
.notlist li { font-family: var(--sans); font-size: 14px; line-height: 1.55; color: var(--muted); padding: 12px 0; border-bottom: 1px solid var(--rule); display: flex; gap: 12px; }
.notlist li:last-child { border-bottom: 0; }
.notlist li .x { color: var(--accent); font-weight: 700; }
.notlist li b { color: var(--ink); font-weight: 600; }
.disclaimer-box { font-family: var(--sans); font-size: 12px; line-height: 1.65; color: var(--muted-soft); margin-top: 4px; }

/* source footer line */
.source { font-family: var(--mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); border-top: 2px solid var(--ink); padding-top: 14px; margin-top: 32px; }
.source.muted { color: var(--muted); border-top: 1px solid var(--rule); }

/* note (about-data) */
.note { font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--muted); }
.note b { color: var(--ink); font-weight: 600; }
.advisory { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; background: var(--accent-wash); }
.advisory i { width: 16px; height: 16px; stroke-width: 1.5; color: var(--accent); flex-shrink: 0; margin-top: 2px; }
.advisory p { font-family: var(--sans); font-size: 12.5px; line-height: 1.55; color: var(--ink); margin: 0; }
.advisory p b { font-weight: 600; }

/* ----------------------------------------------------------------
   HOOK STRIP
   ---------------------------------------------------------------- */
.hook { background: var(--accent); color: #fff; padding-top: 88px; padding-bottom: 88px; }
.hook .eyebrow { font-family: var(--sans); font-weight: 500; font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; opacity: 0.8; display: block; margin-bottom: 22px; }
.hook h2 { font-family: var(--serif); font-weight: 500; font-size: clamp(30px, 4vw, 50px); letter-spacing: -0.025em; line-height: 1.06; margin: 0 0 20px; max-width: 880px; }
.hook h2 em { font-family: var(--serif); font-style: italic; font-weight: 700; }
.hook p { font-family: var(--sans); font-size: 16px; line-height: 1.6; opacity: 0.9; max-width: 620px; margin: 0; }
.hook .ctas { display: flex; gap: 14px; margin-top: 32px; flex-wrap: wrap; }
.hook .btn { display: inline-flex; align-items: center; gap: 10px; font-family: var(--sans); font-weight: 700; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; padding: 15px 24px; text-decoration: none; transition: opacity .15s ease; }
.hook .btn:hover { opacity: 0.78; }
.hook .btn.solid { background: #fff; color: var(--accent); }
.hook .btn.outline { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.6); }
.hook .btn .arrow { transition: transform .15s ease; }
.hook .btn:hover .arrow { transform: translateX(4px); }

/* ----------------------------------------------------------------
   FINAL DISCLAIMER
   ---------------------------------------------------------------- */
.final { border-top: 2px solid var(--ink); }
.final .wrap { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-top: 22px; padding-bottom: 22px; font-family: var(--mono); font-size: 9px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); }
.final .accent { color: var(--accent); }
.final a { color: var(--accent); text-decoration: none; }

/* ----------------------------------------------------------------
   SCROLL REVEAL
   ---------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
  .reveal.in { opacity: 1; transform: none; }
}

/* print */
@media print {
  .meta-strip .actions, .hook { display: none; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .section { padding-top: 48px; }
}
