/* ===== CINEMATIC TITLE SYSTEM — index + all subpages ===== */

@keyframes journeyTitleGlow {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.12); }
}

@keyframes journeyTitleShimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

@keyframes heroHeadlinePulse {
  0%, 100% {
    text-shadow:
      0.08em 0 #5a5a5a,
      0.08em 0.08em #5a5a5a,
      0 0.08em #5a5a5a,
      0.16em 0.16em 0 #3a3a3a,
      0 0 24px rgba(123, 196, 74, 0.35);
  }
  50% {
    text-shadow:
      0.08em 0 #5a5a5a,
      0.08em 0.08em #5a5a5a,
      0 0.08em #5a5a5a,
      0.16em 0.16em 0 #3a3a3a,
      0 0 36px rgba(123, 196, 74, 0.55),
      0 0 64px rgba(123, 196, 74, 0.2);
  }
}

@keyframes subHeroTitlePulse {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
}

/* Shared underline helper */
body.journey-site .journey-title,
body.journey-site .squad-title,
body.journey-site .night-title,
body.journey-site .night-cta h2,
body.theme-journey .feat-hero__title,
body.theme-journey .folio-hero__title,
body.theme-journey .feat-title,
body.theme-journey .feat-controls-head,
body.theme-journey .feat-cta__title,
body.theme-journey .folio-section__title,
body.theme-journey .folio-cta__title,
body.theme-journey .shop-product-title,
body.theme-journey .shop-block-title,
body.theme-journey .shop-other-title,
body.theme-journey .shop-night-title,
body.theme-journey .shop-server-title {
  position: relative;
  isolation: isolate;
}

body.journey-site .journey-title::after,
body.journey-site .squad-title::after,
body.journey-site .night-title::after,
body.journey-site .night-cta h2::after,
body.theme-journey .feat-hero__title::after,
body.theme-journey .folio-hero__title::after,
body.theme-journey .feat-title::after,
body.theme-journey .feat-controls-head::after,
body.theme-journey .feat-cta__title::after,
body.theme-journey .folio-section__title::after,
body.theme-journey .folio-cta__title::after,
body.theme-journey .shop-product-title::after,
body.theme-journey .shop-block-title::after,
body.theme-journey .shop-other-title::after,
body.theme-journey .shop-night-title::after,
body.theme-journey .shop-server-title::after {
  content: "";
  display: block;
  width: min(5rem, 28%);
  height: 3px;
  margin: 0.65rem auto 0;
  border-radius: 2px;
  opacity: 0.9;
}

body.journey-site .journey-title--left::after,
body.theme-journey .feat-title::after,
body.theme-journey .folio-section__title::after,
body.theme-journey .shop-block-title::after,
body.theme-journey .shop-server-title::after {
  margin-left: 0;
  margin-right: auto;
}

body.theme-journey .shop-product-title::after {
  margin-left: 0;
  margin-right: auto;
}

/* ===== INDEX (journey-site) ===== */

body.journey-site .sky-headline {
  animation: heroHeadlinePulse 4.5s ease-in-out infinite;
}

body.journey-site .sky-label {
  color: #9ee86a;
  text-shadow: 0 0 14px rgba(123, 196, 74, 0.65);
}

body.journey-site .journey-zone--intro .journey-title {
  color: #f4f8fc;
  text-shadow:
    0 0 28px rgba(123, 196, 74, 0.45),
    0 2px 16px rgba(0, 0, 0, 0.55);
  animation: journeyTitleGlow 5s ease-in-out infinite;
}

