:root {
    --background-color: #101014;
    --text-color: var(--white2-color);
    --video-max-width: 2000px;
}

body {
    background-color: var(--background-color);
}

.sticky-logo {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 99;
    display: flex;
    align-items: center;
    /* gap: 1rem; */
    padding: 0.75rem;
    /* background: rgba(16, 16, 20, 0.4); */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    /* border: 1px solid rgba(203, 32, 64, 0.1); */
    border-radius: 1rem;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: fit-content;

    .logo {
        width: 42px;
        height: 42px;
        cursor: pointer;
        transition: transform 0.3s ease;

        &:hover {
            transform: scale(1.05);
        }

        svg {
            view-transition-name: aa-logo;
            width: 100%;
            height: 100%;
        }
    }
}

.notification {
    opacity: 0;
    transform: translateX(-20px);
    color: #FFFFFF;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
    max-width: 0;
    overflow: hidden;
    margin: 0;
}

.notification.show {
    opacity: 1;
    transform: translateX(0);
    max-width: 700px;
    margin: 0 1rem;
}

/* Hero */
.transparent-video {
    position: relative;
    left: 50%;
    transform: translateX(-50%) translateX(clamp(-43px, (-27vw + 600px), 350px));
    width: auto;
    height: 95vh;
    max-height: 1200px;
    min-height: 900px;
    object-fit: cover;
    z-index: 2;

    @media (max-width: 768px) {
        max-height: 900px;

    }
}

