// Hero with orbiting circles + word-rise display heading const { useEffect, useRef, useState } = React; function OrbitingCircles() { const ref = useRef(null); const [mouse, setMouse] = useState({ x: 0, y: 0 }); useEffect(() => { const onMove = (e) => { if (!ref.current) return; const r = ref.current.getBoundingClientRect(); const cx = r.left + r.width / 2; const cy = r.top + r.height / 2; setMouse({ x: (e.clientX - cx) / r.width, y: (e.clientY - cy) / r.height, }); }; window.addEventListener('mousemove', onMove); return () => window.removeEventListener('mousemove', onMove); }, []); const px = mouse.x * 16; const py = mouse.y * 16; return (
{/* ambient glow */}
{/* Three overlapping circles — the logo mark, drifting */}
{[ { c: '#f4a8b8', dx: -0.22, dy: 0.08, size: 0.58, anim: 'orbit-a 14s ease-in-out infinite', parallax: 1 }, { c: '#f06b8f', dx: 0.08, dy: -0.18, size: 0.58, anim: 'orbit-b 16s ease-in-out infinite', parallax: 1.4 }, { c: '#e85a5a', dx: 0.14, dy: 0.18, size: 0.58, anim: 'orbit-c 18s ease-in-out infinite', parallax: 0.7 }, ].map((d, i) => (
))}
); } function Hero({ t }) { const h1Ref = useRef(null); const [inView, setInView] = useState(false); useEffect(() => { const timer = setTimeout(() => setInView(true), 150); return () => clearTimeout(timer); }, []); return (
{t.hero.eyebrow}

{t.hero.l1a} {t.hero.l1b}
{t.hero.l2a} {t.hero.l2b}

{/* Bottom meta strip */}
01   {t.hero.meta1}
02   {t.hero.meta2}
03   {t.hero.meta3}
{t.hero.status}
); } window.Hero = Hero;