:root {
    --base: 15px;
    --massive: calc(var(--base) * 10);
    --huge: calc(var(--base) * 7);
    --extralarge: calc(var(--base) * 6);
    --largehuge: calc(var(--base) * 5);
    --large: calc(var(--base) * 4);
    --mediumlarge: calc(var(--base) * 3);
    --medium: calc(var(--base) * 2.5);
    --smallmedium: calc(var(--base) * 2);
    --small: calc(var(--base) * 1.5);
    --extrasmall: var(--base);
    --tiny: calc(var(--base) * 0.75);
    --color-ink: #0e3d32;
    --color-surface: #c5e9a1;
    --color-white: #ffffff;
    --font-body: "Gothic A1", Arial, sans-serif;
    --font-heading: "adonis-web", "Times New Roman", Georgia, serif;
    --h1-size: 49.201px;
    --h2-size: 40px;
    --h3-size: 32px;
    --h4-size: 28px;
    --h5-size: 24px;
    --h6-size: 20px;
    --motion-duration: 0.3s;
}

@font-face {
    font-family: "Gothic A1";
    src: url("fonts/gothic-a1-regular.eot");
    src: url("fonts/gothic-a1-regular.eot?#iefix") format("embedded-opentype"), url("fonts/gothic-a1-regular.woff2") format("woff2"), url("fonts/gothic-a1-regular.woff") format("woff"), url("fonts/gothic-a1-regular.ttf") format("truetype"), url("fonts/gothic-a1-regular.svg#GothicA1-Regular") format("svg");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

/* Document */
html {
    background: var(--color-white);
    color: var(--color-ink);
    -webkit-text-size-adjust: 100%;
}

body {
    display: flex;
    flex-direction: column;
    height: 100vh;
    max-height: 100svh;
    overflow: hidden;
    margin: 0;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
}

::selection {
    background: var(--color-ink);
    color: var(--color-white);
}

p, ul, ol, dl, table {
    margin: 0 0 var(--smallmedium);
}

li {
    margin-bottom: var(--tiny);
}

:is(h1, .h1) {
    margin: 0 0 var(--medium);
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.0364;
    text-wrap: balance;
    font-size: var(--h1-size);
}

:is(h2, .h2) {
    margin: 0 0 var(--medium);
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.0364;
    text-wrap: balance;
    font-size: var(--h2-size);
}

:is(h3, .h3) {
    margin: 0 0 var(--medium);
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.0364;
    text-wrap: balance;
    font-size: var(--h3-size);
}

:is(h4, .h4) {
    margin: 0 0 var(--medium);
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.0364;
    text-wrap: balance;
    font-size: var(--h4-size);
}

:is(h5, .h5) {
    margin: 0 0 var(--medium);
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.0364;
    text-wrap: balance;
    font-size: var(--h5-size);
}

:is(h6, .h6) {
    margin: 0 0 var(--medium);
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.0364;
    text-wrap: balance;
    font-size: var(--h6-size);
}

section {
    margin: 0;
    padding: var(--extralarge) 0;
}

/* Branding */
.branding {
    flex: 0 0 auto;
    padding: calc(var(--large) + var(--large)) 0 var(--huge);
}

.branding__logo {
    width: 383.496px;
    max-width: 100%;
    aspect-ratio: 383.496 / 77.109;
    margin: 0 auto;
}

.branding__logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
}

/* Page */
.page {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: 0 var(--largehuge) var(--extralarge);
}

/* Announcement */
.announcement {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    background: var(--color-surface);
    text-align: center;
}

.announcement__content {
    overflow-wrap: break-word;
}

.announcement__content h1 {
    max-width: 505px;
    margin-right: auto;
    margin-left: auto;
}

.announcement__content p {
    max-width: 590px;
    margin-right: auto;
    margin-left: auto;
}

.announcement__content > :last-child {
    margin-bottom: 0;
}

/* Responsive */
@media (max-width: 991.98px) {
    .branding {
        padding: var(--largehuge) 0;
    }

    .page {
        padding: 0 var(--smallmedium) var(--large);
    }

}

@media (max-width: 575.98px) {
    :root {
        --h1-size: 36px;
        --h2-size: 32px;
        --h3-size: 28px;
        --h4-size: 24px;
    }

    .branding {
        padding: var(--large) 0;
    }

    .branding__logo {
        width: 300px;
    }

    .page {
        padding: 0 var(--small) var(--small);
    }

    .announcement {
        padding: var(--large) 0;
    }
}

@media (max-height: 750px) {
    .branding {
        padding: var(--smallmedium) 0;
    }

    .page {
        padding-bottom: var(--small);
    }

    .announcement {
        padding: var(--smallmedium) 0;
    }
}

@media (max-height: 450px) {
    .branding {
        padding: var(--tiny) 0;
    }

    .branding__logo {
        width: 240px;
    }

    .page {
        padding-bottom: var(--tiny);
    }

    .announcement {
        padding: var(--extrasmall) 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}
