// hero.jsx — Y2K hero with massive type + chrome orb const { useRef: __hr, useEffect: __he, useState: __hs } = React; function Hero({ t, variant = 'orb' }) { if (variant === 'split') return ; if (variant === 'stack') return ; return ; } /* ════════════════════════════════════════════════════════ HERO ORB — staggered display type with big chrome orb ════════════════════════════════════════════════════════ */ function HeroOrb({ t }) { const mouse = useMouse(); const scrollY = useScrollY(); const [wordIdx, setWordIdx] = __hs(0); __he(() => { const i = setInterval(() => setWordIdx(v => (v + 1) % t.h1_words.length), 1800); return () => clearInterval(i); }, [t]); return (
{/* Top meta strip */}
{t.h1_loc} EST · MMXXII {t.h1_year}
{/* Floating chrome orb — positioned absolutely within text layout */}
{/* Y2K Badge giratorio */}
{/* Stars sprinkled */} {/* DISPLAY TYPE — staggered stair */}

{t.h1_top}
{t.h1_middle_1}
{t.h1_middle_2}
{t.h1_middle_3}

{/* Bottom row */}
{/* Word rotator */}
Hacemos —
{t.h1_words.map((w, i) => (
{w}.
))}
{/* Bottom marquee */}
{Array(2).fill(0).map((_, k) => ( {t.marquee_words.map((w, i) => ( {w} ))} ))}
); } /* ════════════════════════════════════════════════════════ HERO SPLIT — type left, big orb right (variant) ════════════════════════════════════════════════════════ */ function HeroSplit({ t }) { const mouse = useMouse(); const scrollY = useScrollY(); return (
{t.svc_eye}

{t.h1_top}
{t.h1_middle_1}
{t.h1_middle_2}
{t.h1_middle_3}

{t.h1_sub}

); } /* ════════════════════════════════════════════════════════ HERO STACK — stacked centered with orb backdrop ════════════════════════════════════════════════════════ */ function HeroStack({ t }) { const mouse = useMouse(); const scrollY = useScrollY(); return (
{/* Centered orb backdrop */}
{t.svc_eye}

{t.h1_top}
{t.h1_middle_2}
{t.h1_middle_3}

{t.h1_sub}

); } Object.assign(window, { Hero, HeroOrb, HeroSplit, HeroStack });