* {
    margin: 0;
    padding: 0;
}

html, body{
    width: 100%;
    overflow-x: hidden;
    font-family: RB, sans-serif;
    scroll-behavior: smooth;
}

a {
    all: unset;
    cursor: pointer;
    transition-duration: 300ms;
    user-select: none;
}

/* fonts */

@font-face {
    font-family: AD;
    src: url("../res/fonts/AD.ttf") format("truetype");
    font-display: swap;
}
@font-face {
    font-family: LG;
    src: url("../res/fonts/LG.ttf") format("truetype");
    font-display: swap;
}
@font-face {
    font-family: F;
    src: url("../res/fonts/F.otf") format("opentype"),
    url("../res/fonts/F.ttf") format("truetype");
    font-display: swap;
}
@font-face {
    font-family: RD;
    src: url("../res/fonts/RD.otf") format("opentype"),
    url("../res/fonts/RD.ttf") format("truetype");
    font-display: swap;
}
@font-face {
    font-family: RB;
    src: url("../res/fonts/RB.woff") format("woff"),
    url("../res/fonts/RB.ttf") format("truetype");
    font-display: swap;
}
@font-face {
    font-family: SSP;
    src: url("../res/fonts/SSP.ttf") format("truetype");
    font-display: swap;
}
@font-face {
    font-family: SSP;
    font-weight: bold;
    src: url("../res/fonts/SSPB.ttf") format("truetype");
    font-display: swap;
}

/* base components */
#root {
    width: 150vw;
    overflow-x: hidden;
    letter-spacing: 1px;
    scroll-behavior: smooth;
}
#main-scroll {
    width: 100%;
    height: auto;
}
.sect {
    width: 100vw;
    height: 100vh;
    clear: both;
    box-sizing: border-box;
    position: relative;
    text-align: center;
    color: white;
    overflow: hidden;
    /*background: linear-gradient(lightgray, gray);*/
}
.sect-background{
    width: 100%;
    height: 100%;
    z-index: -100;
    position: absolute;
    top: 0; left: 0;
    display: block;
}
.sect-bar{
    width: 100vw;
    height: 4vh;
    position: absolute;
    left:0;
    bottom: -2vh;
    z-index: 10;
}
.sect-header{
    margin-left: 14vw;
    width: 70vw;
    padding: 1vw;
    font-size: xx-large;
    border-bottom: 2px solid #FED52B;
    text-align: left;
}
.horizontal-center {
    text-align: center;
    vertical-align: bottom;
}
.horizontal-center > * {
    display: inline-block;
    vertical-align: top;
}
.horizontal-float > * {
    float: left;
}
/* commons */

/* header */

#header{
    box-sizing: border-box;
    width: 100vw;
    position: fixed;
    top:0;
    left:0;
    padding: 0 5vw;
    background: #223C45F0;
    font-size: 2vh;
    font-weight: 700;
    height: 6vh;
    z-index: 300;
    text-align: center;
}
#header-logo{
    float:left;
    height: 4vh;
    margin: 1vh;
    margin-left: 1vw;
    cursor: pointer;
}
#header-btns{
    float: right;
    margin-top: 2vh;
    margin-left: 1em;
    margin-right: 4vw;
    cursor: pointer;
}
#localize-flag{
    position: fixed;
    top: 1vh;
    right: 4vw;
    height: 4vh;
    z-index: 9001;
    cursor: pointer;
}
#localize-popup{
    transition-duration: 300ms;
    position: fixed;
    background-color: #223C45F0;
    z-index: 10000;
    right: calc(4vw - 1vh);
    top: 6vh;
    font-size: 2vh;
    font-family: RB, sans-serif;
    padding-right: 1em;
    overflow: hidden;
}
#localize-popup.inactive{
    height: 0px !important;
}
#localize-popup > div{
    color: white;
    margin: 0.5em;
    width: 100%;
    height: 2em;
    line-height: 2em;
    cursor: pointer;
}
#localize-popup > div > img{
    float: right;
}

.btn-tit{
    margin: 0 1vh;
    color: white;
}
.btn-tit:hover{
    transition-duration: 333ms;
    color: #FED52B;
}

#overlay-buy{
    position: fixed;
    right: -1em;
    bottom: 10vh;
    background: #DE2628;
    font-size: 1.5em;
    padding: 0.4em 3em 0.4em 2em;
    color: white;
    border-radius: 0.7em;
    box-shadow: 6px 6px 6px #00000029;
    z-index: 100;
    transition-duration: 250ms;
}
#overlay-buy:hover{
    transform: translateX(-15px) scale(1.05);
    background-color: #F03A40;
}

