import { createRoot } from "react-dom/client";
import App from "./App.tsx";
import "./index.css";
// 2027 design system — locked typefaces (Phase 1)
import "@fontsource/dm-serif-display/400.css";
import "@fontsource/fira-sans/300.css";
import "@fontsource/fira-sans/400.css";
import "@fontsource/fira-sans/500.css";
import "@fontsource/fira-sans/600.css";
import "./i18n";
import { installAbandonmentTracker } from "@/lib/analytics";
import { installDiagnostics, markFirstRender } from "@/lib/diagnostics";
import { installDevPreviewHostBridge } from "@/lib/devPreviewHostBridge";
import { installLastUserActionTracker } from "@/lib/lastUserAction";
import { initPostHog } from "@/lib/posthog";

const uninstallDevPreviewHostBridge = installDevPreviewHostBridge();
installDiagnostics();
installLastUserActionTracker();
installAbandonmentTracker();
initPostHog();

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

// HMR cleanup: tear down the dev-only message listener on hot disposal
// so a hot reload doesn't stack duplicate listeners on `window`.
if (import.meta.hot) {
  import.meta.hot.dispose(() => {
    uninstallDevPreviewHostBridge();
  });
}
