/* Header + Hero — auth-aware nav + homepage fold */ const { useState: useStateHd, useEffect: useEffectHd, useRef: useRefHd, useContext: useContextHd } = React; /* ── TRUSTED BY DATA (top past events ranked by Hexis AI) ── */ const TRUSTED_BY_EVENTS = [ { initials: 'IC', name: 'Invicta Capital', sector: 'Banca', metric: '€4.2M', label: 'Pipeline' }, { initials: 'VC', name: 'Veridian Summit', sector: 'Tech', metric: '94%', label: 'Match Score' }, { initials: 'HB', name: 'Helix Bio', sector: 'Saúde', metric: '92%', label: 'Match Score' }, { initials: 'AE', name: 'Aether Real Estate', sector: 'Imobiliário', metric: '€5.4M', label: 'Pipeline' }, { initials: 'CF', name: 'Cygnus AI Forum', sector: 'IA', metric: '95%', label: 'Match Score' }, { initials: 'SE', name: 'Solaris Energy', sector: 'Energia', metric: '3.8×', label: 'ROI' }, { initials: 'NV', name: 'Nova Ventures Day', sector: 'VC', metric: '17', label: 'Term sheets' }, { initials: 'PL', name: 'Porto Leaders', sector: 'Executivo', metric: '186', label: 'Meetings' }, ]; /* ── HEADER ─────────────────────────────────────────────── */ const Header = ({ page, onNav }) => { const [menuOpen, setMenuOpen] = useStateHd(false); const auth = window.useAuth ? window.useAuth() : null; const user = auth?.user || null; const logout = auth?.logout || (() => {}); const NAV_LINKS = [ { id: 'home', label: 'Home' }, { id: 'eventos', label: 'Eventos' }, { id: 'marketplace', label: 'Marketplace' }, { id: 'conteudos', label: 'Conteúdo' }, { id: 'sobre', label: 'Sobre' }, ]; const handleLogout = () => { logout(); onNav('home'); }; /* Close menu on page change */ useEffectHd(() => { setMenuOpen(false); }, [page]); /* Close menu on outside click */ useEffectHd(() => { if (!menuOpen) return; const close = (e) => { if (!e.target.closest('.nav')) setMenuOpen(false); }; document.addEventListener('click', close); return () => document.removeEventListener('click', close); }, [menuOpen]); return ( ); }; /* ── BOTTOM NAVIGATION (mobile only — rendered via BottomNav component) ── */ const BottomNav = ({ page, onNav }) => { const auth = window.useAuth ? window.useAuth() : null; const user = auth?.user || null; const items = [ { id: 'home', label: 'Home', icon: 'home' }, { id: 'eventos', label: 'Eventos', icon: 'calendar' }, { id: 'marketplace', label: 'Market', icon: 'layout-dashboard' }, { id: 'conteudos', label: 'Conteúdo', icon: 'newspaper' }, { id: user ? 'dashboard' : 'criar-experiencia', label: user ? 'Dash' : 'Demo', icon: user ? 'chart-bar' : 'play', isCTA: !user }, ]; /* Don't render bottom nav on auth/criar-experiencia pages */ if (['entrar', 'criar-experiencia'].includes(page)) return null; return ( ); }; /* ── HERO ────────────────────────────────────────────────── */ const Hero = ({ onNav }) => { const [tickerIdx, setTickerIdx] = useStateHd(0); const phrases = ['Networking', 'Reuniões', 'Cocktails', 'Ruído']; useEffectHd(() => { const t = setInterval(() => setTickerIdx(i => (i + 1) % phrases.length), 2400); return () => clearInterval(t); }, []); const [pipeline, setPipeline] = useStateHd(8.4); useEffectHd(() => { const t = setInterval(() => setPipeline(p => +(p + (Math.random() * 0.04 - 0.01)).toFixed(2)), 1800); return () => clearInterval(t); }, []); return ( <>
Marcianus Experience · v3 Live

Acabou o {phrases[tickerIdx]}.
Começou a decisão de negócio.

Eventos B2B com inteligência comportamental. Cada handshake medido, cada conexão pontuada, cada minuto reconvertido em pipeline.

{/* CTA 1 of 3 — Demo na hero */} Hexis AI a operar
Operação ativa · 7 sectores · 12 países · €54M pipeline 2025
Kiosk Marcianus NFC Check-in
{/* Metrics */}
Performance em Tempo Real

Números que falam por si.

Cada evento Marcianus gera dados auditáveis. Estas métricas são médias das últimas 90 operações ativas.

+6
Match Score Médio
Calculado por similaridade vetorial (pgvector) entre perfis de participantes — sem LLM.
M +12%
Pipeline / Evento
Pipeline qualificado gerado por evento, medido 30 dias pós check-in. Fonte: CRM sync auditado.
× ROI
Retorno vs. Tradicional
Comparação com eventos sem plataforma de matching. Dados de 318 entrevistas · State of B2B 2025.
{/* Trusted By — powered by Hexis AI (best past events auto-selected) */}
Trusted By · Hexis AI Selection

Líderes que já confiam no sistema.

Os eventos de topo são selecionados automaticamente pelo Hexis AI com base em Match Score, pipeline gerado e feedback dos participantes.

{/* CTA 2 of 3 — Demo na secção Trusted By */}
Hexis AI · Auto-ranked
{TRUSTED_BY_EVENTS.map((e, i) => (
{ SoundFX.tap(); onNav('eventos'); ToastBus.push({ kind: 'gold', icon: 'star', title: `${e.name} · Case Study`, desc: `${e.metric} ${e.label} · Sector: ${e.sector} · Hexis Score top 5% · Ver detalhes nos Eventos.` }); }}>
{e.initials}
{e.name}
{e.metric}
{e.label}
{e.sector}
))}
{/* CTA 3 of 3 — Demo no final da secção Trusted By */}

O teu evento pode ser o próximo a entrar nesta lista.

{/* ── BEHAVIORAL ENGINE TEASER ── */}
Behavioral Design B2B

6 Game Types. Um só motor de decisão.

O Sistema Marcianus™ orquestra engajamento através de engenharia comportamental — não entretenimento. Cada interação captura dados, cada dado melhora o próximo match.

{[ { id: 'MQ', name: 'Match Quest™', desc: 'Maximiza qualidade de conexões por similaridade vectorial. XP por compatibilidade alta.', color: '#7B61FF', icon: 'target' }, { id: 'SB', name: 'Social Breaker™', desc: 'Reduz barreira de interação com missões progressivas. Match probability >85% obrigatório.', color: '#00C48C', icon: 'users' }, { id: 'QK', name: 'Queue Killer™', desc: 'Converte tempo morto em engajamento com micro-desafios de 30–60s e quizzes contextuais.', color: '#00D1FF', icon: 'zap' }, { id: 'ND', name: 'Network Domination™', desc: 'Leaderboard de mérito real: quantidade × qualidade × profundidade. Cria status competitivo.', color: '#FF7849', icon: 'trophy' }, { id: 'KA', name: 'Knowledge Arena™', desc: 'Quizzes ao vivo durante palestras. Active recall + testing effect aumentam retenção cognitiva.', color: '#FFD700', icon: 'book' }, { id: 'ME', name: 'Mission Engine™', desc: 'Redireciona fluxo físico com missões dinâmicas. Se sala congestionada → duplica XP na zona vazia.', color: '#A78BFA', icon: 'map-pin' }, ].map(g => (
{ SoundFX.tap(); if (window.InfiniteGameWidget && window._hexisGameOpen) { window._hexisGameOpen(g.name); } else { ToastBus.push({ kind: 'gold', icon: g.icon, title: g.name, desc: `${g.desc.slice(0, 80)}… · Joga no Dashboard ou nos Eventos.` }); onNav('dashboard'); } }}>
{g.id}
{g.name}

{g.desc}

))}
Loop central: Input → Event → Graph → Hexis AI → Decision → Action → Feedback → Aprendizagem
); }; window.Header = Header; window.Hero = Hero; window.BottomNav = BottomNav;