cards.forEach(card => { // For desktop - hover behavior if (window.matchMedia("(hover: hover)").matches) { card.addEventListener('mouseover', () => { gsap.to(card, { rotationY: "180deg", duration: 0.8, ease: "power2.inOut", force3D: true }); }); card.addEventListener('mouseout', () => { gsap.to(card, { rotationY: "0deg", duration: 0.8, ease: "power2.inOut", force3D: true }); }); } // For mobile - click/tap behavior else { card.addEventListener('click', () => { isFlipped = !isFlipped; gsap.to(card, { rotationY: isFlipped ? "180deg" : "0deg", duration: 0.8, ease: "power2.inOut", force3D: true }); }); } });