/* HERO — editorial minimal luxury Quiet, immense whitespace, hairline grid, slate type on bone. No sun, no palms, no flourishes. Single quiet image, rotating mantra, thin scroll meter. */ const { useState, useEffect, useRef } = React; function Hero({ t, motionLevel }) { const containerRef = useRef(null); const [progress, setProgress] = useState(0); const [activeMantra, setActiveMantra] = useState(0); useEffect(() => { const onScroll = () => { if (!containerRef.current) return; const rect = containerRef.current.getBoundingClientRect(); const total = rect.height - window.innerHeight; const p = Math.max(0, Math.min(1, -rect.top / Math.max(1, total))); setProgress(p); }; onScroll(); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); useEffect(() => { const id = setInterval(() => setActiveMantra((m) => (m + 1) % t.heroMantras.length), 3600); return () => clearInterval(id); }, [t.heroMantras.length]); return (
{/* Top hairline meta band */}
{t.heroCornerL2} N 36°43′ · W 04°25′ No. 001 — Vol. xxvi
{/* Left column — eyebrow + mantra */}
{t.heroEyebrow}
{t.heroMantras.map((m, i) => — {m} )}
{/* Center column — title */}

{t.heroTitle1} {t.heroTitle2} {t.heroTitle3}

{/* Right column — quiet rectangle */}
{/* Bottom row */}

{t.heroSub}

{t.heroCta1} {t.heroCta2}
{t.heroScroll}
); } window.Hero = Hero;