/* VELVET LINE — motion.css : reveal（IntersectionObserver）と入場アニメーション。
   反転リズムに従い STORY 系は fade-right、CAST/EVENT 系は fade-left を基調にする。 */

[data-reveal] { opacity: 0; transition: opacity .8s var(--ease), transform .8s var(--ease); will-change: opacity, transform; }
[data-reveal="fade-up"]    { transform: translateY(28px); }
[data-reveal="fade-left"]  { transform: translateX(-34px); }
[data-reveal="fade-right"] { transform: translateX(34px); }
[data-reveal="fade-in"]    { transform: none; }
[data-reveal="scale-soft"] { transform: scale(.965); }
[data-reveal="mask"]       { transform: none; clip-path: inset(0 0 100% 0); transition: clip-path .9s var(--ease), opacity .9s var(--ease); }

[data-reveal].is-in { opacity: 1; transform: none; clip-path: inset(0 0 0 0); }

/* グループの段階表示（CAST カード等） */
[data-reveal-group] > * { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
[data-reveal-group].is-in > * { opacity: 1; transform: none; }
[data-reveal-group].is-in > *:nth-child(1) { transition-delay: 0ms; }
[data-reveal-group].is-in > *:nth-child(2) { transition-delay: 70ms; }
[data-reveal-group].is-in > *:nth-child(3) { transition-delay: 140ms; }
[data-reveal-group].is-in > *:nth-child(4) { transition-delay: 210ms; }
[data-reveal-group].is-in > *:nth-child(5) { transition-delay: 90ms; }
[data-reveal-group].is-in > *:nth-child(6) { transition-delay: 160ms; }
[data-reveal-group].is-in > *:nth-child(7) { transition-delay: 230ms; }
[data-reveal-group].is-in > *:nth-child(8) { transition-delay: 300ms; }

/* 短い読み込みフェード（長いローディング画面は作らない） */
.hero__inner > * { animation: velvet-rise .9s var(--ease) both; }
.hero__eyebrow { animation-delay: .05s; }
.hero__title   { animation-delay: .12s; }
.hero__lead    { animation-delay: .22s; }
.hero__actions { animation-delay: .32s; }
.hero__meta    { animation-delay: .4s; }
@keyframes velvet-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* prefers-reduced-motion：すべての演出を停止（パララックスは motion.js 側でも停止） */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  [data-reveal], [data-reveal-group] > * { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .hero__inner > * { animation: none !important; }
  .hero__velvet, .hero__lightline { transform: none !important; }
}
