/* anim.min.css — 卡片浮起 + 光暈、按鈕波紋、進場淡入 */
.anim-card{will-change:transform,box-shadow;transition:transform .25s ease,box-shadow .25s ease}
.anim-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.28)}
.anim-card.anim-glow:hover{box-shadow:0 10px 24px rgba(0,0,0,.28),0 0 24px rgba(255,215,0,.25)}
.btn{position:relative;overflow:hidden}
.btn-ripple{position:absolute;border-radius:50%;transform:scale(0);pointer-events:none;opacity:.5;animation:ripple .6s ease-out}
@keyframes ripple{to{transform:scale(12);opacity:0}}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.reveal.in-view{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .anim-card,.anim-card:hover{transition:none;transform:none;box-shadow:none}
  .reveal{opacity:1;transform:none;transition:none}
}