@font-face {
    font-family: 'Fira Sans';
    src: url('../fonts/e93285fbFiraSans-Bold.ttf') format('truetype');
}

body {
    touch-action: none;
    margin: 0;
    border: 0 none;
    padding: 0;
    text-align: center;
    background: rgb(255, 211, 144);
    background: linear-gradient(180deg, rgba(255, 211, 144, 1) 0%, rgba(229, 153, 98, 1) 100%);
    width: 100vw;
    height: 100vh;
}

#canvas {
    display: block;
    margin: 0;
    color: white;
}

#canvas:focus {
    outline: none;
}

.godot {
    font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif;
    color: #e0e0e0;
    background-color: #3b3943;
    background-image: linear-gradient(to bottom, #403e48, #35333c);
    border: 1px solid #45434e;
    box-shadow: 0 0 1px 1px #2f2d35;
}

#loading-container {
    display: flex;
    flex-direction: row;
    position: absolute;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
}

#border-left {
    width: 100%;
    height: 100%;
    background-image: url("../images/e93285fbborder_left.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: right;
    z-index: 9999;
}

#border-right {
    width: 100%;
    height: 100%;
    background-image: url("../images/e93285fbborder_right.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 9999;
}

#progress-container {
    position: relative;
    height: 100%;
    aspect-ratio: 1080 / 1920;
    background-image: url("../images/e93285fbloader_image.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

#progress-container:lang(en) {
    background-image: url("../images/loader_image_en.jpg");
}

#progress-container:lang(ru) {
    background-image: url("../images/loader_image_ru.jpg");
}

#progress-container:lang(en).distinct-identity {
    background-image: url("../images/e93285fbloader_image_en_distinct.jpg") !important;
}

#progress-container:lang(ru).distinct-identity {
    background-image: url("../images/e93285fbloader_image_ru_distinct.jpg") !important;
}

#progress-wrapper {
    width: 100%;
    position: absolute;
    bottom: 22vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

#progress-bar {
    display: grid;
    grid-template-rows: 1fr;
    grid-template-columns: repeat(9, 3.5vh);
    grid-gap: 1vh;
    bottom: 22vh;
}

.progress-element {
    background-image: url("../images/e93285fbhole.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    width: 100%;
    aspect-ratio: 1;
    position: relative;
}

.screw {
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    inset: 0;
    opacity: 0;
    transform-origin: center;
}

.screw_base_animated {
    animation: screw-appear-base 1s forwards;
}

@keyframes screw-appear-base {
    0% {
        opacity: 0;
        scale: 1.5;
    }

    50% {
        opacity: 1;
        scale: 1;
    }

    100% {
        opacity: 1;
        scale: 1;
    }
}

.screw_cross_animated {
    animation: screw-appear-cross 1s forwards;
}

@keyframes screw-appear-cross {
    0% {
        opacity: 0;
        scale: 1.5;
        transform: rotate(-180deg);
    }

    50% {
        opacity: 1;
        scale: 1;
        transform: rotate(-180deg);
    }

    100% {
        opacity: 1;
        scale: 1;
        transform: rotate(0deg);
    }
}

.screw-base1 {
    background-image: url("../images/e93285fbscrew_base1.png");
}

.screw-cross1 {
    background-image: url("../images/e93285fbscrew_cross1.png");
}

.screw-base2 {
    background-image: url("../images/e93285fbscrew_base2.png");
}

.screw-cross2 {
    background-image: url("../images/e93285fbscrew_cross2.png");
}

.screw-base3 {
    background-image: url("../images/e93285fbscrew_base3.png");
}

.screw-cross3 {
    background-image: url("../images/e93285fbscrew_cross3.png");
}

.screw-base4 {
    background-image: url("../images/e93285fbscrew_base4.png");
}

.screw-cross4 {
    background-image: url("../images/e93285fbscrew_cross4.png");
}

.screw-base5 {
    background-image: url("../images/e93285fbscrew_base5.png");
}

.screw-cross5 {
    background-image: url("../images/e93285fbscrew_cross5.png");
}

#progress-text {
    text-align: start;
    font-family: "Fira Sans";
    position: absolute;
    width: 9vh;
    bottom: 16vh;
    font-size: 3.125vh;
    color: #943C17;
    font-weight: bold;
    left: 45%;
    transform: translateX(-50%);
}

#version-text {
    text-align: start;
    font-family: "Fira Sans";
    position: absolute;
    width: 9vh;
    bottom: 1vh;
    font-size: 2vh;
    color: #943C17;
    left: 1vh;
}

#message-container {
    text-align: center;
    font-family: "Fira Sans";
    width: 12vh;
    font-size: 2vh;
    color: #943C17;
    font-weight: bold;
    position: absolute;
    bottom: 35vh;
    padding: 1vh;
    border: 4px solid #E59962;
    border-radius: 8px;
    background: #FFD390;
    left: 50%;
    transform: translateX(-50%);
    display: none;
}

@media screen and (max-aspect-ratio: 1080/1920) {
    #progress-container {
        min-width: 100%;
    }

    #progress-bar {
        grid-template-columns: repeat(9, 6.25vw);
    }
}