/* =========================================================
   REVEAL (H2 + CONTENT)
   - H2: translateY + opacity（blurなし）
   - Content: opacityのみ（transform禁止でGSAPと干渉回避）
========================================================= */

/* H2：初期 */
.js-reveal-h2 {
  opacity: 0;
  transform: translateY(14px);
  filter: blur(6px); /* ★追加：弱めが正解 */
  transition:
    opacity 900ms ease,
    transform 900ms cubic-bezier(0.2, 0.85, 0.2, 1),
    filter 900ms ease;
  will-change: opacity, transform, filter;
}

/* 中コンテンツ：初期（opacityのみ） */
.js-reveal-content {
  opacity: 0;
  transition: opacity 1800ms ease;
  will-change: opacity;
}

/* Orb bg：遅れてふわっ */
.js-reveal-orb {
  opacity: 0;
  transition: opacity 1200ms ease 420ms;
  will-change: opacity;
}

/* 発火後 */
.is-revealed.js-reveal-h2 {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.is-revealed.js-reveal-content {
  opacity: 1;
}
.is-revealed.js-reveal-orb {
  opacity: 1;
}

/* モーション軽減 */
@media (prefers-reduced-motion: reduce) {
  .js-reveal-h2,
  .js-reveal-content,
  .js-reveal-orb {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