#overlay-trailer{
    position: fixed;
    width: 100vw;
    height: 100vh;
    background: #000000A0;
    z-index: 1000;
    pointer-events: all;
}
#overlay-trailer-vid{
    width: 80vw;
    height: 45vw;
    max-height: 90vh;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

#overlay-agreement{
    position: fixed;
    width: 100vw;
    height: 100vh;
    background: #000000A0;
    z-index: 1001;
    pointer-events: all;
}
#oa-box {
    background-color: #314763;
    border-radius: 5px;
    border: 0.5em solid #FDB749;
    padding: 3em 4em 2em 10em;
    max-width: 60vw;
    max-height: 70vh;
    margin: 5vw auto;
    color: white;
    text-align: left;
    font-size: 1rem;
    position: relative;
    overflow: auto;
}
#oa-box > p{
    margin: 1.5em 0;
    line-height: 1.5em;
}
#oa-box > div {

}
#oa-box > div > button {
    display: inline-block;
    line-height: 2em;
    font-size: 1.2em;
    color: #082D3E;
    background-color: #fdb749;
    text-align: center;
    padding: 0 3em;
    border-radius: 0.6em;
    border: 0;
    font-weight: bolder;
    text-shadow: 1px 1px 2px #082D3E60;
    box-shadow: 2px 2px 3px #082D3Ea0;
    transition-duration: 300ms;
}
#oa-box > div > button:last-child{
    line-height: 1.7em;
    font-size: 1.2em;
    color: #fdb749;
    padding: 0 1em;
    /*border: 0.2em solid #fdb749;*/
    box-shadow: none;
    background: none;
    border-radius: 0.6em;
}
#oa-box > div > button:hover{
    filter: saturate(2) brightness(1.4);
    transform: scale(1.1);
}
#oa-box > i{
    position: absolute;
    top: 2rem;
    left: 3rem;
    font-size: 4em;
    text-shadow: 4px 4px 3px #223C45b0;
}
/* Section: title */
#sect-tit{
    z-index: 101;
}
#tit-bg-img{
    background: url("../res/bg/tit.webp") no-repeat center center fixed;
    background-size: cover;
}
#tit-bg-gradient{
    background: linear-gradient(#0294BF00, #0294BFE0);
}
.tit-slide{
    width: 40vw;
    height: 90vh;
    position: relative;
}
.tit-col{
    width: 100%;
    position: absolute;
    bottom: 0;
}

#tit-c1-logo{
    max-width: 100%;
    max-height: 50vh;
    transition-duration: 300ms;
}
#tit-c1-logo:hover{
    transform: scale(1.04);
}
#tit-c1-separator{
    width: 80%;
    margin: 2em 10%;
    height: 0.3em;
    border-radius: 0.15em;
    background: #FED52B;
    box-shadow: #20208080 0 0.15em 0.15em;
}
#tit-c1-text{
    width: 35vw;
    padding-left: 2.5vw;
    font-size: clamp(16px, 5rem, 5vh);
    font-weight: 800;
    text-shadow: #00384A 0 3px 2px;
}

#tit-c2-trailer{
    position: relative;
    width: 40vw;
    height: 22.5vw;
    box-shadow: 0 0 3px 0 black;
}
#tit-c2-trailer-overlay{
    position: absolute;
    text-align: center;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    line-height: 22.5vw;
    font-size: 6em;
    opacity: 0.7;
    transition-duration: 250ms;
    box-shadow: inset 0 0 0.4em 0.2em black;
}
#tit-c2-trailer-overlay:hover{
    background: #00000060;
    opacity: 1;
}
#tit-c2-button-container{
   padding: 3rem 0 2rem 0;
}
#tit-c2-button{
    font-size: clamp(2vh, 2.5rem, 6vh);
    font-weight: 1000;
    width: auto;
    padding: 0.5em 1em;
    border-radius: 0.5em;
    background: #DE2628;
    box-shadow: #40408055 0.12em 0.12em 0.12em;
    cursor: pointer;
    color: white;
}
#tit-c2-button:hover{
    transform: scale(1.05);
    background-color: #F03A40;
}
#tit-c2-platforms{
    width: 100%;
}
.tc2p-platform{
    height: 4em;
    max-height: 8vh;
    margin: 0 1vw;
}

