/* ==========================================================================
   THE FOURTH KIND — CELESTIAL REVEAL ANIMATIONS
   Letter-by-letter, word-by-word unblur, upward float & luminous entrance
   ========================================================================== */

/* Eyebrow entrance */
.reveal-eyebrow {
  opacity: 0;
  transform: translateY(16px);
  letter-spacing: 1px;
  filter: blur(8px);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              letter-spacing 0.95s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.85s ease;
  will-change: opacity, transform, filter, letter-spacing;
}

.section-header.revealed .reveal-eyebrow,
.our-coffee-header.revealed .reveal-eyebrow,
.shop-header.revealed .reveal-eyebrow {
  opacity: 0.85;
  transform: translateY(0);
  letter-spacing: 4px;
  filter: blur(0);
}

/* Title Characters entrance */
.reveal-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(32px) scale(0.94);
  filter: blur(14px);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.85s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, filter;
}

.section-header.revealed .reveal-char,
.our-coffee-header.revealed .reveal-char,
.shop-header.revealed .reveal-char {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
  filter: blur(0) !important;
}

/* Description / Subtitle entrance */
.reveal-desc,
.shop-subtitle {
  opacity: 0;
  transform: translateY(22px);
  filter: blur(10px);
  transition: opacity 0.95s cubic-bezier(0.16, 1, 0.3, 1) 0.35s,
              transform 0.95s cubic-bezier(0.16, 1, 0.3, 1) 0.35s,
              filter 0.95s ease 0.35s;
  will-change: opacity, transform, filter;
}

.section-header.revealed .reveal-desc,
.our-coffee-header.revealed .reveal-desc,
.shop-header.revealed .reveal-desc,
.shop-header.revealed .shop-subtitle {
  opacity: 1 !important;
  transform: translateY(0) !important;
  filter: blur(0) !important;
}

/* Vision Quote Word-by-Word entrance */
.reveal-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(28px);
  filter: blur(12px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.8s ease;
  will-change: opacity, transform, filter;
}

.vision-container.revealed .reveal-word {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* Vision Subtext */
.reveal-sub {
  opacity: 0;
  transform: translateY(20px);
  filter: blur(8px);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1) 0.6s,
              transform 1s cubic-bezier(0.16, 1, 0.3, 1) 0.6s,
              filter 1s ease 0.6s;
  will-change: opacity, transform, filter;
}

.vision-container.revealed .reveal-sub {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* Staggered Cards Reveal */
.products-grid .product-card.reveal-card,
.origins-grid .origin-card.reveal-card {
  opacity: 0;
  transform: translateY(40px);
  filter: blur(10px);
  transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.9s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.9s ease,
              box-shadow 0.4s ease,
              border-color 0.4s ease;
  will-change: opacity, transform, filter;
}

.products-grid.revealed .product-card.reveal-card,
.origins-grid.revealed .origin-card.reveal-card {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
