* {
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: none !important;
}

body {
    margin: 0;
}

.hidden {
    opacity: 0;
    pointer-events: none;
}

.banner {
    width: 100%;
    height: 100%;
}

.wrapper {
    width: 300px;
    height: 600px;
    transform-origin: left top;
    left: 50%;
    position: relative;
    overflow: hidden;
}

.container {
    width: 300px;
    height: 600px;
    position: absolute;
    perspective: 40000px;
    transition: transform 1s ease;
    margin: auto;
    transform: scale(0.5);
}

.cube {
    width: 100%;
    height: 100%;
    position: absolute;
    transform-style: preserve-3d;
    transition: transform 1s .15s ease;
    transform: rotateX(0) rotateY(120deg);
}

#closeOverlay {
    width: 300px;
    height: 600px;
    position: absolute;
    margin: auto;
}

.face {
    position: absolute;
    width: 100%;
    height: 100%;
}

.front {
    transform: translateZ(86.75px);
}

.right {
    transform: rotateY(120deg) translateZ(86.75px);
}

.left {
    transform: rotateY(-120deg) translateZ(86.75px);
}

.face .logo {
    position: absolute;
    width: 92%;
    left: 0;
    right: 0;
    top: 20px;
    margin: auto;
    height: auto;
    z-index: 2;
}

.face .button {
    position: absolute;
    width: 170px;
    left: 0;
    right: 0;
    bottom: 30px;
    margin: auto;
    height: auto;
    z-index: 2;
}

img {
    width: 100%;
    height: 100%;
    position: absolute;
}

.arrow {
    width: 60px;
    height: 100%;
    position: absolute;
    cursor: pointer;
    display: flex;
    justify-content: center;
    top: 0;
    padding: 0 15px;
    z-index: 99;
}

.arrow img {
    position: relative;
    width: 20px;
}

#arrow-left img {
    margin-right: auto;
}

#arrow-right img {
    margin-left: auto;
}

#click {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    z-index: 40;
}

#arrow-left {
    left: 0;
}

#arrow-right {
    right: 0;
}

#closeBtn {
    max-width: 35px;
    max-height: 35px;
    width: 6%;
    height: 3%;
    position: absolute;
    top: 0.5%;
    right: 1%;
    z-index: 999;
}

#closeBtn > img {
    width: 100%;
    height: 100%;
}

.spark {
    position: absolute;
    transform-origin: 50% 50%;
    animation: spark 3s linear infinite;
    z-index: 2;
}

.front .spark1 {
    width: 140px;
    height: 140px;
    left: -30px;
    top: 198px;
}

.front .spark2 {
    width: 140px;
    height: 140px;
    left: 135px;
    top: 170px;
    animation-delay: 1s;
}

.front .spark3 {
    width: 140px;
    height: 140px;
    left: 50px;
    bottom: 35px;
    animation-delay: 1.5s;
}

.right .spark1 {
    width: 150px;
    height: 150px;
    right: 50px;
    top: 35px;
    animation-delay: .8s;
}

.right .spark2 {
    width: 260px;
    height: 260px;
    left: 40px;
    top: 185px;
}

.left .spark1 {
    width: 180px;
    height: 180px;
    left: -35px;
    top: 75px;
    animation-delay: .6s;
}

.left .spark2 {
    width: 120px;
    height: 120px;
    right: -5px;
    top: 200px;
    animation: pop 3s ease infinite;
    animation-delay: .9s;
}

.left .spark3 {
    width: 220px;
    height: 220px;
    left: 15px;
    top: 245px;
    animation: pop 3s ease infinite;
}

.left .spark4 {
    height: 140px;
    width: 140px;
    left: 175px;
    top: 345px;
    animation: pop 3s ease infinite;
    animation-delay: 1.4s;
}

.left .spark5 {
    height: 150px;
    width: 150px;
    bottom: -7px;
    left: -9px;
    animation-delay: 1.8s;
}

@keyframes spark {
    0% {
        transform: rotate(0deg) scale(0, 0);
    }
    25% {
        transform: rotate(180deg) scale(1, 1);
    }
    50%, 100% {
        transform: rotate(360deg) scale(0, 0);
    }
}

@keyframes pop {
    0% {
        transform: scale(0, 0);
    }
    25% {
        transform: scale(1, 1);
    }
    50%, 100% {
        transform: scale(0, 0);
    }
}
