Chrome blocks fetch/canvas for sibling file:// images (CORS/tainted).
Inline base64 in HTML so lightbox and .png chips download offline.
Co-authored-by: Cursor <cursoragent@cursor.com>
Async fetch/toBlob lost the user-gesture so Safari/Chrome opened
the PNG instead of downloading. Use a button and sync data-URL save.
Co-authored-by: Cursor <cursoragent@cursor.com>
Browser often opens these files instead of downloading; use blob
downloads with embedded text fallbacks and canvas for PNG on file://.
Co-authored-by: Cursor <cursoragent@cursor.com>