figure[data-rollover-enabled="1"] {
    position: relative;
    display: block;
}
figure[data-rollover-enabled="1"] [data-element="link"] {
    display: block;
}
figure[data-rollover-enabled="1"] img {
    display: inline-block;
    vertical-align: top;
}
figure[data-rollover-enabled="1"] .rollover-img {
    transition: opacity 0.2s ease-in-out;
}
figure[data-rollover-enabled="1"].rollover-align-right .rollover-img {
    left: auto !important;
    right: 0;
}
figure[data-rollover-enabled="1"].rollover-align-center .rollover-img {
    right: 0;
    margin-left: auto;
    margin-right: auto;
}

/* Effects remain same as before, e.g.: */
@keyframes fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
.fade-in { animation: fade-in 0.6s ease-in-out; }

/* Blur */
@keyframes blur {
    from { filter: blur(8px); opacity: 0; }
    to   { filter: blur(0); opacity: 1; }
}
.blur { animation: blur 0.6s ease-in-out; }

/* Grayscale */
@keyframes grayscale {
    from { filter: grayscale(100%); opacity: 0; }
    to   { filter: grayscale(0%); opacity: 1; }
}
.grayscale { animation: grayscale 0.6s ease-in-out; }

/* Rotate */
@keyframes rotate {
    from { transform: rotate(-180deg); opacity: 0; }
    to   { transform: rotate(0); opacity: 1; }
}
.rotate { animation: rotate 0.6s ease-in-out; }

/* Slides */
@keyframes slide-left {
    from { transform: translateX(-100%); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}
.slide-left { animation: slide-left 0.6s ease-in-out; }

@keyframes slide-right {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}
.slide-right { animation: slide-right 0.6s ease-in-out; }

@keyframes slide-up {
    from { transform: translateY(100%); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}
.slide-up { animation: slide-up 0.6s ease-in-out; }

@keyframes slide-down {
    from { transform: translateY(-100%); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}
.slide-down { animation: slide-down 0.6s ease-in-out; }

/* Zooms */
@keyframes zoom-in {
    from { transform: scale(0.5); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}
.zoom-in { animation: zoom-in 0.6s ease-in-out; }

@keyframes zoom-out {
    from { transform: scale(1.5); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}
.zoom-out { animation: zoom-out 0.6s ease-in-out; }
