* { margin: 0;padding: 0;box-sizing: border-box;user-select: none; }
.menu {
    position: fixed;
    top: 0;left: 0;
    width: 100%;
    height: 100vh;
    text-align: center;
    padding-top: 12vh;
    background: url(back.jpg) no-repeat bottom / cover;
}
.menu::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: url(back.jpg) no-repeat center / cover;
    z-index: -1;
    animation: bg 2s linear infinite alternate;
}
@keyframes bg {
    to { transform: rotate(30deg); }
}
.menu h1 {
    font: 8rem fantasy;
    text-transform: uppercase;
    background: linear-gradient(to right, red 25%, orange 30% 50%, green 55% 75%, blue 80%) 0 / 500%;
    color: transparent;
    -webkit-background-clip: text;
    -webkit-text-stroke: 3px #000;
    animation: title 2s linear infinite alternate;
    filter: drop-shadow(-9px -4px 0px #fff);
    transition: .5s;
    position: relative;
    left: 0;
}
@keyframes title {
    to { background-position-x: 100%; }
}
.menu #play {
    --t: 0;
    --l: 0;
    padding: 10px 45px;
    border-radius: 15px;
    font: 55px fantasy;
    cursor: pointer;
    text-transform: uppercase;
    margin-top: 15vh;
    box-shadow: -0.5px 8px 0px 6px #000;
    transition: box-shadow .3s, left 1s, color .5s, transform .3s;
    position: relative;
    left: 0;
    overflow: hidden;
    z-index: 1;
}
.menu #play:hover {
    color: #fff;
}
.menu #play::before {
    content: '';
    position: absolute;
    top: var(--t);
    left: var(--l);
    width: 0;
    height: 0;
    background: #3a51ff;
    border-radius: 50%;
    transition: width .4s, height .4s, opacity .6s;
    z-index: -1;
    transform: translate(-50%, -50%);
}
.menu #play:hover::before {
    width: 600px;
    height: 600px;
    opacity: 1;
    transition: width 1.5s, height 1.5s, opacity .2s;
}
.menu #play:active {
    box-shadow: -0.5px 2px 0px 2px #37ff37;
    transform: translateY(6px);
}
.menu .list {
    position: absolute;
    left: 50%;
    transform: translate(-50%, 50%);
    bottom: -100%;
    width: 500px;
    height: 300px;
    border-radius: 15px;
    box-shadow: 10px 12px 20px #000;
    background: #fff;
    z-index: 2;
    display: grid;
    justify-items: center;
    align-content: center;
    grid-row-gap: 45px;
    transition: .5s;
}
.menu .list .close {
    position: absolute;
    top: -10px;
    right: -10px;
    border-radius: 50%;
    background: #f00;
    font: 24px sans-serif;
    width: 50px;
    height: 50px;
    cursor: pointer;
    border: 3px solid #fff;
    transition: .4s;
}
.menu .list .close:hover {
    transform: rotate(180deg);
}
.menu .list .close:active {
    border-left-color: #000;
    border-bottom-color: #37ff37;
    transform: rotate(360deg);
}
.menu .list .colors {
    display: flex;
    column-gap: 10px;
}
.menu .list .colors .item {
    position: relative;
    width: 100px;
    height: 100px;
    border-radius: 8px;
    background: #f00;
    cursor: pointer;
    box-shadow: 3px 3px 0px #00000094;
    transition: .4s;
}
.menu .list h2 {
    font: 35px sans-serif;
    animation: anim2 1s linear infinite alternate;
}
@keyframes anim2 {
    to { transform: translateY(20px); }
}
.menu .list .colors .item span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 50px;
    z-index: -1;
    text-shadow: 1px 2px 3px #fff;
}
.menu .list .colors .item:hover {
    box-shadow: 0px 6px 10px #00000094, inset 0 0 10px 20px #00000099;
}
.menu .developers {
    position: absolute;
    bottom: 2%;
    left: 50%;
    transform: translateX(-50%);
    font: 18px cursive;
    color: #fff;
    transition: 3s;
}
.menu .developers span {
    color: #0f0;
    font-size: 20px;
}
@keyframes check {
    from {
        z-index: -1;
        top: 50%;
    }
    50% {
        z-index: 0;
        top: 130%;
    }
    90% {
        color: #000;
        text-shadow: 1px 2px 3px #fff;
    }
    to {
        z-index: 0;
        top: 50%;
        color: #fff;
        text-shadow: 1px 2px 3px #000;
    }
}
.game {
    position: fixed;
    top: -100%;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 90px;
    transition: 1s;
}
.game .colorItems {
    display: flex;
    height: 100%;
    align-items: center;
}
.game .colorItems .item {
    width: 100%;
    height: 100%;
    cursor: pointer;  
}
.game .myPoints {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #fff;
    font: bold 32px sans-serif;
    text-shadow: 2px 2px 4px #000;
}
.game .winner {
    position: fixed;
    top: -100%;
    transform: translateY(-50%);
    left: 0;
    width: 100%;
    text-align: center;
    background: #00000080;
    color: #fff;
    padding: 40px;
    font: 7rem sans-serif;
    transition: .8s .5s;
}
.game .nextLevel {
    position: fixed;
    top: -100%;
    transform: translateY(-50%);
    left: 0;
    width: 100%;
    text-align: center;
    background: #ff9d00;
    color: #000;
    padding: 40px;
    font: bold 5rem sans-serif;
    transition: .8s 1s;
}
