:root {
    --foreground-color: hsl(355, 26%, 21%);
    --background-color: hsl(27, 45%, 91%);
    --decorative-color: hsl(20, 43%, 84%);
}
body {
    font-family: 'Alegreya', serif;
    color: var(--foreground-color);
    background-color: var(--background-color);
    background-size: 20vw;
    background-image: url('/static/confetti-doodles.svg');
}

a {
    color: var(--foreground-color);
    text-decoration-style: wavy;
    text-decoration-color: var(--decorative-color);
    text-underline-offset: 0.25rem;
    transition: text-decoration-color 0.3s;
    &:hover {
        text-decoration-color: var(--foreground-color);
    }
}

.container {
    max-width: 500px;
    margin: 5rem auto;
    @media screen and (max-width: 787px) {
        padding: 1rem;
    }
}

.page {
    font-size: 1.25rem;
    line-height: 2;
    @media screen and (min-width: 786px) {
        border: 1px solid var(--decorative-color);
        padding: 2rem;
        background-color: var(--background-color);
    }
}

.prose {
    h1, h2, h3 {
        font-weight: 800;
        margin: 1rem 0;
    }

    h1 {
        font-size: 2rem;
        margin-top: 0;
        margin-bottom: 1.5rem;
    }

    ul {
        list-style: square;
        padding-inline-start: 1.5rem;
        margin: 1rem 0
    }

    em { font-style: italic; }
    strong { font-weight: 800; }

    hr {
        border: 2px dashed var(--decorative-color);
        margin: 1rem 0;
    }
}

.prose-container {
    font-size: 1.25rem;
    line-height: 2;
    max-width: 500px;
    margin: 2rem auto;
    &.small {
        font-size: 1.15rem;
        color: hsl(from var(--foreground-color) h calc(s - 10) calc(l + 30));
    }
}

.header {
    @media screen and (min-width: 786px) {
        display: flex;
        align-items: center;
        gap: 3rem;
    }

    .header-image {
        width: 80px;
        height: 80px;
        border-radius: 50%;
        filter: sepia(50%);
        transition: filter 0.3s
    }

    .header-image:hover {
        filter: sepia(0)
    }

    .header-text {
        display: flex;
        flex-direction: column;
        line-height: 2;

        .header-title {
            font-weight: 800;
            font-size: 2rem;
            a { 
                text-decoration: none;
            }
        }

        .header-desc {
            font-size: 1.25rem;
        }
    }
}

.badge {
    padding: 0.35rem 0.5rem;
    background-color: hsl(from var(--decorative-color) h s calc(l + 3));
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    line-height: 1;
    text-decoration: none;
    font-size: 95%;
    margin: 0 0.25rem;
    transition: background 0.3;
    img {
        display: inline-block;
        width: 1rem;
        height: 1rem;
    }
    span {
        display: inline-block;
    }
    &:hover {
        background-color: var(--decorative-color);
    }
}

.linkbox {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.5rem 1rem;

    text-decoration: none;
    border: 1px dashed hsl(from var(--foreground-color) h 15% 76%);

    &:hover {
        border-style: solid;
    }

    h4 {
        font-weight: 800;
        font-size: 1.1rem;
    }

    p {
        font-size: 1rem;
    }

    img {
        filter: sepia(50%);
        width: 60px;
        height: 60px;
    }
}

.linkline {
    --gap: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
    li:not(:last-child):after {
        margin-left: var(--gap);
        content: "·"
    }
}
