"use client"; import { useCallback, useEffect, useState } from "react"; import Link from "next/link"; import { ArrowRight } from "lucide-react"; import { site } from "@/content/site"; import { HeroGrantLine } from "@/components/home/HeroGrantLine"; import { LastYearWinnersScroll } from "@/components/home/LastYearWinnersScroll"; import { TopoCurvyExtend } from "@/components/brand/TopoCurvyExtend"; import { HeroTopographyBackground } from "@/components/home/HeroTopographyBackground"; import { HeroRiftParticles } from "@/components/home/HeroRiftParticles"; import { TopoProseSurface } from "@/components/layout/TopoProseSurface"; import { TopoSectionProvider } from "@/components/layout/TopoSectionContext"; import { ScrollReveal } from "@/components/motion/ScrollReveal"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; const INTRO_MS = 10000; export function Hero() { const [reduceMotion, setReduceMotion] = useState(false); const [introPhase, setIntroPhase] = useState<"intro" | "settled" | "static">("intro"); const [heroHover, setHeroHover] = useState(false); const [hoverPoint, setHoverPoint] = useState({ x: 50, y: 50 }); const handleHeroPointerMove = useCallback( (e: React.MouseEvent) => { const rect = e.currentTarget.getBoundingClientRect(); setHoverPoint({ x: ((e.clientX - rect.left) / rect.width) * 100, y: ((e.clientY - rect.top) / rect.height) * 100, }); setHeroHover(true); }, [] ); const handleHeroPointerLeave = useCallback(() => { setHeroHover(false); }, []); useEffect(() => { const mq = window.matchMedia("(prefers-reduced-motion: reduce)"); const apply = () => { const reduced = mq.matches; setReduceMotion(reduced); if (reduced) setIntroPhase("static"); }; apply(); mq.addEventListener("change", apply); if (!mq.matches) { const t = window.setTimeout(() => setIntroPhase("settled"), INTRO_MS); return () => { clearTimeout(t); mq.removeEventListener("change", apply); }; } return () => mq.removeEventListener("change", apply); }, []); return (

{site.dates.label} ยท {site.venue.address}

Great Rift Valley Innovation Summit

{site.tagline} Presented by {site.presentedBy}.

); }