Video / Animation Policy

Video is acceptable on public/static surfaces if: - It is self-hosted in /opt/cryptpad/customize/assets/ or similar. - It is muted, looping, and decorative. - It has a static fallback. - It respects prefers-reduced-motion. - It does not require third-party scripts or remote embeds. - It is small enough not to degrade first load.

Preferred targets: - Home page background - Login/register/recovery background - Loading screen atmosphere

Avoid video inside actual editing tools.

Verification Requirements

Any implementation session should verify: - Container health: cd /opt/cryptpad && docker compose ps - Public page loads beyond Loading... - Browser console has no app-breaking errors - Login works - Drive opens - At least one document/tool opens - Main and sandbox origins still match /opt/cryptpad/config/config.js - Anonymous restrictions are not weakened - No secrets are copied into repo, feed, chat, browser-visible assets, or logs

Use Playwright or an equivalent browser check. Header-only curl is not enough for CryptPad UI work.