'use client'; import { useCallback, useState } from 'react'; import { motion } from 'framer-motion'; import { Container } from '@/components/primitives/Container'; import { FondoPuntos } from '@/components/primitives/FondoPuntos'; import { ParDialogo } from '@/components/primitives/ParDialogo'; import { IlustracionInflexion } from '@/components/primitives/IlustracionInflexion'; import { puntosInflexion } from '@/lib/content'; import { fadeInUp, staggerContainer, viewportOnce, usePrefersReducedMotion, motionProps } from '@/lib/motion'; export function PuntosInflexion() { const reduced = usePrefersReducedMotion(); // How far down the conversation the reader has got. It only ever moves // forward: an answer that faded back out on the way past would leave the page // emptier the further you read. Scroll drives it, and so do hover and // keyboard focus, so the reader can also run the conversation themselves // instead of only being carried through it. const [alcanzado, setAlcanzado] = useState(0); const activar = useCallback((n: number) => setAlcanzado((previo) => Math.max(previo, n)), []); return (
{puntosInflexion.eyebrow} {puntosInflexion.title}
{puntosInflexion.lead} {/* The conversation. One
  • per exchange, read top to bottom — no carousel at any breakpoint, because "te bajas" is the whole shape the dueña asked for. Each answer arrives when the reader reaches its pair, so the section answers as you go down instead of sitting there already answered. The stagger reaches ParDialogo's two halves through React context. */} {puntosInflexion.items.map((item, i) => ( ))}
  • ); }