/* Light on silver (js/silver-light.js): soft spectrum light on a silver stage at the top of the quieter pages, on the whole
   stage of Testimonials and Media, and under the home's light run (Expert guidance and the steps), from the advisory variant of the same name. The lit block (.silver-lit) holds an empty, aria-hidden .silver-light as its first
   child; the script adds the canvas. Without WebGL, or before the script runs, the holder's own gradient is the picture.
   --sl-top and --sl-bot are the gradient's two ends, and the shader reads them too (hex only), so the two always match.
   Contrast: muted body text (#686873) sits only on the plain gradient (the script turns the light off round it). Measured
   on the drawn canvas at 1440 and 390 wide (2026-11-06), the worst body line is 4.65:1 (the Credits lead, about 224px
   down); headings are ink, 11:1 or more. A darker --sl-top or a heading that moves up would need measuring again. */
.silver-lit { position: relative; isolation: isolate; }
.silver-lit > :not(.silver-light) { position: relative; z-index: 1; }
.silver-light {
  --sl-top: #e3e6eb; --sl-bot: #ffffff;
  position: absolute; z-index: 0; top: 0; left: 0; right: 0; height: min(100%, clamp(560px, 92vh, 960px));
  pointer-events: none; background: linear-gradient(180deg, var(--sl-top), var(--sl-bot));
}
.silver-light__art { display: block; width: 100%; height: 100%; }
/* A WebGL context the GPU lost (silver-light.js): the holder's gradient, or the run's ground, shows until it comes back. */
.silver-light__art.is-lost { visibility: hidden; }
/* Testimonials and Media: the light fills the whole silver stage (home.css .stub__body, --stage-top to --stage-bot). Their
   markup has no holder, so the script adds one here and this file makes the stage the lit block. Owner, 2026-11-06: "what
   happened to the rainbow affect in the background of media?" The placeholder cards filled the page and the light was dimmed
   round them; now the cards (opaque surfaces) are left out, the pools run down the stage's full height, and only the heading,
   the intro line, the group headings and the rolodex's label dim the light round them. It fades out over the stage's last
   220px, above the closing. Contrast, measured on the drawn canvas (2026-11-06): see the bank-check note at "Light on silver". */
.stub__body { position: relative; isolation: isolate; }
.stub__body > .container { position: relative; z-index: 1; }
.stub__body > .silver-light { --sl-top: #dcdfe4; --sl-bot: #edeef1; --sl-fade-top: 40px; --sl-fade-bot: 220px; height: 100%; }
/* The home's light sections (owner, 2026-11-06: "can we apply similar affects to the white spaces in the main page?"). Owner,
   2026-11-06: "i think swap Trained at the firms the world's owners already trust and From first conversation to closing
   sections. then those sections can blend together." Expert guidance and the steps sit side by side in one block, .lit-run
   (home.css), and share one holder, the run's last child, behind both sections (z-index -1 in the run's stacking context): one
   canvas, so the light runs on across the join with no edge. No CSS gradient: the run's own ground (--stage-mid to
   --stage-bot, home.css) is the picture without WebGL, and the canvas is drawn with alpha over it, faded out at the run's top
   (300px, under Expert guidance's warm tint and the dawn's flare) and at its foot (240px, into the firms' warm foot above the
   closing's Dusk horizon). --sl-top and --sl-bot name that ground for the shader. Owner, 2026-11-06 ("S1 is perfect"): the
   firms joined the run after the steps, so the one canvas covers all three sections. */
.silver-light--section { inset: 0; height: auto; z-index: -1; background: none; --sl-top: #edeef1; --sl-bot: #edeef1; --sl-fade-top: 110px; --sl-fade-bot: 110px; }
.lit-run > .silver-light--section { --sl-top: #e6e8ec; --sl-fade-top: 300px; --sl-fade-bot: 240px; }
@media (forced-colors: active) { .silver-light { display: none; } }
