/* === Reveal 基础动效 === */
[data-anim]{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
[data-anim].is-in{opacity:1;transform:translateY(0)}

[data-anim="fade"]{transform:none}
[data-anim="scale"]{transform:scale(.96)}
[data-anim="scale"].is-in{transform:scale(1)}

[data-anim="blur"]{filter:blur(8px);transform:translateY(0)}
[data-anim="blur"].is-in{filter:blur(0)}

[data-stagger="0"]{transition-delay:0s}
[data-stagger="1"]{transition-delay:.08s}
[data-stagger="2"]{transition-delay:.16s}
[data-stagger="3"]{transition-delay:.24s}
[data-stagger="4"]{transition-delay:.32s}
[data-stagger="5"]{transition-delay:.4s}
[data-stagger="6"]{transition-delay:.48s}
[data-stagger="7"]{transition-delay:.56s}

@media(prefers-reduced-motion:reduce){
  [data-anim]{opacity:1;transform:none;filter:none;transition:none}
}

/* === 平滑滚动 === */
html{scroll-behavior:smooth;scroll-padding-top:96px}

/* === Magnetic button 默认 transition === */
[data-magnetic]{transition:transform .35s cubic-bezier(.22,.61,.36,1);will-change:transform;display:inline-block}

/* === 页面加载淡入 === */
html.js-ready body{animation:pageIn .5s ease-out}
@keyframes pageIn{from{opacity:0}to{opacity:1}}

/* === 文字悬停波浪（链接） === */
.fx-link{position:relative;display:inline-block}
.fx-link::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.fx-link:hover::after{transform:scaleX(1);transform-origin:left}

/* === 卡片悬浮微浮 === */
.fx-card{transition:transform .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s}
.fx-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px -10px rgba(0,0,0,.1)}
