@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap');


:root {

    --white04: rgb(12, 255, 109);
    --anim-gap: 16px;
}

body,
html {
    height: 100%;
    margin: 0;
    padding: 0;
    background: #141414;
    color: #fcfcfc;
    font-family: "DM Sans", sans-serif;
    overflow-x: hidden;
    scroll-behavior: smooth;
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;

}

#spell-gate,
#session-loader {
    position: fixed;
    inset: 0;
}

#spell-gate {
    position: fixed;
    inset: 0;
    overflow: auto;
    background: #0f0f0f;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100000;
}

.gate-box {
    text-align: center;
    background: #181818;
    padding: 40px;
    border-radius: 12px;
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.6);
}

.gate-box h2 {
    margin-bottom: 20px;
    color: white;
}

.gate-box input {
    padding: 12px;
    width: 220px;
    border-radius: 6px;
    border: none;
    margin-bottom: 12px;
}

.spell-input-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.spell-input-wrap input {
    padding-right: 40px;
    font-family: inherit;
}

.eye-btn {
    position: absolute;
    top: 8px;
    right: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: #666;
    display: flex;
    align-items: center;
}


.gate-box #spell-submit {
    font-family: inherit;
    padding: 10px 20px;
    border: none;
    border-radius: 6px;
    background: #34ebe8;
    cursor: pointer;
    font-weight: bold;
}

#spell-error {
    color: #ff4d4f;
    margin-top: 10px;
}


#mobile-block {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #111;
    color: #fff;
    z-index: 9999;
    padding: 10px;
}

#mobile-block .msg-box .message-body {
    float: left;
    width: calc(100% - 54px);
    padding: 7px 10px;
    border-radius: 5px;
    border: 1px solid #000000;
    background-color: #ffffff14;
    font-size: .86rem;
}

#mobile-block .message-box {
    width: 100%;
    height: 100%;
    overflow-y: auto;
}

#mobile-block .message-box .msg {
    display: flex;
}

#mobile-block .msg img {
    width: 30px;
    height: 30px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid #ffffff1c;
}

@media (max-width: 991px) {

    /* BEFORE unlock */
    body:not(.unlocked)>*:not(#spell-gate) {
        display: none !important;
    }

    /* AFTER unlock */
    body.unlocked>*:not(#mobile-block) {
        display: none !important;
    }

    #spell-gate {
        display: flex !important;
        position: fixed;
        inset: 0;
        z-index: 2147483647;
        padding: 0 20px;
    }

    #mobile-block {
        display: flex;
    }

    .gate-box {
        padding: 10px;
    }

    .gate-box #spell-submit {
        width: 100%;
        max-width: 270px;
    }
}


#session-loader {
    position: fixed;
    inset: 0;
    background: black;
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 2rem;
    z-index: 9999;
    transition: opacity 0.6s ease;
}

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

#session-loader h2 {
    font-size: 2.5rem;
    color: #ffffff83;
}

#session-loader h2 span {
    font-size: 4rem;
    color: #ffffff;
}

#session-loader .ribbon-text {
    position: relative;
}

#session-loader .ribbon-text::after {
    content: "👄";
    position: absolute;
    top: 3px;
    right: -8px;
    transform: rotate(-35deg);
    font-size: 24px;

}


#session-loader .spinner__outer {
    display: flex;
    align-items: center;
    justify-content: center;
}

#session-loader .spinner {
    width: 3rem;
    height: 3rem;
    animation: spinner-rotate 2s linear infinite;
}

#session-loader .spinner__svg {
    width: 100%;
    height: 100%;
}

#session-loader .spinner__circle {
    stroke: #ffffff83;
    stroke-linecap: round;
    animation: spinner-dash 1.5s ease-in-out infinite;
}

@keyframes spinner-rotate {
    100% {
        transform: rotate(360deg);
    }
}

@keyframes spinner-dash {
    0% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: 0;
    }

    50% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -35;
    }

    100% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: -125;
    }
}

::-webkit-scrollbar {
    width: 12px;
}

/* Track */
::-webkit-scrollbar-track {
    background: #ffffff10;
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: #ffffff2d;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: #ffffff7c;
}


.hello-animation {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 auto;
    width: fit-content;
    gap: 50px;
}

.hello-animation .msg {
    display: flex;
}

