*{
    margin: 0;
    padding: 0;
}

body{
    width: 100svw;
    height: 100svh;
    display: grid;
    place-items: center;
    background-color: lightgrey;
}

.container{
    aspect-ratio: 1/1;
    width: 40rem;
    background-color: darkgray;
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 1.5rem;
    border: darkgray solid 1rem;
}

body>div div{
    background-color: white;
}

.bar:nth-child(1){
    display: grid;
    grid-template-rows: repeat(2, 1fr);
    background-color: darkgrey;
    gap: 1.5rem;
}

.bar:nth-child(3){
    display: grid;
    grid-template-rows: 4fr 1fr;
    background-color: darkgrey;
    gap: 1.5rem;
}

.banner{
    background-color: lightgreen;
    display: grid;
    place-items: center;
    overflow: hidden;
    will-change: background-color;
    animation: background 3s infinite cubic-bezier(.1,.56,.63,.08);
}
.banner:hover{
    animation: backgroundHover 3s infinite cubic-bezier(.1,.56,.63,.08);
}

.banner *{
    position: absolute;
    background-color: initial;
    color: white;
    transition: all 0.5s ease-in-out;
    will-change: transform, opacity;
}

.before{
    opacity: 1;
}

.after{
    opacity: 0;
}

@keyframes background {
    0%{
        background-color: lightgreen;
    }
    50%{
        background-color: green;
    }
    100%{
        background-color: lightgreen;
    }
}

@keyframes backgroundHover {
    0%{
        background-color: pink;
    }
    50%{
        background-color: red;
    }
    100%{
        background-color: pink;
    }
}


.banner:hover .before{
    opacity: 0;
    transform: translate3d(100%, 100%, 0);
}

.banner:hover .after{
    opacity: 1;
}