body {
    background-color: #000000;
    letter-spacing: 1px;
}

.centered {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.simple-grid {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    display: grid;
    gap: 1rem;

    grid-template-columns: repeat(auto-fit, minmax(500px, 700px));
}

.card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    
    box-sizing: border-box;
    padding: 20px;

    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #CCCCDD;

    background: #000000;
    font-size: 1rem;
    box-shadow: rgba(3, 8, 20, 0.1) 0px 0.15rem 0.5rem, rgba(2, 8, 20, 0.1) 0px 0.075rem 0.175rem;
    height: 100%;
    width: 100%;
    border-radius: 4px;
    transition: all 500ms;
    overflow: hidden;

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    border-color: #444455;
    border-width: 1px;
    border-style: solid;

    animation: cardEntrance 700ms ease-out;
    animation-fill-mode: backwards;
}

.grid-main {
    display: grid;
    gap: 1rem;

    grid-template-areas:
    'grid-bio grid-bio grid-bio grid-languages'
    'grid-bio grid-bio grid-bio grid-languages'
    'grid-simulations grid-gallery grid-gallery grid-gallery'
    'grid-simulations grid-gallery grid-gallery grid-gallery'
    'grid-contact grid-contact grid-contact grid-contact';

    width: minmax(500px, 600px);
    height: minmax(500px, 100%);

    grid-template-rows: 200px 200px 125px 125px 200px;
    grid-template-columns: repeat(4, minmax(200px, 250px));
}

.grid-bio {
    grid-area: grid-bio;
}

.grid-languages {
    grid-area: grid-languages;

    display: grid;
    gap: 1rem;

    grid-template-rows: repeat(auto-fit, 80px);
    grid-template-columns: repeat(1, 180px);
}

.grid-gallery {
    grid-area: grid-gallery;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    display: grid;
    gap: 1rem;

    grid-template-columns: 100%;
    grid-template-rows: repeat(3, auto-fit);
}

.grid-simulations {
    grid-area: grid-simulations;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    display: grid;
    gap: 1rem;

    grid-template-columns: 100%;
    grid-template-rows: repeat(3, auto-fit);
}

.grid-contact {
    grid-area: grid-contact;

    display: grid;
    gap: 1rem;

    grid-template-rows: repeat(3, 28%);
    grid-template-columns: repeat(3, 30%);
}

@media screen and (min-width: 600px) {
    .card-tall {
        grid-row: span 2 / auto;
    }

    .card-wide {
        grid-column: span 2 / auto;
    }
}

.language {
    filter: grayscale(1);
    animation-duration: 0ms;
}

a {
    text-decoration: none;
}
