* {
    font-family: Verdana, Tahoma, sans-serif, sans-serif;
    box-sizing: border-box;
}

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

body {
    min-height: 100vh;
    margin: 0;
    background: black;
}

.flex-grid {
    margin-top: 0px;
    columns: 400px;
    /* display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 3rem; */
}

.sub-grid-1 {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.sub-grid-2 {
    display: flex;
    flex-direction: column;
}

.sub-grid-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

.sub-grid-4 {
    display: grid;
    grid-template-columns: 2fr 1fr 2fr 1fr;
}

.sub-grid-5 {
    display: grid;
    grid-template-columns: 3fr 2fr;
}

.end-text {
    margin: 5px;
    display: flex;
    align-content: center;
    justify-content: center;
}

.end-img {
    max-width: 8vw;
}

.grid-image {
    flex: 1 1 clamp(200px, 25%, 400px);
    /* max-width: clamp(200px, 25%, 400px); */
    /* aspect-ratio: 1 / 1; */
    overflow: hidden;
    padding-top: 5%;
    padding-left: 2%;
    padding-right: 2%;
}

.grid-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    display: block;
    cursor: zoom-in;
}

.grid-image iframe {
    aspect-ratio: 16 / 9;
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
    border: none;
}

.lightbox {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.lightbox img {
    max-width: 90%;
    max-height: 90%;
    border-radius: 10px;
}

.lightbox.hidden {
    display: none;
}

.close-btn {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 2rem;
    color: white;
    cursor: pointer;
    user-select: none;
}

nav {
    position: sticky;
    top: 0;
    background: transparent;
    background-color: transparent;
    max-width: 100%;
    display: flex;
    justify-content: left;
    margin-top: 0;
    margin-left: 20px;
}

nav ul {
    padding: 0;
    width: auto;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 80px;
}

.nav-text-image {
    height: 80px;
    width: auto;
    max-width: 500px;
    object-fit: contain;
    display: block;
    margin-right: 40px;
    margin-top: 0;
}

#phone-nav-logo {
    display: none;
    width: 50%;
    margin: 0 auto;
    align-self: center;
}

#phone-nav-socials-container {
    display: none;
    flex-direction: row;

}


nav li {
    /* height: 50px; */
}

.top-nav-bar-portfolio {
    display: flex;
    flex-direction: row;
    align-items: center;
}

nav a {
    /* height: 100%; */
    padding: 0 30px;
    align-items: center;
    color: white;
    font-size: xx-large;
    text-decoration: none;
}

#open-nav-button {
    display: none;
    background: none;
    border: none;
    padding: 1em;
    margin-left: auto;
    cursor: pointer;
    position: fixed;
    top: 1px;
    right: 1px;
}

#close-nav-button {
    display: none;
    background: none;
    border: none;
    padding: 1em;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 0;
}

.portfolio-nav-logo {
    width: 10%;
}

.portfolio-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
    z-index: -1;
    pointer-events: none;
}

.selected {
    text-decoration: underline;
}

.landing-page-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100vh;
}

.landing-page-image {
    margin-top: 13vh;
    margin-bottom: auto;
    max-width: 70%;
    max-height: 100%;
    object-fit: contain;
}

#bg-video {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
    z-index: -1;
    pointer-events: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    border: none;
    max-width: 100%;
    max-height: 100%;
}

/* Hide video controls on all browsers */
#bg-video::-webkit-media-controls {
    display: none !important;
}

#bg-video::-webkit-media-controls-panel {
    display: none !important;
}

#bg-video::-webkit-media-controls-play-button {
    display: none !important;
}

#bg-video::-webkit-media-controls-start-playback-button {
    display: none !important;
}

#bg-video::-moz-media-controls {
    display: none !important;
}



.landing-page-socials-container {
    margin-top: 1%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.social-icon {
    width: 40px;
    height: 40px;
    display: block;
    margin: 0 10px;
    color: white;
}

main {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

footer {
    color: white;
    text-align: center;
    padding: 1rem;
}

.contact-container {
    display: flex;
    height: 70vh;
    align-items: normal;
    justify-content: center;
}

.contact-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    margin: 0 auto;
}

/* #contact-title-img {
    max-width: 10%;
} */

.contact-title {
    display: flex;
    width: 30%;
}

.contact-title img {
    width: 100%;
    height: 100%;
    margin-top: 10px;
    object-fit: contain;
    display: block;
}

.contact-form h2 {
    font-size: 45px;
    margin-bottom: 5px;
    color: white;
}

.contact-inputs {
    width: 90%;
    height: 50px;
    border: 3px solid black;
    outline: none;
    box-shadow: none;
    color: black;
    background-color: rgba(255, 255, 255, 0.3);
}

.contact-container button {
    margin-top: 20px;
    background-color: transparent !important;
    color: white;
    font-weight: bold;
    font-size: 1.2em;
    letter-spacing: 1px;
    border: 4px solid white;
}


.contact-inputs:focus {
    border-width: 4px;
}


.contact-form textarea {
    height: 200px;
    resize: none;
}

.contact-page-image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    outline: none;
    font-weight: 500;
}

.contact-form button {
    background-color: transparent;
    padding: 10px 40px 10px 40px;
    border-width: 3px;
    box-sizing: border-box;
    background-color: white;
}

.contact-form button:hover {
    outline: 1px solid black;
    cursor: pointer;
}

.contact-form input,
.contact-form textarea {
    width: 50%;
    padding: 10px;
    margin-bottom: 10px;
}

@media (max-width:800px) {
    .contact-page-image {
        display: none;
    }

    .contact-form input,
    .contact-form textarea {
        width: 80%;
        padding: 10px;
        margin-bottom: 10px;
    }

    .contact-title {
        width: 50%;
        margin-top: 8%;
    }
}


#game-screen {
    position: fixed;
    /* or absolute */
    top: 0;
    left: 0;
    width: 100vw;
    /* 100% of viewport width */
    height: 100vh;
    /* 100% of viewport height */
    border: none;
    /* remove iframe border */
}

@media (max-width: 700px) {
    nav {
        background-color: black;
        position: fixed;
        top: 0;
        right: -100%;
        height: 100vh;
        width: 100vh;
        z-index: 10;
    }

    nav.show {
        right: 0%
    }

    nav ul {
        flex-direction: column;
        width: 100%;
        gap: 2rem;
        height: auto;
        /* Add vertical spacing between nav items */
        /* Add space at the top */
    }

    nav a {
        width: 100%;
        padding: 1.5rem 0;
        /* Increase vertical padding for more space */
        text-align: center;

    }

    #open-nav-button {
        display: block;
    }

    #close-nav-button {
        display: block;
    }

    nav.show #phone-nav-logo {
        display: block;
    }

    nav.show #phone-nav-socials-container {
        display: flex;
    }

    .nav-text-image {
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

    .landing-page-socials-container {
        margin-top: 10%;
    }

    .landing-page-image {
        margin-top: 30vh;
        max-width: 110%;
    }

    .end-img {
        max-width: 50vw;
    }
}