.hero {
    background: url(/assets/hero/BG.webp) no-repeat 200px 0;
    background-size: cover;
    background-position: center;
    max-width: var(--video-max-width);
    padding: unset;
    height: 100%;
    max-height: 1200px;

    .hero-container {
        position: relative;
        width: 100%;
        height: 100%;
        max-width: var(--video-max-width);
        margin: auto;
        overflow: hidden;

        .video-overlay {
            position: absolute;
            left: 0;
            bottom: 0px;
            height: 270px;
            width: 100%;
            margin-bottom: -2%;
            background-image: linear-gradient(to bottom, transparent 0%, var(--background-color) 60% 60%);
            z-index: 2;

            &.back {
                z-index: 0;
                height: 450px;
            }
        }

        .video-border {
            display: none;
            position: absolute;
            top: 0;
            max-width: var(--video-max-width);
            width: 100%;
            height: 100%;
            left: 50%;
            transform: translateX(-50%);
            z-index: 2;

            .border {
                height: 110vh;
                width: 170px;
                position: absolute;

                &.left {
                    background: linear-gradient(to left, #00000000 0%, #00000042 60%, var(--background-color) 100%);
                    ;
                }

                &.right {
                    right: 0;
                    background: linear-gradient(to right, #00000000 0%, #00000042 60%, var(--background-color) 100%);
                    ;
                }
            }

            @media (min-width:2000px) {
                display: initial;
            }
        }

        .hero-text {
            position: absolute;
            font-size: 280px;
            color: var(--background-color);
            transform: rotate(58.5deg) translateY(-38%);
        }

        .hero-bg {
            position: absolute;
            top: 0;
            padding-right: 10%;
            width: 95%;
            opacity: 0.85;
        }

        .arcai-shards {
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            z-index: 2;
            overflow-x: hidden;
            overflow-y: visible;
            max-width: var(--video-max-width);

            .shard {
                position: absolute;
                width: auto;
            }

            &.background {
                .shard {
                    z-index: 1;
                }

                .shard:nth-child(1) {
                    filter: blur(7px);
                    top: 0%;
                    left: 15%;
                    height: 150px;
                }

                .shard:nth-child(2) {
                    filter: blur(5px);
                    top: 20%;
                    left: 50%;
                    height: 140px;
                }

                .shard:nth-child(3) {
                    filter: blur(9px);
                    top: 55%;
                    left: 47%;
                    height: 160px;
                }

                .shard:nth-child(4) {
                    top: 20%;
                    left: 2%;
                    height: 200px;
                }

                .shard:nth-child(5) {
                    filter: blur(7px);
                    top: 49%;
                    left: 5%;
                    height: 90px;
                }

                .shard:nth-child(6) {
                    filter: blur(3px);
                    top: 85%;
                    left: 57%;
                    height: 250px;
                }

                .shard:nth-child(7) {
                    filter: blur(2px);
                    top: 39%;
                    left: 7%;
                    height: 200px;
                }

                .shard:nth-child(8) {
                    filter: blur(6px);
                    top: 78%;
                    left: 80%;
                    height: 220px;
                }

                .shard:nth-child(9) {
                    filter: blur(1px);
                    top: 29%;
                    left: 50%;
                    height: 200px;
                }
            }

            &.foreground {
                mix-blend-mode: difference;

                .shard {
                    z-index: 3;
                }

                .shard:nth-child(1) {
                    filter: blur(3px);
                    top: 5%;
                    left: 45%;
                    height: 180px;
                }

                .shard:nth-child(2) {
                    filter: blur(2px);
                    top: 50%;
                    left: 45%;
                    height: 200px;
                }

                .shard:nth-child(3) {
                    filter: blur(1px);
                    top: 64%;
                    left: 80%;
                    height: 390px;
                }

                .shard:nth-child(4) {
                    filter: blur(2px);
                    top: 76%;
                    left: 4%;
                    height: 220px;
                }

                .shard:nth-child(5) {
                    filter: blur(2px);
                    top: 32%;
                    left: 7%;
                    height: 150px;
                }

                .shard:nth-child(6) {
                    filter: blur(3px);
                    top: 85%;
                    left: 57%;
                    height: 250px;
                }

                .shard:nth-child(7) {
                    filter: blur(2px);
                    top: 90%;
                    left: 20%;
                    height: 200px;
                }
            }
        }
    }
}


.triangles {
    position: absolute;
    top: 0;
    height: 100%;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    overflow: hidden;
    position: absolute;
    z-index: 0;
    mix-blend-mode: multiply;
    max-width: var(--video-max-width);

    .triangle {
        animation: particle 9.5s ease-in infinite;
        align-self: flex-end;
        transform: translateY(100%);
        width: 0;
        height: 0;
        border-left: 3em solid transparent;
        border-right: 3em solid transparent;
        border-bottom: 3em solid #c61414;
        will-change: transform;
        --rotation-start: -50deg;
        --rotation-end: 20deg;
    }

    .triangle:nth-child(2) {
        border-left-width: 2em;
        border-right-width: 2em;
        border-bottom-width: 2em;
        animation-delay: 1s;
        animation-duration: 17s;
        filter: blur(5px);
    }

    .triangle:nth-child(3) {
        border-left-width: 2.5em;
        border-right-width: 2.5em;
        border-bottom-width: 2.5em;
        animation-delay: 1.5s;
        animation-duration: 8s;
        filter: blur();
    }

    .triangle:nth-child(4) {
        border-left-width: 1em;
        border-right-width: 1em;
        border-bottom-width: 1em;
        animation-delay: 3.5s;
        filter: blur(3px);
        animation-duration: 13s;
    }

    .triangle:nth-child(5) {
        border-left-width: 5em;
        border-right-width: 5em;
        border-bottom-width: 5.25em;
        animation-delay: 4s;
        filter: blur(2px);
        animation-duration: 11s;
    }

    .triangle:nth-child(6) {
        border-left-width: 7em;
        border-right-width: 7em;
        border-bottom-width: 7.5em;
        animation-delay: 7s;
        filter: blur(1px);
        animation-duration: 9s;
    }

    .triangle:nth-child(7) {
        border-left-width: 4em;
        border-right-width: 4em;
        border-bottom-width: 4em;
        filter: blur(2.5px);
        animation-duration: 12s;
    }

    .triangle:nth-child(8) {
        border-left-width: 6em;
        border-right-width: 6em;
        border-bottom-width: 6em;
        animation-delay: 5s;
        filter: blur(6px);
        animation-duration: 18s;
    }

    .triangle:nth-child(9) {
        border-left-width: 1em;
        border-right-width: 1em;
        border-bottom-width: 1.5em;
        filter: blur(0.5px);
        animation-duration: 9s;
    }

    .triangle:nth-child(9) {
        border-left-width: 3em;
        border-right-width: 3em;
        border-bottom-width: 3em;
        animation-delay: 6s;
        filter: blur(0.5px);
        animation-duration: 12s;
    }
}

@keyframes particle {
    from {
        transform: translateY(100%) rotate(var(--rotation-start));
    }

    to {
        transform: translateY(calc(-100vh + -100%)) rotate(var(--rotation-end));
    }
}

.hero-credit {
    z-index: 2;
    position: absolute;
    top: calc(100vh - 100px);
    right: 0;
    writing-mode: vertical-rl;
    white-space: nowrap;
    z-index: 4;

    p {
        font-size: 1rem;
        font-weight: 500;
        opacity: 0.3;
        transition: opacity 0.3s ease-out;

        &:nth-child(2) {
            color: var(--blue-color);
            text-indent: 50px;
        }

        &:hover {
            cursor: pointer;
            opacity: 1;
        }
    }
}

/* Star chart */
.star-chart {
    overflow: visible;

    img.arcai-shard {
        width: 280px;
        margin-left: 50px;
        z-index: 2;
    }

    img.star-map {
        /* width: 104vw; */
        max-width: none;
        margin-left: -70px;
        margin-top: -400px;
        position: relative;
    }

    .aencc {
        position: sticky;
        right: 0;
        top: 90%;
        margin-bottom: 10%;
        margin-top: -100px;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        z-index: 3;

        p {
            font-size: 1rem;
            font-weight: 600;
            color: var(--grey-color);
        }

        .txtblock {
            display: flex;
            flex-direction: column;
            width: 180px;
            gap: 4px;

            .tb-1 {
                display: flex;
                gap: 6px;

                .v-bar {
                    height: 16px;
                    width: 6px;
                    background-color: var(--grey-color);
                }

                .tb-1-r {
                    display: flex;
                    flex-direction: column;
                    align-items: flex-start;
                    width: 100%;
                    gap: 4px;

                    .tb-1-r-bar1 {
                        width: 90%;
                        height: 5px;
                        align-self: end;
                        background-color: var(--grey-color);
                    }

                    .tb-1-r-1 {
                        display: flex;
                        width: 100%;
                        align-items: center;
                        gap: 10px;

                        .tb-1-r-1-bar1 {
                            width: 100%;
                            height: 5px;
                            background-color: var(--grey-color);
                            opacity: 0.4;
                        }

                        .tb-1-r-1-bar2 {
                            width: 20px;
                            height: 9px;
                            background-color: var(--grey-color);
                        }
                    }
                }
            }

            .tb-2 {
                display: flex;
                gap: 6px;

                .tb-2-l {
                    display: flex;
                    flex-direction: column;
                    justify-content: space-around;
                    width: 100%;

                    .tb-2-l-bar1 {
                        width: 70%;
                        height: 7px;
                        align-self: end;
                        background-color: var(--grey-color);
                    }

                    .tb-2-l-bar2 {
                        height: 4px;
                        width: 80%;
                        background-color: var(--white2-color);
                        opacity: 0.7;
                    }

                    .redbar {
                        width: 10%;
                        height: 7px;
                        background-color: var(--primary-color);
                        animation: width 9s infinite ease-in-out alternate;
                    }
                }

                .tb-2-r {
                    width: 25px;

                    svg {
                        align-self: flex-end;
                        width: 25px;
                        height: auto;
                        stroke-width: 4px;
                        fill: none;
                        stroke: var(--white-color);
                        animation: stroke-width 8s infinite ease-in alternate;
                    }
                }
            }
        }
    }

    .profession-container {
        display: flex;
        justify-content: flex-end;
        color: var(--grey-color);
        margin-top: -10rem;
        margin-bottom: 40rem;

        .profession {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            margin-right: 2%;

            .profession-1 {
                display: flex;
                flex-direction: column;
                margin-top: 100px;
                height: 840px;

                #profession {
                    padding: 20px 0;
                    opacity: 0.6;
                    transition: all 500ms linear;
                    font-weight: 200 !important;

                    &.highlight {
                        opacity: 1;
                        -webkit-text-stroke: unset;
                        color: var(--grey-color);
                    }
                }

                .profession-sticky {
                    position: sticky;
                    top: 230px;
                }

            }

            .bg-text-container {
                position: relative;

                .bg-text {
                    font-size: clamp(13rem, 18vw + 14rem, 70rem);
                    font-weight: 100;
                    opacity: 0.03;
                    position: absolute;
                    top: -310px;
                    animation: slide-left auto linear;
                    animation-timeline: scroll(block);
                    z-index: -1;
                }
            }
        }
    }

    .location-container {
        position: relative;
        top: -80vw;
        margin-left: auto;
        display: flex;
        justify-content: space-between;
        width: calc(22vw + 35rem);
        height: 180px;
        color: var(--grey-color);

        .location {
            display: flex;
            align-items: flex-start;
            flex-direction: column;
        }

        h1 {
            align-self: flex-end;
            color: var(--primary-color);
            font-weight: 600;
        }
    }

}

@keyframes slide-left {
    from {
        transform: translateX(150%);
    }

    to {
        transform: translateX(-800%);
    }
}


@keyframes stroke-width {
    from {
        stroke-width: 4px;
    }

    to {
        stroke-width: 14px;
    }
}

@keyframes width {
    from {
        width: 10%;
    }

    to {
        width: 70%;
    }
}

/* Refernce Sheet */
@property --gradient-angle {
    syntax: "<angle>";
    initial-value: 0deg;
    inherits: false;
}

.reference-sheet {
    padding-top: 20%;
    margin-bottom: 6rem;

    .sectionTitle {
        padding-bottom: 1.5rem;
        font-weight: 500;
        letter-spacing: 1px;
    }

    .reference-sheet-container {
        border-radius: 0.8rem;
        position: relative;
        max-width: 90%;
        margin: 0 auto;

        &::before,
        &::after {
            content: "";
            position: absolute;
            inset: -0.4rem;
            z-index: -1;
            background: conic-gradient(from var(--gradient-angle),
                    var(--black-color),
                    var(--black-color),
                    var(--primary-hover-color),
                    var(--black-color),
                    var(--black-color),
                    var(--black-color),
                    var(--primary-color));
            border-radius: inherit;
            animation: rotation 20s linear infinite;
        }

        &::after {
            filter: blur(3.5rem);
        }

        .image-wrapper {
            position: relative;
            overflow: hidden;
            border-radius: 0.8rem;
            transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);

            &:hover {
                cursor: pointer;
                transform: scale(1.02);

                .hover-indicator {
                    opacity: 1;
                    transform: translateY(0);
                }
            }

            /* Always partially show indicator by default */
            .hover-indicator {
                position: absolute;
                bottom: 20px;
                right: 20px;
                background: rgba(0, 0, 0, 0.6);
                backdrop-filter: blur(8px);
                -webkit-backdrop-filter: blur(8px);
                color: white;
                padding: 12px 20px;
                border-radius: 30px;
                display: flex;
                align-items: center;
                gap: 10px;
                opacity: 1;
                /* Always partially visible */
                transform: translateY(0);
                /* Start in final position */
                transition: all 0.3s ease;
                border: 1px solid rgba(255, 255, 255, 0.1);
                box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);

                svg {
                    width: 18px;
                    height: 18px;
                }

                span {
                    font-size: 0.9rem;
                    font-weight: 500;
                }
            }

            /* Enhanced indicator on devices with hover capability */
            @media (hover: hover) {
                .hover-indicator {
                    opacity: 0;
                    /* More subtle on desktop */
                    transform: translateY(10px);
                    /* Slight animation on desktop */
                }
            }
        }
    }

    .hint {
        margin-top: 12px;
        text-align: right;
        font-size: 0.85rem;
        color: var(--grey-color);
        opacity: 0.7;
    }
}

