:root {
    --c0: hsl(200, 6%, 15%);
    --c1: hsl(200, 6%, 30%);
    --c2: #000;
    --c3: hsl(0, 0%, 53%);
    --c4: hsl(0, 0%, 67%);
    --c5: #e4ba00;
    --grad0: linear-gradient(0deg, var(--c0) 0%, var(--c0) 40%, transparent 40%, transparent 60%, var(--c0) 60%, var(--c0) 100%);
    --grad1: linear-gradient(90deg, var(--c0) 0%, var(--c0) 40%, transparent 40%, transparent 60%, var(--c0) 60%, var(--c0) 100%);
    --grad2: radial-gradient(farthest-corner, transparent 0%, var(--c2) 150%);
    --lh: 1.2em;
}

html {
    width: 100vw;
    height: 100vh;
    margin: 0;
    overflow: hidden;
    background-color: var(--c1);
    background-image: var(--grad0), var(--grad1);
    background-position:  10px 0;
    background-size: 10px 10px;
    background-repeat: repeat;
    animation: 1s linear infinite background-slide-x, 3s linear infinite background-slide-y;
}

body {
    width: 100vw;
    height: 100vh;
    margin: 0;
    overflow: hidden;
    background-image: var(--grad2);
    line-height: var(--lh);
}

canvas {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.sources {
    display: none;
    position: absolute;
    overflow: hidden;
    left: 12.5vh;
    top: 7.5vh;
    max-height: calc(2 * (var(--lh) + 1em));
    width: max-content;
    background-color: var(--c3);
    font-family: 'Work Sans';
    text-transform: capitalize;
    border-radius: 5px;
    font-weight: 400;
    transition: 300ms ease;
}

.sources:hover {
    max-height: calc(5 * (var(--lh) + 1em));
}

.sources__title {
    display: grid;
    place-items: center;
    width: 100%;
    padding: 0.5em;
    cursor: pointer;
    font-weight: 600;
    transition: 300ms ease;
    background-color: var(--c5);
}

.sources__source {
    display: grid;
    place-items: center;
    top: 0;
    padding: 0.5em;
    white-space: nowrap;
    cursor: pointer;
    transform: translateY(calc((var(--p) - var(--n)) * 100%));
    font-weight: calc(600 - (var(--p) / max(1, var(--p))) * 200);
    transition: 300ms ease;
}

.sources__source:hover {
    background-color: var(--c4);
}

@keyframes background-slide-x {
    0% {
        background-position-x:  0;
    }
    100% {
        background-position-x:  10px;
    }
}

@keyframes background-slide-y {
    0% {
        background-position-y:  0;
    }
    100% {
        background-position-y:  10px;
    }
}