# Cloud footer — source and adaptation record

**Release:** v0.5.94 · **Prepared:** 1 October 2026 · **Source:** the user-provided `Pasted text(1).txt`.
Source attachment SHA-256: `096b68963174e64e2fca1d0746b1a5a74507cf39cb5c093b75d99fe72c32496f`.

## What was supplied

The attachment provides a React/TypeScript `CloudShader`, a demo wrapper, a vertex shader, and a fragment shader with six drifting billow-cloud layers, a sky gradient, haze, and high wisps. Its comment attributes the original cloud shader to Aceternity UI. That attribution is retained in the production JavaScript; this build does not independently verify or add a licensing claim.

## Integration, not a framework conversion

The predecessor is a static HTML/CSS/JavaScript Netlify payload. It has no React/shadcn, Tailwind build, or TypeScript configuration. The cloud rendering equations were ported to a footer-scoped ordinary JavaScript host rather than replacing the website with a React application. No npm installation, build command, third-party runtime, font file, account, or new server endpoint is introduced.

The supplied vertex shader is retained. The fragment shader is retained with two explicitly recorded portability adjustments: a fragment-precision guard (highp when available, otherwise mediump), and a descending haze ramp expressed as `1.0 - smoothstep(0.0, 0.35, v_uv.y)` rather than the original reversed-edge expression. No animal, place, or card illustration was regenerated or modified.

## Production settings and behavior

Cloud color `#fbf8f2`, sky top `#3876ba`, sky bottom `#8cbfe8`, and cloud count 6 retain the supplied defaults. The animation runs at a slower 0.24 speed multiplier, with a target maximum of 20 draws per second. The drawing buffer is capped at 280,000 pixels and 1,440 pixels wide, instead of scaling without limit on high-DPI displays.

A 76% `#f7faf8` readability wash covers the scene; dark footer foreground colors remain stable. Even a black canvas under that wash yields calculated contrast ratios of 5.25 or higher for the three footer text colors. This narrow calculation does not establish whole-site accessibility conformance.

The background cannot intercept clicks and is hidden from accessibility APIs. The existing footer content stays ordinary HTML. A native button pauses and resumes the clouds. A single tab-session preference is stored only if the browser allows session storage. It is not sent to a server. Failure of storage does not prevent the controls from working.

WebGL is initialized lazily when the footer enters view. The render loop suspends offscreen, while the document is hidden, while paused, and for printing. The reduced-motion preference is honored at startup and on change: still background, no ongoing WebGL loop, and no irrelevant play button. Forced-color mode removes the decoration. Context loss reveals the fallback; restoration rebuilds the GPU resources.

`assets/footer-clouds-v0.5.94/still.webp` is a still frame rendered from the adapted source shader using software WebGL, not a new image-model illustration. It is used without JavaScript and when WebGL is unavailable.

## Files

- `assets/js/footer-clouds-v0.5.94.js` — shaders and plain-JavaScript lifecycle.
- `assets/css/footer-clouds-v0.5.94.css` — background layers, readability wash, control and preference styling.
- `assets/footer-clouds-v0.5.94/still.webp` — same-shader still fallback.
- `site_qa_v0_5_94.json` — actual checks and explicit limits.

## Technical references consulted

These references informed the added hosting controls; they are not claims that the attachment already contained all those behaviors.

- W3C, Pause, Stop, Hide: https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html
- MDN, prefers-reduced-motion: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/%40media/prefers-reduced-motion
- MDN, WebGL best practices: https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices
- MDN, Intersection Observer: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API

## Scope held constant

All pre-existing CSS, JavaScript, image files, downloads, `_headers`, `_redirects`, Audit service status, form structures, main resource wording, and old source dates are retained. New footer hooks and shell version labels are added to the 61 shared-footer pages. The current release record and this changelog are updated; historical dated records are not rerun or silently relabeled.

Intake remains `CLOSED_PREPARATION_ONLY`. This decoration does not establish live receipt, queue operation, method adoption, external validation, or institutional authority.
