body {
    -ms-touch-action: none;
    touch-action: none;
    /*this prevents all unwanted touch gestures in iOS devices like pinch to zoom*/
    display: flex;
    /* position: relative; */
    flex-direction: row;
    justify-items: center;
    overflow: hidden;
    min-width: 100dvw;
    min-height: 100dvh;

    /* mobile viewport bug fix */
    min-height: -webkit-fill-available;

    background-color: var(--theme-color-04);
    background-image: -webkit-gradient(linear, left top, left bottom, from(var(--theme-color-04)), var(--theme-color-01));
    background-image: -o-linear-gradient(var(--theme-color-04), var(--theme-color-01));
    background-image: linear-gradient(var(--theme-color-04), var(--theme-color-01));
    font-family: 'ABeeZee';

    -webkit-user-select: none;
    -webkit-touch-callout: none;
    overscroll-behavior: contain;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

html {
    /* mobile viewport bug fix */
    height: -webkit-fill-available;
}

._dev {
  background-image: -webkit-gradient(linear, left top, left bottom, from(#8300a3)), var(#3b0049);
  background-image: -o-linear-gradient(#8300a3, #3b0049);
  background-image: linear-gradient(#8300a3, #3b0049);
}

#mainSpace {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-grow: 1;
    position: relative;
}

#canvasContainer {
    display: flex;
    position: relative;
    width: min(calc(100dvh - 2.2cm), calc(100dvw - 2.2cm));
    height: min(calc(100dvh - 2.2cm), calc(100dvw - 2.2cm));
    border-radius: 50%;
    border: 0.1cm solid var(--UI-canvas-border-color);
    background-color: var(--gradient-color-03);
    background-image: var(--checker-pattern-url);
    @supports (background-image: var(--checker-pattern-url-webp)) {
        background-image: var(--checker-pattern-url-webp);
    }
    background-repeat: no-repeat;
    background-size: cover;
    cursor: none;
}

@media (max-width: 800px) {
    #canvasContainer {
        width: min(calc(100dvh - 1cm), calc(100dvw - 1cm));
        height: min(calc(100dvh - 1cm), calc(100dvw - 1cm));
    }
}

@media (max-width: 500px) {
    #canvasContainer {
        width: min(calc(100dvh - 0.5cm), calc(100dvw - 0.5cm));
        height: min(calc(100dvh - 0.5cm), calc(100dvw - 0.5cm));
    }
}

#canvasContainer > canvas {
    width: 100%;
    height: 100%;
    position: absolute;
    border-radius: 50%;
}

#canvasContainer.crosshair {
    cursor: crosshair;
}

#canvasContainer.handtool {
    cursor: -webkit-grab;
    cursor: grab;
}

#canvasContainer.handtool:active {
    cursor: -webkit-grabbing;
    cursor: grabbing;
}

/* show OS-level blocked cursor when hovering protected area */
#canvasContainer.notallowed {
    cursor: not-allowed;
}
