Migrate i18n from react-intl to next-intl, eliminating the formatjs compilation pipeline. Translation files now live as nested JSON in public/intl/messages/ (single source of truth), removing the duplicated src/lang/ directory and the copy/compile build steps. The useMessages() hook API is preserved so all 195+ consumer components are unchanged. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>