:root {
    --darkBlue: #000a2a;
    --white: #fff;
    --black: #000;
    --light: #ffffdc;
    --border: #ffc684;
}

html, body {
    margin: 0;
    padding: 0;
}

.long {
    background-color: var(--black);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 50%;
}

html {font-size: clamp(0vh, 1vw, calc(2vh / 3));}
html.land-short {font-size: clamp(0vh, 1vw, 2vh);}
html.port {font-size: clamp(0vh, 2vw, calc(1vh / 3));}
html.port-short {font-size: clamp(0vh, 2vw, 1vh);}

.port .banner {
    font-size: 1.2em;
}

.port .br-l { display: none; }
.land .br-p { display: none; }

.banner {
    display: grid;
    color: var(--white);
    width: 100vw;
    height: 100vh;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: none;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    font-feature-settings: "kern";
}

.banner, .banner *, .banner:after, .banner:before {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.bg {
    display: grid;
    position: absolute;
    left: 0;
    width: 100%;
    height: calc(100% / 3);
}

.bg-top {
    top: 0;
    z-index: 2;
}

.bg-middle {
    top: calc(100% / 3);
    z-index: 1;
}

.land .bg-middle {
    height: calc(100% / 3 + 3em);
}

.bg-bottom {
    top: calc(100% / 3 * 2);
    background-color: var(--black);
}

.tint-- {
    position: absolute;
    left: 0;
    width: 100%;
}

.tint-top {
    top: -1px;
    height: 8em;
    background: linear-gradient(to bottom, var(--darkBlue), transparent);
}

.tint-bottom {
    bottom: -1px;
    height: 18em;
    background: linear-gradient(to top, var(--black), transparent);
}

.video-bg {
    position: absolute;
    background-repeat: no-repeat;
    background-size: cover;
}

.land .video-bg {
    background-image: url(poster-bg-land.jpg?format=avif);
    background-position: 46% 10%;
}

.port .video-bg {
    background-image: url(poster-bg-port.jpg?format=avif);
    background-position: 50% 50%;
}

.flares {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(bg-top-land.jpg?format=avif);
    background-repeat: no-repeat;
    background-position: 50% 33%;
    background-size: cover;
}

.port .flares {
    background-image: url(bg-top-port.jpg?format=avif);
}

.hero-wrap {
    position: absolute;
    width: 52em;
    height: auto;
    align-self: center;
    justify-self: center;
}

.port .hero-wrap {
    margin-top: 22em;
    width: 36em;
}

.he,
.cws {
    width: 100%;
    height: auto;
    position: relative;
}

.he-1b {
    position: absolute;
    top: 0;
    left: 0;
}

.copy-wrap {
    position: absolute;
    width: 30em;
    display: grid;
    justify-items: center;
    justify-self: center;

    align-self: end;
    margin: 6em;
}

.land .copy-wrap {
    width: 38em;
    margin: 8em;
}

.land .copy-wrap-1 {
    align-self: center;
    margin-top: 20em;
}

.land .copy-wrap-1::before,
.land .copy-wrap-1::after,

.port .copy-wrap-3::before,
.port .copy-wrap-3::after{
    content: "";
    position: absolute;
    height: 3em;
    bottom: 0;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0;
    transform: translateY(6em);

    height: 17%;
    width: 14%;
    bottom: -1%;
}

.animate .copy-wrap::before,
.animate .copy-wrap::after {
    transition: all .4s ease;
}

.show-1 .copy-wrap-1::before,
.show-1 .copy-wrap-1::after,

.show-3 .copy-wrap-3::before,
.show-3 .copy-wrap-3::after {
    opacity: 1;
    transition-delay: .35s;
    transform: translateY(0em);
}

.copy-wrap::before {
    background-image: url(logo-lightstorm.png?format=avif);
    /* left: -5em;
    width: 5em; */

    left: -15%;
}

.port .copy-wrap-3::before {
    left: -17%;
    bottom: 0;
}

.copy-wrap::after {
    background-image: url(logo-20cs.png?format=avif);
    /* right: -3em;
    width: 3em; */

    right: -15%;
}

.port .copy-wrap-3::after {
    right: -18%;
    bottom: 0;
}

.land .copy-wrap-2 {
    align-self: center;
    justify-self: end;
    margin-bottom: 12em;
}

.copy-wrap-3 {
    margin: 3em;
    margin: 4em;
    width: 28em;
}

.copy {
    filter: drop-shadow(.25em .25em 1.5em rgba(0,0,0,1));
    margin-top: 1em;
}

.land .copy {
    width: 94%;
}

.logo {
    filter: drop-shadow(.25em .25em 1.5em rgba(0,0,0,1));
}

.port .logo {
    width: 84%;
}

/**/

.box {
    position: relative;
    cursor: pointer;    
    justify-self: center;
    align-self: center;
    width: calc(16em * 4.8);
    height: calc(9em * 4.8);
    display: grid;
}

/* .box::after {
    content: "";
    position: absolute;
    bottom: -1.8em;
    width: 100%;
    height: .8em;
    justify-self: center;
    background-image: url(disc.png?format=avif);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: 50% 50%;
    opacity: .5;
} */

.port .box {
    width: calc(9em * 4.15);
    height: calc(16em * 4.15);
    margin-bottom: 8em;
}

.box {
    transform: translateY(36%);
    opacity: 0;
    pointer-events: none;
}

.animate .box {
    transition: all .5s ease;
}

.show-3 .box {
    transform: translateY(0%);
    opacity: 1;
    pointer-events: auto;
}

.box-vid {
    position: absolute;
    overflow: hidden;
    width: 100%;
    height: 100%;
    background-color: var(--black);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 50%;
    object-fit: cover;
    object-position: 50% 50%;

    /* border-radius: .4em; */
    overflow: hidden;
    transition: opacity .5s ease;
}

.land .box-vid {background-image: url(poster-land.jpg?format=avif);}
.port .box-vid {background-image: url(poster-port.jpg?format=avif);}

.box-vid::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 999;
    border: 1px solid var(--border);
    filter: drop-shadow(0 0 .4em #fd5638);
    /* border-radius: .4em; */
}

.mb-wrap {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 100%;
}

.madbtn {
    position: absolute;
    box-sizing: border-box;
    border-radius: 50%;
    cursor: pointer;
    width: 2.2em;
    height: 2.2em;
    max-width: 60px;
    max-height: 60px;
    background-color: rgba(0,0,0,.4);
    transition: opacity .1s ease;
    z-index: 9999;
}

.land .madbtn {
    bottom: 1.5em;
    right: 1.5em;
}

.port .madbtn {
    top: 1.5em;
    right: 1.5em;
}

.madbtn-sound:after,
.madbtn-replay:after {
    content: "";
    position: absolute;
    top: -20vh;
    right: -80vw;
    width: 100vw;
    height: 60vh;
}

.madbtn-icon {
    width: 40%;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    fill: var(--white);
}

.madbtn-play {
    display: none;
    width: 5em;
    height: 5em;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
}

.madbtn-replay {
    display: none;
}

.madbtn-sound-on {
    background-color: var(--white);
}

.madbtn-sound-on .madbtn-sound-icon {
    fill: var(--black);
}

.port .madbtn {
    font-size: 1.45em;
}

/**/

.he,
.cws {
    transform: translateY(5em);
    opacity: 0;
}

.cws {
    transform: translateY(6.5em);
}

.animate .he,
.animate .cws {
    transition: all .4s ease 0s;
}

.show-1 .he {
    transform: translateY(0%);
    transition-delay: .1s;
    opacity: 1;
}

.show-1 .cwa,
.show-2 .cw,
.show-3 .cwb {
    transform: translateY(0%);
    transition-delay: .1s;
    opacity: 1;
}

.show-1 .cwa-1 {transition-delay: .2s;}
.show-1 .cwa-2 {transition-delay: .3s;}

.show-1 .he-1b {transition-delay: .2s;}
.show-2 .cw-2 {transition-delay: .2s;}
.show-2 .cw-3 {transition-delay: .3s;}

.show-3 .cwb-1 {transition-delay: .2s;}
.show-3 .cwb-2 {transition-delay: .3s;}

/**/

/* .tint-split {
    position: absolute;
    width: 100%;
    height: calc(100% / 2.5);
    top: calc(-100% / 5);
    background: linear-gradient(to bottom, transparent, var(--black), transparent);
} */

.tint-split {
    position: absolute;
    width: 100%;
    height: 20em;
}

.land .tint-split {
    height: 14em;
    height: 18em;
}

.land .bg-middle .ts-top {
    height: 10em;
}

.ts-top {
    top: -1px;
    background: linear-gradient(to top, transparent, var(--black));
}

.ts-bottom {
    bottom: -1px;
    background: linear-gradient(to bottom, transparent, var(--black));
}

.bottom-overlay {
    position: absolute;
    bottom: -1px;
    width: 100%;
    display: grid;

    height: 39em;
    height: 40em;
    background-image: url(bottom.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 0%;

    opacity: 0;
    transform: translateY(50%);
}

.land .bottom-overlay {
    display: none;
}

.animate .bottom-overlay {
    transition: all .5s ease;
}

.show-3 .bottom-overlay {
    opacity: 1;
    transform: translateY(0%);
    transition-delay: .1s;
}

.bo {
    width: 100%;
    height: auto;
}

/* .port .bottom-overlay::before,
.port .bottom-overlay::after {
    content: "";
    position: absolute;
    width: 2.4em;
    height: 2.4em;
    bottom: 0;
    margin: .6em;
    margin-bottom: 2.8em;
    background-repeat: no-repeat;
    background-size: contain;
}

.port .bottom-overlay::before {
    background-image: url(logo-lightstorm.png?format=avif);
    left: 0;
    width: 5em;
}

.port .bottom-overlay::after {
    background-image: url(logo-20cs.png?format=avif);
    right: 0;
} */

.port .copy-wrap-4 {
    display: none;
}

.land .copy-wrap-4 {
    justify-self: end;
    align-self: start;
    width: 17em;
    margin: 2.5em;
    opacity: 0;
    z-index: 999;
}

.reveal .copy-wrap-4 {
    opacity: 1;
}

.land .cwc {
    opacity: 1;
    transform: none;
    filter: drop-shadow(.1em .1em .8em rgba(0,0,0,1));
}

.land .cwc-2 {
    width: 80%;
    margin-top: .2em;
}