:root {
    --color-primary: var(--color-neutral-200);
    --color-secondary: var(--color-neutral-800);
    --color-decoration: var(--color-amber-200);
    --color-subtle: var(--color-neutral-300);
    --color-disabled: var(--color-neutral-400);
    --color-accent: var(--color-zinc-600);

    --color-callout-bg: var(--color-slate-800);
    --color-callout-border: var(--color-coolGray-600);
}

.inverse {
    --color-secondary: var(--color-neutral-100);
    --color-primary: var(--color-neutral-800);
    --color-decoration: var(--color-yellow-400);
    --color-subtle: var(--color-zinc-600);
    --color-disabled: var(--color-neutral-600);
    --color-accent: var(--color-zinc-400);
    --color-callout-bg: var(--color-slate-300);
    --color-callout-border: var(--color-coolGray-400);
}

@media (prefers-color-scheme: light) {
    :root {
        --color-secondary: var(--color-neutral-100);
        --color-primary: var(--color-neutral-800);
        --color-decoration: var(--color-yellow-400);
        --color-subtle: var(--color-zinc-600);
        --color-disabled: var(--color-neutral-600);
        --color-accent: var(--color-zinc-400);
        --color-callout-bg: var(--color-slate-300);
        --color-callout-border: var(--color-coolGray-400);
    }

    .inverse {
        --color-primary: var(--color-neutral-200);
        --color-secondary: var(--color-neutral-800);
        --color-decoration: var(--color-amber-200);
        --color-subtle: var(--color-zinc-400);
        --color-disabled: var(--color-neutral-400);
        --color-accent: var(--color-zinc-600);
        --color-callout-bg: var(--color-slate-800);
        --color-callout-border: var(--color-coolGray-600);
    }
}

[data-color-scheme="light"] {
    --color-secondary: var(--color-neutral-100);
    --color-primary: var(--color-neutral-800);
    --color-decoration: var(--color-yellow-400);
    --color-subtle: var(--color-zinc-600);
    --color-disabled: var(--color-neutral-600);
    --color-accent: var(--color-zinc-600);
    --color-callout-bg: var(--color-slate-300);
    --color-callout-border: var(--color-coolGray-400);
}

[data-color-scheme="light"] .inverse {
    --color-primary: var(--color-neutral-200);
    --color-secondary: var(--color-neutral-800);
    --color-decoration: var(--color-amber-200);
    --color-subtle: var(--color-neutral-300);
    --color-disabled: var(--color-neutral-400);
    --color-accent: var(--color-zinc-400);
    --color-callout-bg: var(--color-slate-800);
    --color-callout-border: var(--color-coolGray-600);
}

[data-color-scheme="dark"] {
    --color-primary: var(--color-neutral-200);
    --color-secondary: var(--color-neutral-800);
    --color-decoration: var(--color-amber-200);
    --color-subtle: var(--color-neutral-300);
    --color-disabled: var(--color-neutral-400);
    --color-accent: var(--color-zinc-600);
    --color-callout-bg: var(--color-slate-800);
    --color-callout-border: var(--color-coolGray-600);
}

body {
    background-color: var(--color-secondary);
    color: var(--color-primary);
    font-family: var(--font-family-humanist);
    font-size: var(--text-size-s);
    text-underline-offset: var(--space-size-4xs);
}


h1,
h2,
h3,
h4,
h5 {
    font-family: var(--font-family-neo);
    font-weight: bold;
    line-height: 1.2;
    margin: 0;
}

h1 {
    font-size: var(--text-size-xl);
    word-wrap: normal;
    text-underline-offset: var(--space-size-3xs);
    text-align: center;
    line-height: 1.3;
}

h2 {
    font-size: var(--text-size-l);
    text-underline-offset: var(--space-size-3xs);
}

h3 {
    font-size: var(--text-size-m);
    text-underline-offset: var(--space-size-3xs);
}

a {
    color: inherit;
    text-decoration: underline;

    &:hover {
        text-decoration-color: var(--color-decoration);
    }

    &:visited {
        color: inherit;
    }

    &[target="_blank"] {
        position: relative;
    }

    &[target="_blank"]::after {
        content: " \f08e";
        font-family: "font awesome 6 free";
        font-style: normal;
        font-variant: normal;
        text-rendering: auto;
        font-weight: 900;
        -webkit-font-smoothing: antialiased;
        font-size: var(--text-size-xs);
        vertical-align: super;
        width: 2ch;
        padding: 0 .3ch;
        display: inline-block;
    }
}

nav {
    --vertical-spacing: var(--space-size-m);
    font-size: var(--text-size-s);
}

header {
   flex-wrap: wrap;
   padding-top: var(--space-size-s);
   padding-bottom: var(--space-size-s);
   align-items: center;
}

p {
    line-height: 1.6;
    max-width: 70ch;

    &:has(> picture) {
        max-width: 100%;
    }
}

footer {
    padding: var(--space-size-l) 0 var(--space-size-s);
    width: 100%;
}

*:focus-visible {
    outline: 1px solid var(--color-primary);
    border-radius: 5px;
    outline-offset: 4px;
}

aside {
    width: 100%;
    padding: var(--space-size-s);
    background-color: var(--color-secondary);
    color: var(--color-primary);
}

blockquote {
    border-left: 5px solid var(--color-accent);
    padding-left: var(--space-size-2xs);
    margin-left: var(--space-size-2xs);
}

img, picture {
    max-width: 100%;
    max-height: 30rem;
    height: auto;
    object-fit: cover;
}