// Nav, Marquee, Manifesto sections
const { useEffect: useEffect2, useState: useState2, useRef: useRef2 } = React;
function Nav({ lang, setLang, t }) {
const [scrolled, setScrolled] = useState2(false);
useEffect2(() => {
const onScroll = () => setScrolled(window.scrollY > 24);
window.addEventListener('scroll', onScroll);
return () => window.removeEventListener('scroll', onScroll);
}, []);
return (
);
}
function Marquee({ items }) {
const loop = [...items, ...items];
return (
{loop.map((item, i) => (
{item}
))}
);
}
function Manifesto({ t }) {
const ref = useRef2(null);
const [inView, setInView] = useState2(false);
useEffect2(() => {
const io = new IntersectionObserver(([e]) => e.isIntersecting && setInView(true), { threshold: 0.2 });
if (ref.current) io.observe(ref.current);
return () => io.disconnect();
}, []);
return (
{t.manifesto.eyebrow}
{/* Faint crosshairs, editorial diagram style */}
{/* Corner meta */}
Fig. 01
FQ / 2024 — ∞
Sisterhood as overlap
● three sets, one set
{t.manifesto.l1} {t.manifesto.l2} {t.manifesto.l3} {t.manifesto.l4}.
{t.manifesto.pillars.map((p, i) => (
0{i + 1}
{p.title}
{p.body}
))}
);
}
window.Nav = Nav;
window.Marquee = Marquee;
window.Manifesto = Manifesto;