"use client" import { useSectionReveal } from "@/hooks/use-section-reveal" import { ChevronDown } from "lucide-react" import { useState, useEffect } from "react" import Image from "next/image" const TITLE = "MycoStack" const QUIPS = [ "(com)post-capitalism, growing alternatives", "routing nutrients, not profits", "the network beneath the network", "stop making money, start making sense", "building from beneath the surface", "the (post-app)lication layer for regeneration", "your space, your rules, your data", "encrypted, entangled, evolving", "permaculture economies, pluralistic value", "peer for peer, people for planet", "voice for all, extraction for none", "design global, manufacture local", "funding flows where needed, not where hoarded", "the more we share, the more we have", "sovereign tech for sovereign communities", "composting the old, inoculating the new", ] export function HeroSection() { const sectionRef = useSectionReveal() const [quipIndex, setQuipIndex] = useState(0) const [displayed, setDisplayed] = useState("") const [phase, setPhase] = useState<"typing" | "holding" | "erasing">("typing") useEffect(() => { const quip = QUIPS[quipIndex] if (phase === "typing") { if (displayed.length < quip.length) { const timeout = setTimeout(() => { setDisplayed(quip.slice(0, displayed.length + 1)) }, 35 + Math.random() * 25) return () => clearTimeout(timeout) } else { const timeout = setTimeout(() => setPhase("holding"), 100) return () => clearTimeout(timeout) } } if (phase === "holding") { const timeout = setTimeout(() => setPhase("erasing"), 3000) return () => clearTimeout(timeout) } if (phase === "erasing") { if (displayed.length > 0) { const timeout = setTimeout(() => { setDisplayed(displayed.slice(0, -1)) }, 18) return () => clearTimeout(timeout) } else { setQuipIndex((prev) => (prev + 1) % QUIPS.length) setPhase("typing") } } }, [displayed, phase, quipIndex]) return (
{/* Logo */}
MycoStack logo
{/* Title with staggered emergence */}

{TITLE.split("").map((letter, i) => ( {letter} ))}

{/* Subtitle */}

Rebooting the legacy of the Commons Stack.
Preserving the legacy of the P2P Foundation.

The P4P (Peer-for-Peer) Movement, emerging from the soil.

{/* Cycling terminal tagline */}
>{" "} {displayed} _
{/* Scroll indicator */}
) }