.intro { display: none; }
html.js .intro {
  position: fixed; inset: 0; z-index: 1000;
  background:
    radial-gradient(ellipse at 20% 18%, rgba(238,154,28,0.16), transparent 45%),
    radial-gradient(ellipse at 82% 78%, rgba(94,107,57,0.16), transparent 48%),
    var(--cream);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 2rem;
  transition: opacity 1s ease, visibility 1s ease;
}
html.js body:not(.entered) { overflow: hidden; }
.intro.hidden { opacity: 0; visibility: hidden; }
.intro-logo {
  width: 92px; height: 92px; object-fit: contain;
  margin-bottom: 0.4rem; animation: floaty 6s ease-in-out infinite;
}
.intro-title {
  font-family: 'Fraunces', serif; color: var(--orange);
  font-weight: 500; line-height: 1.1; letter-spacing: -0.01em;
  font-size: clamp(3rem, 13vw, 5.5rem); margin-bottom: 0.4rem;
}
.intro-tagline {
  font-family: 'Fraunces', serif; font-style: italic;
  font-size: clamp(1.1rem, 3.4vw, 1.45rem); color: var(--ink);
  max-width: 26ch; line-height: 1.4;
}
.intro-head {
  display: inline-flex; align-items: center; gap: 0.6rem;
  margin: 2.4rem 0 1.7rem; color: var(--green);
  font-weight: 700; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase;
  max-width: 30ch; line-height: 1.5;
}
.intro-head svg { width: 1.5rem; height: 1.5rem; flex-shrink: 0; }
.intro-actions { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }

.sound-toggle {
  position: fixed; bottom: 1.4rem; right: 1.4rem; z-index: 200;
  width: 3.1rem; height: 3.1rem; border-radius: 50%; border: none; cursor: pointer;
  background: var(--orange); color: var(--cream);
  display: none; align-items: center; justify-content: center;
  box-shadow: 0 6px 20px rgba(222,122,17,0.4); transition: transform 0.2s, background 0.2s;
}
.sound-toggle:hover { transform: scale(1.08); background: var(--orange-deep); }
.sound-toggle.show { display: flex; }
.sound-toggle svg { width: 1.4rem; height: 1.4rem; }

.podcast-dock {
  position: fixed; bottom: 5.2rem; right: 1.4rem; z-index: 199;
  width: min(340px, calc(100vw - 2.8rem));
  border-radius: 1rem; overflow: hidden;
  box-shadow: 0 18px 50px rgba(45, 42, 36, 0.3);
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0.35s;
}
.podcast-dock.open { opacity: 1; visibility: visible; transform: translateY(0); }
.podcast-dock iframe { display: block; width: 100%; height: 152px; border: 0; }