/* Section: features */
#sect-fea{
    height: 40vw;
    min-height: 80vh;
}
.fea-bg-img{
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transition-duration: 500ms;
    opacity: 0;
}
.fea-bg-img.active{
    opacity: 1;
}

#fea-box{
    width: 40em;
    height: auto;
    max-height: 75%;
    position: absolute;
    left: 0;
    bottom: 25%;
    background: #00384AB0;
    text-align: left;
    padding-bottom: 5.5em;
}
#fea-conbox{
    width: 80%;
    margin-left: 10%;
    overflow: hidden;
    position: relative;
}
#fea-conscroll{
    width: 1000%
}
.fea-content{
    width: 10%;
    display: inline-block;
    font-family: SSP, sans-serif;
    line-height: 2em;
}
.fea-content > h5 {
    font-family: RB, sans-serif;
    font-size: 3em;
    letter-spacing: 4px;
    line-height: 2em;
}

#fea-box-arrows{
    height: 2em;
    margin-top: 2em;
    margin-bottom: 3em;
    position: absolute;
    bottom: 0;
    width: 100%;
}
#fea-box-arrows > div{
    font-size: 3em;
    margin: 0 0.5em;
    color: #CBD4D9;
    transition-duration: 200ms;
}
#fea-box-arrows > div:hover{
    color: white;
}

#fea-list{
    position: absolute;
    width: 100%;
    bottom: 2vh;
    background: linear-gradient(#082D3E00,#082D3E);
}
.fea-tab{
    font-size: 2.4em;
    opacity: 0.4;
    transition-duration: 200ms;
    width:25%;
    padding-bottom: 0.5rem;
    user-select: none;
}
.fea-tab:hover{
    opacity: 1;
}
.fea-tab.active{
    opacity: 0.9;
}

/* Section: media */
#sect-med{
    height: auto;
    padding-top: calc(2em + 2vh);
    padding-bottom: calc(6vw + 2vh);
}
#med-bg{
    background: linear-gradient(#073042,#006481);
}
.med-row{
    margin-top: 1.3vw;
}
.med-video{
    width: 25vw;
    height: 18.5vw;
    margin: 0 0.4vw;
    position: relative;
}
.med-video-overlay{
    position: absolute;
    top: 0;
    left: 0;
    line-height: 18.5vw;
    width: 25vw;
    text-align: center;
    font-size: 6vw;
    opacity: 0.7;
    transition-duration: 250ms;
    box-shadow: inset 0 0 0.4em 0.2em black;
}
.med-video-overlay:hover{
    background: #00000060;
    opacity: 1;
}
.med-img{
    width: 14.3vw;
    height: 17vw;
    margin: 0 0.4vw;
}

/* Section: dlc */
#sect-dlc{
    padding-top: 4vh;
    background: #082D3E;
    height: auto;
}
#dlc-carousel{
    width: 100%;
    height: 29em;
    padding-top: 1em;
    position: relative;
    font-size: 1.2em;
}
#dc-scroll{
    width: 35em;
    height: 24em;
    position: relative;
    overflow: paged-x;
}
#dc-container{
    position: absolute;
    left: 0;
    transition-duration: 450ms;
    white-space: nowrap;
}
.dc-entry{
    width: 34em;
    height: 24em;
    margin: 0 0.5em;
    background: gray;
    position: relative;
    white-space: normal;
    transition-duration: 250ms;
    font-family: SSP, sans-serif;
}
.dc-entry.active{
    cursor: pointer;
}
.dc-entry:not(.active){
    opacity: 0.7;
}
.dce-bg{
    width: 100%;
    height: 100%;
    position: absolute;
    top:0;
    left:0;
}
.dce-logo{
    position: absolute;
    top: 1.75em;
    left: 1.75em;
    max-width: 10em;
    max-height: 10em;
    background: none;
}
.dce-button{
    display: inline-block;
    background: white;
    color: #082D3E;
    text-align: left;
    width: auto;
    padding: 0.5em 1.7em;
    /*margin-left: 1em;*/
    margin-bottom: 1em;
    border-radius: 0.5em;
    font-weight: bold;
    cursor: pointer;
    user-select: none;

}
.dce-button:hover{
    transform: scale(1.1);
    filter: brightness(150%) grayscale(50%);
}
.dce-desc{
    position: absolute;
    width:90%;
    bottom: 0.5em;
    left: 5%;
    text-align: left;
    line-height: 1.4em;
}
.dc-btn{
    font-size: 4em;
    height: 6em;
    width: 1em;
    position: absolute;
    top: 0.25em;
    background: linear-gradient(to right, #FFFFFFA0, #FFFFFF08);
    opacity: 50%;
    transition-duration: 150ms;
    font-weight: bold;
    text-align: center;
    line-height: 6em;
    user-select: none;
}
.dc-btn:hover{
    opacity: 100%;
}
.dc-btn.inactive{
    opacity: 0;
    transition-duration: 500ms;
}
#dc-btn-l{
    left: 0;
}
#dc-btn-r{
    right: 0;
    transform: scaleX(-1);
}

