@keyframes zoom {
    from {
        transform: scale(0.2, 0.2);
        -ms-transform: scale(0.2, 0.2);
        -webkit-transform: scale(0.2, 0.2);
        -o-transform: scale(0.2, 0.2);
        -moz-transform: scale(0.2, 0.2);
        margin-left: -3100px;
    }
    to {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        margin-left: -3205px;
    }
}

@-moz-keyframes zoom {
    from {
        transform: scale(0.1, 0.1);
        -ms-transform: scale(0.1, 0.1);
        -webkit-transform: scale(0.1, 0.1);
        -o-transform: scale(0.1, 0.1);
        -moz-transform: scale(0.1, 0.1);
        margin-left: -3100px;
    }
    to {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        margin-left: -3205px;
    }
}

@-webkit-keyframes zoom {
    from {
        transform: scale(0.2, 0.2);
        -ms-transform: scale(0.2, 0.2);
        -webkit-transform: scale(0.2, 0.2);
        -o-transform: scale(0.2, 0.2);
        -moz-transform: scale(0.2, 0.2);
        margin-left: -3100px;
    }
    to {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        margin-left: -3205px;
    }
}

@-o-keyframes zoom {
    from {
        transform: scale(0.2, 0.2);
        -ms-transform: scale(0.2, 0.2);
        -webkit-transform: scale(0.2, 0.2);
        -o-transform: scale(0.2, 0.2);
        -moz-transform: scale(0.2, 0.2);
        margin-left: -3100px;
    }
    to {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        margin-left: -3205px;
    }
}

/* ============== MAIN STYLES ==================== */
.image {
    display: inline-block;
    margin: 50px 50px 0 50px;
    height: 250px;
    width: 250px;
    background-color: #0065c0;
    background-image: -webkit-gradient(linear, top, bottom, from(#0065c0), to(#0a4594));
    background-image: -webkit-linear-gradient(top, #0065c0, #0a4594);
    background-image: -moz-linear-gradient(top, #0065c0, #0a4594);
    background-image: -ms-linear-gradient(top, #0065c0, #0a4594);
    background-image: -o-linear-gradient(top, #0065c0, #0a4594);
    background-image: linear-gradient(top, #0065c0, #0a4594);
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px;
    -moz-box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
    -webkit-box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
    box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
}

.image:hover {
    cursor: pointer;
    background-color: #0080f3;
    background-image: -webkit-gradient(linear, top, bottom, from(#0080f3), to(#0d5bc4));
    background-image: -webkit-linear-gradient(top, #0080f3, #0d5bc4);
    background-image: -moz-linear-gradient(top, #0080f3, #0d5bc4);
    background-image: -ms-linear-gradient(top, #0080f3, #0d5bc4);
    background-image: -o-linear-gradient(top, #0080f3, #0d5bc4);
    background-image: linear-gradient(top, #0080f3, #0d5bc4);
}

.image.active {
    transform: scale(1.25, 1.25);
    -ms-transform: scale(1.25, 1.25);
    -webkit-transform: scale(1.25, 1.25);
    -o-transform: scale(1.25, 1.25);
    -moz-transform: scale(1.25, 1.25);
}

#carousel-wrapper {
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -165px;
    margin-left: -187.5rem;
    width: 6000px;
    animation: zoom 1s;
    -moz-animation: zoom 1s;
    -webkit-animation: zoom 1s;
    -o-animation: zoom 1s;
}

.image,
#carousel-wrapper {
    -webkit-transition: all 0.5s ease-in-out;
    -moz-transition: all 0.5s ease-in-out;
    -o-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
}

.target {
    position: absolute;
    border: 1px solid red;
    width: 25%;
    height: 100%;
    z-index: 10;
}

#right-target {
    right: 0;
}

#left-target {
    left: 0;
}