#header {
    grid-area: header;
    font-size: xx-large;
    display: flex;
    align-items: center;
    min-width: 0;
}

#header h1 {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    font-size: clamp(1.5rem, 8vw, 3rem);
}

#content {
    grid-area: content;
    margin-top: -1.5rem;
}

#footer {
    grid-area: footer;
}

html {
    height: 100%;
}

p,
a {
    font-family: "Computer Modern Serif";
    font-weight: 400;
    font-style: normal;
}


@font-face {
    font-family: 'Computer Modern Serif';
    src: url('fonts/cmunrm.eot');
    src: url('fonts/cmunrm.eot?#iefix') format('embedded-opentype'),
        url('fonts/cmunrm.woff') format('woff'),
        url('fonts/cmunrm.ttf') format('truetype'),
        url('fonts/cmunrm.svg#cmunrm') format('svg');
    font-weight: normal;
    font-style: normal;
}


@font-face {
    font-family: 'Computer Modern Serif';
    src: url('fonts/cmunbx.eot');
    src: url('fonts/cmunbx.eot?#iefix') format('embedded-opentype'),
        url('fonts/cmunbx.woff') format('woff'),
        url('fonts/cmunbx.ttf') format('truetype'),
        url('fonts/cmunbx.svg#cmunbx') format('svg');
    font-weight: bold;
    font-style: normal;
}


@font-face {
    font-family: 'Computer Modern Serif';
    src: url('fonts/cmunti.eot');
    src: url('fonts/cmunti.eot?#iefix') format('embedded-opentype'),
        url('fonts/cmunti.woff') format('woff'),
        url('fonts/cmunti.ttf') format('truetype'),
        url('fonts/cmunti.svg#cmunti') format('svg');
    font-weight: normal;
    font-style: italic;
}


@font-face {
    font-family: 'Computer Modern Serif';
    src: url('fonts/cmunbi.eot');
    src: url('fonts/cmunbi.eot?#iefix') format('embedded-opentype'),
        url('fonts/cmunbi.woff') format('woff'),
        url('fonts/cmunbi.ttf') format('truetype'),
        url('fonts/cmunbi.svg#cmunbi') format('svg');
    font-weight: bold;
    font-style: italic;
}

h1 {
    font-family: "Doto";
    font-weight: 500;
}


h2 {
    font-family: "Computer Modern Serif";
    font-weight: bold;
}

body {
    height: 100%;
    margin: 0;
    padding: 0;
    background-color: #121212;
    color: #e0e0e0;
}

#main {
    display: grid;
    height: 100%;
    grid-template-columns: [l] 0.5fr [mid] min(80%, 475px) [r] 2fr;
    grid-template-rows: [t] 1fr [mid] 8fr [b] 1fr;
    grid-template-areas:
        ". header ."
        ". content ."
        ". footer .";
    grid-gap: 1rem;
    justify-items: start;
}

#footer {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}


.footer-separator {
    margin: 0 0.25rem;
}

.de-emph {
    color: #888;
}

a {
    color: #4dabf7;
}

a:visited {
    color: #9775fa;
}