// components/ProjectModal.jsx — case-study overlay · v2 print style function ProjectModal({ project, onClose }) { // close on Escape React.useEffect(() => { if (!project) return; const onKey = (e) => { if (e.key === 'Escape') onClose(); }; document.addEventListener('keydown', onKey); document.body.style.overflow = 'hidden'; return () => { document.removeEventListener('keydown', onKey); document.body.style.overflow = ''; }; }, [project, onClose]); if (!project) return null; return (
{section.body}
{section.sub}
Photography placeholders — final case study will carry workshop and bench photography.