* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    height: auto;
    min-height: 100%;
}


html {
    width: 100%;
    font-size: calc((16 * 100dvh) / 1334);
}

body {
    display: block;
    margin: 0;
    min-height: 100dvh;
    position: relative;
    z-index: 0;
    padding: 0 5px 0 5px !important;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    background-image: url("../images/index/desktop_background.jpg");
    background-size: cover;
    background-position: center bottom;
    background-repeat: no-repeat;
    z-index: -1;
}

body.keyboard-open {
    overflow: hidden;
}

body.keyboard-open #outer-scroll-wrapper,
body.keyboard-open #promotion-container {
    height: calc(var(--vh, 1dvh) * 100);
    min-height: calc(var(--vh, 1dvh) * 100);
    overflow: hidden;
}

.ada-white:focus {
    opacity: 1 !important;
    border-radius: 0.3125rem !important;
    box-shadow: none;
    outline: 0.125rem solid hsla(0, 100%, 100%, 1) !important;
    outline-offset:  0.125rem !important;
}


#outer-scroll-wrapper {
    min-height: 98dvh;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    height: calc(var(--vh, 1dvh) * 98);
    width: 100%;
}

#outer-scroll-wrapper::-webkit-scrollbar {
    width: 12px;
}

#outer-scroll-wrapper::-webkit-scrollbar-track {
    background: #222;
}

#outer-scroll-wrapper::-webkit-scrollbar-thumb {
    background-color: #888;
    border-radius: 10px;
    border: 3px solid transparent;
}

#outer-scroll-wrapper::-webkit-scrollbar-thumb:hover {
    background-color: #555;
}


#promotion-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: calc(var(--vh, 1dvh) * 98);
    height: calc(var(--vh, 1dvh) * 98);
    padding: 1rem;
    width: 100%;
    font-size: 16px;
}

#promotion-container #container-game {
    width: 100%;
    max-height: 1334px;
    max-width: 750px;
    aspect-ratio: 750 / 1334;
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    background-position: center;
}

/* Phaser Game Container */
#promotion-container #container-game #phaser-game canvas{
   width: 100% !important;
    height: 100% !important;
}


#promotion-container #container-game .backdrop{
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: hsla(100, 0%, 0%, .8);
}

#promotion-container #container-game .modal{
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    padding: 1rem;
}

#promotion-container #container-game .modal .modal-background{
    position: absolute;
    width: 95%;
}

#promotion-container #container-game .modal .modal-content{
    width: 90%;
    background-color: hsla(0, 100%, 100%, 0);
    font-size: 2rem;
    color: hsla(0, 100%, 100%, 1);
    font-family: 'MontserratSemiBold', sans-serif;
    border: none;
}

#promotion-container #container-game .modal .modal-content p{
    margin: 0;
}

#promotion-container #container-game .invalid-highlight{
    background-color: hsla(0, 100%, 50%, 1);
    width: fit-content;
}

#promotion-container #container-game .invalid-input{
    border: 0.3125rem solid hsla(0, 100%, 50%, 1) !important;
}

#promotion-container #container-game .invalid-check{
    border: 0.3125rem solid hsla(0, 100%, 50%, 1) !important;
}

/* Form Date of Birth Container */
#promotion-container #container-game #form-dob-container{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


#promotion-container #container-game #form-dob-container #form-dob-info-label{
    width: 100%;
    font-size: 2rem;
    color: hsla(0, 100%, 100%, 1);
    font-family: 'MontserratSemiBold', sans-serif;
    line-height: 3.125rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}
#promotion-container #container-game #form-dob-container #form-dob-info-label p{
    margin: 0;
}

#promotion-container #container-game #form-dob-container #form-dob-input-container {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin: 1rem 0;
}

#promotion-container #container-game #form-dob-container #form-dob-input-container #form-dob-input-background{
    width: 83%;
}

#promotion-container #container-game #form-dob-container #form-dob-input-container #form-dob-inputs{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
    width: 83%;
    border-radius: 4.46875rem;
    border: 0.3125rem solid hsla(41, 53%, 52%, 1);
    background: hsla(0, 0%, 32%, 1);
    box-shadow: 0 0 0.6875rem 0.5rem #000 inset, 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.50);
    padding: 1rem 0;
}

#promotion-container #container-game #form-dob-container #form-dob-input-container #form-dob-inputs div{
    width: calc(75% / 3);
}

#promotion-container #container-game #form-dob-container #form-dob-input-container #form-dob-inputs div:nth-child(5){
    width: 35%
}


#promotion-container #container-game #form-dob-container #form-dob-input-container #form-dob-inputs input,
#promotion-container #container-game #form-dob-container #form-dob-input-container #form-dob-inputs span{
    font-size: 3.75rem;
    font-family: 'MontserratBold', sans-serif;
    color: hsla(0,100%,100%,1);
    background-color: hsla(0, 100%, 100%, 0);
    padding: 0;
    margin: 0;
    border: 0;
    text-align: center;
}

