/* =========================
   GLOBAL
========================= */

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
}

body {
    background-color: black;
    color: white;
    font-family: Arial, sans-serif;
    text-align: center;
}


/* =========================
   TOP WHITE NAV
========================= */

.top-bar {
    width: 100%;
    height: 105px;

    background-color: white;

    position: relative;

    display: flex;
    align-items: center;

    overflow: visible;

    z-index: 50;
}


/* =========================
   HAMBURGER
========================= */

.menu-button {
    position: absolute;

    left: 55px;
    top: 50%;

    transform: translateY(-50%);

    background: none;
    border: none;

    padding: 0;

    cursor: pointer;

    z-index: 60;
}

.menu-button span {
    display: block;

    width: 34px;
    height: 2px;

    background-color: #333;

    margin: 9px 0;
}


/* =========================
   DROPDOWN MENU
========================= */

.dropdown-menu {
    position: absolute;

    top: 78px;
    left: 55px;

    width: 190px;

    background-color: white;

    display: flex;
    flex-direction: column;

    padding: 10px 0;

    opacity: 0;
    visibility: hidden;

    transform: translateY(-8px);

    transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s;

    z-index: 100;

    box-shadow:
        0 8px 24px
        rgba(0, 0, 0, 0.15);
}

.dropdown-menu.open {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);
}

.dropdown-menu a {
    color: black;

    text-decoration: none;
    text-align: left;

    font-size: 16px;

    padding: 13px 18px;
}

.dropdown-menu a:hover {
    background-color: #f2f2f2;
}


/* =========================
   MOTORCYCLE FIEND
========================= */

.nav-fiend {
    position: absolute;

    width: 130px;

    left: 50%;

    transform: translateX(-50%);

    animation:
        ride-in
        0.65s
        ease-out
        forwards;
}

@keyframes ride-in {

    from {
        left: 110%;
    }

    to {
        left: 50%;
    }

}


/* =========================
   HERO
========================= */

.hero {
    position: relative;

    width: 100%;

    height:
        calc(
            100vh - 180px
        );

    background-color: black;

    overflow: hidden;

    z-index: 1;
}


/* =========================
   WARP VIDEO
========================= */

.hero-warp-video {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;
}


/* =========================
   HERO CONTENT
========================= */

.hero-content {
    position: absolute;

    top: 50%;
    left: 50%;

    transform:
        translate(
            -50%,
            -50%
        );

    z-index: 2;
}


/* =========================
   ENTER FIENDZWORLD BUTTON
========================= */

.enter-button {
    display: inline-block;

    background-color: white;
    color: black;

    padding:
        16px 32px;

    font-size: 19px;
    font-weight: 500;

    border-radius: 8px;

    text-decoration: none;

    opacity: 0;

    transform:
        scale(0);

    transition:
        background-color
        0.2s
        ease;
}

.enter-button.show {
    animation:
        portal-button-in
        0.55s
        cubic-bezier(
            0.2,
            0.9,
            0.3,
            1.25
        )
        forwards;
}

@keyframes portal-button-in {

    0% {
        opacity: 0;

        transform:
            scale(0);
    }

    60% {
        opacity: 1;

        transform:
            scale(1.12);
    }

    100% {
        opacity: 1;

        transform:
            scale(1);
    }

}

.enter-button:hover {
    background-color: #f2f2f2;
}


/* =========================
   SOCIAL FOOTER
========================= */

.social-banner {
    width: 100%;
    height: 75px;

    background-color: white;

    display: flex;
    align-items: center;
    justify-content: flex-end;

    padding-right: 45px;
}


/* =========================
   SOCIAL LINKS
========================= */

.social-links {
    display: flex;

    align-items: center;
    justify-content: flex-end;

    gap: 16px;
}

.social-links a {
    width: 56px;
    height: 56px;

    display: flex;

    align-items: center;
    justify-content: center;

    line-height: 0;
}


/* =========================
   SOCIAL ICONS
========================= */

.social-icon {
    width: 52px;
    height: 52px;

    object-fit: contain;

    display: block;

    transition:
        transform
        0.2s
        ease;
}


/* X */

.social-links
a:first-child
.social-icon {
    width: 38px;
    height: 38px;
}

.social-links
a:hover
.social-icon {
    transform:
        scale(1.08);
}


/* =========================
   MOBILE
========================= */

@media (max-width: 700px) {

    .top-bar {
        height: 90px;
    }

    .menu-button {
        left: 25px;
    }

    .menu-button span {
        width: 30px;
    }

    .dropdown-menu {
        top: 70px;
        left: 25px;

        width: 175px;
    }

    .nav-fiend {
        width: 110px;
    }

    .hero {
        /*
           svh is more stable on phones
           when Safari/Chrome browser bars
           expand and collapse.
        */

        height:
            calc(
                100svh - 155px
            );

        min-height: 420px;
    }

    .hero-warp-video {
        object-position:
            center center;

        transform:
            translateZ(0);

        backface-visibility:
            hidden;
    }

    .hero-content {
        width:
            calc(
                100% - 36px
            );
    }

    .enter-button {
        max-width: 100%;

        padding:
            14px 25px;

        font-size: 17px;

        white-space: nowrap;
    }

    .social-banner {
        min-height: 65px;

        height: auto;

        padding-right: 20px;

        padding-top: 8px;

        padding-bottom:
            calc(
                8px +
                env(
                    safe-area-inset-bottom
                )
            );
    }

    .social-links {
        gap: 10px;
    }

    .social-links a {
        width: 45px;
        height: 45px;
    }

    .social-icon {
        width: 43px;
        height: 43px;
    }

    .social-links
    a:first-child
    .social-icon {
        width: 34px;
        height: 34px;
    }

}


/* =========================
   EXTRA SMALL PHONES
========================= */

@media (max-width: 390px) {

    .enter-button {
        padding:
            13px 20px;

        font-size: 16px;
    }

    .social-banner {
        padding-right: 12px;
    }

    .social-links {
        gap: 6px;
    }

}


/* =========================
   REDUCED MOTION
========================= */

@media (
    prefers-reduced-motion:
    reduce
) {

    .nav-fiend,
    .enter-button.show {
        animation:
            none !important;
    }

    .enter-button.show {
        opacity: 1;

        transform:
            scale(1);
    }

}

/* =========================================================
   FIEND RACER MOTORCYCLE LINK
========================================================= */

.nav-fiend-link {
    display: contents;
}

.nav-fiend-link .nav-fiend {
    cursor: pointer;
}

.nav-fiend-link:hover .nav-fiend {
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.35));
}