

#cv {
    padding-top: 1em;
    position: relative;
    align-items: center;
}

.timeline {
    margin-top: 2em;
    gap: 2em;
    display: flex;
    flex-direction: column;
    padding: 2em 0;
    margin-bottom: 2em;
    border-left: 4px solid var(--color-accent);;
    position: relative;
}

.timeline:before {
    position: absolute;
    top: -1.3em;
    left: -1.5em;
    color: var(--color-accent);;
    content: 'Heute';
    font-weight: bold;
    font-family: Helvetica, sans-serif;
}

.timeline:after {
    position: absolute;
    bottom: -1.3em;
    left: -1.4em;
    content: '2015';
    color: var(--color-accent);;
    font-weight: bold;
    font-family: Helvetica, sans-serif;
}

.timeline-entry {
    display: flex;
    flex-direction: column;
    position: relative;
    left: 1.2em;
    /*border: 3px solid var(--color-accent);;*/
}

.timeline-entry::after {
    content: '';
    position: absolute;
    left: -2em;
    top: 50%;
    width: 10px;
    height: 10px;
    background: var(--color-accent);
    border: 5px solid var(--color-background-left);
    border-radius: 10em;
}

.tl-title {
    font-size: 17px;
    font-weight: bold;
}

.location-dates {
    display: flex;
    font-style: italic;
    font-size: 14px;
    border-bottom: 1px solid var(--color-accent);;
    margin-bottom: 6px;
    padding-bottom: 2px;
}

.spacer {
    margin: 0 3px;
    width: 1px;
    background: var(--color-accent);;
}

.tl-location {
}

.tl-dates {

}

.tl-description {
    font-size: 15px;
}

.tl-description ul {
    margin: 3px 0 0 0;
    padding: 0 0 0 2em;
    font-size: 0.9em;
}


@media (min-width: 768px) {
    #cv {
        justify-content: flex-start;
    }

    .timeline {
        width: 36em;
        flex: 1 1 auto;
        max-height: 70vh;
        gap: 0;
        justify-content: space-around;
        background: linear-gradient(#a29ac5, #a29ac5) no-repeat center / 4px 100%;
        border: none;
    }


    .timeline::before {
        left: calc(50% - 2.5ch)
    }

    .timeline::after {
        left: calc(50% - 2ch)
    }

    .timeline-entry {
        width: 16em;
        left: 0;
        flex: 0 1 auto;
    }

    .timeline-entry.right {
        align-self: flex-end;
    }

    .timeline-entry.left {
        align-self: flex-start;
    }

    .timeline-entry::after {
        border: 5px solid var(--color-background-middle);
    }

    .timeline-entry.right::after {
        left: unset;
        right: calc(100% + 2em - 10px);
    }

    .timeline-entry.left::after {
        left: calc(100% + 2em - 10px);
        background: var(--color-accent);
    }
}
