/* Orvio — app (produção: tokens fixos, sem painel de tweaks) */

function useScrollReveal() {
  React.useEffect(() => {
    const all = [...document.querySelectorAll(".reveal")];
    all.forEach(e => e.classList.add("armed"));

    const observer = new IntersectionObserver(
      (entries) => {
        entries.forEach(entry => {
          if (entry.isIntersecting) {
            entry.target.classList.add("in");
            observer.unobserve(entry.target);
          }
        });
      },
      { threshold: 0, rootMargin: "0px 0px -10% 0px" }
    );

    all.forEach(e => observer.observe(e));

    // Garante visibilidade mesmo se o observer falhar
    const safety = setTimeout(() => all.forEach(e => e.classList.add("in")), 2500);

    return () => {
      observer.disconnect();
      clearTimeout(safety);
    };
  }, []);
}

function App() {
  useScrollReveal();

  return (
    <>
      <Nav />
      <main>
        <Hero />
        <Manifesto />
        <Principios />
        <Arquitetura />
        <Constelacao />
      </main>
      <Footer />
    </>
  );
}

ReactDOM.createRoot(document.getElementById("root")).render(<App />);
