/* Base reveal animation */
.reveal-text, .reveal-section {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal-text.revealed, .reveal-section.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered paragraph reveal within sections */
.reveal-section p {
    opacity: 0;
    transform: translateY(15px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal-section.revealed p {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger multiple paragraphs */
.reveal-section.revealed p:nth-child(2) {
    transition-delay: 0.2s;
}
.reveal-section.revealed p:nth-child(3) {
    transition-delay: 0.4s;
}

/* Subtle background animation */
.chapter-page {
    background: linear-gradient(125deg, #1f283d  0%, #171a24 50%, #0a0e17 100%);
    background-size: 400% 400%;
    animation: gradientShift 15s ease infinite;
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Terminal text typing effect */
.terminal-text {
    overflow: hidden;
    border-right: 0.15em solid #4cd1a9;
    white-space: nowrap;
    margin: 0 auto;
    letter-spacing: 0.1em;
    animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite;
}

@keyframes typing {
    from { width: 0 }
    to { width: 100% }
}

@keyframes blink-caret {
    from, to { border-color: transparent }
    50% { border-color: #4cd1a9 }
}