/* design-forge preset: elegant — animations
   上品系:息をひそめたようなフェード。動きは最小限に */

@keyframes fadeUp{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}
@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}
@keyframes pulse{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.015);opacity:.9}
}

/* スクロール出現(JSで .is-visible 付与) — 長く、静かに滲むように */
.reveal{opacity:0;transform:translateY(12px);transition:opacity 1.4s cubic-bezier(.23,.6,.32,1),transform 1.4s cubic-bezier(.23,.6,.32,1)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal:nth-child(2){transition-delay:.2s}
.reveal:nth-child(3){transition-delay:.4s}

/* ホバー — 持ち上げは3pxまで。影も気配ほど */
.hover-lift{transition:transform var(--speed) ease,box-shadow var(--speed) ease,border-color var(--speed) ease}
.hover-lift:hover{transform:translateY(-3px);box-shadow:var(--shadow-m);border-color:color-mix(in srgb,var(--c-primary) 35%,var(--c-border))}

/* elegant固有:呼吸のような明滅(装飾ダイヤ・バッジ用) */
@keyframes breath{
  0%,100%{opacity:1}
  50%{opacity:.65}
}
.breath{animation:breath 8s ease-in-out infinite}

/* elegant固有:ゆらぎ(装飾をごくゆっくり漂わせる) */
.drift-deco{animation:float 10s ease-in-out infinite}
