body
{
    margin: 0;
    padding: 0;
    overflow: hidden;
    font-size: 16px;
    font-family: var(--regular_font);
    color: var(--white);
    background-color: var(--black);
}

.grid_background
{
    position: absolute;
    inset: 0;
    width: 100vw;
    height: 60vh;
    pointer-events: none;
    z-index: -1;
    background-image: linear-gradient(#222 1px, transparent 1px), linear-gradient(90deg, #222 1px, transparent 1px);
    background-size: 55px 55px;
    mask: radial-gradient(70% 110% at 50% 0%, rgb(0, 0, 0) 50%, rgba(0, 0, 0, 0.99) 54.68%, rgba(0, 0, 0, 0.97) 58.79%, rgba(0, 0, 0, 0.94) 62.4%, rgba(0, 0, 0, 0.9) 65.61%, rgba(0, 0, 0, 0.85) 68.52%, rgba(0, 0, 0, 0.79) 71.2%, rgba(0, 0, 0, 0.72) 73.75%, rgba(0, 0, 0, 0.65) 76.25%, rgba(0, 0, 0, 0.57) 78.8%, rgba(0, 0, 0, 0.48) 81.48%, rgba(0, 0, 0, 0.39) 84.39%, rgba(0, 0, 0, 0.3) 87.6%, rgba(0, 0, 0, 0.2) 91.21%, rgba(0, 0, 0, 0.1) 95.32%, rgba(0, 0, 0, 0) 100%);
    opacity: 0;
    animation: grid_fade_in 1.25s ease-out forwards;
}

@keyframes grid_fade_in
{
    from
    {
        opacity: 0;
    }
    to
    {
        opacity: 1;
    }
}

.animated_logo
{
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
}

.form_container
{
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.form_container > h1
{
    align-self: baseline;
    margin-top: -10vh;
    margin-bottom: 0;
    font-family: var(--title_font);
    font-size: 45px;
    text-align: center;
}

.form_container > span
{
    margin-bottom: 4vh;
    opacity: 0.8;
    font-size: 15px;
    text-align: center;
}

.form_container > form
{
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    width: 220px;
}

.form_container > .or
{
    margin-top: 8px;
    margin-bottom: 12px;
    font-size: 18px;
    color: var(--light);
    font-family: var(--title_font);
}

.form_container > .or::before,
.form_container > .or::after
{
    content: "";
    display: inline-block;
    width: 80px;
    height: 1px;
    background-color: var(--light);
    vertical-align: middle;
    margin: 0 8px;
}

form > input
{
    outline: none;
    border: 1px solid var(--accent);
    background-color: var(--background_solid);
    padding: 5px 8px;
    box-sizing: border-box;
    border-radius: 5px;
    color: var(--white);
    width: 220px;
    text-align: center;
    font-family: var(--title_font);
}

form > input:focus
{
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.form_container > form > span
{
    opacity: 0.8;
    font-size: 14px;
    width: 375px;
    text-align: center;
}

.form_container > form > span > .link
{
    font-size: 12px;
}

.arrow_link_button
{
    position: relative;
    width: 220px;
    margin-top: 5px;
    font-size: 18px;
    padding: 7px 20px;
    background-color: var(--white);
    color: black;
    backdrop-filter: brightness(0.25);
    border: none;
}

.arrow_link_button > div
{
    right: 15px;
    height: 18px;
    background-color: black;
}

.arrow_link_button:hover
{
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--white);
}

.arrow_link_button:hover > div
{
    background-color: var(--white);
}

.arrow_link_button > div::before
{
    background-image: url("../gfx/svg/horizontal_arrow_white.svg");
}

.arrow_link_button > div::after
{
    background-image: url("../gfx/svg/horizontal_arrow_black.svg");
}

.arrow_link_button:hover > div::before
{
    animation: hover_horizontal_main_arrow 0.6s ease forwards;
}

.arrow_link_button:hover > div::after
{
    animation: hover_horizontal_highlight_arrow 0.6s ease forwards;
}