/* --- General Page Reset --- */
body {
    margin: 0;
    overflow-x: hidden;
    /* --- Page Load Animation State --- */
    opacity: 0;
    transition: opacity 0.8s ease-in;
}

/* Added by JS once page is ready */
body.is-loaded {
    opacity: 1;
}

/* --- Typography --- */
.font-sans { font-family: 'Inter', sans-serif; }
.font-display { font-family: 'Cinzel', serif !important; }

.book-text {
    text-align: justify;
    line-height: 1.8;
    hyphens: auto;
}

.book-text p {
    text-indent: 1.5rem;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    line-height: 1.6;
}

.book-text p:first-of-type {
    text-indent: 0;
}

/* --- Gallery --- */
.gallery-image {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    width: 100%;
    display: block;
}


/* --- Navigation & Interaction --- */
button:disabled {
    cursor: not-allowed;
    opacity: 0.3;
}

.nav-link {
    transition: transform 0.2s ease-in-out, color 0.2s ease;
    display: inline-block;
}

.nav-link:hover {
    transform: scale(1.1);
}

/* --- Marquee Animation --- */
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.animate-marquee {
  display: flex;
  width: fit-content; 
  animation: marquee 20s linear infinite;
  will-change: transform;
  white-space: nowrap; 
}