.hello-animation .msg img {
    width: 83px;
    height: 83px;
    object-fit: cover;
    margin-top: 30px;
    border-radius: 50%;
    border: 3px solid #ffffff1c;
}


/* Wave animation */
.wave {
    animation-name: wave-animation;
    animation-duration: 2.5s;
    animation-iteration-count: infinite;
    transform-origin: 70% 70%;
    display: inline-block;
    float: left;
    font-size: 22px;
}

@keyframes wave-animation {
    0% {
        transform: rotate(0deg);
    }

    10% {
        transform: rotate(8deg);
    }

    20% {
        transform: rotate(-4deg);
    }

    30% {
        transform: rotate(8deg);
    }

    40% {
        transform: rotate(-2deg);
    }

    50% {
        transform: rotate(6deg);
    }

    60% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(0deg);
    }
}


.hello-animation .msg-box {
    margin-top: 30px;
    clear: both;
    position: relative;
    float: left;
    opacity: 0;
    transform: translateX(-30px);
    animation: fadeInLeft 2s forwards;
    animation-delay: 0.5s;
}

.msg-box .arrow {
    width: 12px;
    height: 20px;
    overflow: hidden;
    position: relative;
    float: left;
    top: 6px;
    right: -1px;
}

.msg-box .arrow .outer {
    width: 0;
    height: 0;
    border-right: 20px solid #0c0c0c;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    position: absolute;
    top: 0;
    left: 0;
}

.msg-box .arrow .inner {
    width: 0;
    height: 0;
    border-right: 20px solid #ffffff1c;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    position: absolute;
    top: 0;
    left: 2px;
}

.hello-animation .msg-box .message-body {
    float: left;
    width: 290px;
    padding: 10px 15px;
    border-radius: 5px;
    border: 1px solid #000000;
    background-color: #ffffff14;
}

.msg-box .message-body p {
    margin: 0;
}

@keyframes fadeInLeft {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}


.scroll-down-icon {
    position: relative;
    width: 24px;
    height: 24px;
}

.scroll-down-icon .chevron {
    position: absolute;
    width: 28px;
    height: 8px;
    opacity: 0;
    transform: scale3d(0.5, 0.5, 0.5);
    animation: move 3s ease-out infinite;
}

.scroll-down-icon .chevron:first-child {
    animation: move 3s ease-out 1s infinite;
}

.scroll-down-icon .chevron:nth-child(2) {
    animation: move 3s ease-out 2s infinite;
}

.scroll-down-icon .chevron:before,
.scroll-down-icon .chevron:after {
    content: ' ';
    position: absolute;
    top: 0;
    height: 100%;
    width: 51%;
    background: #fff;
}

.scroll-down-icon .chevron:before {
    left: 0;
    transform: skew(0deg, 30deg);
}

.scroll-down-icon .chevron:after {
    right: 0;
    width: 50%;
    transform: skew(0deg, -30deg);
}

@keyframes move {
    25% {
        opacity: 1;

    }

    33% {
        opacity: 1;
        transform: translateY(30px);
    }

    67% {
        opacity: 1;
        transform: translateY(40px);
    }

    100% {
        opacity: 0;
        transform: translateY(55px) scale3d(0.5, 0.5, 0.5);
    }
}

.scroll-down-icon .text {
    display: block;
    position: absolute;
    bottom: -65px;
    left: -25px;
    font-size: 11px;
    color: #fff;
    text-transform: uppercase;
    white-space: nowrap;
    opacity: .25;
    animation: pulse 2s linear alternate infinite;
}

@keyframes pulse {
    to {
        opacity: 1;
    }
}



#smooth-wrapper {
    height: 100%;
    overflow: hidden;
}

#audio-player {
    position: fixed;
    bottom: 20px;
    right: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #343434;
    color: #fff;
    /* border: 1px solid #fff; */
    padding: 10px 15px;
    border-radius: 25px;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    transition: background 0.3s;
    z-index: 9999;
}

#audio-player:hover {
    background: #444;
}

.audio-text {
    font-size: 12px;
}

