.ipa-image-wrapper {
    display: inline-block;
    padding: 8px;
    margin: 1em 0;
    transition: transform 0.3s ease, filter 0.3s ease;
}

/* Zoom */
.ipa-hover-zoom:hover img {
    transform: scale(1.08);
}

/* Lift */
.ipa-hover-lift:hover {
    transform: translateY(-8px);
}

/* Blur */
.ipa-hover-blur:hover img {
    filter: blur(2px);
}

.ipa-image-wrapper img {
    transition: all 0.3s ease;
}

/* ===============================
   FANCY HOVER EFFECTS
================================ */

/* Rotate */
.ipa-hover-rotate:hover img {
    transform: scale(1.05) rotate(2deg);
}

/* 3D Tilt */
.ipa-hover-tilt {
    perspective: 800px;
}
.ipa-hover-tilt:hover img {
    transform: rotateX(6deg) rotateY(-6deg) scale(1.05);
}

/* Shine Effect */
.ipa-hover-shine {
    position: relative;
    overflow: hidden;
}
.ipa-hover-shine::after {
    content: "";
    position: absolute;
    top: -50%;
    left: -75%;
    width: 50%;
    height: 200%;
    background: linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,0.4),
        transparent
    );
    transform: skewX(-25deg);
}
.ipa-hover-shine:hover::after {
    animation: ipa-shine 0.8s ease;
}

@keyframes ipa-shine {
    from { left: -75%; }
    to   { left: 130%; }
}

/* Grayscale */
.ipa-hover-grayscale img {
    filter: grayscale(100%);
}
.ipa-hover-grayscale:hover img {
    filter: grayscale(0%);
}

/* Smooth transitions */
.ipa-image-wrapper img {
    transition: transform 0.35s ease, filter 0.35s ease;
}
