// Zen Interiors — Case Study page function CaseStudyPage({ navigate, slug, openEnquiry }) { const projects = window.ZEN_PROJECTS; const project = projects.find(p => p.slug === slug); const idx = projects.findIndex(p => p.slug === slug); const next = projects[(idx + 1) % projects.length]; const prev = projects[(idx - 1 + projects.length) % projects.length]; const [lightbox, setLightbox] = useState(-1); useEffect(() => { window.scrollTo({ top: 0, behavior: 'instant' }); }, [slug]); if (!project) { return ( 404 Project not found. navigate('/projects')}>All projects ); } return ( {/* Hero */} { e.preventDefault(); navigate('/projects'); }} style={{ color: 'rgba(250,247,242,0.85)', borderBottom: '1px solid rgba(250,247,242,0.4)' }}> Projects / {project.sector} {project.name}. PHOTO CREDIT TBC {/* Metadata bar */} {[ { label: 'Sector', value: project.sector }, { label: 'Location', value: project.location }, { label: 'Year', value: project.year }, { label: 'Scope', value: project.scope }, project.award && { label: 'Recognition', value: project.award, accent: true }, ].filter(Boolean).map(m => ( {m.label} {m.value} ))} {/* Narrative — Brief & Concept */} The brief {project.brief} {/* Single image break */} {project.gallery[1] && ( FRAME 02 — {project.name.toUpperCase()} PHOTO CREDIT TBC )} The concept {project.concept} Materials {project.materials.map((m, i) => ( {m} ))} {/* Gallery grid */} Gallery The rooms in full. {project.gallery.length} frames {project.gallery.map((src, i) => { // Asymmetric mosaic const layouts = [ { col: 'span 12', ratio: '16/9' }, { col: 'span 7', ratio: '4/5' }, { col: 'span 5', ratio: '4/5' }, { col: 'span 5', ratio: '4/5' }, { col: 'span 7', ratio: '4/5' }, { col: 'span 6', ratio: '3/4' }, { col: 'span 6', ratio: '3/4' }, ]; const L = layouts[i % layouts.length]; return ( setLightbox(i)} style={{ background: 'transparent', border: 0, padding: 0, cursor: 'zoom-in', gridColumn: L.col, }}> ); })} ⚠ ALL FRAMES — PHOTOGRAPHER CREDIT & REPUBLICATION RIGHTS TO BE CONFIRMED BEFORE PUBLISHING. {/* CTA inline */} Begin a similar project Tell us about your home. Request a consultation Call us {/* Next / Prev */} { e.preventDefault(); navigate(`/projects/${prev.slug}`); }} style={{ display: 'block', cursor: 'pointer' }}> ← Previous project {prev.name} {prev.sector} · {prev.location} { e.preventDefault(); navigate(`/projects/${next.slug}`); }} style={{ display: 'block', cursor: 'pointer', textAlign: 'right' }}> Next project → {next.name} {next.sector} · {next.location} {lightbox >= 0 && ( setLightbox(-1)} onPrev={() => setLightbox(i => (i - 1 + project.gallery.length) % project.gallery.length)} onNext={() => setLightbox(i => (i + 1) % project.gallery.length)} /> )} ); } window.CaseStudyPage = CaseStudyPage;
{project.brief}
{project.concept}
⚠ ALL FRAMES — PHOTOGRAPHER CREDIT & REPUBLICATION RIGHTS TO BE CONFIRMED BEFORE PUBLISHING.