/* Bundled sections — single babel file for reliable load */ /* ===== shared.jsx ===== */ /* Shared helpers + small reusable pieces for the De La Riva sales page */ /* base dos assets: a página na subpasta /curso-guarda-de-la-riva define window.__ASSET_BASE='../assets' */ const ASSET = (typeof window !== 'undefined' && window.__ASSET_BASE) || 'assets'; /* Hotmart checkout — base limpa (sem params transitórios _gl/bid). sck personalizado por botão. */ const CHECKOUT_BASE = 'https://pay.hotmart.com/D97857529B?off=06kim8ar&hotfeature=32'; const checkoutUrl = (sck) => `${CHECKOUT_BASE}&sck=${encodeURIComponent(sck)}`; const goCheckout = (sck) => window.open(checkoutUrl(sck), '_blank', 'noopener'); const Icon = (name, size = 20, opts = {}) => ; /* fire lucide + reveal observer after mount */ function useChrome(deps = []) { React.useEffect(() => { const t = setTimeout(() => window.lucide && window.lucide.createIcons(), 50); const io = new IntersectionObserver((entries) => { entries.forEach((e) => { if (e.isIntersecting) { e.target.classList.add('in'); io.unobserve(e.target); } }); }, { threshold: 0.12 }); document.querySelectorAll('.reveal:not(.in)').forEach((el) => io.observe(el)); return () => { clearTimeout(t); io.disconnect(); }; }, deps); } /* Section eyebrow with brand tick — light/gold/ink tones */ function Kicker({ children, tone = 'gold', center = false }) { const color = tone === 'light' ? 'var(--bone-50)' : tone === 'ink' ? 'var(--ink-900)' : 'var(--text-accent-ink)'; return ( {children} ); } /* Display headline helper. `outline` renders gold-stroke transparent text. */ function Display({ children, outline = false, color = 'var(--bone-50)', size = 'clamp(2.4rem,5.2vw,4.6rem)', style = {} }) { return ( {children} ); } /* Vertical tracked caption running up a margin (poster device) */ function VCaption({ children, color = 'var(--text-on-ink-muted)' }) { return ( {children} ); } /* the embroidered creed line, reused */ const CREED = 'Contigo eu sei que posso suportar, Deus'; Object.assign(window, { ASSET, CHECKOUT_BASE, checkoutUrl, goCheckout, Icon, useChrome, Kicker, Display, VCaption, CREED }); /* ===== hero.jsx ===== */ /* ATENÇÃO — TopBar, Hero, sticky CTA */ const { Button: HB, Badge: HBd } = window.AlexMunisBJJDesignSystem_b3b200; function TopBar({ onCta }) { const [solid, setSolid] = React.useState(false); React.useEffect(() => { const f = () => setSolid(window.scrollY > 40); window.addEventListener('scroll', f); return () => window.removeEventListener('scroll', f); }, []); return (
Alex Munis Alex Munis
goCheckout('topo_menu')} style={{ whiteSpace: 'nowrap', flexShrink: 0 }}>Garantir minha vaga
); } const HERO_HEADLINES = { curso: ['Do zero ao', 'avançado', 'Guarda De La Riva'], intocavel:['A guarda que te', 'torna', 'Intocável no chão'], campeoes: ['Jogue a guarda', 'dos', 'Campeões mundiais'], }; function Hero({ t, onCta, onModulos }) { const [a, b, c] = HERO_HEADLINES[t.headline] || HERO_HEADLINES.curso; const photo = t.heroStyle !== 'tipografico'; return (
柔術
Faixa Preta Campeão Brasileiro 2026 · Meio-Pesado

{a} {b} {c}

A guarda mais versátil do jiu-jitsu moderno, destrinchada detalhe por detalhe — do primeiro contato às raspagens, entradas e finalizações de alto nível. 10 módulos, do iniciante ao avançado.

goCheckout('hero_principal')} iconRight={}>Quero dominar a De La Riva Ver os 10 módulos
{[['10', 'Módulos'], ['7+', 'Raspagens'], ['∞', 'Acesso vitalício']].map(([v, l], i) => (
{v} {l}
))}
{photo && (
Alex Munis, faixa preta
Alex Munis
)}
{/* scrolling marquee strip */}
{Array(2).fill(0).map((_, k) => ( {['Raspagens', 'De La Riva Invertida', 'De La Riva Profunda', 'One Leg & X-Guard', 'Arm Lock', 'Triângulo', 'Omoplata', 'Mentalidade de Faixa'].map((w, i) => ( {w} ))} ))}
); } Object.assign(window, { TopBar, Hero }); /* ===== interesse.jsx ===== */ /* INTERESSE — dor, por que a De La Riva, pilares, atletas */ const { Eyebrow: IEb } = window.AlexMunisBJJDesignSystem_b3b200; /* --- Problem agitation band (ink) --- */ function Problema() { const dores = [ ['Você puxa pra guarda e te passam', 'Sem controle real, a passagem é só questão de tempo.'], ['Suas raspagens não funcionam sob pressão', 'No detalhe errado, o adversário recupera a base e some.'], ['Você conhece a De La Riva, mas não confia nela', 'Na hora do rola, a posição trava e você não sabe o porquê.'], ]; return (
Reconhece isso?

Sua guarda trava quando o jogo aperta.

{dores.map(([h, p], i) => (
0{i + 1}

{h}

{p}

))}

Não falta esforço. Falta o detalhe — o ajuste de joelho, quadril e pegada que transforma uma guarda comum numa guarda imbatível. É exatamente isso que este curso entrega.

); } /* --- Why De La Riva (paper) --- */ function PorQue() { return (
Por que a De La Riva

Controle agora. Ataque em seguida.

A Guarda De La Riva se destaca pela capacidade de controlar e transitar para ataques poderosos. Sua versatilidade abre diferentes caminhos para raspar, finalizar e neutralizar o oponente — uma ferramenta indispensável no seu arsenal, seja você iniciante ou avançado.

É a guarda escolhida por nomes que ditam o jiu-jitsu moderno:

{['Alex Munis', 'Jonatas Gracie', 'Mica Galvão', 'Erich Munis', 'Meyram', 'Gustavo "Braguinha"'].map((n) => ( {n} ))}
Alex Munis em posição de guarda
); } /* --- 5 pillars (ink) --- */ function Pilares({ onCta }) { const pilares = [ ['activity', 'Mobilidade', 'Flexibilidade de joelho e quadril, levantamento e exercícios com parceiro — a base de uma guarda que funciona.'], ['sliders-horizontal', 'Ajustes finos', 'Joelho, quadril e pegadas no lugar certo. E o que fazer quando a pegada falha.'], ['repeat', 'Raspagens & finalizações', '7 raspagens para todos os ângulos + Arm Lock, Triângulo, Omoplata e Botinha direto da guarda.'], ['git-fork', 'Entradas para outras guardas', 'Conecte a De La Riva com a One Leg, X-Guard, Aranha, Laço e fechada com fluidez.'], ['flame', 'Técnicas avançadas', 'De La Riva invertida e profunda, berimbolo, transições para as costas e variações de alto nível.'], ['brain', 'Mentalidade de faixa', 'Da branca à preta: como atravessar cada estágio com disciplina, fé e constância.'], ]; return (
O que você vai dominar

Seis frentes, uma guarda completa

{pilares.map(([ic, h, p], i) => (
{Icon(ic, 22)}

{h}

{p}

))}
); } function Interesse({ onCta, onModulos }) { return (
); } Object.assign(window, { Interesse }); /* ===== modulos.jsx ===== */ /* DESEJO (núcleo) — currículo interativo dos 10 módulos */ const { Badge: MBd, Button: MB } = window.AlexMunisBJJDesignSystem_b3b200; const MODULOS = [ { n: '01', tag: 'Grátis', title: 'Introdução', sub: 'Comece por aqui', items: ['Boas-vindas e visão geral da jornada', 'Por que a De La Riva é tão eficaz', 'Como aproveitar o curso ao máximo, do iniciante ao avançado'] }, { n: '02', title: 'Exercícios de Mobilidade', sub: 'A base de tudo', items: ['Exercícios solo para joelho e quadril', 'Levantamento e transição de posição', 'Trabalho com parceiro: desequilíbrio pela gola e manga'] }, { n: '03', title: 'Ajustando a De La Riva', sub: 'O detalhe que decide', items: ['Ajuste do joelho para controle e flexibilidade', 'Ajuste do quadril para pressão e oportunidade', 'Ajuste das pegadas — e o que fazer quando a pegada falha'] }, { n: '04', title: 'Iniciando a De La Riva', sub: 'Como entrar na posição', items: ['Conectar a guarda em pé, com controle total', 'Conectar sem a pegada ideal', 'Entrar a partir da Aranha, Laço e Fechada'] }, { n: '05', title: 'Raspagem De La Riva', sub: '7 raspagens para todos os ângulos', items: ['Chute no joelho com pegada na manga e na gola (frente)', 'Chute no quadril com manga e gola (trás)', 'Contra-golpe e ida para as costas — Erich Munis', 'Sentando na perna matando a manga — Fábio Gurgel'] }, { n: '06', title: 'Entradas para a "One Leg" e "X"', sub: 'Conecte com outras guardas', items: ['Entradas em baixo com manga e gola (dos dois lados)', 'Entrada sem desequilibrar — Tainan Dalpra', 'Jogando o oponente para cima — Erich Munis'] }, { n: '07', title: 'De La Riva Invertida', sub: 'Controle e variações ofensivas', items: ['Como conectar e quando usar', 'O que NÃO fazer para não perder o controle', 'Raspagens com aranha · variação de Márcio André', 'Entrada para o berimbolo'] }, { n: '08', title: 'De La Riva Profunda', sub: 'Controle ainda mais intenso', items: ['Como entrar e ajustar a posição', 'A importância das pegadas na raspagem', 'Raspagens para frente e para trás', 'Variação quando o oponente ajoelha'] }, { n: '09', title: 'Finalizações De La Riva', sub: 'Transforme a guarda em ameaça', items: ['Arm Lock — referência de Rafael Mendes', 'Triângulo — referência de Matheus Gabriel', 'Omoplata com pegada na gola e manga', 'Botinha — referência de Caio Terra', 'Raspagem tripé · batida na perna (Erich Munis)'] }, { n: '10', tag: 'Bônus', title: 'Mentalidade de Faixa', sub: 'Da branca à preta', items: ['Aceitar e valorizar o processo', 'A paciência da faixa branca', 'Perseverança nas dificuldades', 'A evolução contínua: faixa preta é um novo começo'] }, ]; function ModuloRow({ m, open, onToggle, i }) { const free = m.tag === 'Grátis'; return (
    {m.items.map((it, k) => (
  • {Icon('check', 17)} {it}
  • ))}
); } function Modulos({ onCta }) { const [open, setOpen] = React.useState(0); return (
A trilha completa

10 módulos, do zero ao avançado

Conteúdo progressivo: cada módulo constrói a base do próximo. Clique para ver o que tem dentro.

{MODULOS.map((m, i) => ( setOpen(open === i ? -1 : i)} /> ))}
goCheckout('modulos_fim')} iconRight={}>Quero acesso a tudo isso
); } Object.assign(window, { Modulos }); /* ===== desejo.jsx ===== */ /* DESEJO — autoridade do mentor, fé, para quem é, o que está incluso */ const { Button: DB, Badge: DBd } = window.AlexMunisBJJDesignSystem_b3b200; /* --- Mentor / authority (belt-tying hero) --- */ function Mentor() { return (
Alex Munis amarrando a faixa preta
Faixa Preta · Campeão Brasileiro 2026
Quem te ensina

Alex Munis

Faixa preta e Campeão Brasileiro 2026 na categoria meio-pesado adulto. Um competidor que vive o tatame e ensina como pensa: por conceitos, não por decoreba. Aqui você aprende a entender a De La Riva — e a aplicá-la em qualquer situação de luta.

{[['Faixa Preta', 'Graduação'], ['Campeão BR', '2026 · Adulto'], ['Meio-pesado', 'Categoria']].map(([v, l], i) => (
{v} {l}
))}
); } /* --- Faith / creed band (intensity via tweak) --- */ function Creed({ faith }) { if (faith === 'minimo') return null; const central = faith === 'central'; return (
✝ Mentalidade · Fé

“{CREED}.”

Alex Munis

{central &&

O jiu-jitsu vai além das técnicas. Disciplina, humildade e fé sustentam cada faixa — da branca à preta.

}
); } /* --- For whom (paper) --- */ function ParaQuem() { const sim = [ ['Iniciantes', 'Querem uma primeira guarda forte e confiável para parar de ser passado.'], ['Faixas coloridas', 'Querem refinar a De La Riva e transformá-la na guarda principal.'], ['Competidores', 'Buscam raspagens, entradas e finalizações de alto nível para o pódio.'], ['Mente conceitual', 'Prefere entender os porquês a decorar movimentos soltos.'], ]; return (
Para quem é

Do primeiro rola ao pódio

{sim.map(([title, desc], i) => (
{Icon('check', 19)} {String(i + 1).padStart(2, '0')}

{title}

{desc}

))}
); } /* --- What's included (ink) --- */ function Incluso() { const itens = [ ['layers', '10 módulos completos', 'Da mobilidade às finalizações avançadas, em sequência progressiva.'], ['repeat', '7 raspagens detalhadas', 'Para todos os ângulos, com os ajustes que fazem cada uma funcionar.'], ['target', 'Finalizações de alto nível', 'Arm Lock, Triângulo, Omoplata e Botinha direto da guarda.'], ['git-fork', 'Conexões entre guardas', 'One Leg, X-Guard, invertida, profunda e entrada para o berimbolo.'], ['infinity', 'Acesso vitalício', 'Estude no seu ritmo, reveja quantas vezes quiser, para sempre.'], ['brain', 'Aula bônus de mentalidade', 'Da faixa branca à preta — o lado mental e espiritual do jogo.'], ]; return (
O que está incluso

Tudo que você precisa

{itens.map(([ic, h, p], i) => (
{Icon(ic, 26)}

{h}

{p}

))}
); } function Desejo({ t }) { return (
); } Object.assign(window, { Desejo }); /* ===== acao.jsx ===== */ /* AÇÃO — oferta, garantia, FAQ, CTA final, rodapé */ const { Button: AB, Badge: ABd, SocialLink: ASL } = window.AlexMunisBJJDesignSystem_b3b200; /* --- Offer / pricing --- */ function Oferta({ onCta }) { const inclui = ['10 módulos completos (40+ aulas)', '7 raspagens para todos os ângulos', 'Finalizações: Arm Lock, Triângulo, Omoplata, Botinha', 'Entradas para One Leg, X-Guard, invertida e profunda', 'Aula bônus de mentalidade — da branca à preta', 'Acesso vitalício e atualizações']; return (
柔術
A oferta

Sua De La Riva nunca mais a mesma

Acesso imediato a todo o conteúdo. Estude no seu ritmo, do fundamento ao jogo de competição — para sempre.

    {inclui.map((it, i) => (
  • {Icon('check', 18)}{it}
  • ))}
{/* price card */}
Curso completo Oferta de lançamento
De R$ 297
6x de R$27 ,58

ou R$ 147 à vista

goCheckout('oferta_card')} style={{ marginTop: 24 }} iconRight={}>Quero garantir minha vaga
{Icon('lock', 15)} Pagamento seguro · Acesso imediato
{Icon('shield-check', 26)} 7 dias de garantia. Não gostou? Devolvemos 100% do seu dinheiro.

* parcelamento com juros no cartão

); } /* --- FAQ --- */ const FAQS = [ ['Preciso já saber jogar de guarda?', 'Não. O curso começa pela mobilidade e pelos fundamentos da posição, e avança em sequência progressiva. Serve do iniciante ao avançado.'], ['Funciona para o meu nível de faixa?', 'Sim. Faixas iniciais constroem uma base sólida; faixas mais graduadas refinam ajustes, entradas e finalizações de alto nível.'], ['Por quanto tempo tenho acesso?', 'Acesso vitalício. Você estuda no seu ritmo, revê quantas vezes quiser e recebe as atualizações do curso.'], ['Serve para gi e no-gi?', 'O curso é focado no jogo com kimono (gi), explorando pegadas de gola e manga. Muitos conceitos de controle e desequilíbrio se transferem para o no-gi.'], ['E se eu não gostar?', 'Você tem 7 dias de garantia incondicional. Se não fizer sentido para você, devolvemos 100% do valor.'], ]; function FaqRow({ q, a, open, onToggle }) { return (

{a}

); } function Faq() { const [open, setOpen] = React.useState(0); return (
Dúvidas frequentes

Antes de você entrar

{FAQS.map(([q, a], i) => setOpen(open === i ? -1 : i)} />)}
); } /* --- Final CTA --- */ function CtaFinal({ onCta }) { return (
Sua vez no tatame

Leve sua guarda pro próximo nível

A De La Riva pode se tornar sua posição favorita. O caminho é mais importante que o destino — e ele começa agora.

goCheckout('cta_final')} iconRight={}>Começar agora

Alex Munis

); } /* --- Footer --- */ function Rodape() { return ( ); } function Acao({ onCta }) { return (
); } Object.assign(window, { Acao }); /* ===== app.jsx ===== */ /* App — composição, tweaks, barra CTA fixa */ const { useTweaks, TweaksPanel, TweakSection, TweakRadio } = window; const { Button: AppB } = window.AlexMunisBJJDesignSystem_b3b200; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "heroStyle": "foto", "headline": "curso", "faith": "sutil" }/*EDITMODE-END*/; function scrollToId(id) { const el = document.getElementById(id); if (!el) return; const y = el.getBoundingClientRect().top + window.scrollY - 56; window.scrollTo({ top: y, behavior: 'smooth' }); } /* sticky bottom CTA — slides in after hero scrolls past */ function StickyCta({ onCta }) { const [show, setShow] = React.useState(false); React.useEffect(() => { const f = () => setShow(window.scrollY > 720 && (document.body.scrollHeight - window.scrollY - window.innerHeight) > 700); window.addEventListener('scroll', f); f(); return () => window.removeEventListener('scroll', f); }, []); return (
Guarda De La Riva — do zero ao avançado 6x de R$27,58 · acesso vitalício
goCheckout('barra_fixa')} style={{ flexShrink: 0 }}>Garantir vaga
); } function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); const onCta = () => scrollToId('oferta'); const onModulos = () => scrollToId('modulos'); useChrome([t.faith, t.heroStyle, t.headline]); return (
setTweak('heroStyle', v)} /> setTweak('headline', v)} /> setTweak('faith', v)} />
); } ReactDOM.createRoot(document.getElementById('root')).render();