.mouse {
    background: #4e5559 linear-gradient(transparent 0%, transparent 50%, #ddd 50%, #ddd 100%);
    position: absolute;
    left: 0px;
    right: 0px;
    bottom: 20px;
    margin: auto;
    z-index: 99;
    opacity: 0.8;
    width: 30px;
    height: 50px;
    border-radius: 100px;
    background-size: 100% 200%;
    animation: colorSlide 9s linear infinite, nudgeMouse 9s ease-out infinite;
}
.mouse:before, .mouse:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}
.mouse:before {
    width: 26px;
    height: 46px;
    background: #222a30;
    border-radius: 100px;
}
.mouse:after {
    background: #ddd;
    width: 10px;
    height: 10px;
    border-radius: 100%;
    animation: trackBallSlide 9s linear infinite;
}
@keyframes colorSlide {
    0% {
        background-position: 0% 100%;
    }
    20% {
        background-position: 0% 0%;
    }
    21% {
        background-color: #4e5559;
    }
    29.99% {
        background-color: #ddd;
        background-position: 0% 0%;
    }
    30% {
        background-color: #4e5559;
        background-position: 0% 100%;
    }
    50% {
        background-position: 0% 0%;
    }
    51% {
        background-color: #4e5559;
    }
    59% {
        background-color: #ddd;
        background-position: 0% 0%;
    }
    60% {
        background-color: #4e5559;
        background-position: 0% 100%;
    }
    80% {
        background-position: 0% 0%;
    }
    81% {
        background-color: #4e5559;
    }
    90%, 100% {
        background-color: #ddd;
    }
}
@keyframes trackBallSlide {
    0% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    6% {
        opacity: 1;
        transform: scale(0.9) translateY(5px);
    }
    14% {
        opacity: 0;
        transform: scale(0.4) translateY(40px);
    }
    15%, 19% {
        opacity: 0;
        transform: scale(0.4) translateY(-20px);
    }
    28%, 29.99% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    30% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    36% {
        opacity: 1;
        transform: scale(0.9) translateY(5px);
    }
    44% {
        opacity: 0;
        transform: scale(0.4) translateY(40px);
    }
    45%, 49% {
        opacity: 0;
        transform: scale(0.4) translateY(-20px);
    }
    58%, 59.99% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    60% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    66% {
        opacity: 1;
        transform: scale(0.9) translateY(5px);
    }
    74% {
        opacity: 0;
        transform: scale(0.4) translateY(40px);
    }
    75%, 79% {
        opacity: 0;
        transform: scale(0.4) translateY(-20px);
    }
    88%, 100% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
}
@keyframes nudgeMouse {
    0% {
        transform: translateY(0);
    }
    20% {
        transform: translateY(8px);
    }
    30% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(8px);
    }
    60% {
        transform: translateY(0);
    }
    80% {
        transform: translateY(8px);
    }
    90% {
        transform: translateY(0);
    }
}
@keyframes nudgeText {
    0% {
        transform: translateY(0);
    }
    20% {
        transform: translateY(2px);
    }
    30% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(2px);
    }
    60% {
        transform: translateY(0);
    }
    80% {
        transform: translateY(2px);
    }
    90% {
        transform: translateY(0);
    }
}
@keyframes colorText {
    21% {
        color: #4e5559;
    }
    30% {
        color: #ddd;
    }
    51% {
        color: #4e5559;
    }
    60% {
        color: #ddd;
    }
    81% {
        color: #4e5559;
    }
    90% {
        color: #ddd;
    }
}