.carousel {
    width: min(100%, 630px);
    display: grid;
    grid-template-rows: min(330px, 90vw) auto;
    overflow: hidden;
}

.carousel-items {
    position: relative;
}

.carousel-item {
    position: absolute;
    width: min(270px, 75%);
    aspect-ratio: 5/6;
    right: 50%;
    top: 20px;
    object-fit: cover;
    box-shadow: var(--shadow);
    transition: transform .25s, opacity .25s;
}

.carousel-item.hidden {
    opacity: 0;
    transform: translate(50%, 50%) scale(0);
}

.carousel-item.center {
    transform: translate(50%, 0) scale(1);
    z-index: 1;
}

.carousel-item.left {
    transform: translate(-20%, 0) scale(.5);
    opacity: 50%;
}

.carousel-item.right {
    transform: translate(120%, 0) scale(.5);
    opacity: 50%;
}

.carousel-item.left2 {
    transform: translate(-50%, 0) scale(.25);
    opacity: 25%;
    z-index: -1;
}

.carousel-item.right2 {
    transform: translate(150%, 0) scale(.25);
    opacity: 25%;
    z-index: -1;
}

.carousel-controls {
    margin-top: 20px;
    display: grid;
    justify-content: center;
    gap: 30px;
    padding: 30px;
    grid-template-columns: 50% 50%;
    height: min-content;
}

.carousel-controls button {
    cursor: pointer;
    font-size: 1.5rem;
    color: var(--dark);
    border-radius: 2px;
    transition-duration: .25s;
    box-shadow: var(--shadow);
    background-color: var(--blue1);
    border: 1px solid;
    width: fit-content;
    height: min-content;
    display: flex;
    padding: 3px;
}

.carousel-controls button span {
    display: inline-block;
    width: 0;
    overflow: clip;
    transition: width .25s;
}

.carousel-controls button:hover span {
    width: 50px
}

.carousel-controls button:first-child {
    justify-self: right;
}