body.journey-site .journey-zone--intro .journey-title::after {
  background: linear-gradient(90deg, #7bc44a, #c8f07a, #7bc44a);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.5s linear infinite;
}

body.journey-site .crest-zone-platforms .journey-title {
  color: #e8f4ff;
  text-shadow:
    0 0 22px rgba(96, 180, 255, 0.5),
    0 0 44px rgba(64, 140, 220, 0.25),
    0 3px 12px rgba(0, 0, 0, 0.5);
}

body.journey-site .crest-zone-platforms .journey-title::after {
  background: linear-gradient(90deg, #5eb8ff, #a8e0ff, #5eb8ff);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.journey-site .zone-trail .journey-title {
  color: #fff8e8;
  text-shadow:
    0 0 24px rgba(255, 210, 96, 0.55),
    0 0 48px rgba(255, 160, 48, 0.22),
    0 3px 14px rgba(0, 0, 0, 0.65);
  animation: journeyTitleGlow 4.8s ease-in-out infinite;
}

body.journey-site .zone-trail .journey-title::after {
  background: linear-gradient(90deg, #ffd060, #fff0c0, #ffd060);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.8s linear infinite;
}

body.journey-site .zone-loop .journey-title {
  color: #ffd878 !important;
  text-shadow:
    0 0 28px rgba(255, 184, 72, 0.65),
    0 0 56px rgba(255, 140, 40, 0.3),
    0 2px 0 #a06818,
    0 4px 18px rgba(0, 0, 0, 0.7) !important;
  animation: journeyTitleGlow 4.2s ease-in-out infinite;
}

body.journey-site .zone-loop .journey-title::after {
  background: linear-gradient(90deg, #e8a030, #ffe8a0, #e8a030);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.2s linear infinite;
}

body.journey-site .zone-loop .loop-card h3 {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

body.journey-site .zone-loop .loop-card:nth-child(1) h3 {
  color: #9ee86a;
  text-shadow: 0 0 16px rgba(123, 196, 74, 0.45);
}

body.journey-site .zone-loop .loop-card:nth-child(2) h3 {
  color: #ff9a6a;
  text-shadow: 0 0 16px rgba(255, 120, 64, 0.45);
}

body.journey-site .zone-loop .loop-card:nth-child(3) h3 {
  color: #8ec8ff;
  text-shadow: 0 0 16px rgba(96, 180, 255, 0.45);
}

body.journey-site .mode-heading {
  text-shadow:
    0 0 24px rgba(255, 255, 255, 0.25),
    0 4px 18px rgba(0, 0, 0, 0.55);
}

body.journey-site .mode-zone--creative .mode-heading {
  color: #b8f0ff;
  text-shadow:
    0 0 28px rgba(120, 210, 255, 0.55),
    0 0 48px rgba(80, 160, 255, 0.25);
}

body.journey-site .mode-zone--explore .mode-heading {
  color: #ffe8a0;
  text-shadow:
    0 0 28px rgba(255, 210, 96, 0.55),
    0 0 48px rgba(255, 160, 48, 0.22);
}

body.journey-site .mode-zone--survival .mode-heading {
  color: #ffb080;
  text-shadow:
    0 0 28px rgba(255, 120, 64, 0.55),
    0 0 48px rgba(220, 80, 40, 0.22);
}

body.journey-site .zone-squad .squad-title {
  color: #1a5c28;
  text-shadow:
    0 2px 0 rgba(255, 255, 255, 0.85),
    0 0 28px rgba(123, 196, 74, 0.35);
}

body.journey-site .zone-squad .squad-title::after {
  background: linear-gradient(90deg, #5d9a35, #9ee86a, #5d9a35);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.journey-site .zone-drops .journey-label {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #d8ffb0;
  margin-bottom: 0.75rem;
  text-shadow: 0 0 12px rgba(200, 255, 140, 0.5);
}

body.journey-site .zone-drops .journey-title {
  color: #fff !important;
  text-shadow:
    0 0 24px rgba(255, 255, 255, 0.35),
    0 3px 16px rgba(0, 0, 0, 0.45) !important;
}

body.journey-site .zone-drops .journey-title::after {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.35), #fff, rgba(255, 255, 255, 0.35));
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.6s linear infinite;
}

body.journey-site .zone-drops .drop-slide-body h3 {
  color: #fff8d0;
  text-shadow: 0 0 14px rgba(255, 240, 160, 0.45);
}

body.journey-site .zone-squad .squad-card-title {
  color: #1e6b30;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
}

body.journey-site .night-title {
  color: #e8f0ff;
  text-shadow:
    0 0 22px rgba(140, 180, 255, 0.5),
    0 0 40px rgba(96, 140, 220, 0.2);
}

body.journey-site .night-title::after {
  background: linear-gradient(90deg, #7aa8ff, #c8dcff, #7aa8ff);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4.2s linear infinite;
}

body.journey-site .night-cta h2 {
  color: #b8f070;
  text-shadow:
    0 0 28px rgba(123, 196, 74, 0.7),
    0 0 56px rgba(123, 196, 74, 0.35),
    0 3px 0 #3a6820,
    0 6px 20px rgba(0, 0, 0, 0.55);
  animation: journeyTitleGlow 3.8s ease-in-out infinite;
}

body.journey-site .night-cta h2::after {
  background: linear-gradient(90deg, #7bc44a, #d8ff90, #7bc44a);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3s linear infinite;
}

/* ===== SUBPAGES (theme-journey) ===== */

body.theme-journey .feat-hero__eyebrow,
body.theme-journey .folio-eyebrow {
  color: #9ee86a;
  text-shadow: 0 0 14px rgba(123, 196, 74, 0.55);
}

body.theme-journey .feat-hero__title {
  color: #fff8e8;
  text-shadow:
    0 0 28px rgba(255, 210, 96, 0.55),
    0 2px 0 #1a1f3d,
    0 4px 0 #0a0c18,
    0 6px 20px rgba(0, 0, 0, 0.55);
  animation: subHeroTitlePulse 4.5s ease-in-out infinite;
}

body.theme-journey .feat-hero__title::after {
  background: linear-gradient(90deg, #ffd060, #fff0c0, #ffd060);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.8s linear infinite;
}

body.theme-journey .folio-hero__title {
  color: #f4f8fc;
  text-shadow:
    0 0 28px rgba(123, 196, 74, 0.4),
    0 4px 18px rgba(0, 0, 0, 0.55);
  animation: subHeroTitlePulse 5s ease-in-out infinite;
}

body.theme-journey .folio-hero--guides .folio-hero__title {
  color: #ffe8b8;
  text-shadow:
    0 0 28px rgba(255, 200, 96, 0.5),
    0 4px 18px rgba(0, 0, 0, 0.55);
}

body.theme-journey .folio-hero--faq .folio-hero__title {
  color: #e8d8ff;
  text-shadow:
    0 0 28px rgba(155, 93, 229, 0.5),
    0 0 48px rgba(120, 80, 200, 0.25);
}

body.theme-journey .folio-hero--trust .folio-hero__title {
  color: #e8f0ff;
  text-shadow:
    0 0 24px rgba(140, 180, 255, 0.45),
    0 4px 18px rgba(0, 0, 0, 0.55);
}

body.theme-journey .folio-hero__title::after {
  background: linear-gradient(90deg, #7bc44a, #c8f07a, #7bc44a);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.theme-journey .folio-hero--guides .folio-hero__title::after {
  background: linear-gradient(90deg, #e8a030, #ffe8a0, #e8a030);
  background-size: 200% 100%;
}

body.theme-journey .folio-hero--faq .folio-hero__title::after {
  background: linear-gradient(90deg, #9b5de5, #d8b8ff, #9b5de5);
  background-size: 200% 100%;
}

body.theme-journey .folio-hero--trust .folio-hero__title::after {
  background: linear-gradient(90deg, #5eb8ff, #a8e0ff, #5eb8ff);
  background-size: 200% 100%;
}

body.theme-journey .feat-section--void .feat-title {
  color: #b8f0ff;
  text-shadow:
    0 0 24px rgba(120, 210, 255, 0.45),
    0 3px 14px rgba(0, 0, 0, 0.45);
}

body.theme-journey .feat-section--void .feat-title::after {
  background: linear-gradient(90deg, #5eb8ff, #a8e0ff, #5eb8ff);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.theme-journey .feat-section--deepslate .feat-title {
  color: #ffd878;
  text-shadow:
    0 0 24px rgba(255, 184, 72, 0.5),
    0 3px 14px rgba(0, 0, 0, 0.5);
}

body.theme-journey .feat-section--deepslate .feat-title::after {
  background: linear-gradient(90deg, #e8a030, #ffe8a0, #e8a030);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.6s linear infinite;
}

body.theme-journey .feat-section--stone .feat-title {
  color: #9ee86a;
  text-shadow:
    0 0 24px rgba(123, 196, 74, 0.45),
    0 3px 14px rgba(0, 0, 0, 0.45);
}

body.theme-journey .feat-section--stone .feat-title::after {
  background: linear-gradient(90deg, #5d9a35, #9ee86a, #5d9a35);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.8s linear infinite;
}

body.theme-journey .feat-controls-head {
  color: #ffe8a0;
  text-shadow:
    0 0 22px rgba(255, 210, 96, 0.45),
    0 3px 12px rgba(0, 0, 0, 0.45);
}

body.theme-journey .feat-controls-head::after {
  background: linear-gradient(90deg, #ffd060, #fff0c0, #ffd060);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.theme-journey .feat-cta__title {
  color: #b8f070;
  text-shadow:
    0 0 28px rgba(123, 196, 74, 0.65),
    0 3px 0 #3a6820,
    0 6px 18px rgba(0, 0, 0, 0.5);
  animation: journeyTitleGlow 4s ease-in-out infinite;
}

body.theme-journey .feat-cta__title::after {
  background: linear-gradient(90deg, #7bc44a, #d8ff90, #7bc44a);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.2s linear infinite;
}

body.theme-journey .folio-section--stone .folio-section__title {
  color: #e8f4ff;
  text-shadow: 0 0 20px rgba(96, 180, 255, 0.4);
}

body.theme-journey .folio-section--stone .folio-section__title::after {
  background: linear-gradient(90deg, #5eb8ff, #a8e0ff, #5eb8ff);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4.2s linear infinite;
}

body.theme-journey .folio-section--deepslate .folio-section__title {
  color: #ffd878;
  text-shadow: 0 0 20px rgba(255, 184, 72, 0.45);
}

body.theme-journey .folio-section--deepslate .folio-section__title::after {
  background: linear-gradient(90deg, #e8a030, #ffe8a0, #e8a030);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.8s linear infinite;
}

body.theme-journey .folio-section--dark .folio-section__title,
body.theme-journey .folio-section--parchment-band .folio-section__title {
  color: #9ee86a;
  text-shadow: 0 0 20px rgba(123, 196, 74, 0.4);
}

body.theme-journey .folio-section--dark .folio-section__title::after,
body.theme-journey .folio-section--parchment-band .folio-section__title::after {
  background: linear-gradient(90deg, #5d9a35, #9ee86a, #5d9a35);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.theme-journey .folio-parchment .folio-section__title {
  color: #1e6b30;
  text-shadow:
    0 2px 0 rgba(255, 255, 255, 0.6),
    0 0 18px rgba(123, 196, 74, 0.25);
}

body.theme-journey .folio-parchment .folio-section__title::after {
  background: linear-gradient(90deg, #5d9a35, #9ee86a, #5d9a35);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.theme-journey .folio-field-note__title {
  color: #9ee86a;
  text-shadow: 0 0 12px rgba(123, 196, 74, 0.35);
}

body.theme-journey .folio-faq-category__title {
  color: #c8a0ff;
  text-shadow: 0 0 14px rgba(155, 93, 229, 0.45);
  border-bottom-color: rgba(155, 93, 229, 0.35);
}

body.theme-journey .feat-table-head .feat-title {
  color: #8ec8ff;
  text-shadow: 0 0 18px rgba(96, 180, 255, 0.4);
}

body.theme-journey .feat-cinematic__body .feat-title {
  color: #ffd878;
  text-shadow: 0 0 20px rgba(255, 184, 72, 0.45);
}

body.theme-journey .folio-cta__title {
  color: #b8f070;
  text-shadow:
    0 0 24px rgba(123, 196, 74, 0.55),
    0 3px 14px rgba(0, 0, 0, 0.45);
  animation: journeyTitleGlow 4.2s ease-in-out infinite;
}

body.theme-journey .folio-cta__title::after {
  background: linear-gradient(90deg, #7bc44a, #d8ff90, #7bc44a);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.4s linear infinite;
}

body.theme-journey .folio-trust-banner .folio-section__title {
  color: #e8f0ff;
  text-shadow: 0 0 20px rgba(140, 180, 255, 0.4);
}

body.theme-journey .shop-product-title {
  color: #fff;
  text-shadow:
    0 0 24px rgba(123, 196, 74, 0.45),
    0 0 48px rgba(53, 214, 208, 0.2),
    0 3px 14px rgba(0, 0, 0, 0.5);
  animation: subHeroTitlePulse 4.8s ease-in-out infinite;
}

body.theme-journey .shop-product-title::after {
  background: linear-gradient(90deg, #7bc44a, #35d6d0, #7bc44a);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.6s linear infinite;
}

body.theme-journey .shop-block-title {
  color: #8ec8ff;
  text-shadow: 0 0 16px rgba(96, 180, 255, 0.4);
}

body.theme-journey .shop-block-title::after {
  background: linear-gradient(90deg, #5eb8ff, #a8e0ff, #5eb8ff);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4.2s linear infinite;
}

body.theme-journey .shop-other-title {
  color: #ffd878;
  text-shadow: 0 0 18px rgba(255, 184, 72, 0.45);
}

body.theme-journey .shop-other-title::after {
  background: linear-gradient(90deg, #e8a030, #ffe8a0, #e8a030);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 3.8s linear infinite;
}

body.theme-journey .shop-night-title {
  color: #e8d8ff;
  text-shadow: 0 0 20px rgba(155, 93, 229, 0.45);
}

body.theme-journey .shop-night-title::after {
  background: linear-gradient(90deg, #9b5de5, #d8b8ff, #9b5de5);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.theme-journey .shop-server-title {
  color: #9ee86a;
  text-shadow: 0 0 18px rgba(123, 196, 74, 0.4);
}

body.theme-journey .shop-server-title::after {
  background: linear-gradient(90deg, #5d9a35, #9ee86a, #5d9a35);
  background-size: 200% 100%;
  animation: journeyTitleShimmer 4s linear infinite;
}

body.theme-journey .shop-edition-card h3 {
  color: #d8ffb0;
  text-shadow: 0 0 10px rgba(123, 196, 74, 0.3);
}

body.theme-journey .shop-detail-box-head h3 {
  color: #8ec8ff;
  text-shadow: 0 0 12px rgba(96, 180, 255, 0.35);
}

body.theme-journey .shop-detail-item h4 {
  color: #9ee86a;
  text-shadow: 0 0 10px rgba(123, 196, 74, 0.28);
}

body.theme-journey .shop-server-card h3 {
  color: #b8f0ff;
  text-shadow: 0 0 12px rgba(120, 210, 255, 0.35);
}

body.theme-journey.page-404 main h1.font-display {
  color: #ffd878;
  text-shadow:
    0 0 28px rgba(255, 184, 72, 0.55),
    0 3px 14px rgba(0, 0, 0, 0.55);
  animation: journeyTitleGlow 4.5s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  body.journey-site .sky-headline,
  body.journey-site .journey-title,
  body.journey-site .night-cta h2,
  body.journey-site .journey-title::after,
  body.journey-site .squad-title::after,
  body.journey-site .night-title::after,
  body.journey-site .night-cta h2::after,
  body.theme-journey .feat-hero__title,
  body.theme-journey .folio-hero__title,
  body.theme-journey .feat-cta__title,
  body.theme-journey .folio-cta__title,
  body.theme-journey .shop-product-title,
  body.theme-journey [class*="__title"]::after,
  body.theme-journey.page-404 main h1.font-display {
    animation: none;
  }
}
