/* IVORY HERITAGE (SITE 55) — motion.css : reveal / mask / parallax（端正・ゆっくり 800ms）
   sites-v5 §9/§10・A5-5/A5-6 準拠。reduce で全停止。CTA/フォーム/本文の大移動なし。 */

/* reveal 基底（JS が data-reveal を付与済みの要素に is-in を立てる） */
[data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); will-change: opacity, transform; }
[data-reveal].is-in { opacity: 1; transform: none; }
[data-reveal="fade-in"] { transform: none; }

/* stagger（グループ内の順次表示） */
[data-reveal-group] > * { opacity: 0; transform: translateY(24px); transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); }
[data-reveal-group].is-in > * { opacity: 1; transform: none; }
[data-reveal-group].is-in > *:nth-child(2) { transition-delay: 90ms; }
[data-reveal-group].is-in > *:nth-child(3) { transition-delay: 180ms; }
[data-reveal-group].is-in > *:nth-child(4) { transition-delay: 270ms; }

/* mask reveal（GREETING シグネチャ：各段落が下から布を引くように現れる） */
[data-reveal="mask"] .greeting__p, [data-reveal="mask"] .greeting__from {
  clip-path: inset(0 0 100% 0); opacity: 0;
  transition: clip-path 900ms var(--ease), opacity 700ms var(--ease); will-change: clip-path, opacity;
}
[data-reveal="mask"].is-in .greeting__p, [data-reveal="mask"].is-in .greeting__from { clip-path: inset(0 0 0 0); opacity: 1; }
[data-reveal="mask"].is-in .greeting__p:nth-of-type(2) { transition-delay: 180ms; }
[data-reveal="mask"].is-in .greeting__p:nth-of-type(3) { transition-delay: 360ms; }
[data-reveal="mask"].is-in .greeting__from { transition-delay: 520ms; }

/* portrait mask (greeting figure) */
.greeting__portrait .ph { clip-path: inset(0 0 100% 0); transition: clip-path 1000ms var(--ease); }
.greeting__portrait.is-in .ph, [data-reveal].is-in .greeting__portrait .ph { clip-path: inset(0 0 0 0); }

/* soft fade for space switcher */
@keyframes fadeSoft { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* parallax 基底（transform は motion.js が rAF で更新。ここは初期・reduce のみ） */
[data-parallax] { will-change: transform; }

/* hero low-slow zoom（軽い・reduce停止） */
.hero__bg .ph img { transform: scale(1.06); transition: transform 12s linear; }
.hero.is-ready .hero__bg .ph img { transform: scale(1); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  [data-reveal], [data-reveal-group] > * { opacity: 1 !important; transform: none !important; }
  [data-reveal="mask"] .greeting__p, [data-reveal="mask"] .greeting__from,
  .greeting__portrait .ph { clip-path: none !important; opacity: 1 !important; }
  .hero__bg .ph img { transform: none !important; }
  [data-parallax] { transform: none !important; }
}
