:root {
    --timeline-tick-color: rgba(20, 20, 20, 0.3);
    --timeline-cursor-color: #e0a63e;
    --timeline-label-color: rgba(20, 20, 20, 0.75);
}

[data-theme="dark"] {
    --timeline-tick-color: rgba(255, 255, 255, 0.3);
    --timeline-label-color: rgba(255, 255, 255, 0.75);
}

.story-timeline {
    position: fixed;
    bottom: calc(28px + var(--timeline-footer-offset, 0px));
    right: 28px;
    z-index: 900;
    width: 180px;
    font-family: 'Courier New', monospace;
    text-align: right;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease, bottom 0.2s ease;
}

.story-timeline.is-visible {
    opacity: 1;
}

.story-timeline__label {
    font-size: 10px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--timeline-label-color);
    margin-bottom: 6px;
    white-space: nowrap;
}

.story-timeline__ruler {
    cursor: pointer;
    pointer-events: auto;
    position: relative;
    height: 12px;
    background-image: repeating-linear-gradient(to right,
            var(--timeline-tick-color) 0,
            var(--timeline-tick-color) 1px,
            transparent 1px,
            transparent 7px);
}

.story-timeline__cursor {
    position: absolute;
    top: 0;
    width: 2px;
    height: 100%;
    background: var(--timeline-cursor-color);
    left: 0%;
    transition: left 0.15s linear;
}

@media (max-width: 700px) {
    .story-timeline {
        display: none;
    }
}