import { useEffect, useRef } from 'react'; export function AmbientBackground() { const glowRef = useRef(null); useEffect(() => { const el = glowRef.current; if (!el) return; let rafId: number; let targetX = 50; let targetY = 50; let currentX = 50; let currentY = 50; const handleMouseMove = (e: MouseEvent) => { targetX = (e.clientX / window.innerWidth) * 100; targetY = (e.clientY / window.innerHeight) * 100; }; const animate = () => { currentX += (targetX - currentX) * 0.08; currentY += (targetY - currentY) * 0.08; el.style.setProperty('--mouse-x', `${currentX}%`); el.style.setProperty('--mouse-y', `${currentY}%`); rafId = requestAnimationFrame(animate); }; window.addEventListener('mousemove', handleMouseMove, { passive: true }); rafId = requestAnimationFrame(animate); return () => { window.removeEventListener('mousemove', handleMouseMove); cancelAnimationFrame(rafId); }; }, []); return ( <>