@import url("https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
* {
    border: 0;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
:root {
    --hue: 37;
    --bg: hsl(var(--hue), 100%, 99%);
    --fg: hsl(var(--hue), 10%, 10%);
    --primary: hsl(100, 80%, 50%);
    --trans-dur: 0.3s;
    --trans-timing: cubic-bezier(0.65, 0, 0.35, 1);
    font-size: calc(16px + (24 - 16) * (100vw - 320px) / (2560 - 320));
}
a {
    color: var(--primary);
    transition: color var(--trans-dur);
}
body,
button {
    color: var(--fg);
    font-size: 1.2rem;
    font-family: "Ubuntu", sans-serif;
}
body {
    background-color: var(--bg);
    height: 100vh;
    transition: background-color var(--trans-dur), color var(--trans-dur);
}
h1 {
    font-family: "Silkscreen", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 3em;
    margin: 0 0 1rem;
    padding-top: 1.5rem;
    text-align: center;
}
h2 {
    font-size: 1.75em;
    margin: 0 0 3rem;
    text-align: center;
}
.btn {
    background-color: var(--fg);
    border-radius: 0.25em;
    color: var(--bg);
    cursor: pointer;
    padding: 0.375em 0.75em;
    transition: background-color calc(var(--trans-dur) / 2) linear, color var(--trans-dur);
    -webkit-tap-highlight-color: transparent;
}
.btn:hover {
    background-color: hsl(var(--hue), 10%, 50%);
}
.btn-group {
    display: flex;
    gap: 0.375em;
    margin-bottom: 1.5em;
}
.timeline {
    margin: auto;
    padding: 0 1.5em;
    width: 100%;
    max-width: 36em;
}
.timeline__arrow {
    background-color: transparent;
    border-radius: 0.25em;
    cursor: pointer;
    flex-shrink: 0;
    margin-inline-end: 0.25em;
    outline: transparent;
    width: 2em;
    height: 2em;
    transition: background-color calc(var(--trans-dur) / 2) linear, color var(--trans-dur);
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
}
.timeline__arrow:focus-visible,
.timeline__arrow:hover {
    background-color: hsl(var(--hue), 10%, 50%, 0.4);
}
.timeline__arrow-icon {
    display: block;
    pointer-events: none;
    transform: rotate(-90deg);
    transition: transform var(--trans-dur) var(--trans-timing);
    width: 100%;
    height: auto;
}
.timeline__date {
    font-size: 0.833em;
    line-height: 2.4;
    font-weight: 500;
}
.timeline__dot {
    background-color: currentColor;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
    margin: 0.625em 0;
    margin-inline-end: 1em;
    position: relative;
    width: 0.75em;
    height: 0.75em;
}
.timeline__item {
    position: relative;
    padding-bottom: 2.25em;
}
.timeline__item:not(:last-child):before {
    background-color: currentColor;
    content: "";
    display: block;
    position: absolute;
    top: 1em;
    left: 2.625em;
    width: 0.125em;
    height: 100%;
    transform: translateX(-50%);
}
[dir="rtl"] .timeline__arrow-icon {
    transform: rotate(90deg);
}
[dir="rtl"] .timeline__item:not(:last-child):before {
    right: 2.625em;
    left: auto;
    transform: translateX(50%);
}
.timeline__item-header {
    display: flex;
}
.timeline__item-body {
    border-radius: 0.375em;
    overflow: hidden;
    margin-top: 0.5em;
    margin-inline-start: 4em;
    height: 0;
}
.timeline__item-body-content {
    background-color: (hsl(var(--hue), 100%, 99%, 1));
    backdrop-filter: blur(4px);
    border: 2px solid hsl(var(--hue), 100%, 5%);
    border-radius: 0.375em;
    opacity: 0;
    padding: 0.5em 0.75em;
    visibility: hidden;
    transition: opacity var(--trans-dur) var(--trans-timing),
        visibility var(--trans-dur) steps(1, end);
}
.timeline__meta {
    width: 100%;
}
.timeline__title {
    font-size: 1.5em;
    line-height: 1.333;
}
/* Expanded state */
.timeline__item-body--expanded {
    height: auto;
}
.timeline__item-body--expanded .timeline__item-body-content {
    opacity: 1;
    visibility: visible;
    transition-delay: var(--trans-dur), 0s;
}
.timeline__arrow[aria-expanded="true"] .timeline__arrow-icon {
    transform: rotate(0);
}

/* Dark theme */
@media (prefers-color-scheme: dark) {
    :root {
        --bg: hsl(var(--hue), 10%, 10%);
        --fg: hsl(var(--hue), 10%, 90%);
        --primary: hsl(var(--hue), 90%, 70%);
    }
}
