.timeline .row {
    position: relative;
}
.timeline .row::before {
    content: "";
    width: 1px;
    height: 0;
    background-color: var(--tower-red);
    position: absolute;
    top: 0;
    left: 3rem;
    transition: height 3s ease;
}
.timeline .card-item .bp-multimedia {
    height: 26.6rem;
    margin-left: 1px;
}
.timeline .card-item h2.wp-block-heading {
    background-color: var(--bodyBackground);
    display: inline-block;
}
.timeline .card-item::before {
    content: "";
    position: absolute;
    top: 30.5rem;
    left: 1rem;
    width: 5rem;
    height: 1px;
    background-color: var(--tower-red);
    z-index: -1;
}

@media only screen
and (min-width : 961px) {
    .timeline .row::before {
        left: 50%;
        translate: -50% 0;
    }
    .timeline .card-item:nth-child(even) {
        margin-top: 18.7rem;
    }
    .timeline .card-item::before {
        top: 31rem;
        left: 0;
        width: 20%;
    }
    .timeline .card-item:nth-child(odd)::before {
        right: 0;
        left: auto;
        width: 80%;
    }
    .timeline .card-item:nth-child(odd) h2.wp-block-heading {
        padding-right: 1rem;
    }
    .timeline .card-item:nth-child(even) h2.wp-block-heading {
        padding-left: 1rem;
    }
}
@media only screen
and (min-width : 0)
and (max-width : 960px) {
    .timeline .card-item {
        margin-bottom: 4rem;
    }
    .timeline .bp-group {
        padding-left: 6rem;
        justify-content: flex-start!important;
        align-items: flex-start!important;
    }
}

:where(#wrapper) .timeline {
    --duration: 1s;
}
:where(#wrapper) .card-item {
    opacity: 0;
}
:where(#wrapper) .timeline.animateActive .row::before {
    height: 100%;
}
:where(#wrapper) .timeline.animateActive .card-item {
    animation: fade var(--duration) forwards;
}
:where(#wrapper) .stack-list.animateActive .card-item:nth-child(n) {
    --delay: calc(0.3s + (0.3s * (n - 1)));
    animation-delay: var(--delay);
}