:root
{
    --bg-color-light: rgb(50, 200, 50);
    --bg-color-dark: rgb(25, 100, 25);

    --black-opacity: rgba(0, 0, 0, 0.25);
}

body
{
    margin: 0;
    color: rgb(255, 255, 0);
}

body > *
{
    color: rgb(255, 255, 0);
}

#title-container
{
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 0;

    align-content: stretch;
    height: 100vh;
    width: 25vw;

    background-color: var(--black-opacity);

    overflow-wrap: break-word;
}

#title-container > div.padding
{
    height: calc(100vh / 3);
}

#intro-title
{
    position: relative;
    text-align: left;
    width: 100%;

    overflow-wrap: break-word;
}

#intro-title > h1
{
    font-size: 4rem;
    text-align: center;
}

#heading-container
{
    display: flex;
    flex-direction: row;

    align-items: center;
    justify-content: center;

    width: 100vw;
    
    font-size: 1.25rem;
}

#heading
{
    position: fixed;

    display: flex;
    flex-direction: row;

    align-items: center;

    bottom: calc(100% - 4.5rem);
}

#heading-bg
{
    position: fixed;

    width: 60%;
    height: 3.5rem;
    border-radius: 1rem;
    background-color: var(--black-opacity);

    bottom: calc(100% - 4.5rem);
}

#heading > div
{
    padding: 1rem
}

#heading > div:hover > .hover-menu,
#heading > div:target > .hover-menu
{
    display: block;
    color: rgba(255, 255, 0, 1);
    background-color: rgba(0, 0, 0, 0.25);

    pointer-events: auto;
}

#heading > div:hover > .hover-menu > div,
#heading > div:target > .hover-menu > div
{
    display: flex;
    flex-direction: column;
}

.hover-menu > div > div
{
    padding-top: 8px;
    padding-bottom: 8px;
    transition: color 0.5s ease-in-out;
}

.hover-menu > div > div::before
{
    position: relative;
    display: block;

    height: 2px;
    width: 0%;

    background-color: rgb(255, 200, 0);

    content: "";
    bottom: -2rem;
    left: 50%;

    transition: width 0.5s ease-in-out, left 0.5s ease-in-out;
}

.hover-menu > div > div:hover::before,
.hover-menu > div > div:target::before
{
    width: 100%;
    left: 0;
}

.hover-menu > div > div:hover,
.hover-menu > div > div:target
{
    color: rgba(255, 200, 0, 1);
    cursor: pointer;
}

#heading > div:hover::before,
#heading > div::before
{
    position: relative;
    display: block;

    height: 2px;
    width: 125%;
    background-color: rgb(255, 255, 0);

    content: "";
    bottom: -2rem;
    left: -12.5%;
}

#heading > div:target::before,
#heading > div.selected::before
{
    width: 125%;
    left: -12.5%;
}

#heading > div::before
{
    width: 0%;
    left: 50%;

    transition: width 0.5s ease-in-out, left 0.5s ease-in-out;
}

.hover-menu
{
    pointer-events: none;
    display: hidden;
    position: fixed;
    top: 9.2%;

    color: rgba(255, 255, 0, 0);
    background-color: rgba(0, 0, 0, 0);
    transition: color 0.5s ease-in-out, background-color 0.5s ease-in-out;
    
    padding: 2rem;
    padding-top: 1rem;

    transform: translateX(-0.8rem);
}

#category-triangle
{
    display: inline-block;
    transition: transform 0.5s ease-in-out;
    font-size: 1rem;
    transform: rotateZ(0deg) translateY(2px);
}

#heading > div:hover > #category-triangle,
#heading > div:target > #category-triangle
{
    transform: rotateZ(180deg) translateY(2px);
}

.block
{
    background-color: rgba(0, 0, 0, 0.25);
    width: 50vw;

    overflow-wrap: break-word;
    font-size: 2rem;
    padding: 2rem;
}

.right
{
    margin-left: auto;
    right: 0;
}

.left
{
    margin-right: auto;
    left: 0;
}

@media screen and (max-width: 1400px)
{    
    #category-triangle
    {
        display: inline-block;
        transition: transform 0.5s ease-in-out;
        font-size: 1rem;
        transform: rotateZ(180deg) translateY(2px);
    }

    #heading > div:hover > #category-triangle,
    #heading > div:target > #category-triangle
    {
        transform: rotateZ(0deg) translateY(2px);
    }

    .hover-menu
    {
        top: calc(100% - 21.1rem);
    }

    .hover-menu > div
    {
        transform: translateY(0.75rem);
    }

    #heading > div.selected::before,
    #heading > div::before
    {
        bottom: -1.5rem !important;
    }

    #heading-container
    {
        bottom: 0;
    }

    #heading
    {
        bottom: 2rem;
        font-size: 1rem;
    }

    #heading > div
    {
        padding: 0.5rem;
        padding-top: 1rem;
    }

    #heading-bg
    {
        width: 60%;
        bottom: 1.5rem;
        height: 3.15rem;
    }

    #intro-title > h1
    {
        text-align: center;
        font-size: 4rem;

        top: -3rem;
    }

    #title-container
    {
        height: 16rem;
        width: 100vw;
    }
}

@media screen and (max-width: 600px)
{
    #intro-title > h1
    {
        text-align: center;
        font-size: 3rem;

        top: -2rem;
    }

    #title-container
    {
        height: 10rem;
        width: 100vw;
    }
}

@media (prefers-color-scheme: light)
{
    body
    {
        background-color: var(--bg-color-light);
    }
}

@media (prefers-color-scheme: dark)
{
    body
    {
        background-color: var(--bg-color-dark);
    }
}