// Shared atoms + the hero animation pieces.
function useNarrow(breakpoint = 768) {
const [narrow, setNarrow] = React.useState(false);
React.useEffect(() => {
const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
const apply = () => setNarrow(mq.matches);
apply();
mq.addEventListener("change", apply);
return () => mq.removeEventListener("change", apply);
}, [breakpoint]);
return narrow;
}
const Kicker = ({ children }) => (
{children}
);
// Page section wrapper with consistent spacing
const Section = ({ id, children, style }) => {
const narrow = useNarrow(768);
return (
{sub}
}