body {
    margin: 0;
    padding: 0;
    background: #2d2326;
    font-family: 'Montserrat', sans-serif;
}

.middle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    width: 400px;
    margin: 3em auto;
}

.btn {
    display: flex;
    justify-content: center;

    /* spacing and styling */
    margin: 2rem 0;
    border: 2px solid #ff7675;
    padding: 1rem 4rem;

    /* styling fonts */
    color: white;
    text-decoration: none;
    text-align: center;
    text-transform: uppercase;

    /* hide extra stuff */
    position: relative;
    overflow: hidden;
}

.btn::before {
    background: #ff7675;
    /* Add an empty state */
    content: "";

    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;

    /* animation */
    transform: translate(-50%,-50%);
    /* translate(x,y) */
    z-index: -1;
    /* transition: what is being transformed, how long, ease */
    transition: all 0.6s ease;
}


/* Button 1  */
.btn1::before {
    width: 0;
    height: 100%;
}

.btn1:hover::before {
    width: 100%;
}

/* Button 2 */
.btn2::before {
    width: 100%;
    height: 0;
}

.btn2:hover::before {
    height: 100%;
}

/* Button 3 */
.btn3::before {
    width: 100%;
    height: 0%;
    transform: translate(-50%, -50%) rotate(45deg);
}

.btn3:hover::before {
    height: 500%;
}

/* Button 4 */
.btn4::before {
    width: 100%;
    height: 100%;
    transform: translate(-200%, -50%);
}

.btn4:hover::before {
    transform: translate(-50%, -50%);
}