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

body {
    width: 100vw;
    height: 100vh;
    background-color: hsl(4, 100%, 94%);
    display: flex;
    align-items: center;
    justify-content: center;
}

main {
    background-color: hsl(0, 100%, 91%);
    width: 60%;
    height: 60%;
    border-radius: 5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.face {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    align-content: center;
}

.eyes {
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.eye {
    background-color: hsl(0, 0%, 0%);
    height: 110px;
    width: 80px;
    border-radius: 2.2rem;
    overflow: hidden;
}

#eye-left {
    margin-left: 20%;
}

#eye-right {
    margin-right: 20%;
}

.eye-inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.eye-inner::after {
    position: absolute;
    content: "";
    border-radius: 2rem;
    background-color: hsl(255, 100%, 100%);
    height: 45%;
    width: 47.5%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.nose {
    width: 35px;
    height: 15px;
    background-color: hsl(0, 0%, 0%);
    border-radius: 3rem;
    margin-top: -10px;
}

.mouth {
    width: 110px;
    height: 60px;
    background-color: hsl(0, 0%, 0%);
    border-radius: 3rem;
    position: relative;
    overflow: hidden;
    margin-top: 60px;
}

.mouth::after {
    position: absolute;
    content: "";
    background-color: hsl(0, 100%, 79%);
    height: 120%;
    width: 60%;
    bottom: -60%;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 50%;
}

.eye-movement-start {
    animation: centerToLeft 4s ease-in;
}

.eye-inner-movement-start::after {
    animation: centerToLeftInner 4s ease-in;
}

.eye-movement-continue {
    animation: leftToRight 16s ease-in-out infinite;
}

.eye-inner-movement-continue::after {
    animation: leftToRightInner 16s ease-in-out infinite;
}

@keyframes centerToLeft {
    from {
        transform: translate(0%, 0%);
    }
    to {
        transform: translate(-20%, 0%);
    }
}

@keyframes centerToLeftInner {
    from {
        transform: translate(-50%, -50%);
    }
    to {
        transform: translate(-110%, -50%);
    }
}

@keyframes leftToRight {
    0% {
        transform: translate(-20%, 0%);
    }
    50% {
        transform: translate(20%, 0%);
    }
    100% {
        transform: translate(-20%, 0%);
    }
}

@keyframes leftToRightInner {
    0% {
        transform: translate(-110%, -50%);
    }
    50% {
        transform: translate(20%, -50%);
    }
    100% {
        transform: translate(-110%, -50%);
    }
}

@media (max-width: 750px) {
    main {
        width: 92.5%;
        height: 95%;
    }
}

@media (max-width: 475px) {
    .eye {
        height: 70px;
        width: 50px;
    }

    #eye-left {
        margin-left: 10%;
    }
    
    #eye-right {
        margin-right: 10%;
    }

    .mouth {
        height: 45px;
        width: 70px;
    }
}