#dc-icons > div{
    position: relative;
    font-size: 2.5em;
    margin: 1rem;
}
#dc-icons > div > div > img{
    width: 1em;
    height: 1em;
}
.dci-icon{
    opacity: 0.6;
    transform: translateY(0.1em);
}
.dci-icon:hover{
    opacity: 1;
}
.dci-bar{
    background: white;
    width: 0.25em;
    height: 3px;
    border-radius: 1px;
    transition-duration: 300ms;
    opacity: 40%;
}
.active > div > .dci-bar{
    width: 0.75em;
    background: #FED52B;
    opacity: 90%;
}
.active > .dci-icon{
    opacity: 0.95 !important;
}

/* Section: community */
#sect-com{
    height: 400px;
    background: #FED52B;
    overflow: hidden;
}
#com-shutter-top{
    background: #006582;
    width: 150%;
    height: 50%;
    position: absolute;
    left: -25%;
    top: -20%;
    transform: rotate(-2deg);
}
#com-shutter-top > div{
    position: absolute;
    bottom: 0;
    left: 35%;
    width:30%;
    font-size: 2em;
    font-weight: bold;
}
#com-shutter-bottom{
    background: #006582;
    width: 150%;
    height: 50%;
    position: absolute;
    left: -25%;
    bottom: -20%;
    transform: rotate(2deg);
}
#com-center{
    height: 0px;
    position: absolute;
    top:50%;
    width: 100%;
}
#com-center > *{
    width: 25vw;
    max-width: 400px;
    transform: translateY(-50%);
    padding: 0 2vw;
}
#com-discordbtn{
    background: #082D3E;
    font-size: 1.8em;
    padding: 0.4em 1em 0.4em 1em;
    border-radius: 0.7em;
    box-shadow: 6px 6px 6px #00000029;
    cursor: pointer;
    user-select: none;
    font-family: LG, sans-serif;
    color: white;
}
#com-discordbtn:hover{
    transform: scale(1.1) translateY(-50%);
    filter: brightness(200%) grayscale(50%);
}
#com-socialism{
    min-width: 250px;
}
#com-socialism > a{
    color: #082D3E;
    text-shadow: 3px 3px 3px #00000029;
    height: 25%;
    width: 25%;
    font-size: 3.5em;
    cursor: pointer;
    user-select: none;
}
#com-socialism > a:hover{
    transform: scale(1.05) rotate(5deg) translateX(2px) translateY(1px);
    filter: brightness(200%) grayscale(50%);
}
#com-bobert{
    transform: scale(1) translateY(-50%) translateX(-10%);
    position: relative;
}

/* Section: mail */
#sect-mai{
    padding-top: 7vh;
    height: auto;
    padding-bottom: 5vh;
    font-family: SSP, sans-serif;
}
#sect-mai>h5{
    font-size: 1.9rem;
}
#mai-bg-img{
    background: url("../res/bg/tit.webp") no-repeat center center fixed;
    background-size: cover;
    filter: blur(0.3vw);
}
#mai-bg-gradient{
    background: linear-gradient(#0294BFE0, #0294BF20);
}

/* Section: others */
#sect-otg{
    padding-top: 7vh;
    height: auto;
    padding-bottom: 5vh;
}
.otg-box{
    position: relative;
    margin: 1vw;
    background: gray;
    overflow: hidden;
    box-shadow: 0px 9px 6px #00000029;
}
.otg-box > img{
    max-width: 40vw;
    max-height: 80vh;
}
.otg-box-shutter{
    background: #FED52B;
    width: 150%;
    height: 50%;
    position: absolute;
    bottom: -34%;
    left: -25%;
    transform: rotate(5deg);
}
.otg-box-button-centererer{
    position: absolute;
    bottom: 5%;
    width: 100%;
}
.otg-box-button{
    background: #082D3E;
    padding: 0.5em 2em;
    border-radius: 0.7em;
    box-shadow: 6px 6px 6px #00000029;
    font-size: calc(0.7vw + 0.7vh);
    font-family: SSP, sans-serif;
    font-weight: bold;
    cursor: pointer;
    user-select: none;
    color: white;
    transition-duration: 250ms;
}
.otg-box:hover .otg-box-button{
    transform: scale(1.1);
    filter: brightness(150%) grayscale(50%);
}
.otg-box-button:visited{
    color: lightgray;
}

