* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    font-family: 'Press Start 2P';
    color: #ACACAC;
}

body {
    min-height: 80vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #000000;
}

.start-screen,
.game-over-screen {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

.start-screen {
    display: flex;
    z-index: 10;
}

.game-over-screen {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

#restart {
    font: inherit;
    background: none;
    border: none;
    font-size: inherit;
    cursor: pointer;
    margin: 0 10px;
    padding: 0;
    display: inline-block;
}

#restart:focus {
    outline: none;
    animation: blink 1s steps(2, start) infinite;
}

.score-container {
    margin: 1em 0 0 1em;
    z-index: 10;
}

.game-board {
    width: 1000px;
    height: 300px;
    border-bottom: 3px solid #303030;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
}

.trashcan {
    position: absolute;
    bottom: 0;
    width: 80px;
    animation: obstacle-animation 1.25s infinite linear;
}

.bat {
    position: absolute;
    bottom: 45px;
    width: 65px;
    animation: obstacle-animation 1s infinite linear;
}

.trashcan,
.bat {
    display: none;
    animation-play-state: paused;
}

.cat {
    width: 75px;
    position: absolute;
    bottom: 0;
}

.jump {
    animation: jump 550ms ease-out;
}

.sky {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    background-image: url('../images/sky.png');
    background-repeat: repeat-x;
    background-position: 0 0;
    animation: sky-animation 20s linear infinite;
    animation-play-state: paused;
}

.blink {
    animation: blink 1s steps(2, start) infinite;
}

@keyframes obstacle-animation {
    from {
        right: -80px;
    }

    to {
        right: 100%;
    }
}

@keyframes jump {
    0% {
        bottom: 0;
    }

    40% {
        bottom: 180px;
    }

    50% {
        bottom: 180px;
    }

    60% {
        bottom: 180px;
    }

    100% {
        bottom: 0;
    }
}

@keyframes sky-animation {
    0% {
        background-position-x: 0;
    }

    100% {
        background-position-x: -1000px;
    }
}

@keyframes blink {
    0% {
        opacity: 1;
    }

    49% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}