* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "MiSans", "MiSans VF", sans-serif;
    text-decoration: none;
}
header,
main,
footer {
    display: contents;
}
body {
    width: 100vw;
    padding: 0 1em;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 2em;
}
.nav-title {
    grid-column: 1 / 4;
    display: flex;    
    flex-direction: column;
}
h1 {
    font-size: 5em;
    font-weight: 900;
}
.nav-version {
    grid-column: 5 / 7;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.nav-version ul {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    list-style: none;
}
.table {
    width: 100%;
    padding: 1em;
    grid-column: span 5;
    border: 1px solid;
    display: grid;
    grid-template-columns: 3fr 1fr 1fr;
    gap: 2em;
}
.table div {
    display: contents;
    text-wrap: wrap;
    white-space: pre-line;
}
.table-title span {
    font-weight: bold;
}
.table-title span:first-child {
    display: block;
    max-width: 60%;
}
.footer-contact {
    grid-column: 1 / 4;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1em;
}
.footer-contact ul {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.5em;
    list-style: none;
    text-wrap: nowrap;
}
ul li:first-child {
    text-decoration: underline;
    font-size: larger;
    font-weight: bold;
}
.footer-animation {
    grid-column: 5 / 6;
    place-self: center;
    width: 10em;
    height: 10em;
    border: 1px solid;
    border-radius: 20px;
    background-size: contain;
    background-image: 
    url("../src/update/svg-bottom.png"),
    url("../src/update/taffy.png"),
    url("../src/update/svg-top.png")
    ;
    background-position: bottom, center 200px, top;
    background-repeat: no-repeat;

    animation: footer-taffy 0.5s infinite alternate;
}
@keyframes footer-taffy {
    from {
        background-position: bottom, 40% 40px, top;
    }
    to {
        background-position: bottom, center center, top;
    }
}
@media screen and (max-width: 768px) {
    body {
        grid-template-columns: repeat(3, 1fr);
    }
    h1 {
        font-size: 2em;
        font-weight: bold;
    }
    .nav-title {
        grid-column: 1 / 3;
    }
    .nav-version {
        grid-column: 3 / 4;
        font-size: small;
    }
    .table {
        grid-column: 1 / 4;
    }
    .footer-contact {
        grid-column: 1 / 2;
    }

    .footer-animation {
        grid-column: 3 / 4;
    }
}
@media (prefers-color-scheme: dark) {
    body {
        background-color: #222;
        color: #ddd;
    }
    a {
        color: rgb(110, 110, 110);
    }
}