/* =====================================================================
   FOOTER
   =====================================================================

   THE CONCEPT'S FOOTER CARRIED FIVE SPANS AND FOUR OF THEM WERE
   CONCEPT-DISCLOSURE COPY — palette exceptions, framing-language
   caveats, and the register statement. NONE OF THAT SHIPS. The reasoning
   they carried has moved into the stylesheets and js/reveal.js, which is
   where a build reader will look for it; the client-facing footer carries
   only what a visitor should read.

   THE INHERITED AA ITEM IS CLOSED BY THE GROUND CHANGE. The old note here
   recorded footer text at 3.3306 against a 4.5 threshold on --paper,
   blocked on palette canon. The footer no longer sits on --paper and the
   figures below are measured on the ground it actually has.
   ===================================================================== */

/* GROUND: --ground-dark, REUSED, NOT INTRODUCED. Both candidates were
   measured against every existing foreground token before choosing, and
   --ground-slate is not usable here at 13px: its best pairing,
   --on-dark, reaches only 4.3009 against a 4.5 threshold, --on-dark-body
   falls to 2.858, and the accent hover collapses to 1.17. On
   --ground-dark the same three read 13.0839 / 8.6943 / 3.5594.

   FIXED GROUND => FIXED FOREGROUND TOKENS. This band's colour no longer
   follows the page, so it must not take page-relative foregrounds. It
   takes the --on-dark family. The previous --on-page-body would have
   rendered near-black ink on a near-black ground. */
footer{
  background:var(--ground-dark);
  color:var(--on-dark-body);
  padding:26px 34px 42px;
  font-size:13px;
}

/* DIRECT CHILD, NOT DESCENDANT — retained from the previous revision and
   still correct, though for a weaker reason than the comment it replaces.
   That comment said the join form renders inside <footer>; measured
   2026-08-07 on both built pages, it does not — #join is a SIBLING
   section on index and utilities alike, and <footer> has exactly one
   direct .in child on each. `>` costs no specificity over a descendant
   selector (both (0,1,1)), so it stays as cheap insurance against the
   arrangement the old comment described actually arriving. */
footer > .in{
  display:flex;justify-content:space-between;align-items:center;
  gap:14px 28px;flex-wrap:wrap;
  padding-top:18px;
}

/* THE BORDER-TOP IS GONE, DELIBERATELY. It was 1px of --rule-footer,
   which is color-mix(--ink 20%) — ink at 20% ON an --ink-derived ground
   is invisible by construction, not merely subtle. The ground change is
   now the separator and does the job the rule was doing. Nothing here
   substitutes a lighter derivation for it: that would be a new value in
   a component file. */

.f-brand{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* height DRIVES, width follows. The attributes on the <img> reserve the
   box before the SVG loads; `width:auto` then lets the intrinsic ratio
   (viewBox 1213.4 x 241.8 = 5.0182) own the width so a replacement mark
   with a different ratio cannot be stretched by a stale attribute. */
.f-logo{display:block;height:28px;width:auto}

.f-nav{display:flex;flex-wrap:wrap;gap:2px 4px}

/* TAP TARGETS. The three previous links measured 34.9x15, 42.6x15 and
   46.2x15 — under the 24x24 minimum on the short axis. That is WCAG 2.2
   AA and this build targets 2.1 AA, so it was never a launch blocker;
   it is fixed here because the row was being rebuilt anyway and was
   about to gain two more links. inline-block is required — padding on an
   inline box does not grow the hit area vertically. */
footer a{display:inline-block;padding:6px 8px}

/* HOVER IS A BRIGHTEN, NOT THE SITE'S ACCENT, AND THE GROUND FORCED IT.
   Every other hover on the site goes to --accent. Measured on this
   ground --accent reads 3.5594 at 13px against a 4.5 threshold — it was
   3.931 while the footer sat on --paper, so the accent did not change;
   the ground under it did. --on-dark is the same family as the resting
   colour one step brighter, reads 13.0839, and introduces no value.
   DO NOT "RESTORE" --accent HERE FOR CONSISTENCY WITH THE NAV without
   re-measuring against this ground. */
footer a:hover{color:var(--on-dark)}
