.carousel {
    height: 600px;
    position: relative;
}
.carousel img:not(.arrow) {
    position: absolute;
    left: 0;
    right: 0;
    opacity: 0;
    display: block;
    max-height: 600px;
    max-width: 100%;
    top: 0; bottom: 0;
    margin: auto;
    transition: opacity 0.3s;
}
.carousel img[selected] {
    opacity: 1;
}
.carousel .arrow-left, .carousel .arrow-right {
    cursor: pointer;
    opacity: 0;
    position: absolute;
    top: 0; bottom: 0;
    margin: auto;
    width: 75px;
}
.carousel:hover .arrow-left, .carousel:hover .arrow-right {
    opacity: 1;
}
.carousel .arrow-left {
    left: 0;
}
.carousel .arrow-right {
    right: 0;
}

.carousel.zoom {
    position: fixed;
    left: 0;
    top: 50%;
    margin-top: -300px;
    right: 0;
}

.carousel .backing {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    opacity: 0;
    background-color: black;
    transition: opacity 0.3s;
}
.carousel.zoom .backing {
    position: fixed;
    opacity: 0.7;
}

@media (max-width : 480px) {
    .carousel {
        height: 300px;
    }
    .carousel .arrow-left, .carousel .arrow-right {
        opacity: 1;
        height: 40px;
        width: 40px;
    }
    .carousel.zoom {
        margin-top: -150px;
    }
}
