// Milfers · App root — scroll reveal observer
function App() {
React.useEffect(() => {
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('is-in'); });
}, { threshold: 0.15, rootMargin: '0px 0px -50px 0px' });
document.querySelectorAll('.reveal').forEach(el => obs.observe(el));
return () => obs.disconnect();
}, []);
return (
<>
{/* ticker traducido por idioma (sin tildes — tipografía display) */}
>
);
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render();