/* Performance 8M — Main App Editorial athletic landing · Black + Lime · React */ const { useState, useEffect, useRef, useCallback, useMemo } = React; /* ---------- Tweaks defaults ---------- */ const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "#d4ff3a", "density": "default", "stickyCta": true, "modulesLayout": "carousel" }/*EDITMODE-END*/; /* ---------- Icons (inline minimal) ---------- */ const Icon = { arrow: ( ), check: ( ), plus: ( ), chevL: ( ), chevR: ( ), clock: ( ), target: ( ), infinity: ( ), shield: ( ), lock: ( ), video: ( ), book: ( ), layers: ( ), compass: ( ), users: ( ), refresh: ( ), }; /* ---------- SVG duotone filter (shared) ---------- */ function DuotoneDefs({ accent = '#d4ff3a' }) { // turn hex into r/g/b 0..1 const rgb = useMemo(() => { const h = accent.replace('#', ''); return [ parseInt(h.substring(0, 2), 16) / 255, parseInt(h.substring(2, 4), 16) / 255, parseInt(h.substring(4, 6), 16) / 255, ]; }, [accent]); return ( ); } /* ---------- Section: Nav ---------- */ function Nav() { const [scrolled, setScrolled] = useState(false); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 24); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); return ( ); } /* ---------- Section: Hero ---------- */ function Hero() { return (
Temporada 2026 · Lote 01 Performance 8M · Por Jean Pierre
8 Módulos / 8 Meses R$ 497 · Acesso completo

Pare de evoluir aos poucos. Vire o atleta completo do torneio.

Base explosivaPotência inferiorPush & pull power AceleraçãoDesaceleraçãoPotência integrada AgilidadeVelocidadeRotação · antirrotação Coordenação Base explosivaPotência inferiorPush & pull power AceleraçãoDesaceleraçãoPotência integrada AgilidadeVelocidadeRotação · antirrotação Coordenação
); } /* ---------- Section: Coach card ---------- */ function CoachCard() { return (
Jean Pierre
Preparador físico · Beach Tennis

Jean Pierre

Preparador físico de atletas do ranking mundial. Estruturou os protocolos físicos de Alessandro Calbucci, Flamínia Daina e Flávia Muniz — referências do circuito internacional.

Anos consecutivos com nº 1 do mundo no programa
3
Títulos mundiais entre atletas treinados
10+
Anos de aplicação em campo, areia e quadra
); } /* ---------- Section: Intro / what you'll apply ---------- */ function Intro() { const items = [ { label: 'Potência fundamental', desc: 'A base explosiva que sustenta tudo' }, { label: 'Potência inferior', desc: 'Força e explosão nos membros inferiores' }, { label: 'Potência superior', desc: 'Push & pull power aplicados ao jogo' }, { label: 'Aceleração e desaceleração', desc: 'Chegar antes e travar com controle' }, { label: 'Potência integrada', desc: 'Todas as valências funcionando juntas' }, { label: 'Agilidade e velocidade', desc: 'Reação e mudança de direção em velocidade máxima' }, { label: 'Rotação e antirrotação', desc: 'Gerar e absorver força nos golpes decisivos' }, { label: 'Coordenação com velocidade', desc: 'A camada final: precisão dentro da quadra' }, ]; return (
Acesso completo

8 módulos.
8 meses.

A preparação física que sustenta um atleta de alto nível durante uma temporada inteira. Da fundação à coordenação fina — sem improviso, sem platô, sem perder o método no meio do caminho.

Quero acesso completo {Icon.arrow}
    {items.map((it, i) => (
  1. {String(i + 1).padStart(2, '0')} {it.label} {it.desc}
  2. ))}
); } /* ---------- Section: Athletes carousel ---------- */ function Athletes() { const trackRef = useRef(null); const [canL, setCanL] = useState(false); const [canR, setCanR] = useState(true); const update = useCallback(() => { const t = trackRef.current; if (!t) return; setCanL(t.scrollLeft > 4); setCanR(t.scrollLeft < t.scrollWidth - t.clientWidth - 4); }, []); useEffect(() => { const t = trackRef.current; if (!t) return; update(); t.addEventListener('scroll', update, { passive: true }); window.addEventListener('resize', update); return () => { t.removeEventListener('scroll', update); window.removeEventListener('resize', update); }; }, [update]); const scroll = (dir) => { const t = trackRef.current; if (!t) return; t.scrollBy({ left: dir * (t.clientWidth * 0.7), behavior: 'smooth' }); }; const athletes = [ { img: 'assets/calbucci.jpg', tag: 'Nº 1 do mundo', name: 'Alessandro Calbucci', bio: '6× consecutivas como nº 1 no ranking mundial de Beach Tennis.', }, { img: 'assets/athlete-step.jpg', tag: 'Campeã mundial', name: 'Flamínia Daina', bio: '1× Campeã do mundo em equipe · 2× em dupla · Melhor jogadora do mundo em 2019.', }, { img: 'assets/flavia.jpg', tag: 'Top 10 · 2021', name: 'Flávia Muniz', bio: 'Top 10 no ranking mundial de Beach Tennis em 2021.', }, ]; return (
Aplicado por campeões

O método rodado por top players do ranking mundial.

{athletes.map((a, i) => (
{a.name} {a.tag}

{a.name}

{a.bio}

))}

O método se adapta ao seu nível. O sistema é o mesmo.

); } /* ---------- Section: Pain ---------- */ function Pain() { return (
Onde você está

Você já passou do "sentir a diferença".
Agora você precisa de outra coisa.

Você já entende que preparação física específica funciona. Já sentiu o corpo responder depois de aplicar um método estruturado. Mas agora você esbarra em outras paredes:

01
A explosão melhorou — mas ela some no meio do torneio.
Você começa bem. Aos 2/3 do dia, o motor falha. Quem chega inteiro no jogo decisivo vence.
02
A movimentação destravou — mas falta potência nos golpes decisivos.
Chega na bola, posiciona certo, e a bola sai sem peso. A força que decide ponto não está pronta.
03
O cansaço diminuiu — mas a recuperação entre torneios continua lenta.
Você joga, recupera mal, joga de novo já cansado. A temporada come o seu nível, semana a semana.
"Eu só preciso
treinar mais."

Treinar mais sem progressão te leva ao platô.

Treinar mais sem método específico te leva à lesão.

Performance de verdade vem de treino certo, na ordem certa, na intensidade certa — durante a temporada inteira.

Quero treinar com método progressivo {Icon.arrow}
); } window.Nav = Nav; window.Hero = Hero; window.CoachCard = CoachCard; window.Intro = Intro; window.Athletes = Athletes; window.Pain = Pain; window.DuotoneDefs = DuotoneDefs; window.Icon = Icon; window.TWEAK_DEFAULTS = TWEAK_DEFAULTS;