:root {
    --vh: 1vh;
    --vw: 1vw;

    --foreground: #000;
    --background: #fff;
}

* {
    font-family: 'Roboto', sans-serif;
}

body {
    height: 100vh;
    width: 100vw;

    margin: 0;

    height: calc(var(--vh, 1vh) * 100);
    width: calc(var(--vw, 1vw) * 100);

    background-color: var(--background);

    overflow-x: hidden;

    user-select: none;
}

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

.curtain-container {
    position: absolute;
    height: 100vh;
    width: 100vw;

    height: calc(var(--vh, 1vh) * 100);
    width: calc(var(--vw, 1vw) * 100);

    overflow: hidden;

    z-index: 50;
}

.curtain-container:first-child {
    width: 100%;
    height: 100vh;
    background-color: var(--foreground);
    animation: curtain 0.7s ease-in-out forwards
}

@keyframes curtain {
    20% {
        width: 100%;
        right: 0;
    }

    100% {
        right: 0;
        width: 0%;
    }
}

nav {
    position: absolute;

    right: 0;

    padding: 16px 8px 8px 8px;
    color: var(--foreground);

    overflow: hidden;

    z-index: 51;
}

nav ul {
    float: right;

    padding: 0;
}

nav ul li {
    display: inline-block;
}

nav ul li:not(:first-child) {
    margin-left: 48px;
}

nav ul li:last-child {
    margin-right: 24px;
}

nav ul li a {
    display: inline-block;
    outline: none;
    color: var(--foreground);
    text-transform: uppercase;
    text-decoration: none;
    font-size: 1rem;
    letter-spacing: 1.2px;
    font-weight: 600;
    cursor: pointer;
}

@media screen and (max-width: 864px) {
    .nav-wrapper {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: -1;
        background: var(--background);
        opacity: 0;
        transition: all 0.2s ease;
    }

    .nav-wrapper ul {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 100%;
    }

    .nav-wrapper ul li {
        display: block;
        float: none;
        width: 100%;
        text-align: right;
        margin-bottom: 10px;
    }

    .nav-wrapper ul li:nth-child(1) a {
        transition-delay: 0.2s;
    }

    .nav-wrapper ul li:nth-child(2) a {
        transition-delay: 0.3s;
    }

    .nav-wrapper ul li:nth-child(3) a {
        transition-delay: 0.4s;
    }

    .nav-wrapper ul li:nth-child(4) a {
        transition-delay: 0.5s;
    }

    .nav-wrapper ul li:not(:first-child) {
        margin-left: 0;
    }

    .nav-wrapper ul li a, .nav-wrapper ul li a.box-emphasis {
        padding: 10px 24px;
        opacity: 0;
        color: var(--foreground);
        font-size: 2rem;
        font-weight: 600;
        letter-spacing: 1.2px;
        transform: translateX(-20px);
        transition: all 0.2s ease;
    }

    .nav-btn {
        position: fixed;
        right: 10px;
        top: 10px;
        display: block;
        width: 48px;
        height: 48px;
        cursor: pointer;
        z-index: 9999;
        border-radius: 50%;
    }

    .nav-btn i {
        display: block;
        width: 20px;
        height: 2px;
        background: var(--foreground);
        border-radius: 2px;
        margin-left: 14px;
    }

    .nav-btn i:nth-child(1) {
        margin-top: 16px;
    }

    .nav-btn i:nth-child(2) {
        margin-top: 4px;
        opacity: 1;
    }

    .nav-btn i:nth-child(3) {
        margin-top: 4px;
    }
}

#nav:checked+.nav-btn {
    transform: rotate(45deg);
}

#nav:checked+.nav-btn i {
    background: var(--foreground);
    transition: transform 0.2s ease;
}

#nav:checked+.nav-btn i:nth-child(1) {
    transform: translateY(6px) rotate(180deg);
}

#nav:checked+.nav-btn i:nth-child(2) {
    opacity: 0;
}

#nav:checked+.nav-btn i:nth-child(3) {
    transform: translateY(-6px) rotate(90deg);
}

#nav:checked~.nav-wrapper {
    z-index: 9990;
    opacity: 1;
}

#nav:checked~.nav-wrapper ul li a {
    opacity: 1;
    transform: translateX(0);
}

.hidden {
    display: none;
}

.fullscreen {
    height: 100%;
    width: 100%;
}

.about {
    position: relative;

    display: flex;

    background-color: #1e1e1e;
}

.about .stats-container {
    width: 80%;
    height: 80%;

    margin: auto;

    background-color: white;

    display: flex;
}

.about .stats-container .stats {
    width: 100% - 20px;
    padding: 10px;

    background-color: #000;
}



#hero {
    z-index: 1;

    display: flex;
}

#hero .title {
    margin: auto;
    padding: 25px;

    width: unset;

    font-size: 7.5rem;
    text-align: center;

    color: var(--foreground);
}

.wave {
    display: inline-block;
    transform-origin: 70% 80%;
}

.wave-hover {
    animation-name: wave-animation;
    animation-iteration-count: 2;
    animation-duration: 1.5s;
    animation-timing-function: linear;
}

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

    10% {
        transform: rotate(14.0deg)
    }

    20% {
        transform: rotate(-8.0deg)
    }

    30% {
        transform: rotate(14.0deg)
    }

    40% {
        transform: rotate(-4.0deg)
    }

    50% {
        transform: rotate(10.0deg)
    }

    60% {
        transform: rotate(0.0deg)
    }

    100% {
        transform: rotate(0.0deg)
    }
}

.emphasis {
    background: linear-gradient(-45deg, #22c1c3 0%, #a600fe 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.box-emphasis {
    background: linear-gradient(-45deg, rgba(34, 193, 195, 1) 0%, rgba(166, 0, 254, 1) 100%);
    padding: 10px;
    border-radius: 8px;
}

#scroll {
    bottom: 0;
}

#scroll a {
    padding-top: 60px;
}

#scroll a span {
    position: absolute;
    bottom: 30px;
    left: 50%;
    width: 30px;
    height: 50px;
    margin-left: -15px;
    border: 2px solid #fff;
    border-radius: 50px;
    box-sizing: border-box;
}

#scroll a span::before {
    position: absolute;
    top: 10px;
    left: 50%;
    content: '';
    width: 6px;
    height: 6px;
    margin-left: -3px;
    background-color: #fff;
    border-radius: 100%;
    -webkit-animation: sdb10 2s infinite;
    animation: sdb10 2s infinite;
    box-sizing: border-box;
}

@-webkit-keyframes sdb10 {
    0% {
        -webkit-transform: translate(0, 0);
        opacity: 0;
    }

    40% {
        opacity: 1;
    }

    80% {
        -webkit-transform: translate(0, 20px);
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}

@keyframes sdb10 {
    0% {
        transform: translate(0, 0);
        opacity: 0;
    }

    40% {
        opacity: 1;
    }

    80% {
        transform: translate(0, 20px);
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}


@media (prefers-color-scheme: dark) {
    :root {
        --background: black;
        --foreground: white;
    }
}