"use client"; import { useEffect, useRef } from "react"; const FEATURES = [ { title: "Say it in 128", body: "Short, focused thoughts. No bloat, no essays.", }, { title: "Make it yours", body: "Customize your profile with CSS. Full creative control.", }, { title: "Your audience, your rules", body: "Public, followers-only, unlisted, or direct. You pick for each post.", }, { title: "Movies Diary", body: "Your Movies Diary posts show up as rich cards with ratings and posters. Feels native.", }, ]; export function LandingFeatures() { const ref = useRef(null); useEffect(() => { const cards = Array.from( ref.current?.querySelectorAll("[data-animate]") ?? [] ); const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add("visible"); observer.unobserve(entry.target); } }); }, { threshold: 0.15 } ); cards.forEach((card) => observer.observe(card)); return () => observer.disconnect(); }, []); return (
{FEATURES.map((f, i) => (

{f.title}

{f.body}

))}
); }