body {
    margin: 0px;
    /*padding: 64px 32px;

    min-height: calc(100vh - 128px); */

    height: 100dvh;
    overflow-y: auto;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-direction: column;

    font-size: 16px;
    font-family: sans-serif;
}

.checkbox-container {
    margin-bottom: 32px;
}
.checkbox-container strong {
    display: block;
    margin-bottom: 8px;
}

.canvas-container {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;

    display: none;
}
.canvas-container canvas {
    width: 100%;
    height: 100%;
}
.canvas-container.active {
    display: block;
}

button.stop {
    position: fixed;
    right: 0;
    z-index: 3;
}

.buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-content: center;
    grid-gap: 16px;
}

.button {
    position: relative;
    /* border: 2px solid black; */
    border-radius: 16px;

    background-size: contain;

    width: 128px;
    aspect-ratio: 1;

    cursor: pointer;
    user-select: none;

    box-shadow: 0px 3px 8px #0000004a;
}
.button:hover:after {
    content: '';
    position: absolute;
    left: 0px;
    right: 0px;
    top: 0px;
    bottom: 0px;

    border-radius: inherit;
    border-color: rgba(0, 0, 0, 0.2);

    background-color: black;
    opacity: 0.2;
    pointer-events: none;
}

.button.new-moon {
    background-image: url('./img/g14.jpg');
}
.button.waxing-moon {
    background-image: url('./img/g21.jpg');
}
.button.full-moon {
    background-image: url('./img/g0.jpg');
}
.button.waning-moon {
    background-image: url('./img/g7.jpg');
}

body.purist .button.new-moon {
    background-image: url('./img/b14.jpg');
}
body.purist .button.waxing-moon {
    background-image: url('./img/b21.jpg');
}
body.purist .button.full-moon {
    background-image: url('./img/b0.jpg');
}
body.purist .button.waning-moon {
    background-image: url('./img/b7.jpg');
}

.close-button {
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 32px;

    width: 32px;
    height: 32px;
    border-radius: 50%;

    background-color: rgba(0.3, 0.3, 0.3, 0.7);

    position: absolute;
    right: 32px;
    top: 32px;
}
