// Resultados.jsx — Carrosseis Infinitos const { useRef: useResRef, useEffect: useResEff, useState: useResSt } = React; /* ── Animated counter ── */ function useCounter(target, duration = 1600) { const [val, setVal] = useResSt(0); const [started, setStarted] = useResSt(false); useResEff(() => { if (!started) return; const start = performance.now(); const tick = (now) => { const p = Math.min((now - start) / duration, 1); const ease = 1 - Math.pow(1 - p, 3); setVal(Math.round(ease * target)); if (p < 1) requestAnimationFrame(tick); }; requestAnimationFrame(tick); }, [started]); return [val, () => setStarted(true)]; } function CounterStat({ target, suffix = '', label, trigger }) { const [val, start] = useCounter(target); useResEff(() => { if (trigger) start(); }, [trigger]); return (
{val}{suffix}
{label}
); } /* ── Card Antes/Depois ── */ function CardAntesDep({ n }) { return (
ANTES DEPOIS ✦
[FOTO ANTES {n}]
[FOTO DEPOIS {n}]
[NOME ALUNA {n}]
[RESULTADO {n}]
); } /* ── Card Depoimento ── */ function CardDepo({ n }) { return (
"[DEPOIMENTO {n} — ex: Com o método da Taty mudei meu corpo e minha rotina de vez. É diferente de tudo que já tentei.]"
[F{n}]
[NOME ALUNA {n}] [SERVIÇO {n}]
★★★★★
); } /* ── Card Print ── */ function CardPrint({ n }) { return (
[PRINT MENSAGEM {n}]
); } /* ── Carrossel 1 — Antes/Depois ── */ function CarrosselAntesDep() { const cards = [1, 2, 3, 4, 5]; const allCards = [...cards, ...cards]; // duplicar para loop return (
{allCards.map((n, i) => )}
); } /* ── Carrossel 2 — Depoimentos & Prints ── */ function CarrosselDepo() { const items = [ , , , , , , ]; const allItems = [...items.map((el, i) => React.cloneElement(el, { key: 'a' + i })), ...items.map((el, i) => React.cloneElement(el, { key: 'b' + i }))]; return (
{allItems}
); } /* ── Main section ── */ function Resultados() { const ref = useResRef(); const [counterTrigger, setCounterTrigger] = useResSt(false); useReveal(ref); useResEff(() => { const el = ref.current; if (!el) return; const obs = new IntersectionObserver(([e]) => { if (e.isIntersecting) { setCounterTrigger(true); obs.disconnect(); } }, { threshold: 0.15 }); obs.observe(el); return () => obs.disconnect(); }, []); return (
{/* Header */}

Resultados reais de mulheres reais

Quando o método é certo,
o corpo responde.

Antes & Depois · Depoimentos · Prints

{/* Contador */}
{/* Carrossel 1 — full bleed */}
{/* Frase de impacto */}

"Você não precisa tentar mais uma vez.
Você precisa fazer diferente."

— Taty Vaillant

{/* Carrossel 2 — full bleed */}
{/* CTA final */}

Pronta para escrever o seu resultado?

Quero me destravar agora →

Vagas limitadas · Atendimento via WhatsApp

); } Object.assign(window, { Resultados });