html {
    --green: #26e88b;
    --yellow: #f3b840;
    --gray: #aaa;
    --black: #010123;
    min-height: 100vmin;
    font-family: system-ui;
    font-size: 3vmin;
}

body {
    background-color: var(--black);
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vmin;
}

.panel {
    width: 70vw;
    height: 68vh;
    display: grid;
    gap: 1vmin;
    grid-template-columns: repeat(4 1fr);
    grid-template-areas:
        "w w w l"
        "a a b c"
        "d e e f";
}

.block {
    appearance: none;
    height: 22vmin;
    line-height: normal;
    background-color: var(--black);
    border: 2px solid var(--gray);
    color: var(--yellow);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: inherit;
    cursor: pointer;
    box-sizing: border-box;
}

.block::before {
    content: '◌';
}

.block.active::before {
    content: '◉';
}

.block.active {
    background-color: var(--green);
    color: var(--black);
}

.block:hover {
    background-color: var(--yellow);
    color: var(--black);
}

.block:nth-child(1) {
    grid-area: w;
}
.block:nth-child(2) {
    grid-area: l;
}
.block:nth-child(3) {
    grid-area: a;
}
.block:nth-child(4) {
    grid-area: b;
}
.block:nth-child(5) {
    grid-area: c;
}
.block:nth-child(6) {
    grid-area: d;
}
.block:nth-child(7) {
    grid-area: e;
}
.block:nth-child(8) {
    grid-area: f;
}