@import url('https://fonts.googleapis.com/css2?family=Vollkorn+SC:wght@400;600;700;900&family=Vollkorn:ital,wght@0,400..900;1,400..900&display=swap');

body {
    font-family: "Vollkorn", serif;
}

body {
    padding: 0 0 30px;
    margin: 8px;
    display: grid;
    grid: "spacel corner header spacer" auto "spacel nav main spacer" auto / 1fr auto auto 1fr;
    

    &>header {
        grid-area: header;
    }

    &>nav {
        grid-area: nav;
    }

    &>main {
        grid-area: main;
        max-width: 800px;
    }
}

@media (max-width: 780px) {
    html {
        body {
            grid: "header" auto "nav" auto "main" auto / auto;
        }
        body>nav menu {
            text-align: left;
            position: static;
        }
    }
}

body>header {
    h1 {
        margin-bottom: 0px;
        text-wrap: balance;

        @media (330px <= width <= 600px) {
            .soft-break {
                display: block;
            }
        }
    }
    p {
        margin: 5px 2.5em;
    }
    .locationinfo {
        font-weight: inherit;
        font-family: "Vollkorn SC", "Vollkorn", serif;
        /*font-variant: small-caps;*/
        font-size: 120%;
    }

    background-image: url("lisbon_photo_cropped.webp");
    background-size: cover;
    background-position: center;
    box-shadow: 0 0 10px #0005 inset;

    margin: -8px;
    padding: 8px;
    color: #fff;
    text-shadow: 1px 0.6px 5px #000;
    min-height: 20vmin;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    &>* {
        backdrop-filter: blur(5px);
        background-color: #4444;
        box-shadow: 3px 2px 8px #0006;
        padding-inline: 5px;
        border-radius: 10px;
        margin-right: auto;
        width: fit-content;
    }

    h1 {
        line-height: 120%;
        padding-top: 5px;
    }
}

body>nav {
    menu {
        text-align: right;
        padding: 0 1em 0 0;
        position: sticky;
        top: 20px;
        margin-bottom: 0px;
    }
    li {
        display: block;
        padding: 2px;
        &:first-child {
            margin-top: -2px;
        }
        &::before {
            content: "# ";
            font-weight: 800;
            visibility: hidden;
        }
        &:hover::before {
            visibility: visible;
        }
        a {
            color: inherit;
            font-variant: discretionary-ligatures;
        }
    }
}

@keyframes fade {
    from {
        --opacity: 0.25;
    }

    to {
        --opacity: 0;
    }
}

@property --opacity {
    syntax: "<number>";
    initial-value: 0;
    inherits: false;
}

body>main {
    h2 {
        scroll-margin-top: 2em;

        border-bottom: 1px solid black;
        &:target {
            --color: rgba(0, 0, 0, var(--opacity));
            animation: fade 5s cubic-bezier(1,0,1,1);
            background-color: var(--color);
            outline: solid var(--color);
            outline-width: 8px;
        }
    }

    .datelist {
        max-width: fit-content;
        li {
            &>span {
                display: flex;
                flex-wrap: wrap;
            }

            span.date {
                display: flex;
                flex-grow: 1;
                text-wrap: nowrap;
                &::after {
                    flex-grow: 1;
                    overflow: hidden;
                    text-overflow: "";
                    min-width: 18px;
                    width: clamp(18px, 100vw - 350px, 51px);
                    max-width: 300px;
                    display: block;
                    margin-left: 2px;
                    content: "................................................................................."
                }
            }

            span.date-item {
                text-align: right;
                margin-left: auto;
            }
        }
    }
}

html {
    scroll-behavior: smooth;
}