/** * Single Project Page (project-single-page.jsx) * * Consolidates the design's atoms.jsx + sections.jsx + app.jsx into one file. * Skips tweaks-panel.jsx (dev tool only) and chrome.jsx (we use shared * LockedNavBar + Footer instead). * * Data is fetched from the REST endpoint /wp-json/claude-pages/v1/projects/{slug} * keyed by the slug in the URL. The ProjectSingleApp wrapper handles loading * and error states, then renders the assembled page once data arrives. * * Sections map to SP00–SP11 from GI_SingleProject_PageGuide_May2026.docx. */ // ============================================================ // ATOMS — small primitives scoped to the project page // ============================================================ const Eyebrow = ({ children, onDark = false, style }) => ( {children} ); const RunHead = ({ left, center, right, onDark = false }) => (