@import url("https://fonts.googleapis.com/css?family=Finger+Paint&display=swap");

* {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
}

body {
    overflow: hidden;
    background: #FFA620;
}

.wrapper {
    --scene-scale: 1;
    min-height: 100vh;
    overflow: hidden;
    position: relative;
    background: #FFA620;
}

.init {
    opacity: 0;
    visibility: hidden;
    transition: opacity 500ms ease, visibility 500ms ease;
}

.init.is-visible {
    opacity: 1;
    visibility: visible;
}

::selection {
    background-color: #FFA620;
    color: #fff;
}

::-moz-selection {
    background-color: #FFA620;
    color: #fff;
}

#indicator {
    background-color: #fff;
    border-radius: 5px;
    padding: 10px;
    margin: auto;
    background-image: url("../images/load.gif");
    background-repeat: no-repeat;
    background-position: center;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: fixed;
    width: 64px;
    height: 64px;
    z-index: 999;
    transition: opacity 350ms ease, visibility 350ms ease;
}

#indicator.is-hidden {
    opacity: 0;
    visibility: hidden;
}

.sky {
    background-image: url("../images/sky-bg.jpg");
    background-repeat: repeat-x;
    height: 300px;
    position: relative;
}

.clouds {
    height: 300px;
    background: transparent url("../images/clouds.png") repeat-x;
    will-change: background-position;
}

.convas {
    background-color: #FFA620;
    position: relative;
    min-height: calc(100vh - 300px);
}

.mountain {
    background-image: url("../images/mountain.png");
    background-repeat: repeat-x;
    min-height: 172px;
    top: -120px;
    width: 200%;
    left: -60px;
    position: relative;
    z-index: 0;
    will-change: transform;
}

.ground {
    background-image: url("../images/ground.png");
    background-repeat: repeat-x;
    min-height: 200px;
    width: 100%;
    top: -190px;
    position: relative;
}

.holder {
    height: 620px;
    left: 50%;
    margin-left: -450px;
    position: relative;
    top: -380px;
    width: 900px;
    transform: scale(var(--scene-scale));
    transform-origin: top center;
}

.rocks {
    background-image: url("../images/rocks.png");
    height: 455px;
    left: -100px;
    position: absolute;
    width: 791px;
    top: 0;
    z-index: 300;
}

.work-sign {
    background-image: url("../images/working-sign.png");
    height: 339px;
    width: 218px;
    position: absolute;
    z-index: 300;
    top: 0;
    right: 20px;
}

.text-sign {
    background-image: url("../images/texty-sign.png");
    height: 225px;
    width: 250px;
    position: absolute;
    z-index: 300;
    top: -120px;
    left: 80px;
    font-family: "Finger Paint", cursive;
}

.text-sign .text {
    color: #9D4F00;
    font-size: 23px;
    margin-left: 47px;
    margin-top: 50px;
    transform: rotate(-5deg);
}

.hole {
    background-image: url("../images/hole.png");
    height: 273px;
    position: absolute;
    top: 80px;
    width: 807px;
    z-index: 100;
    left: 0;
    right: 0;
    margin: auto;
}

.sweat {
    background-image: url("../images/sweat.png");
    background-repeat: no-repeat;
    height: 42px;
    left: 220px;
    opacity: 1;
    position: absolute;
    width: 94px;
    top: 220px;
    transition: all 1.5s ease-in-out;
}

.sweat.show {
    opacity: 0;
    top: 50px;
}

.sweat.reset {
    opacity: 1;
    top: 220px;
    transition: none;
}

.worker {
    background-image: url("../images/worker.png");
    background-repeat: no-repeat;
    height: 189px;
    width: 242px;
    position: absolute;
    left: 190px;
    top: 35px;
}

.swing {
    transition: all 1.5s ease-in-out;
    transform: rotate(40deg);
}

.right {
    transform: rotate(190deg);
    left: 330px;
    top: 430px;
}

.ground-bottom {
    background-image: url("../images/ground-bottom.png");
    background-repeat: no-repeat;
    height: 463px;
    left: -297px;
    position: absolute;
    top: 148px;
    width: 160%;
    z-index: 200;
}

.ground-bottom .cleaner {
    background-color: #FFA620;
    bottom: -70px;
    height: 300px;
    position: absolute;
    width: 100%;
}

@media (max-width: 900px) {
    .sky,
    .clouds {
        height: clamp(190px, 38vh, 260px);
    }

    .clouds {
        background-size: auto 70%;
    }

    .convas {
        min-height: calc(100vh - clamp(190px, 38vh, 260px));
    }

    .mountain {
        top: -92px;
    }

    .ground {
        top: -168px;
    }

    .holder {
        top: -300px;
    }
}

@media (max-width: 520px) {
    .sky,
    .clouds {
        height: 210px;
    }

    .holder {
        top: -255px;
    }
}
