/* I Know My Skin — shared helpers: reveal-on-scroll + Tweaks panel */ function useReveal() { React.useEffect(() => { const els = document.querySelectorAll('.reveal'); if (!('IntersectionObserver' in window)) { els.forEach(e => e.classList.add('in')); return; } const io = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('in'); io.unobserve(e.target); } }); }, { threshold: 0.12, rootMargin: '0px 0px -8% 0px' }); els.forEach(e => io.observe(e)); // Safety net: if anything never intersects (or capture tools miss it), reveal it. const fallback = setTimeout(() => { els.forEach(e => e.classList.add('in')); }, 2000); return () => { io.disconnect(); clearTimeout(fallback); }; }, []); } const Reveal = ({ children, delay = 0, style = {}, className = '' }) => (