// Root app — composes all sections (no TweaksPanel in production)

const { useState: useSta, useEffect: useEff } = React;

const App = () => {
  const [modalOpen, setModalOpen] = useSta(false);

  useEff(() => {
    const obs = new IntersectionObserver((entries) => {
      entries.forEach(e => {
        if (e.isIntersecting) e.target.classList.add('is-visible');
      });
    }, { threshold: 0.1 });
    document.querySelectorAll('.fade-in').forEach(el => obs.observe(el));
    return () => obs.disconnect();
  }, []);

  return (
    <>
      <Nav onOpenModal={() => setModalOpen(true)} />
      <Hero onOpenModal={() => setModalOpen(true)} />
      <Marquee />
      <Practice />
      <Manifesto />
      <Results />
      <Attorneys />
      <Testimonials />
      <Insights />
      <FAQ />
      <Contact onOpenModal={() => setModalOpen(true)} />
      <Footer />

      <Modal open={modalOpen} onClose={() => setModalOpen(false)} />
      <FloatCTA onOpenModal={() => setModalOpen(true)} />
    </>
  );
};

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