@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  src: url(fonts/InterVariable.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  src: url(fonts/InterVariable-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: italic;
  font-weight: 100 900;
  src: url(fonts/InterVariable-Italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: italic;
  font-weight: 100 900;
  src: url(fonts/InterVariable-ext-Italic.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  src: url(fonts/JetBrainsMonoVariable.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  src: url(fonts/JetBrainsMonoVariable-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: italic;
  font-weight: 100 800;
  src: url(fonts/JetBrainsMonoVariable-Italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: italic;
  font-weight: 100 800;
  src: url(fonts/JetBrainsMonoVariable-ext-Italic.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    --safe-area-max-inset-bottom: env(safe-area-max-inset-bottom, 0px);
    --safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);

    --color-ur: #8E8E8D;
    --color-ur-text: #444444;
    --color-ur-light: #9F9F9E;
    --color-ur-lighter: #BFBFBF;
    --color-ur-dark: #727271;
    --color-ur-transparent: #8E8E8D1A;
    --color-ur-phy: #008993;
    --color-ur-phy-text: #006E76;
    --color-ur-phy-light: #269BA3;
    --color-ur-phy-lighter: #6EBCC2;
    --color-ur-phy-dark: #006E76;
    --color-ur-phy-transparent: #0089931A;

    --chevron-up: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up-icon lucide-chevron-up"><path d="m18 15-6-6-6 6"/></svg>');
    --chevron-down: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>');
    --clock: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock-icon lucide-clock"><path d="M12 6v6l4 2"/><circle cx="12" cy="12" r="10"/></svg>');
    --link: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link-icon lucide-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>');
    --map-pin: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-map-pin-icon lucide-map-pin"><path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"/><circle cx="12" cy="10" r="3"/></svg>');
    --paperclip: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-paperclip-icon lucide-paperclip"><path d="m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"/></svg>');

    font-family: Inter, sans-serif;
}

code, pre, samp {
    font-family: "JetBrains Mono", monospace;
}

html {
    overflow-y: scroll;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.hidden {
    display: none !important;
}

.strikethrough {
    text-decoration-line: line-through;
    text-decoration-thickness: 0.25em;
    text-decoration-color: #FF5252;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

main {
    margin: 6.5em 1em 1.5em 1em;
    padding-bottom: var(--safe-area-inset-bottom);
    line-height: 1.5;
    padding-left: max(0rem, calc(50vw - 30rem));
    flex: 1;
}

header.header {
    background: linear-gradient(to right, var(--color-ur) 60%, var(--color-ur-phy) 60%);
    background-size: calc(100vw - min(15vw, 10em) - 6.5em) 3em;
    background-repeat: no-repeat;
    background-position: calc(min(15vw, 10em) + 6.5em) 0;
    background-color: white;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    z-index: 10;

    > a > img {
        width: 11em;
        margin: 1em 0 1em min(15vw, 10em);
        padding: 0;
        float: left;
        box-sizing: border-box;
    }
}

footer.footer {
    overflow: hidden;
    background-color: var(--color-ur-phy);
    bottom: 0;
    left: 0;
    font-size: 0.875rem;
    width: 100%;
    display: flex;
    justify-content: center;
    padding-bottom: var(--safe-area-inset-bottom);

    > a {
        color: white;
        text-decoration: none;
        padding: 0.25em 3vw 0.25em 3vw;
    }
}

.events {
    max-width: 60rem;
    display: grid;
    gap: 2rem;
}

.event {
    background: var(--color-ur-transparent);
    border-radius: 0.4rem;
    overflow: hidden;
    display: grid;
    grid-template-columns: 5rem 1fr;
}

.event-date {
    background: var(--color-ur-phy);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;
    letter-spacing: 0.1em;
    font-weight: 500;
    padding-top: 1em;

    > .day {
        font-size: 2em;
        font-weight: 700;
    }

    > .dmy {
        display: none;
        font-weight: 600;
    }
}

.event-content {
    padding: 1rem;
}

.event-category {
    color: var(--color-ur-text);
    font-size: 0.875em;
    font-weight: 600;
    margin: 0;
}

.event-title {
    margin: 0.5rem 0;
}

.event-meta {
    margin: 0.5em 0;
}

.event-tags {
    display: flex;
    gap: 0.5em;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    margin-top: 1em;

    > .tag {
        background: var(--color-ur-lighter);
        padding: 0.5em 0.65em 0.5em 2em;
        border-radius: 0.4rem;
        font-size: 0.9375em;
        position: relative;
        min-height: 2em;
        display: flex;
        align-items: center;
    }

    > .tag::before {
        content: "";
        position: absolute;
        left: 0.5em;
        top: 50%;
        transform: translateY(-50%);
        width: 1em;
        height: 1em;
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;
        background-color: currentColor;
    }

    > .tag.time::before {
        mask-image: var(--clock);
    }

    > .tag.location::before {
        mask-image: var(--map-pin);
    }

    > .tag.file > a {
        text-decoration: none;
        color: inherit;
    }

    > .tag.file::before {
        mask-image: var(--paperclip);
    }

    > .tag.link > a {
        text-decoration: none;
        color: inherit;
    }

    > .tag.link::before {
        mask-image: var(--link);
    }
}

.event-details {
    > summary {
        margin-bottom: 0.5rem;
        cursor: pointer;
        font-weight: 500;
        color: var(--color-ur-text);
        text-decoration: underline;
        text-decoration-color: var(--color-ur-phy);
        text-decoration-thickness: 0.2em;
        text-underline-offset: 0.2em;
    }

    > summary::marker {
        display: none;
        content: "";
    }

    > .event-details-content {
        border-radius: 0.2rem;
        padding: 0.75rem 1rem;
        background: #ffffff;
        border-left: 0.2em solid var(--color-ur-phy);

        > p {
            margin: 0;
        }

        > p + p {
            margin-top: 0.5em;
        }
    }
}

.event-details[open] {
    >  summary {
        text-decoration: none;
    }
}

.event-filters {
    display: grid;
    gap: 0.5rem;
}

.filter-details {
    border: solid 0.1rem var(--color-ur-lighter);
    border-radius: 0.2rem;

    > summary {
        list-style: none;
        padding: 0.4em 0.6em;
        outline: none;
        font-weight: bolder;
        background-color: var(--color-ur-transparent);
    }

    summary::after {
        content: var(--chevron-down);
        float: right;
    }
}

.filter-details[open] {
    >  summary::after {
        content: var(--chevron-up);
    }

    > ul {
        padding-left: 1em;
        list-style: none;
        > li {
            margin-bottom: 0.5em;
            > label {
                display: flex;
                align-items: center;
                gap: 0.25rem;
            }
        }
    }
}

@media (max-width: 768px) {
    .event {
        grid-template-columns: 1fr;
    }

    .event-date {
        flex-direction: row;
        font-size: 1.25em;
        padding: 0.5rem 1rem;

        > .day, .month, .year {
            display: none;
        }
        > .dmy {
            display: flex;
        }
    }
}
