body {
    display: flex;
    flex-direction: column;
    width: 100vw;
    height: 100vh; height: 100svh;
    margin: 0;
    padding: 0;
    overflow: hidden;
    font-family: var(--font-default);
}

header {
    min-height: var(--header-height);
    background-color: var(--frame-bg-color);
}
header .logo {
    display: flex;
    flex-shrink: 0;
    border-right: var(--border-format);
    width: var(--logo-width);
    height: var(--header-height);
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-weight: bold;
    color: var(--logo-color);
}

.site-middle {
    display: flex;
    flex: 1 1 auto;
    overflow: hidden;
}

footer {
    width: 100%;
    height: var(--footer-height);
    max-height: var(--footer-height);
    justify-content: space-around;
    background-color: var(--frame-bg-color);
}
footer * {
    flex-shrink: 0;
    margin-top: 5px;
    color: var(--footer-text-color);
}

@media (max-width: 768px) {
    header .logo {
        width: var(--logo-width);
        min-width: var(--logo-width);
        padding: var(--logo-padding);
        font-size: var(--logo-font-size);
    }
}