const { Toast, Button } = window.JabberwockeeDesignSystem_646027;
function App() {
const [proj, setProj] = React.useState(null);
const [contact, setContact] = React.useState(false);
const [toast, setToast] = React.useState(null);
const n = window.JW_DATA.projects.length;
const nav = (id) => { const el = document.getElementById(id); if (!el) return; const y = id === "top" ? 0 : el.getBoundingClientRect().top + window.scrollY - 72; window.scrollTo({ top: y, behavior: "smooth" }); };
React.useEffect(() => {
const io = new IntersectionObserver((es) => es.forEach((e) => e.isIntersecting && e.target.classList.add("is-in")), { threshold: 0.15 });
document.querySelectorAll(".jw-section, .jw-logos").forEach((s) => io.observe(s));
return () => io.disconnect();
}, []);
return (
<>