#app {
    max-width: 700px;
    margin: 0 auto;
    font-size: 1.1em;
}

h2 {
    font-size: 1.4em;
    text-align: center;
}

span {
    opacity: 0.1;
    position: relative;
}

span.past {
    opacity: 0.5;
}

span.current {
    opacity: 1;
}

span.current::after {
    content: '';
    position: absolute;
    width: calc(100% + 4px);
    height: 3px;
    background: #000;
    left: -4px;
    bottom: -5px;
    animation-name: underline;
    animation-duration: 3s;
    animation-iteration-count: infinite;
}

.spotlight {
    width: 100%;
    height: 80px;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: end;
    margin-top: 20px;
    font-size: 1.3em;
}

.spotlight-box {
    position: relative;
}

.previous {
    width: 600px;
    position: absolute;
    text-align: right;
    left: 0;
    transform: translate(calc(-100% - 10px));
    line-height: 2em;
}

.current {
    font-size: 1.4em;
}

.spotlight.current {
    padding: 0 10px;
}

.reading {
    width: calc(100% + 400px);
    position: absolute;
    transform: translate(-200px, -100%);
    font-size: 0.5em;
    text-align: center;
}

.upcoming {
    position: absolute;
    top: 0;
    width: 600px;
    left: 100%;
    text-align: left;
    margin-left: 10px;
    line-height: 2em;
}

.previous1,
.upcoming1 {
    opacity: 0.4;
}

.previous2,
.upcoming2 {
    opacity: 0.2;
}

.previous3,
.upcoming3 {
    opacity: 0.1;
}

.previous4,
.upcoming4 {
    opacity: 0.1;
}

.previous5,
.upcoming5 {
    opacity: 0.05;
}

input {
    width: 100%;
    padding: 10px 0;
    text-align: center;
    font-size: 1.5em;
}

.prompt {
    font-family: sans-serif;
    font-size: 0.8em;
    text-align: center;
    margin-top: 10px;
    color: #aaa;
    opacity: 0;
    transition: all 0.05s;
}

.prompt.active {
    opacity: 1;
    transition: all 0.3s;
}

@keyframes underline {
    0% {
        opacity: 0.2;
    }
    20% {
        opacity: 0.1;
    }
    50% {
        opacity: 0.1;
    }
    70% {
        opacity: 0.2;
    }
    100% {
        opacity: 0.2;
    }
}