bf8b2aa631
Closes the disconnect where a case study opened from the 3D globe had no
path to its full write-up — you had to leave the globe, open the right
application, and hunt for it.
- CaseStudyModal: new "View full case study" CTA for real installations
(not events / HQ). It deep-links via the locale-aware next-intl Link to
/applications/{application}#case-{nodeId}, closes the modal, and fires a
case_study_viewed GA event.
- ApplicationClient: on mount it reads a "#case-<id>" hash, auto-expands the
matching case in the "Proven Solutions" wall, and smooth-scrolls to it.
Each case row now carries id="case-<id>" + scroll-mt for correct offset.
- viewFullCase string added to the CaseStudyModal namespace in all 5 locales.
The GlobalNode.application field (already equal to the Application slug) is
the join key — no schema change needed.
Verified: production build compiles, TypeScript clean, 5 message files valid.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>