/* design-forge preset: cute — animations
   かわいい系:ぽよんと弾む・ゆらゆら浮く */

@keyframes fadeUp{
  from{opacity:0;transform:translateY(28px) scale(.94)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}
@keyframes float{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-14px) rotate(2deg)}
}
@keyframes pulse{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.08);opacity:.9}
}

/* スクロール出現(JSで .is-visible 付与)— ぽよんとオーバーシュート */
.reveal{opacity:0;transform:translateY(28px) scale(.94);transition:opacity .6s ease,transform .6s cubic-bezier(.34,1.56,.64,1)}
.reveal.is-visible{opacity:1;transform:translateY(0) scale(1)}
.reveal:nth-child(2){transition-delay:.12s}
.reveal:nth-child(3){transition-delay:.24s}

/* ホバー — ちょこんと傾いて浮く */
.hover-lift{transition:transform var(--speed) cubic-bezier(.34,1.8,.54,1),box-shadow var(--speed)}
.hover-lift:hover{transform:translateY(-8px) rotate(-1deg) scale(1.02);box-shadow:var(--shadow-m)}

/* cute固有:ゆらゆら浮かぶ装飾 */
.float-deco{display:inline-block;animation:float 4s ease-in-out infinite}

/* cute固有:きらっとひかる（ふんわり白の帯） */
@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,.55),transparent);
  animation:shine 3.2s ease-in-out infinite;
}

/* cute固有:ぽよんと弾む(ホバーで発動) */
@keyframes boing{
  0%{transform:scale(1,1)}
  30%{transform:scale(1.12,.88)}
  55%{transform:scale(.92,1.08)}
  75%{transform:scale(1.04,.96)}
  100%{transform:scale(1,1)}
}
.boing:hover{animation:boing .6s ease}

/* cute固有:ゆらゆら首ふり */
@keyframes sway{
  0%,100%{transform:rotate(-3deg)}
  50%{transform:rotate(3deg)}
}
.sway{display:inline-block;animation:sway 3s ease-in-out infinite;transform-origin:top center}
