:root {
    --animation-offset: 6px;
}

body {
    display: flex;
    flex-direction: column;
    font-size: 2rem;
    justify-content: center;
    margin: auto;
}

h1 {
    font-size: 5rem;
    line-height: 1.3;
    margin: 0;
    padding: 0;
}
@media (max-width: 450px) {
    h1 { font-size: 4.25rem; }
}

main {
    margin-block-start: 10vh;
    width: inherit;
}

main .grid {
    align-items: baseline;
    display: grid;
    gap: 0 2rem;
    grid-template-columns: min-content 200px;
    grid-template-rows: repeat(2, max-content);
    grid-template-areas:
        "title blurb"
        "title nav";
    padding-inline: 1em;
    width: min-content;
}
@media (max-width: 450px) {
    main .grid {
        gap: 1rem 0;
        grid-template-columns: 1fr;
        grid-template-rows: repeat(3, max-content);
        grid-template-areas:
            "title"
            "blurb"
            "nav";
        text-align: center;
    }
}

main h1 {
    letter-spacing: 0.025em;
    text-align: end;
}
@media (max-width: 450px) {
    main h1 { text-align: center; }
}

main nav {
    align-items: baseline;
}

main p {
    margin: 0;
}

#title { grid-area: title; }
#content { grid-area: blurb }
#nav { grid-area: nav }

#title > *, #content > *, #nav > * { position: relative; }

#title > * {
    animation: left-fade-in var(--transition-duration) ease-in-out;
}
@media (max-width: 450px) {
    #title > * {
        animation: top-fade-in var(--transition-duration) ease-in-out;
    }
}
#content > *, #nav > * {
    animation: right-fade-in var(--transition-duration) ease-in-out;
}
@media (max-width: 450px) {
    #content > *, #nav > * {
        animation: bottom-fade-in var(--transition-duration) ease-in-out;
    }
}

@keyframes left-fade-in {
    from {
        opacity: 0%;
        left: var(--animation-offset);
    }
    33% {
        opacity: 0%;
        left: var(--animation-offset);
    }
    to {
        opacity: 100%;
        left: 0;
    }
}

@keyframes right-fade-in {
    from {
        opacity: 0%;
        left: calc(-1 * var(--animation-offset));
    }
    33% {
        opacity: 0%;
        left: calc(-1 * var(--animation-offset));
    }
    to {
        opacity: 100%;
        left: 0;
    }
}

@keyframes top-fade-in {
    from {
        opacity: 0%;
        bottom: calc(-1 * var(--animation-offset));
    }
    33% {
        opacity: 0%;
        bottom: calc(-1 * var(--animation-offset));
    }
    to {
        opacity: 100%;
        bottom: 0;
    }
}

@keyframes bottom-fade-in {
    from {
        opacity: 0%;
        bottom: var(--animation-offset);
    }
    33% {
        opacity: 0%;
        bottom: var(--animation-offset);
    }
    to {
        opacity: 100%;
        bottom: 0;
    }
}

.platter {
    padding: 1.5rem 3rem;
}
