/* App — composes the AI Scan landing page. */
function App() {
  // On arrival via a hash (e.g. footer link from /privacy → index.html#why-it-works),
  // the target section isn't in the DOM until React mounts, so the browser's native
  // jump fails. After mount, smooth-scroll to it ourselves, offset for the sticky nav.
  React.useEffect(() => {
    const id = decodeURIComponent((location.hash || "").slice(1));
    if (!id) return;
    const el = document.getElementById(id);
    if (!el) return;
    const reduce = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
    requestAnimationFrame(() => {
      const y = el.getBoundingClientRect().top + window.scrollY - 72;
      window.scrollTo({ top: y, behavior: reduce ? "auto" : "smooth" });
    });
  }, []);

  return (
    <React.Fragment>
      {React.createElement(window.Nav)}
      <main id="main">
        {React.createElement(window.Hero)}
        {React.createElement(window.Problem)}
        {React.createElement(window.HowItWorks)}
        {React.createElement(window.WhyItWorks)}
        {React.createElement(window.WhatYouGet)}
        {React.createElement(window.Faq)}
        {React.createElement(window.FinalCta)}
      </main>
      {React.createElement(window.Footer)}
      {React.createElement(window.CtaModal)}
    </React.Fragment>
  );
}
ReactDOM.createRoot(document.getElementById("root")).render(<App />);
