/* ZYX · sistema de movimento (Teberge Web Design)
   Tokens: 100/150/200/300ms. Entrada ease-out, saída ease-in. Só transform e opacity. */
:root{
  --zyx-m100:100ms;--zyx-m150:150ms;--zyx-m200:200ms;--zyx-m300:300ms;
  --zyx-ease-out:cubic-bezier(.16,1,.3,1);--zyx-ease-in:cubic-bezier(.7,0,.84,0);
}

/* Entrada ao rolar (uma vez) */
.zyx-reveal,.zyx-stagger>.e-con-inner>*,.zyx-stagger>*:not(.e-con-inner){
  opacity:0;transform:translate3d(0,16px,0);
  transition:opacity var(--zyx-m300) var(--zyx-ease-out),transform var(--zyx-m300) var(--zyx-ease-out);
  transition-delay:var(--zyx-delay,0ms);
}
.zyx-reveal--left{transform:translate3d(-24px,0,0)}
.zyx-reveal--right{transform:translate3d(24px,0,0)}
.zyx-reveal--scale{transform:scale(.96)}
.zyx-reveal.is-in,.zyx-stagger.is-in>.e-con-inner>*,.zyx-stagger.is-in>*:not(.e-con-inner){opacity:1;transform:none}

/* Vida: flutuação suave em elementos decorativos (nunca em controles) */
@keyframes zyx-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-10px,0)}}
@keyframes zyx-drift{0%,100%{transform:translate3d(0,0,0) rotate(0)}33%{transform:translate3d(6px,-8px,0) rotate(1.5deg)}66%{transform:translate3d(-5px,-4px,0) rotate(-1deg)}}
@keyframes zyx-breathe{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}
.zyx-float{animation:zyx-float 6s ease-in-out infinite;will-change:transform}
.zyx-float--slow{animation-duration:9s}
.zyx-drift{animation:zyx-drift 10s ease-in-out infinite;will-change:transform}
.zyx-breathe{animation:zyx-breathe 7s ease-in-out infinite}
.zyx-d1{animation-delay:-1.5s}.zyx-d2{animation-delay:-3s}.zyx-d3{animation-delay:-4.5s}

/* Faixa infinita */
.zyx-marquee{overflow:hidden;white-space:nowrap}
.zyx-marquee__track{display:inline-flex;align-items:center;gap:var(--zyx-marquee-gap,40px);width:max-content;animation:zyx-marquee var(--zyx-marquee-speed,40s) linear infinite;will-change:transform}
.zyx-marquee--reverse .zyx-marquee__track{animation-direction:reverse}
@keyframes zyx-marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* Parallax (o JS aplica translate no wrapper) */
[data-zyx-parallax]{will-change:transform}

/* Brilho que segue o cursor */
.zyx-glow{position:relative;isolation:isolate}
.zyx-glow::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  background:radial-gradient(420px circle at var(--zyx-mx,50%) var(--zyx-my,50%),rgba(255,203,5,.22),transparent 60%);
  transition:opacity var(--zyx-m300) var(--zyx-ease-out)}
.zyx-glow:hover::before{opacity:1}
.zyx-glow>*{position:relative;z-index:1}

/* Microinterações */
.zyx-btn .elementor-button,.zyx-btn.elementor-button{transition:transform var(--zyx-m150) var(--zyx-ease-out),box-shadow var(--zyx-m150) var(--zyx-ease-out),background-color var(--zyx-m150) var(--zyx-ease-out),color var(--zyx-m150) var(--zyx-ease-out)}
.zyx-btn .elementor-button:hover{transform:translate3d(0,-2px,0);box-shadow:0 10px 24px -10px rgba(3,3,3,.45)}
.zyx-btn .elementor-button:active{transform:translate3d(0,0,0);transition-duration:var(--zyx-m100)}
.zyx-card{transition:transform var(--zyx-m200) var(--zyx-ease-out),box-shadow var(--zyx-m200) var(--zyx-ease-out)}
.zyx-card:hover{transform:translate3d(0,-6px,0);box-shadow:0 22px 40px -24px rgba(3,3,3,.55)}
.zyx-card .zyx-card__media{transition:transform var(--zyx-m300) var(--zyx-ease-out)}
.zyx-card:hover .zyx-card__media{transform:scale(1.04)}

/* Títulos: entrada palavra por palavra com máscara */\n.zyx-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}\n.zyx-w__i{display:inline-block;transform:translate3d(0,108%,0) rotate(3deg);transform-origin:left bottom;transition:transform var(--zyx-m300) var(--zyx-ease-out);transition-delay:var(--zyx-wd,0ms)}\n.zyx-split.is-in .zyx-w__i{transform:none}\n.zyx-stagger>.zyx-split,.zyx-stagger>.e-con-inner>.zyx-split{opacity:1!important;transform:none!important}\nbody.elementor-editor-active .zyx-w__i{transform:none!important}\n\n/* Editor do Elementor: tudo visível e parado */
body.elementor-editor-active .zyx-reveal,body.elementor-editor-active .zyx-stagger>*,body.elementor-editor-active .zyx-stagger>.e-con-inner>*{opacity:1!important;transform:none!important}

/* Acessibilidade */
@media (prefers-reduced-motion:reduce){
  .zyx-reveal,.zyx-stagger>*,.zyx-stagger>.e-con-inner>*{opacity:1!important;transform:none!important;transition:none!important}
  .zyx-float,.zyx-drift,.zyx-breathe,.zyx-marquee__track{animation:none!important}
  [data-zyx-parallax]{transform:none!important}
  .zyx-glow::before{display:none}\n  .zyx-w__i{transform:none!important;transition:none!important}
}
