// ─── SCROLL REVEAL ─── const revealObserver = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('revealed'); revealObserver.unobserve(entry.target); } }); }, { threshold: 0.1 }); document.querySelectorAll('.reveal').forEach(el => revealObserver.observe(el)); // ─── 3D BOOK COVER TILT ─── document.querySelectorAll('.book-cover-img').forEach(card => { card.addEventListener('mousemove', e => { const r = card.getBoundingClientRect(); const cx = r.width / 2; const cy = r.height / 2; const rx = ((e.clientY - r.top - cy) / cy) * -6; const ry = ((e.clientX - r.left - cx) / cx) * 6; card.style.transition = 'none'; card.style.transform = `perspective(900px) rotateX(${rx}deg) rotateY(${ry}deg) scale(1.02)`; }); card.addEventListener('mouseleave', () => { card.style.transition = 'transform 0.5s ease'; card.style.transform = 'perspective(900px) rotateX(0) rotateY(0) scale(1)'; }); }); // ─── NEWSLETTER ─── document.getElementById('newsletter-form').addEventListener('submit', function(e) { if (this.action.endsWith('#')) { e.preventDefault(); this.style.display = 'none'; document.getElementById('newsletter-success').style.display = 'block'; } });