@import url('https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap');

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    background-color: #edecea;
    overflow: hidden;
    position: relative;
}

html {
    font-family: 'Space Mono', Arial, sans-serif;
}

body {
    --grid-element-size: 7.1428571429vw;
}

@media (max-width: 800px) {
    body {
        --grid-element-size: 10vw;
    }
}

.banner {
    background-color: #EC5814;
    color: #fff;
    text-align: center;
    padding: 0.5em;
    width: 16.5em;
    position: absolute;
    top: 4em;
    right: -4em;
    transform: rotate(45deg);
    transform-origin: center;
}

.logo {
    height: calc(var(--grid-element-size) * 2);
    width: calc(var(--grid-element-size) * 8);
    background-image: url(logo.svg?v=2);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 9;
}

.background-grid {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(var(--grid-element-size) * 20);
    height: calc(var(--grid-element-size) * 20);
    z-index: 0;
    display: flex;
    flex-flow: row wrap;
    gap: 0;
}

.grid-element {
    width: var(--grid-element-size);
    height: var(--grid-element-size);
    background-color: #2c2f2d;
    opacity: 0.1;
    border-radius: 0 0 0 100%;
    position: relative;
    overflow: hidden;
    transform-origin: center;
    transition: border-radius 0.5s ease-in-out;
}

.grid-element.rotate-1 { border-radius: 0 0 0 100%; }
.grid-element.rotate-2 { border-radius: 0 0 100% 0; }
.grid-element.rotate-3 { border-radius: 0 100% 0 0; }
.grid-element.rotate-4 { border-radius: 100% 0 0 0; }

.grid-element:nth-child(187),
.grid-element:nth-child(188),
.grid-element:nth-child(189),
.grid-element:nth-child(190),
.grid-element:nth-child(191),
.grid-element:nth-child(192),
.grid-element:nth-child(193),
.grid-element:nth-child(194),
.grid-element:nth-child(207),
.grid-element:nth-child(208),
.grid-element:nth-child(209),
.grid-element:nth-child(210),
.grid-element:nth-child(211),
.grid-element:nth-child(212),
.grid-element:nth-child(213),
.grid-element:nth-child(214) {
    opacity: 0;
}

.grid-element.hidden {
    opacity: 0;
}