:root {
    --textColor: #2a2a2a;
    --linkColor: #050094;
    --lightColor: #a8a8a8;
    --backgroundColor: inherit;

    font-size: clamp(1em, 0.9em + .25vw, 1.2em);
    line-height: 1.7;

    --background-colour: #fff;
    --text-colour: #000;
    --link-colour: #a4215e;

    --accent-soft:  #fba1c3;
    --accent-softer: #ffedf4;
}

body[theme=dark] {
    --background-colour: #372e3e;
    --text-colour: #fff;
    --link-colour: #ff98f4;

    --accent-soft: #8919a8;
    --accent-softer: #592051;
}

@media (prefers-color-scheme: dark) {
        body:not([theme]), body[theme=dark] {
            --textColor: #eaeaea;
            --linkColor: #70B7FF;
            --lightColor: #a8a8a8;
            --backgroundColor: #2a2a2a;
        }
        body::after {
            content: 'dark';
            display: none;
        }
}

html, body {
    margin: 0;
}

body {
        margin: 0;
        color: var(--text-colour);
        font-family: 'system-ui', 'sans';
        background-color: var(--background-colour);
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        gap: 2rem;
}

*, ::after, ::before {
        box-sizing: border-box;
}

a {
    color: var(--link-colour);
}

header[role="banner"] {
    background-color: var(--accent-softer);
    border-bottom: 1px solid var(--accent-soft);
    padding: 1rem;

    display: flex;
    align-items: baseline;

    a {
        color: inherit;
        text-decoration: none;
    }

    nav {
        display: flex;
        align-items: baseline;
    }


    ol.breadcrumb {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        padding: 0;
        margin: 0;

        a {
            text-decoration: underline dotted;
        }

        li {
            &:not(:first-of-type) {
                margin-left: 1rem;
                padding-left: .5rem;

                &::marker {
                    content: '»';
                }
            }

            &:first-of-type {
                list-style: none;
            }
        }
    }

    h1 {
        margin: 0;
        font-size: 1em;
        font-weight: bold;
    }
}

footer {
    text-align: center;
    font-size: .8rem;

    p {
        margin: .5rem 0;
    }
}

main {
    width: 75%;
    margin: auto;
    flex-grow: 1;

    ul {
        display: flex;
        justify-content: space-evenly;
        list-style: none;
        padding: 0;
        margin: 0;
        flex-wrap: wrap;

        .thumbnail {
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 1em;
            width: 250px;
            height: 250px;
            text-align: center;
        }
    }
}

main ul .thumbnail img {
    max-width: 250px;
    max-height: 250px;
}

img:target {
    animation-name: highlight;
    animation-duration: 3s;
}

@keyframes highlight {
    from {
        border: #ffffa0 solid 5px
    }

    to {
        border: #ffffa000 solid 5px;
    }
}
