/* Shared blog article shell: used by every blog post. Pass `meta` (header info) and `children` (the prose). Renders: hero, sticky aside (meta), prose column, sticky TOC, related strip. */ function BlogArticle({ meta, toc, children, related }) { useReveal(); return ( <>
{/* Hero */}
{meta.category}

{meta.title}{meta.italic && <> {meta.italic}}

{meta.lead}

By {meta.author || "Auctera"} {meta.date} {meta.readTime}
{/* Body */}
{/* LEFT: meta sidebar */} {/* CENTER: prose */}
{children}
{/* RIGHT - TOC */}
{/* Related */} {related && related.length > 0 && (
Keep Reading

Related articles.

{related.map((r,i)=>( {r.category} {r.title} {r.readTime} · Read → ))}
)} {/* CTA */}