/* ─────────────────────────────────────────────────────────────────────────────
   SITE GROUND — atmospheric site-wide background   (relocated 2026-07-12 from
   assets/entry/10-entry-flash.css, L-01: the ground is site chrome, not entry
   animation — it must not live inside the entry stylesheet). Behaviour is
   pixel-identical to the prior in-entry rule; only its home changed. Enqueued
   site-wide by vizaion_enqueue_site_ground() in functions.php, mirroring the
   scope the entry CSS loaded on (unconditional on wp_enqueue_scripts).

   Fixed, behind everything (z-index:-2), pointer-inert. The parallel session's
   `body{background:#0B0620}` in style.css is the flat base color UNDER this — this
   layer paints the vertical deep→earth wash + the top-right primary glow over it,
   so it reads on every scroll position below the hero (the hero's own poster/field
   sit at z-index ≥0 and cover it there).

   Colour mapping (values = base preview tokens, kept literal so this survives a
   token-file that does not exist theme-side yet):
     #070312 = --ground-deep     (top)
     #0B0620 = --ground          (34%, == body base color — seam is invisible)
     #201324 = --ground-earth    (82%)
     #2A1A20 = --ground-earth2   (100%, warm floor)
     rgba(91,57,201,.20) = --primary (#5B39C9) glow, upper-right aperture
   ───────────────────────────────────────────────────────────────────────────── */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(120% 80% at 78% -10%, rgba(91, 57, 201, .20), transparent 55%),
    linear-gradient(180deg, #070312 0%, #0B0620 34%, #201324 82%, #2A1A20 100%);
}

/* ─── Footer legibility (2026-09-06) ─────────────────────────────────────────
   theme.json ships text = #0B0620 while the body ground is #0B0620 too; every
   readable section re-declares its own ink. The footer never did — do it here,
   in the site-wide chrome sheet, with the same ink token value the sections use
   (--vz-ink #F3F1FA). Covers the credit line, the site title and any plain
   footer text; the social icons carry their own iconColorValue in the part. */
footer.wp-block-template-part,
footer.wp-block-template-part a,
footer.wp-block-template-part .wp-block-site-title a,
.vz-footer-credit {
  color: #F3F1FA;
}

/* ── Footer credit shape (phase 2, 2026-09-06): the wp:html <p> renders OUTSIDE
   the constrained group's <div> (parts/footer.html block anomaly), so it gets
   no measure from the layout — give it its own. ── */
.vz-footer-credit {
	font-size: 0.85rem;
	text-align: center;
	max-width: 70ch;
	margin-inline: auto;
	padding: 0 clamp(1.5rem, 4vw, 2.5rem) 2rem;
}

/* Attribution line (2026-09-24, closes the licensing gate): quieter than the
   credit, sits under it; links stay underlined for licence-term visibility. */
.vz-footer-attrib {
	font-size: 0.72rem;
	opacity: 0.65;
	padding-top: 0;
	margin-top: -1rem;
}
.vz-footer-attrib a { text-decoration: underline; }

/* ── White footer mark (phase 2): the site-logo attachment (id 217) is
   byte-identical to assets/header/logo-black.png — a black mark on the dark
   ground. Invert to the white twin. ── */
footer.wp-block-template-part .wp-block-site-logo img {
	filter: invert(1);
}
