// sections.jsx — Deepstrat landing sections (monochromatic + brand highlights)
const { useState: useStateS, useEffect: useEffectS, useRef: useRefS } = React;
// ─────────── Icon physics for the BrandSpinBand background ───────────
// Animates the Odoo module icons floating behind the lockup with Brownian
// drift, mouse-cursor repulsion, a spring force pulling them back to their
// base position, and friction. Runs as a single global rAF loop — NOT tied
// to React's effect lifecycle, so a hydration error elsewhere (e.g. inside
// Spotlight) can't cancel it. Idempotent: a flag prevents double-starts.
function installIconPhysics() {
if (typeof window === 'undefined' || window.__bsbIconsBooted) return;
const PUSH_RADIUS = 130; // smaller halo
const PUSH_STRENGTH = 900; // gentler shove (~38% of previous)
const DRIFT_STRENGTH = 140;
const RETURN_STRENGTH = 2.2;
const DAMPING_PER_S = 0.10;
let mouseX = -1e6, mouseY = -1e6;
window.addEventListener('mousemove', (e) => { mouseX = e.clientX; mouseY = e.clientY; }, { passive: true });
document.addEventListener('mouseleave', () => { mouseX = -1e6; mouseY = -1e6; });
let imgs = [];
let states = [];
let last = performance.now();
const findIcons = () => {
// Lazy: pick up the icons whenever they exist in the DOM. This lets the
// loop survive React hydration churn — even if BrandSpinBand unmounts
// and remounts, the SSR'd
Reconstruímos a metodologia de implantação do Odoo em torno de IA.
Sua equipe controla pedidos, financeiro, RH e estoque pelo ChatGPT, Claude ou Gemini, sem precisar aprender uma tela nova.
elements are stable in the DOM.
const layer = document.querySelector('[data-bsb-icons]');
if (!layer) { imgs = []; return; }
const next = Array.from(layer.querySelectorAll('img'));
if (next.length !== imgs.length) {
imgs = next;
states = imgs.map(() => ({ x: 0, y: 0, vx: 0, vy: 0 }));
} else {
imgs = next;
}
};
const tick = () => {
findIcons();
const now = performance.now();
const dt = Math.min(0.05, (now - last) / 1000);
last = now;
const dampFactor = Math.pow(DAMPING_PER_S, dt);
for (let i = 0; i < imgs.length; i++) {
const img = imgs[i];
const s = states[i];
const rect = img.getBoundingClientRect();
if (!rect.width) continue;
const cx = rect.left + rect.width / 2;
const cy = rect.top + rect.height / 2;
const dx = cx - mouseX;
const dy = cy - mouseY;
const d2 = dx * dx + dy * dy;
if (d2 < PUSH_RADIUS * PUSH_RADIUS && d2 > 1) {
const d = Math.sqrt(d2);
const f = (1 - d / PUSH_RADIUS) * PUSH_STRENGTH;
s.vx += (dx / d) * f * dt;
s.vy += (dy / d) * f * dt;
}
s.vx += (Math.random() - 0.5) * DRIFT_STRENGTH * dt;
s.vy += (Math.random() - 0.5) * DRIFT_STRENGTH * dt;
s.vx -= s.x * RETURN_STRENGTH * dt;
s.vy -= s.y * RETURN_STRENGTH * dt;
s.vx *= dampFactor;
s.vy *= dampFactor;
s.x += s.vx * dt;
s.y += s.vy * dt;
img.style.transform =
'translate(calc(-50% + ' + s.x.toFixed(2) + 'px), calc(-50% + ' + s.y.toFixed(2) + 'px))';
}
requestAnimationFrame(tick);
};
requestAnimationFrame(tick);
window.__bsbIconsBooted = true;
}
// ───────────────────────── NAV ─────────────────────────
function Nav() {
const [scrolled, setScrolled] = useStateS(false);
const [open, setOpen] = useStateS(false);
useEffectS(() => {
const onScroll = () => setScrolled(window.scrollY > 20);
window.addEventListener('scroll', onScroll, { passive: true });
onScroll();
return () => window.removeEventListener('scroll', onScroll);
}, []);
useEffectS(() => {
document.body.style.overflow = open ? 'hidden' : '';
return () => {document.body.style.overflow = '';};
}, [open]);
const sections = [
{ href: '#odoo', label: 'Odoo' },
{ href: '#ia', label: 'IA' },
{ href: '#modulos', label: 'Módulos' },
{ href: '#implementacao', label: 'Implementação' },
{ href: '#comparativo', label: 'Comparativo' },
{ href: '#blog', label: 'Blog' }];
return (
{renderHeadline(headline)}
);
}
function HeroMock() {
return (
{it.d}
Cada sistema separado é mais uma mensalidade, mais um login, mais uma integração que pode quebrar. Com o Odoo, sua operação inteira roda em uma plataforma só: vendas, finanças, estoque, RH, projetos, e-commerce.
{stage.body}
{/* Animated illustration block */}Reconstruímos cada etapa do projeto em torno de IA: requisitos, mapeamento, configuração, migração, testes e treinamento.
O consultor passa de execução para supervisão, e implementações que tradicionalmente levavam mais de um ano são{' '} entregues em semanas, com custo proporcional.
O ERP é entregue conectado às plataformas de IA já adotadas pela sua equipe (ChatGPT, Claude, Gemini, Telegram).
Pedidos, consultas, propostas e alertas são executados em linguagem natural via uma única instrução, e a operação{' '} escala sem ampliação proporcional de equipe.
↑ selecione para visualizar a interface
{p.lead}
{p.detail}
Uma apresentação estruturada da plataforma, com foco nos módulos mais relevantes para a sua operação.
{p.subtitle || p.teaser}
: null}