// site.jsx — entry do site público. // Detecta celular vs desktop e renderiza a landing adequada. // `?view=mobile` / `?view=desktop` força a versão, ignorando a largura real. // Existe porque janela maximizada não aceita redimensionamento programático: // sem isso não há como revisar a MobileSite numa tela grande. Só lê o // parâmetro, então não muda nada pra quem chega pela URL limpa. function forcarVista() { if (typeof location === 'undefined') return null; const v = new URLSearchParams(location.search).get('view'); return v === 'mobile' ? true : v === 'desktop' ? false : null; } // `?hero=A|B|C` troca o tratamento de hero sem editar código, pra comparar os // três olhando em vez de na memória. // // O padrão é A. O B — split assimétrico, com o painel sangrando pela direita, // um globo WebGL atrás e o feed de vendas numa terceira camada — era o que o // Arthur chamou de "avulso", e o diagnóstico bate: três sistemas visuais na // mesma dobra sem nenhum se referir ao outro. O A resolve isso por construção: // um eixo só, tudo centrado, e o painel entrando por baixo do texto que acabou // de prometer o que ele mostra. `?hero=B` traz o antigo de volta na hora. function heroDaUrl() { if (typeof location === 'undefined') return 'A'; const h = (new URLSearchParams(location.search).get('hero') || '').toUpperCase(); return h === 'B' || h === 'C' ? h : 'A'; } function Site() { const { isMobile, width } = window.useDevice(); const forcado = forcarVista(); const mobile = forcado === null ? isMobile : forcado; return ( {mobile ? : } ); } ReactDOM.createRoot(document.getElementById('root')).render();