.byline {
    text-align: center;
    font-style: italic;
    color: #666;
    margin-bottom: 40px;
}

.question {
    font-weight: bold;
    color: #900;
    margin-top: 30px;
    margin-bottom: 10px;
    font-size: 1.1rem;
    border-left: 4px solid #900;
    padding-left: 15px;
}

.date {
    font-style: italic;
    color: #666;
    margin-bottom: 30px;
}

.author-sig {
    margin-top: 40px;
    font-style: italic;
    font-weight: 600;
    color: #333;
}

.story-location {
    font-weight: 700;
    font-style: italic;
    color: #555;
    margin-bottom: 30px;
    padding-bottom: 15px;
    border-bottom: 1px solid #eee;
}

p.scene-break {
    text-align: center;
}

.story-address {
    font-weight: bold;
    letter-spacing: 0.05em;
    margin: 20px 0;
}

.story-lyrics {
    font-style: italic;
    margin: 20px 0 20px 20px;
}

.story-letter {
    font-weight: bold;
    letter-spacing: 0.05em;
    border-left: 3px solid #ccc;
    margin: 20px 0 20px 20px;
    padding: 10px 20px;
}

.story-letter p {
    margin: 5px 0;
}

p.story-section-number {
    text-align: center;
    font-weight: bold;
    font-size: 1.1em;
    margin: 40px 0;
    color: #555;
}

.character-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.character-column h4 {
    min-height: 1.375rem;
    margin-bottom: 20px;
    font-family: var(--font-serif);
    text-transform: none; /* optional — remove if you want to keep the uppercase style */
    color: #900;
}
.character-column h4:empty::before {
    content: "\00a0"; /* non-breaking space, ensures line-height is respected in all browsers */
}

.syn-list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 1.125rem;
    font-family: var(--font-serif);
}

.syn-list li {
    margin-bottom: 0.25em;
}

@media (max-width: 768px) {
    .character-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .character-grid {
        grid-template-columns: 1fr;
    }
}
