/* deep-dive.jsx — Optional "Deep Dive" panel for the Learn view. * * Renders nothing if the current topic isn't in the server-side manifest. * The manifest is fetched once on module load (cached on window). Each * concept's guide is fetched on first open, parsed with marked, * sanitized with DOMPurify, and rendered inline. * * Design choices worth knowing: * * - Single source of truth: the server's GET /api/study-guide/ * manifest. We do NOT ship a static mirror — the button stays * hidden until the manifest resolves (avoids stale/missing-guide * mismatches between client and server). * * - We sanitize even though the content is author-trusted, because * marked outputs raw HTML for any HTML embedded in the markdown and * a typo'd