cf900b3409
build-and-deploy / build (push) Failing after 10m31s
public/ assets are edge-cached under non-hashed URLs, so the scrubbed covers and heroes were still being served stale. Project covers carried no cache-bust at all - added ?v=3 to both cover references and bumped the blog heroes from v2 to v3. Adds scripts/dewatermark.mjs implementing the documented approach (hard-coded mark centre, feathered disc, border-mean seed, Jacobi diffusion) rather than the ffmpeg delogo used in the previous pass.