#promotion-container #container-game #form-dob-container #form-dob-input-container #form-dob-inputs input::placeholder{
    color: hsla(0,100%,100%,1);
}

#promotion-container #container-game #form-dob-container #form-dob-check-container{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 1rem 0;
}

#promotion-container #container-game #form-dob-container #form-dob-check-container input{
    border-radius: 0;
    background-color: transparent;
    border-width: 0.3125rem;
    border-color: hsla(0, 100%, 100%, 1);
}


#promotion-container #container-game #form-dob-container #form-dob-submit-container{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 1rem 0;
}

#promotion-container #container-game #form-dob-container #form-dob-submit-container #submit-btn{
    width: 46%;
    background-color: hsla(0, 100%, 100%, 0);
    border: none;
}

#promotion-container #container-game #form-dob-container #form-dob-submit-container #submit-btn img{
    width: 100%;
}

#promotion-container #container-game #form-dob-container #form-dob-data-privacy-container{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 1rem 0;
}

#promotion-container #container-game #form-dob-container #form-dob-data-privacy-container p{
    font-size: 1.625rem;
    font-family: 'MontserratBold', sans-serif;
    color: hsla(0, 100%,100%,1);
}

#promotion-container #container-game #form-dob-container #form-dob-data-privacy-container p a{
    color: hsl(49.86, 78.02%, 82.16%);
}

/* Invalid Date of Birth Container */
#promotion-container #container-game #invalid-dob-container{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#promotion-container #container-game #invalid-dob-container #invalid-dob-content{
    padding: 3.5rem;
}

/* Empty Date of Birth Container */
#promotion-container #container-game #empty-dob-container{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#promotion-container #container-game #empty-dob-container #empty-dob-continue-container{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 1rem 0;
    flex-direction: column;
}
#promotion-container #container-game #empty-dob-container #empty-dob-continue-container p{
    padding: 5rem;
}

#promotion-container #container-game #empty-dob-container #empty-dob-continue-container #empty-dob-continue-btn{
    width: 46%;
    background-color: hsla(0, 100%, 100%, 0);
    border: none;
}

#promotion-container #container-game #empty-dob-container #empty-dob-continue-container #empty-dob-continue-btn img{
    width: 100%;
}

/* Check Date of Birth Container */
#promotion-container #container-game #check-dob-container{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#promotion-container #container-game #check-dob-container #check-dob-continue-container{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 1rem 0;
    flex-direction: column;
}

#promotion-container #container-game #check-dob-container #check-dob-continue-container p{
    padding: 5rem;
}

#promotion-container #container-game #check-dob-container #check-dob-continue-container #check-dob-continue-btn{
    width: 46%;
    background-color: hsla(0, 100%, 100%, 0);
    border: none;
}

#promotion-container #container-game #check-dob-container #check-dob-continue-container #check-dob-continue-btn img{
    width: 100%;
}

/* Invalid Code Container */
#promotion-container #container-game #invalid-code-container{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#promotion-container #container-game #invalid-code-container #invalid-code-close-btn{
    position: absolute;
    width: 10%;
    top: 37%;
    right: 0;
}

/* Error Server Container */
#promotion-container #container-game #error-server {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 30px;
    background-color: white;
}

/* Loader Container */
#promotion-container #container-game #loader-container {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background-color: rgb(0, 0, 0, 0.8);
    position: absolute;
    z-index: 100;
}

#promotion-container #container-game #loader-container #loader {
    width: 15%;
    padding: 8px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #ffffff;
    --_m: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;
    -webkit-mask: var(--_m);
    mask: var(--_m);
    -webkit-mask-composite: source-out;
    mask-composite: subtract;
    animation: l3 1s infinite linear;
}

@keyframes l3 {to{transform: rotate(1turn)}}

/* MEDIA QUERIES */
@media (max-width: 250px) {
    body {
        background-image: url("../images/index/mobile_background.jpg");
    }

    #promotion-container{
        padding: 0;
    }

    #promotion-container #container-game{
        border: none;
        border-radius: 0;
    }
}

/* FONTS */
.force-font {
    position: absolute;
    left: -1000px;
    visibility: hidden;
}

.montserrat-800 {
    font-family: 'MontserratExtraBold', sans-serif;
}

.montserrat-700 {
    font-family: 'MontserratBold', sans-serif;
}

.montserrat-600 {
    font-family: 'MontserratSemiBold', sans-serif;
}

.montserrat-400 {
    font-family: 'MontserratRegular', sans-serif;
}
@font-face {
    font-family: 'MontserratExtraBold';
    src: url('../../media/fonts/Montserrat-ExtraBold.ttf') format('truetype');
}

@font-face {
    font-family: 'MontserratBold';
    src: url('../../media/fonts/Montserrat-Bold.ttf') format('truetype');
}

@font-face {
    font-family: 'MontserratSemiBold';
    src: url('../../media/fonts/Montserrat-SemiBold.ttf') format('truetype');
}

@font-face {
    font-family: 'MontserratRegular';
    src: url('../../media/fonts/Montserrat-Regular.ttf') format('truetype');
}