#demo .line,
#demo span {
    height: 20px;
    line-height: 20px;
    vertical-align: middle;
}

#demo span {
    display: inline-block;
    position: relative;
}

#demo span.head {
    margin-left: 4px;
}

#demo span.space {
    margin-right: 4px;
}

#demo span.current::after {
    content: "";
    position: absolute;
    display: inline-block;
    height: 0.9rem;
    top: 50%;
    right: -3px;
    transform: translateY(-50%);
    border-left: 2px solid #000;
    animation: blink-caret 0.9s step-end infinite;
}

#demo span.current.space::after {
    right: -6px;
}

#demo span.past {
    color: gray;
}

@keyframes blink-caret {
    0% { border-color: #000 }
    50% { border-color: transparent }
    100% { border-color: #000 }
}