.solar--play-broken {
    display: inline-block;
    width: 16px;
    height: 16px;
    --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-width='1.5' d='M3 12v6.967c0 2.31 2.534 3.769 4.597 2.648l3.203-1.742M3 8V5.033c0-2.31 2.534-3.769 4.597-2.648l12.812 6.968a2.998 2.998 0 0 1 0 5.294l-6.406 3.484'/%3E%3C/svg%3E");
    background-color: currentColor;
    -webkit-mask-image: var(--svg);
    mask-image: var(--svg);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}

.solar--pause-broken {
    display: inline-block;
    width: 16px;
    height: 16px;
    --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-width='1.5' d='M2 18c0 1.886 0 2.828.586 3.414S4.114 22 6 22s2.828 0 3.414-.586S10 19.886 10 18V6c0-1.886 0-2.828-.586-3.414S7.886 2 6 2s-2.828 0-3.414.586S2 4.114 2 6v8m20-8c0-1.886 0-2.828-.586-3.414S19.886 2 18 2s-2.828 0-3.414.586S14 4.114 14 6v12c0 1.886 0 2.828.586 3.414S16.114 22 18 22s2.828 0 3.414-.586S22 19.886 22 18v-8'/%3E%3C/svg%3E");
    background-color: currentColor;
    -webkit-mask-image: var(--svg);
    mask-image: var(--svg);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}

.fluent--replay-28-regular {
    display: inline-block;
    width: 28px;
    height: 28px;
    --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath fill='%23000' d='M14 3.5a10.48 10.48 0 0 0-8.247 4H8.25a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1-.75-.75v-4a.75.75 0 0 1 1.5 0v1.813A11.97 11.97 0 0 1 14 2c6.627 0 12 5.373 12 12s-5.373 12-12 12S2 20.627 2 14q0-.7.078-1.38a.71.71 0 0 1 .715-.62c.465 0 .814.425.765.887Q3.5 13.436 3.5 14c0 5.799 4.701 10.5 10.5 10.5S24.5 19.799 24.5 14S19.799 3.5 14 3.5m-.745 5.707A1.5 1.5 0 0 0 11 10.503v6.991a1.5 1.5 0 0 0 2.255 1.296l6.001-3.495a1.5 1.5 0 0 0 0-2.593zm-.755 1.296l6.001 3.496l-6.001 3.495z'/%3E%3C/svg%3E");
    background-color: currentColor;
    -webkit-mask-image: var(--svg);
    mask-image: var(--svg);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}

#smooth-content {
    overflow: visible;
}

.scroll-wrapper {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
}

.scroll-words-container {
    position: relative;
    height: 100dvh;
    width: 100%;
    overflow: visible;
}

#smooth-content>p {
    text-align: center;
    text-transform: uppercase;
    max-width: 350px;
    margin: auto;
    font-size: clamp(1rem, 3vw, 3rem);
    font-weight: 600;
}

.scroll-word {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    font-size: clamp(2.3rem, 6vw, 6rem);
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
    pointer-events: none;
    will-change: transform, opacity;
    opacity: 0;
}

.scroll-wrapper .scroll-word2 {
    color: #eb8aff;
}


.extra {
    /* background-color: lightblue; */

}


.imag-loading-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.imag-loading-container {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
}

.imag-loading-container .revealers {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    z-index: 2;
}

.imag-loading-container .revealer {
    flex: 1;
    width: 100%;
    background-color: #fff;
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}

.imag-loading-container .images {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    transform-origin: center center;
    will-change: transform;
}

.imag-loading-container .img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1.5);
    width: 100%;
    height: 100%;
    visibility: visible;
    will-change: transform;
    opacity: 0;
}

.imag-loading-container .images .first-image {
    visibility: hidden;
}

.imag-loading-container .images.stacked-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 50% 50%;
    grid-template-rows: 50% 50%;
    gap: 0;
    transform: none;
    will-change: transform;
    z-index: 10;
}

.imag-loading-container .images.stacked-container::after {
    content: "scroll more darling...";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 2rem;
    font-weight: 700;
    color: #fff;
    text-shadow:
        2px 2px 4px rgba(0, 0, 0, 0.8);
    -webkit-text-stroke: 1px rgba(0, 0, 0, 0.6);

    z-index: 5;
    pointer-events: none;
    opacity: 0;
    animation: showAfterText 1s forwards;
    animation-delay: 3s;
}

@keyframes showAfterText {
    to {
        opacity: 1;
    }
}


