*, *::before, *::after {
    box-sizing: border-box;
}

body{
    margin: 0;
}

.carousel{
    width: 100vw;
    height: 100vh;
    position: relative;
}

.carousel > ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.slide img {
    width: 100vw;
    height: 100vh;
    object-fit: contain;
    display: block;
}

.slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: 200ms opacity ease-in-out;
    transition-delay: 200ms;
}

.slide[data-active] {
    opacity: 1;
    transition-delay: 0ms;
    z-index: 1;
}

.button-prev, .button-next{
    opacity: 50%;
    position: absolute;
    color: white;
    z-index: 2;
    background: none;
    border: none;
    font-size: 4rem;
    top: 50%;
    cursor: pointer;
    border-radius: .25rem;
    padding: 0.5rem;
}

.button-prev:hover, .button-next:hover,
 .button-prev:focus, .button-next:focus{
    color: red;
    opacity: 100%;
 }

 .button-prev{
    left: 1rem;
 }
 
 .button-next{
    right: 1rem;
 }