/* ============================================
   CHOIR — The Resonance
   Every page is a voice. You are reading
   the choir now.
   ============================================ */

/* --- Page Layout --- */
.choir-page {
  position: relative;
  min-height: 5000px;
  width: 100%;
  transition: background 2s ease;
}

.choir-page.warming {
  background:
    radial-gradient(ellipse at 50% 80%, rgba(100, 40, 20, 0.04) 0%, transparent 60%),
    radial-gradient(ellipse at 30% 60%, rgba(139, 107, 26, 0.03) 0%, transparent 50%),
    linear-gradient(180deg, var(--stone-bg) 0%, #0d0908 60%, #0e0a07 100%);
  background-color: var(--stone-bg);
}

/* --- Header --- */
.choir-header {
  position: relative;
  text-align: center;
  padding: 120px 20px 60px;
  z-index: 2;
}

.choir-listen {
  font-family: var(--font-blackletter);
  font-style: italic;
  font-size: 0.85rem;
  color: var(--stone-dim);
  letter-spacing: 0.3em;
  margin-top: 12px;
  opacity: 0;
  animation: choir-listen-fade 3s ease-in forwards 1.5s;
}

@keyframes choir-listen-fade {
  from { opacity: 0; }
  to { opacity: 0.6; }
}

/* --- Voice Container --- */
.choir-voices {
  position: relative;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  height: 4200px;
}

/* --- Individual Voice --- */
.choir-voice {
  position: absolute;
  font-family: var(--font-blackletter);
  font-style: italic;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 1.5s ease;
  pointer-events: none;
  will-change: transform;
}

.choir-voice.audible {
  opacity: var(--voice-opacity, 0.4);
}

/* Voice color classes */
.voice-stone { color: var(--stone-dim); }
.voice-text { color: var(--stone-text); }
.voice-ruby { color: var(--ruby-glow); }
.voice-sapphire { color: var(--sapphire-glow); }
.voice-amber { color: var(--amber-glow); }

/* --- Ending Section --- */
.choir-ending {
  position: relative;
  z-index: 2;
  text-align: center;
  padding-top: 200px;
  padding-bottom: 100px;
}

.choir-silence {
  font-family: var(--font-blackletter);
  font-size: 1rem;
  color: var(--stone-text);
  letter-spacing: 0.15em;
  opacity: 0;
  transition: opacity 2s ease;
}

.choir-silence.audible {
  opacity: 0.8;
}

.choir-door {
  display: block;
  margin-top: 40px;
  font-family: var(--font-blackletter);
  font-style: italic;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  opacity: 0;
  transition: opacity 2s ease 1s, color 0.4s ease;
  /* Victorian color bleed */
  color: #7a3a2a;
  text-shadow: 0 0 8px rgba(122, 58, 42, 0.15);
}

.choir-door.audible {
  opacity: 0.6;
}

.choir-door:hover {
  color: #bb8a3a;
  text-shadow: 0 0 12px rgba(187, 138, 58, 0.2);
}

/* --- Scroll Progress Indicator --- */
.choir-depth-marker {
  position: fixed;
  bottom: 20px;
  right: 20px;
  font-family: var(--font-mono);
  font-size: 0.45rem;
  color: var(--stone-dim);
  letter-spacing: 0.2em;
  opacity: 0.2;
  z-index: 20;
  pointer-events: none;
  transition: opacity 0.5s ease;
}

/* --- Footer depth --- */
.choir-footer {
  position: relative;
  z-index: 2;
  text-align: center;
  padding-bottom: 40px;
}

.choir-footer-depth {
  font-family: var(--font-mono);
  font-size: 0.5rem;
  color: var(--stone-dark);
  letter-spacing: 0.4em;
  opacity: 0.15;
}

/* --- Mobile --- */
@media (max-width: 768px) {
  .choir-voices {
    max-width: 100%;
    padding: 0 12px;
  }

  .choir-voice {
    white-space: normal;
    max-width: 80vw;
  }

  .choir-header {
    padding: 80px 16px 40px;
  }
}
