.timeline {
    display: flex;
    flex-direction: column;
    padding: 60px 20px 0 37px;
    position: relative
}

@media screen and (min-width:768px) {
    .timeline {
        padding: 60px 20px 0
    }
}

.timeline__track {
    background: #c3cb65;
    background-clip: content-box;
    height: 100%;
    left: 30px;
    min-height: 9px;
    max-height: 100%;
    padding: 0 5px 7px;
    position: absolute;
    top: 0;
    width: 14px;
    z-index: 2
}

@media screen and (min-width:768px) {
    .timeline__track {
        left: calc(50% - 7px)
    }
}

.timeline__track::after {
    background: #eaae47;
    border-radius: 50%;
    bottom: 0;
    content: '';
    height: 14px;
    left: 0;
    position: absolute;
    width: 14px
}

.timeline__item {
    padding-top: 20px;
    padding-left: 30px;
    position: relative;
    width: 100%
}

@media screen and (min-width:768px) {
    .timeline__item {
        padding-left: 0;
        width: calc(50% + 2px)
    }
}

@media screen and (min-width:768px) {
    .timeline__item:nth-child(odd) {
        margin-right: auto;
        padding-right: 40px
    }
}

@media screen and (min-width:768px) {
    .timeline__item:nth-child(even) {
        margin-left: auto;
        padding-left: 40px
    }
}

@media screen and (min-width:768px) {
    .timeline__item:nth-child(even) .timeline__line {
        left: 0;
        right: auto
    }
}

.timeline__line {
    background: #c3cb65;
    height: 4px;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    z-index: 2
}

@media screen and (min-width:768px) {
    .timeline__line {
        left: auto;
        right: 0
    }
}

@media screen and (max-width:767.9px) {
    .timeline__footer {
        padding-left: 30px
    }
}

.timeline.is-init .timeline__line {
    transition: width .5s ease-in-out;
    width: 0;
    will-change: width
}

.timeline.is-init .timeline__wrap {
    opacity: 0;
    transform: translateY(-20px);
    transition: transform .5s, opacity .2s;
    will-change: opacity, transform
}

.timeline.is-init .timeline__footer {
    opacity: 0;
    transition: opacity .2s;
    will-change: opacity
}

.timeline.is-loading .timeline__footer,
.timeline.is-loading .timeline__line,
.timeline.is-loading .timeline__wrap {
    transition: none
}

.timeline .is-visible .timeline__line {
    width: 100%
}

.timeline .is-visible .timeline__wrap {
    opacity: 1;
    transform: translateY(0)
}

.timeline .is-visible.timeline__footer {
    opacity: 1
}

* {
    box-sizing: border-box
}

a {
    color: #00adb5;
    font-weight: 700;
    transition: color .1s
}

a:focus,
a:hover {
    color: #007c82
}

.intro {
    background: #393e46;
    padding: 5rem 0
}

.intro p:last-child {
    margin-bottom: 0
}

.timeline-section {
    padding: 4rem 0
}

footer {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 600px;
    padding: 2rem 0;
    text-align: center
}