Configure R2 cache rules (litmus-exy0)
Set up cache headers via Cloudflare cache rules (or R2 response headers):
- Images (*.webp): 1 year edge + browser TTL via Cloudflare cache rule
- manifest.json: 1 minute edge + browser TTL via Cloudflare cache rule
- CORS: deferred to smoke test — custom domain through Cloudflare proxy should handle it
- Verify headers — CORS working, cache rules showing DYNAMIC (needs follow-up)