:root {
    --button-height: 70px;
    --button-width: 200px;
    --primary-color: white;
    --accent-color: #8E44AD;
    --translate-x: 6px;
    --transition-duration: 0.5s;
}

.container {
    width: 400px;
    height: 400px;
    background: #2c3d4f;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.button {
    position: relative;
    width: calc(var(--button-width) + (2 * var(--translate-x)));
    height: calc(var(--button-height) + (2 * var(--translate-x)));
}

.button::before {
    content: "";
    position: absolute;
    display: block;
    top: 0px;
    left: 0px;
    width: var(--button-width);
    height: var(--button-height);
    background-color: var(--accent-color);
    transform: translate(var(--translate-x), var(--translate-x));
    transition: background-color var(--transition-duration), transform var(--transition-duration);
}

.button:hover::before {
    background-color: var(--primary-color);
    transform: translate(calc(-1 * var(--translate-x)), calc(-1 * var(--translate-x)));
}

.button::after {
    content: "Hover Me";
    position: absolute;

    display: flex;
    align-items: center;
    justify-content: center;

    top: 0px;
    left: 0px;
    width: var(--button-width);
    height: var(--button-height);

    font-family: "Open Sans", Helvetica, sans-serif;
    letter-spacing: 1px;
    font-size: 25px;
    font-weight: 300;
    text-transform: uppercase;

    color: black;
    background-color: var(--primary-color);

    transform: translate(-6px, -6px);
    transition: color var(--transition-duration), background-color var(--transition-duration), transform var(--transition-duration);

}

.button:hover::after {
    color: white;
    background-color: var(--accent-color);
    transform: translate(var(--translate-x), var(--translate-x));
}
