/* design-forge preset: clean — animations
   清潔系:ふわっと・すっと。派手にしない */

@keyframes fadeUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}
@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-10px)}
}
@keyframes pulse{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.05);opacity:.85}
}

/* スクロール出現(JSで .is-visible 付与) */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal:nth-child(2){transition-delay:.12s}
.reveal:nth-child(3){transition-delay:.24s}

/* ホバー */
.hover-lift{transition:transform var(--speed),box-shadow var(--speed)}
.hover-lift:hover{transform:translateY(-6px);box-shadow:var(--shadow-m)}

/* clean固有:泡のようにゆっくり漂う装飾 */
.float-deco{animation:float 6s ease-in-out infinite}

/* clean固有:きらめき(清潔感の光) */
@keyframes shine{
  0%{transform:translateX(-120%) skewX(-18deg)}
  100%{transform:translateX(220%) skewX(-18deg)}
}
.shine{position:relative;overflow:hidden}
.shine::after{
  content:"";position:absolute;top:0;left:0;width:40%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  animation:shine 3.5s ease-in-out infinite;
}
