function throttle(fn, wait = 100) { let last = 0; let timer; return (...args) => { const now = Date.now(); const remaining = wait - (now - last); clearTimeout(timer); if (remaining <= 0) { last = now; fn(...args); } else { timer = setTimeout(() => { last = Date.now(); fn(...args); }, remaining); } }; }