/* Laboratório de animações — só o que o movimento precisa (o resto do desenho está no Elementor) */
[data-anim~="chars"] { perspective: 700px; }
.lab-char { display: inline-block; will-change: transform; }

[data-anim~="horizontal"] { overflow: hidden; }
[data-anim-track] { display: flex !important; flex-wrap: nowrap !important; width: max-content !important; will-change: transform; }
[data-anim~="horizontal"] [data-anim-track] > * { flex: none; overflow: hidden; }
/* Telemóvel e tablet: a galeria desliza com o dedo, com paragens em cada foto */
@media (max-width: 899px), (prefers-reduced-motion: reduce) {
  [data-anim~="horizontal"] [data-anim-track] { width: auto !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-inline: clamp(16px, 3.2vw, 48px) !important; }
  [data-anim~="horizontal"] [data-anim-track]::-webkit-scrollbar { display: none; }
  [data-anim~="horizontal"] [data-anim-track] > * { scroll-snap-align: center; }
}

[data-anim-card] { position: sticky !important; top: calc(100px + var(--i, 0) * 22px); transform-origin: 50% 0; }

[data-anim~="circle"] [data-anim-media] { will-change: clip-path, transform; }

[data-anim~="shader"] { position: relative; isolation: isolate; overflow: hidden; }
.lab-shader { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }

[data-anim~="velocity"] { overflow: hidden; }
[data-anim~="velocity"] [data-anim-track] { will-change: transform; }
[data-anim~="velocity"] [data-anim-track] > * { flex: none; white-space: nowrap; padding-right: 0.3em; }