@keyframes rotation {
    from {
        --gradient-angle: 0deg;
    }

    to {
        --gradient-angle: 360deg;
    }
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
    .reference-sheet {
        padding-top: 30%;
        margin-bottom: 4rem;

        .reference-sheet-container {
            max-width: 95%;

            &::before,
            &::after {
                inset: -0.3rem;
            }

            &::after {
                filter: blur(2rem);
            }

            .image-wrapper {
                .hover-indicator {
                    bottom: 15px;
                    right: 15px;
                    padding: 8px 16px;

                    svg {
                        width: 16px;
                        height: 16px;
                    }

                    span {
                        font-size: 0.8rem;
                    }
                }
            }
        }
    }
}

/* Small mobile devices */
@media (max-width: 480px) {
    .reference-sheet {
        .reference-sheet-container {
            .image-wrapper {
                .hover-indicator {
                    bottom: 10px;
                    right: 10px;
                    padding: 6px 12px;

                    span {
                        font-size: 0.75rem;
                    }
                }
            }
        }
    }
}

/* About me */
.aboutme {
    padding-top: 20vh;
    /* padding-bottom: 10vh; */

    .aboutme-container {
        gap: 20px;
        text-align: left;
        align-items: flex-start;

        .pop-out-image {
            aspect-ratio: 1;
            position: relative;
            width: 35%;
            max-width: 550px;
            height: 50vh;

            figure {
                margin: 0;
                overflow: hidden;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                position: absolute;
                width: 100%;

                figcaption {
                    position: absolute;
                    bottom: 200px;
                    left: 70px;
                    background-color: rgba(16, 16, 20, 0.7);
                    color: var(--white2-color);
                    padding: 5px 10px;
                    border-radius: 4px;
                    font-size: 0.8rem;
                    z-index: 3;
                    writing-mode: vertical-rl;
                    white-space: nowrap;

                    @media (max-width: 768px) {
                        bottom: 120px;
                        left: 10px;
                        writing-mode: horizontal-tb;
                    }
                }

                &:last-of-type {
                    overflow: visible;
                    clip-path: inset(-200% 0 0 0);

                    img {
                        overflow: visible;
                    }
                }

                img {
                    left: 68%;
                    object-fit: cover;
                    position: absolute;
                    translate: -50% 0;
                    top: 0%;
                    width: 100%;
                    filter: brightness(var(--b, 1));

                    &:first-of-type {
                        filter: brightness(1);
                    }
                }
            }
        }

        .aboutme-text {
            margin-right: auto;

            .social-links {
                display: flex;
                gap: 1.5rem;
                margin-top: 1rem;
                flex-wrap: wrap;
            }

            .social-link {
                display: flex;
                align-items: center;
                gap: 0.75rem;
                text-decoration: none;
                color: var(--white2-color);
                padding: 0.5rem 1rem;
                border-radius: 2rem;
                background: linear-gradient(45deg, var(--black3-color), var(--black2-color));
                transition: all 0.3s ease;

                &:hover {
                    transform: translateY(-2px);

                    .social-icon {
                        transform: scale(1.1);
                    }
                }

                &.twitter {
                    background: linear-gradient(135deg, #1a1a1a, #1a1a1a, #1a2733);

                    &:hover {
                        animation: twitter-pulse 2s ease-in-out infinite;
                        background: linear-gradient(135deg, #97c9ff, #1DA1F2, #1a8cd8);
                        box-shadow: 0 5px 15px rgba(29, 161, 242, 0.2);

                        .social-icon {
                            background: #1DA1F2;

                            svg {
                                fill: #ffffff;
                                width: 1.2rem;
                                height: 1.2rem;
                            }
                        }
                    }
                }

                &.facebook {
                    background: linear-gradient(135deg, #1a1a1a, #1a1a1a, #1a1f33);

                    &:hover {
                        animation: facebook-pulse 2s ease-in-out infinite;
                        background: linear-gradient(135deg, #103c7a, #1877f2, #0062e0);
                        box-shadow: 0 5px 15px rgba(24, 119, 242, 0.2);

                        .social-icon {
                            background: #1877f2;

                            svg {
                                fill: #ffffff;
                            }
                        }
                    }
                }

                &.discord {
                    background: linear-gradient(135deg, #1a1a1a, #1a1a1a, #1a1a33);

                    &:hover {
                        animation: discord-pulse 2s ease-in-out infinite;
                        background: linear-gradient(135deg, #404EED, #5865F2, #7289da);
                        box-shadow: 0 5px 15px rgba(88, 101, 242, 0.2);

                        .social-icon {
                            background: #5865F2;

                            svg {
                                fill: #ffffff;
                            }
                        }
                    }
                }

                &.vrchat {
                    background: linear-gradient(135deg, #1a1a1a, #1a1a1a, #07242b);

                    &:hover {
                        animation: vrchat-pulse 2s ease-in-out infinite;
                        background: linear-gradient(135deg, #07242b, #0c2c34, #084858);
                        box-shadow: 0 5px 15px rgba(7, 36, 43, 0.3);

                        .social-icon {
                            background: #084858;

                            svg {
                                fill: #ffffff;
                            }
                        }
                    }
                }

                .social-icon {
                    width: 2rem;
                    height: 2rem;
                    background: var(--grey-color);
                    border-radius: 50%;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    transition: all 0.5s ease;

                    svg {
                        width: 1.2rem;
                        height: 1.2rem;
                        fill: var(--black2-color);
                        transition: fill 0.3s ease;
                    }

                    &.twitter {
                        font-size: 1.2rem;
                        color: var(--black2-color);
                        transition: color 0.3s ease;
                    }

                    &.instagram svg {
                        width: 1.1rem;
                        height: 1.1rem;
                    }
                }

                span {
                    font-weight: 500;
                    transition: color 0.3s ease;
                }
            }
        }
    }

    .feedback-form {
        margin: 2rem 0;
        position: relative;

        h6 {
            position: absolute;
            top: 0;
            left: 0;
            transform: translateY(-50%);
            font-size: 0.9rem;
            color: rgba(206, 223, 252, 0.7);
            background: var(--background-color);
            padding: 0 0.5rem;
            transition: all 0.3s ease;
        }

        textarea {
            width: 100%;
            min-height: 100px;
            padding: 1.2rem;
            margin: 0.5rem 0;
            background: transparent;
            border: 1px solid rgba(60, 64, 93, 0.3);
            border-radius: 8px;
            color: #CEDFFC;
            font-family: 'Open Sans', sans-serif;
            resize: none;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            font-size: 0.95rem;
            line-height: 1.5;
            backdrop-filter: blur(5px);
            -webkit-backdrop-filter: blur(5px);

            &:focus {
                outline: none;
                border-color: #CB2040;
                box-shadow: 0 0 0 4px rgba(203, 32, 64, 0.1);
                background: rgba(203, 32, 64, 0.03);
            }

            &::placeholder {
                color: rgba(206, 223, 252, 0.3);
                transition: opacity 0.3s ease;
            }

            &:focus::placeholder {
                opacity: 0;
            }
        }

        .feedback-btn {
            background: linear-gradient(135deg, #CB2040, #FF446C);
            color: #FFFFFF;
            border: none;
            padding: 0.75rem 2rem;
            border-radius: 25px;
            cursor: pointer;
            font-weight: 500;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            margin-top: 1rem;
            position: relative;
            overflow: hidden;

            &:hover {
                transform: translateY(-2px);
                box-shadow: 0 5px 15px rgba(203, 32, 64, 0.2);

                &::before {
                    left: 100%;
                }
            }

            &:active {
                transform: translateY(0);
                box-shadow: 0 2px 8px rgba(203, 32, 64, 0.2);
            }

            &::before {
                content: '';
                position: absolute;
                top: 0;
                left: -100%;
                width: 100%;
                height: 100%;
                background: linear-gradient(90deg,
                        transparent,
                        rgba(255, 255, 255, 0.2),
                        transparent);
                transition: 0.5s;
            }
        }
    }

    .about-subsection {
        p {
            text-indent: 2rem;
        }
    }

    .social-splash {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: var(--background-color);
        z-index: 9999;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease;

        &.active {
            opacity: 1;
            visibility: visible;
        }

        &.twitter {
            background: linear-gradient(135deg, #97c9ff, #1DA1F2, #1a8cd8);
        }

        &.facebook {
            background: linear-gradient(135deg, #103c7a, #1877f2, #0062e0);
        }

        &.discord {
            background: linear-gradient(135deg, #404EED, #5865F2, #7289da);
        }

        &.vrchat {
            background: linear-gradient(135deg, #07242b, #0c2c34, #084858);
        }

        .splash-icon {
            width: 120px;
            height: 120px;
            display: flex;
            align-items: center;
            justify-content: center;
            transform: scale(0);

            svg {
                width: 100%;
                height: 100%;
                fill: #FFFFFF;
            }
        }
    }
}

@keyframes twitter-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(29, 161, 242, 0.4);
    }

    50% {
        box-shadow: 0 0 0 15px rgba(29, 161, 242, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(29, 161, 242, 0);
    }
}

@keyframes facebook-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(24, 119, 242, 0.4);
    }

    50% {
        box-shadow: 0 0 0 15px rgba(24, 119, 242, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(24, 119, 242, 0);
    }
}

@keyframes discord-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(88, 101, 242, 0.4);
    }

    50% {
        box-shadow: 0 0 0 15px rgba(88, 101, 242, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(88, 101, 242, 0);
    }
}

@keyframes vrchat-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(7, 36, 43, 0.4);
    }

    50% {
        box-shadow: 0 0 0 15px rgba(7, 36, 43, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(7, 36, 43, 0);
    }
}

/* styling */
.styling {
    text-align: left;

    .color-1 {
        background: var(--primary-color);
    }

    .color-2 {
        background: var(--secondary-color);
    }

    .color-3 {
        background: var(--tertiary-color);
    }

    .color-4 {
        background: var(--blue-color);
    }

    .color-5 {
        background: var(--green-color);
    }

    .color-6 {
        background: var(--grey-color);
    }

    .seperator {
        width: 100%;
        position: relative;
        padding-top: 20px;
        margin: 0 auto;
        margin-bottom: 50px;
        border-bottom: 1px solid #EDEDED;
    }

    .sectionHeading {
        width: 100%;
        margin: 0 auto;
        text-align: left;
    }

    .sectionTitle {
        font-family: sans-serif;
        font-size: 12px;
        font-weight: 300;
        color: #848484;
    }

    .sectionSeperator {
        position: relative;
        padding-top: 5px;
        margin: 0 auto;
        border-bottom: 1px solid #CCCCCC;
    }

    ul#colors {
        width: 100%;
        position: relative;
        padding-top: 30px;
        margin: 0 auto;
        margin-bottom: 75px;
        text-align: center;
        list-style: none;
    }

    li.colorCircle {
        width: 100px;
        height: 100px;
        border-radius: 50%;
        display: inline-block;
        margin-right: 20px;
    }

    .colorHex {
        position: relative;
        color: #D1D1D1;
        top: 120px;
        right: 6px;
    }

    #typography {
        width: 100%;
        position: relative;
        padding-top: 10px;
        margin: 0 auto;
        margin-bottom: 75px;
    }
}

/* Footer */
.footer-spacer {
    height: 50vw;
}

.footer {
    padding-left: var(--side-padding);
    padding-right: var(--side-padding);
    width: 100%;
    /* max-width: var(--max-width); */
    margin-top: 200px;
    align-items: flex-end;
    position: relative;

    .footer-bg {
        position: absolute;
        max-width: var(--max-width);
        z-index: -1;

        .footer-overlay {
            position: relative;
            bottom: 150px;
            height: 200px;
            width: 100%;
            background-image: linear-gradient(to bottom, transparent 0%, var(--background-color) 60%);
            z-index: 2;
        }
    }

    .footer-container {
        display: flex;
        justify-content: space-between;
        width: 100%;
        max-width: var(--max-width);
        padding: 20px 0;

        .footer-left {
            align-items: flex-start;
            flex-basis: 350px;

            .link {
                margin-top: 8px;
                margin-bottom: 30px;
            }

            img {
                object-fit: contain;
                height: 130px;
                width: auto;
                margin: 12px 0;
            }
        }

        .footer-center {
            margin-top: auto;

            svg {
                height: 50px;
            }
        }

        .footer-right {
            margin-top: auto;
            align-items: flex-end;
            flex-basis: 350px;
            --box-size: 50px;

            .color-box {
                width: var(--box-size);
                height: var(--box-size);
                border-radius: 20%;
                background-color: var(--grey-color);
                cursor: pointer;
                position: relative;
            }

            .color-box-container {
                justify-content: end;
                gap: 10px;
                margin-right: 0;
                margin-top: 10px;
                margin-bottom: 14px;


                .color-box:nth-child(1) {
                    background-color: var(--primary-color);
                }

                .color-box:nth-child(2) {
                    background-color: var(--secondary-color);
                }

                .color-box:nth-child(3) {
                    background-color: var(--tertiary-color);
                }

                .color-box:nth-child(4) {
                    background-color: var(--white-color);
                }

                .color-box:nth-child(5) {
                    background-color: var(--white2-color);
                }

                .color-box:nth-child(6) {
                    background-color: var(--white3-color);
                }

                .color-box:nth-child(7) {
                    background-color: var(--black-color);
                }

                .color-box:nth-child(8) {
                    background-color: var(--black2-color);
                }

                .color-box:nth-child(9) {
                    background-color: var(--black3-color);
                }

                .color-box:nth-child(10) {
                    background-color: var(--grey-color);
                }
            }
        }
    }

    .footer-nav a {
        color: var(--grey-color);
        text-decoration: none;
        transition: color 0.2s ease;
    }

    .footer-nav a:hover {
        color: var(--primary-color);
    }
}

@media (max-width:1025px) {
    .hero {
        .triangles {
            z-index: 1;
        }

        .video-overlay {
            height: 150px;
            bottom: -170px;
        }
    }

    .character {
        padding-top: 0;
        margin-top: -80px;

        .bio-bg {
            height: 100%;
            width: 70%;
            object-position: 70px 170px;
        }

        .character-detail {
            flex-direction: column;

            .content {
                min-height: 60vh;
            }
        }

        .character-header {
            .character-name {
                .character-species {
                    margin-top: 0;
                }

                h1 {
                    height: 100px;

                    &::after {
                        font-size: calc(10vw + 2rem);
                        margin-bottom: 14px;
                    }
                }
            }

        }
    }

    .star-chart {
        .profession-container {
            justify-content: flex-end;

            .profession {
                .profession-1 {
                    height: 480px;
                }
            }
        }

        .location-container {
            width: 90%;
            top: -1200px;
            justify-content: flex-end;
            align-items: baseline;
            height: 100%;

            .location {
                writing-mode: vertical-rl;
            }
        }

        img.star-map {
            margin-top: -180px;
            height: 100vh;
            width: auto;
        }
    }

    .reference-sheet {
        .reference-sheet-container {
            img {
                /* height: 80svh; */
                object-fit: cover;
                object-position: 0% top;
            }
        }
    }

    .aboutme {
        .aboutme-container {
            max-width: 800px;

            .pop-out-image {
                width: 100%;
                height: 50vh;
                /* min-width: 70vw; */

                figure {
                    img {
                        left: 50%;
                        width: 100%;
                    }
                }
            }
        }

        .aboutme-text {
            margin-top: -100px;
        }
    }

    .footer {
        padding-left: var(--side-margin-mobile);
        padding-right: var(--side-margin-mobile);
        margin-top: 40vh;

        .footer-bg {
            img {
                object-position: 5% -50px;
                height: 70vh;
            }

            .footer-overlay {
                bottom: 170px;
            }
        }

        .footer-container {
            flex-direction: column;

            .footer-left {
                width: 100%;
                flex-basis: auto;
            }

            .footer-center {
                position: absolute;
                bottom: 0;
                right: 0;
            }

            .footer-right {
                width: 100%;
                flex-basis: 0;
                flex-direction: row-reverse;
                flex-wrap: wrap;
                align-items: baseline;

                p {
                    width: 100%;
                    text-align: left;
                }
            }
        }
    }
}

/* Back to top button */
.back-to-top-btn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: unset;
    color: white;
    border: none;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 98;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.3s ease;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    &.visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    &:hover {
        /* background-color: var(--secondary-color); */
        transform: translateY(-5px);
    }

    svg {
        width: 24px;
        height: 24px;
    }

    /* Hide the button when close to the footer */
    .footer-visible & {
        opacity: 0;
        visibility: hidden;
        transform: translateY(20px);
    }
}