.imag-loading-container .img.stacked {
    position: relative;
    width: 100%;
    height: 100%;
    opacity: 1;
    transform: none;
    top: auto;
    left: auto;
    will-change: transform;
    overflow: hidden;
}

.imag-loading-container .img.stacked img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: 3px solid #fff;
}

.imag-loading-container .img.stacked:nth-child(1) img,
.imag-loading-container .img.stacked:nth-child(2) img {
    border-top: none;
}

.imag-loading-container .hero-content {
    position: relative;
    width: 100%;
    height: 100%;
}


.imag-loading-container .cover-img {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 50%;
    height: 50%;
    clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
}


.gsap-marker-scroller-start,
.gsap-marker-scroller-end {
    display: none !important;
}

.gsap-marker-start,
.gsap-marker-end {
    display: none !important;
}




.full-h {
    display: flex;
    align-items: center;
    align-content: center;
    flex-wrap: wrap;
    padding: 20px 0;
    padding-top: 100px;
}

ul,
li,
ol {
    list-style: none;
}

.animated-marquee-sec {
    overflow: hidden;
}

.anim-marquee-wrapper {
    width: 100%;
    margin-top: 32px;
}

.anim-marquee-slider-wrapper {
    will-change: transform;
    display: flex;
    position: relative;
    width: 100%;
}

.anim-marquee-slider-innerwrap {
    will-change: transform;
    display: flex;
    position: relative;
}

.anim-marquee-wrap {
    margin-left: var(--anim-gap);
    width: calc((100vw - (var(--anim-gap) * 5)) / 6);
}

.anim-marquee-item {
    border: 1px solid #fff;
    border-radius: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 100%;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.anim-marquee-item img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}




.next-section {
    margin-top: 150px;
}



@media screen and (max-width: 1366px) {
    .anim-marquee-wrap {
        width: calc((100vw - (var(--anim-gap) * 3)) / 5);
    }
}

@media screen and (max-width: 991px) {
    .anim-marquee-wrap {
        width: calc((100vw - (var(--anim-gap) * 3)) / 4);
    }
}

@media screen and (max-width: 767px) {
    .anim-marquee-wrap {
        width: calc((100vw - (var(--anim-gap) * 3)) / 3);
    }
}

@media screen and (max-width: 516px) {
    .anim-marquee-wrap {
        width: calc((100vw - (var(--anim-gap) * 3)) / 2);
    }
}



.story-title {
    text-align: center;
    margin-top: 150px;
}



.section1,
.section3 {
    min-height: 100vh;
    background-color: #222;
    display: flex;
    justify-content: space-around;
    align-items: center;
    font-size: 50px;
}

.head {
    display: flex;
    flex-direction: row;
    height: 100vh;
    justify-content: center;
    align-items: center;
}

.copyright-box {
    opacity: 0;
    text-align: center;
    margin-top: 50px;
    font-size: 14px;
    color: #666;
}

.images-box {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin-left: 180px;
}

.images-box img {
    border-radius: 5px;
    border: 3px solid #fff;
}

.content-box {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: left;
    height: 455px;
    width: 50%;
    border-radius: 5px;
    /* border: 3px solid #000000;
    background-color: #ffffff14; */
    margin-left: 200px;
}

/* .content-box::after {
    content: "❤️";
    position: absolute;
    bottom: 3%;
    right: 3%;
    font-size: 60px;
    opacity: 0.1;
} */

.content-box p {
    padding: 0 30px;
    font-size: 1.2rem;
    line-height: 1.45;
}

.content-box p span {
    display: block;
    padding-bottom: 5px;
    font-weight: 600;
    font-style: italic;
}

.content-box p span.copy {
    padding-top: 10px;
}

.content-box #heading11 {
    width: 100%;
    text-align: center;
    opacity: 0;
}

.content-box #heading11 img {
    height: 250px;
    margin: 0px auto;
    margin-bottom: 5px;
}

.content-box #heading11 p {
    font-size: 1rem;
}

.content-box #heading11 p a {
    color: rgb(250 106 255);
    text-decoration: none;
}

.content-box #heading11 p a:hover {
    text-decoration: underline;
}


.heading {
    opacity: 0;
    position: absolute;
    top: 0;
}

#heading {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.scroll-img {
    height: 410px;
    opacity: 0;
    position: absolute;
}

.active {
    opacity: 1;
}