Use WebP when available, cache placeholder images with Cloudinary. Closes #22