/* VELO · Movimento (diretrizes emil-design-eng) — carregado por último em todas as páginas */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1)}

/* Botões: feedback de press, sem lift no hover */
.btn,.nav-cta,.cta-success-again,.velo-btn-pri,.velo-btn-sec,.theme-toggle button{transition:transform 160ms var(--ease-out),background-color 180ms ease,color 180ms ease,box-shadow 180ms ease,border-color 180ms ease,opacity 180ms ease}
.btn:hover,.nav-cta:hover{transform:none}
.btn:active,.nav-cta:active,.cta-success-again:active,.theme-toggle button:active,button:active{transform:scale(.97)}
.btn-link{transition:border-color 180ms ease,color 180ms ease}
.btn-link:hover{gap:8px}
.nav-link,.nav-drop-item,.nav-drop-sub,.footer-col a{transition:background-color 160ms ease,color 160ms ease,opacity 160ms ease}

/* Dropdown do menu: cresce a partir do gatilho; saída mais rápida */
.nav-drop-menu{transform-origin:top left;transform:translateY(-4px) scale(.97);transition:opacity 140ms ease,transform 140ms var(--ease-out),visibility 0s linear 140ms}
.nav-drop.is-open .nav-drop-menu{transform:none;transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out),visibility 0s}
.nav-drop-trigger svg{transition:transform 200ms var(--ease-out)}

/* Cards: movimento de hover só em dispositivos com ponteiro fino */
.feature-card,.stat-card,.case-card,.feature-grid--interactive .feature-card{transition:transform 200ms ease,box-shadow 200ms ease,border-color 200ms ease,background-color 200ms ease}
.feature-card:hover,.stat-card:hover,.case-card:hover,.feature-grid--interactive .feature-card:hover{transform:none}
.feature-grid--interactive .feature-card:hover{box-shadow:0 18px 36px -22px rgba(44,69,245,.35)}
.gab-num3d-inner{transition:transform 300ms var(--ease-in-out)}
.gab-card:hover .gab-num3d-inner{transform:rotateX(-16deg) rotateY(-26deg)}
@media (hover:hover) and (pointer:fine){
.feature-card:hover,.stat-card:hover,.case-card:hover,.feature-grid--interactive .feature-card:hover{transform:translateY(-3px)}
.gab-card:hover .gab-num3d-inner{transform:rotateX(-16deg) rotateY(-206deg)}
}
.feature-icon,.gab-num{transition:background-color 200ms ease,color 200ms ease}
.gab-card:hover .gab-num{transform:none}

/* Revelações ao rolar: só opacity + transform, ease-out, deslocamento curto */
.reveal-up,.feat-reveal,.caminhos-anim,.entregamos-anim,.entregamos-h2,.closer-line,.align-config-row{transform:translateY(12px);transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out)}
.reveal-blur{filter:none;transform:translateY(12px);transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out)}
.reveal-blur.is-in{filter:none}
.gab-card{transform:translateY(12px);transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out),border-color 200ms ease,box-shadow 200ms ease,background-color 200ms ease}
.reveal-up.is-in,.reveal-blur.is-in,.feat-reveal.is-visible,.caminhos-anim.is-visible,.entregamos-anim.is-visible,.entregamos-h2.is-visible,.closer-line.is-visible,.align-config-card.is-visible .align-config-row,.gab-card.is-in{transform:none}
.align-config-card.is-visible .align-config-row:nth-child(1){transition-delay:0ms}
.align-config-card.is-visible .align-config-row:nth-child(2){transition-delay:60ms}
.align-config-card.is-visible .align-config-row:nth-child(3){transition-delay:120ms}
.align-config-card.is-visible .align-config-row:nth-child(4){transition-delay:180ms}
.align-config-card.is-visible .align-config-row--active{animation:none}
.closer-word{transition:color 300ms ease}
.closer-word::after{transition:transform 500ms var(--ease-in-out)}

/* Métodos: indicador e passo ativo se movem na tela → ease-in-out */
.metodo-bar{transition:left 400ms var(--ease-in-out),width 400ms var(--ease-in-out)}
.metodo-step{transition:transform 250ms var(--ease-in-out),box-shadow 250ms var(--ease-in-out)}

/* Hero (Governo): entrada única, mais curta */
.hero-anim-in > *{animation-duration:450ms;animation-timing-function:var(--ease-out)}
.hero-anim-in > *:nth-child(1){animation-delay:0ms}
.hero-anim-in > *:nth-child(2){animation-delay:60ms}
.hero-anim-in > *:nth-child(3){animation-delay:120ms}
.hero-anim-in > *:nth-child(4){animation-delay:180ms}
.hero-anim-in > *:nth-child(5){animation-delay:240ms}
.load-in{animation-duration:450ms;animation-timing-function:var(--ease-out)}

/* Sucesso do formulário: parte de .95, sem bounce */
.cta-success-check{animation:velo-pop 250ms var(--ease-out)}
@keyframes velo-pop{from{transform:scale(.95);opacity:0}to{transform:none;opacity:1}}

/* Menos tiques: sem pulsação contínua */
.btn-pulse,.plano-row,.joao-streak,.joao-badge,.joao-stat{animation:none}
.btn-pulse::after{animation:none;content:none}

@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
.reveal-up,.reveal-blur,.feat-reveal,.caminhos-anim,.entregamos-anim,.entregamos-h2,.closer-line,.align-config-row,.gab-card,#hero-h1 .hw{transform:none!important;transition:opacity 200ms ease!important}
.closer-word::after{transform:scaleX(1)!important;transition:none!important}
.btn:active,.nav-cta:active,button:active{transform:none}
.feature-card:hover,.stat-card:hover,.case-card:hover,.metodo-step.is-active{transform:none!important}
.nav-drop-menu{transform:none!important}
.logo-marquee-track,.gov-autoscroll,.trilha-autoscroll,.plano-autoscroll,.joao-glow,.orb3d-stage,.cube3d-inner{animation:none!important}
}
