@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wdth,wght@0,62.5..100,100..900;1,62.5..100,100..900&display=swap");

@media (prefers-color-scheme: light) {
    :root {
        --color-primary: rgb(0 104 119);
        --color-on-primary: rgb(255 255 255);

        --color-secondary: rgb(74 98 104);

        --color-surface: rgb(245 250 252);
        --color-surface-container: rgb(233 239 240);
        --color-on-surface: rgb(23 29 30);
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --color-primary: rgb(131 210 228);
        --color-on-primary: rgb(0 54 62);

        --color-secondary: rgb(178 203 209);

        --color-surface: rgb(14 20 22);
        --color-surface-container: rgb(27 33 34);
        --color-on-surface: rgb(222 227 229);
    }
}

* {
    transition-duration: 0.5s;
    transition-property: background, color;
    transition-timing-function: ease-in-out;
}

body {
    font-family: "Noto Sans", sans-serif;
    background-color: var(--color-surface);
    color: var(--color-on-surface);
    margin: 0 auto;
    padding: 0 0.5em;

    max-width: 50em;
}

main {
    background-color: var(--color-surface-container);
    border-radius: 2em;

    margin: 1em 0 5em 0;
    padding: 1.5em;
}

main > *:first-child {
    margin-top: 0;
}

main > *:last-child {
    margin-bottom: 0;
}

footer {
    background-color: var(--color-surface-container);
    border-radius: 2em 2em 0 0;

    display: flex;
    flex-wrap: wrap;

    padding: 1.5em;
}

footer > * {
    margin-bottom: 1em;
    margin-right: 1em;
}

footer > *:last-child {
    margin-right: 0;
    margin-bottom: 0;
}

h1,
h2 {
    color: var(--color-primary);
}

h4 {
    margin: 0;
    margin-bottom: 0.5em;
}

b {
    color: var(--color-secondary);
}

ul,
ol {
    padding-left: 1.5em;
}

li {
    padding-bottom: 1em;
}

li:last-child {
    padding-bottom: 0;
}

a {
    color: var(--color-primary);
}

img {
    width: 100%;
    max-height: 15em;
    object-fit: cover;
    border-radius: 1em;
}

@keyframes button {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.15);
    }

    100% {
        transform: scale(1);
    }
}

.button {
    background-color: var(--color-primary);
    color: var(--color-on-primary);

    border-radius: 1em;
    padding: 1em;
    margin: 1em 2.5em;
    font-size: medium;
    animation: button infinite 1s;

    text-decoration: none;
    text-align: center;
    display: block;
}

.sponsors {
    display: flex;
    flex-wrap: wrap;
}

.sponsors > * {
    flex: 1 1 150px;
    text-wrap: nowrap;
}
