/**
* Author detail-page body — identity header (avatar → name → job title →
* socials), bio, expertise badges, and a `children` slot for the authored-
* content rail. THE one implementation behind the hub's `/authors/[slug]`
* page AND embedded author pages (react-embedding-example) — hosts fetch
* the `AuthorProfile` however they like and drill it in.
*
* Embed-readiness contract (same rules as ArticleAuthorByline):
* - `Image` renders through the embed shim (plain `` in non-Next
* hosts; the real `next/image` once registered at app init).
* - Avatar proxying rides the OPTIONAL ambient `ChatRuntime`
* (`endpoints.imageProxyUrlPrefix`) — no provider ⇒ raw URL, never
* throws. `proxyImageUrl` prop wins over the runtime.
* - The authored-content rail is a SLOT (`children`), not a baked-in
* fetch: the hub passes its pre-bound `RelatedContentSection` with SSR
* `initialItems`; embedders pass the lib section with `apiBaseUrl`.
* The view stays data-in, markup-out.
*
* Heading semantics are the HOST's: the view renders the name as a styled
* `
` (like the hub profile header) so a hosting page can own its `