/* Pieza movimiento-secciones. Solo se oculta nada si el JS puso .wm-on (sin JS o con movimiento reducido todo se ve entero y quieto). */
.wm-on [data-anim="fade-up"],.wm-on [data-anim="stagger"]>*{opacity:0}
.wm-on [data-anim="lines"]{visibility:hidden}
.wm-on [data-anim="lines"].wm-split{visibility:visible}
.wm-line{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.wm-line>span{display:block;will-change:transform}
/* secciones redondeadas que se montan unas sobre otras */
[data-anim="stack"]{position:relative;border-radius:36px 36px 0 0;margin-top:-36px;background:var(--wm-bg,#0A0B10);box-shadow:0 -24px 60px rgba(0,0,0,.45);overflow:hidden}
@media(max-width:640px){[data-anim="stack"]{border-radius:24px 24px 0 0;margin-top:-24px}}
/* hover de tarjetas y botones */
[data-anim-hover="card"],[data-anim="magnetic"]{will-change:transform;transition:box-shadow .5s cubic-bezier(.2,.7,.2,1),border-color .5s}
[data-anim-hover="card"]:hover{box-shadow:0 18px 50px rgba(163,239,244,.10);border-color:rgba(163,239,244,.35)}
/* filete cian que recorre */
[data-anim="rule"]{position:relative;height:1px;background:rgba(255,255,255,.12);overflow:hidden}
[data-anim="rule"]::after{content:"";position:absolute;top:0;left:0;height:100%;width:22%;background:linear-gradient(90deg,transparent,#A3EFF4,transparent);transform:translateX(-100%);animation:wm-rule 5.5s cubic-bezier(.45,0,.25,1) infinite}
@keyframes wm-rule{to{transform:translateX(460%)}}
@media(prefers-reduced-motion:reduce){[data-anim="rule"]::after{animation:none;opacity:0}}
