HTML sanitization: the double-encoding trap

Sanitizing HTML on both ingest and output renders literal `&` in the UI. Fix: store raw Unicode, sanitize once. Pattern for React, Next.js, NestJS.