/* Section: footer */
#sect-foo{
    height: auto;
    background: #082D3E;
    padding-top: 2vh;
    font-family: SSP, sans-serif;
}
.foo-box{
    margin: 3vh 3vw;
    font-size: 20px;
    vertical-align: top;
    text-align: left;
    line-height: 2em;
    color: white;
}
.foo-box > img{
    max-width: 7vw;
    max-height: 7vw;
}
.foo-box > h3{
    font-size: 16px;
    text-align: center;
}
.foo-box > h1 {
    text-align: left;
    font-size: 20px;
    font-weight: bold;
}
.foo-box > a{
    text-align: left;
    font-weight: lighter;
    cursor: pointer;
}
.foo-box > a:hover{
    text-decoration: underline;
}
.foo-box > a:visited{
    color: #CBD4D9;
}
#foo-rights {
    position: absolute;
    bottom: 1em;
    right: 3em;
    font-size: 12px;
    z-index: 1000;
}

.yesmobile{
    display: none;
}
@media (orientation: portrait) {
    .nomobile{
        display: none;
    }
    .yesmobile{
        display: unset;
    }
    #header > a{
        display: inline-block;
    }
    #header{
        z-index: 90;
    }

    #overlay-buy{
        font-size: 3em;
        z-index: 200;
        width: 80%;
        margin: 0 10%;
        bottom: 0;
        right:0;
        border-radius: 0.5em 0.5em 0 0;
        padding: 0.5em 0;
        text-align: center;
    }

    #oa-box{
        font-size: 1.5rem;
    }

    #sect-tit{
        padding-top: 20vh;
    }
    .tit-slide{
        width: 100vw;
    }
    .tit-slide:nth-child(3){
        height: 40vh;
        position: absolute;
        bottom:15vh;
        z-index: 2;
        pointer-events: none;
        left: 0;
    }
    .tit-slide:nth-child(4){
        height: 56vw;
        position: absolute;
        top:0;
        left: 0;
    }
    #tit-c1-logo{
        max-height: 45vh;
        max-width: 90vw;
    }
    #tit-c1-text{
        font-size: 4rem;
        width: 100%;
        padding: 0;
    }
    #tit-c2-trailer{
        width:100vw;
        height: 56vw;
        z-index: 1;
    }
    #tit-c2-trailer-overlay{
        line-height: 56vw;
    }

    #sect-fea{
        height: 100vh;
    }
    #fea-box{
        width: 100%;
    }
    .fea-tab{
        width: 32%;
    }
    .fea-content{
        font-size: 2em;
        vertical-align: top;
    }

    .med-row{
        margin: 0;
    }
    .med-video{
        width: 75.5vw;
        height: 56vw;
        margin-top: 1em;
    }
    .med-video-overlay{
        line-height: 56vw;
        width: 75.5vw;
        font-size: 20vw;
    }
    .med-img{
        width: 37vw;
        height: 45vw;
        margin-top: 1em;
    }
    .med-row:nth-child(4) > a:first-child{
        display: none;
    }

    #dlc-carousel{
        font-size: 1.6em;
    }

    #sect-com{
        height: 600px;
    }
    #com-shutter-top > div{
        font-size: 3em;
        width: 45%;
    }
    #com-center > *{
        width: 35vw;
    }
    #com-bobert{
        transform: scale(1.2) translateY(-50%) translateX(-10%);
    }
    #com-discordbtn{
        font-size: 3em;
    }
    #com-socialism{
        width: 90vw;
        max-width: unset;
        transform: translateY(-100%);
    }
    #com-socialism > a{
        width: unset;
        height: unset;
        font-size: 6em;
        margin: 15px;
        color: #fff;
    }

    #sect-foo{
        padding-bottom: 5em;
    }
}

@media screen and (max-height: 700px) {
    #sect-fea{
        height: 100vh;
    }
    #fea-box{
        width: 100%;
        top:0em;
        bottom: unset;
    }
}

@media screen and (max-height: 700px) and (orientation: portrait) {
    .fea-content{
        font-size: 1.5em;
    }
}

h5 > b {
    font-weight: bolder;
}
