/* Loader */
#loader{position:fixed;inset:0;z-index:999;background:var(--light);display:grid;place-content:center;gap:1.2rem;justify-items:center;transition:transform .9s cubic-bezier(.7,0,.2,1)}
#loader.done{transform:translateY(-100%)}
#loader img{height:70px;animation:pulse 1.2s infinite}
.loader-bar{width:140px;height:2px;background:rgba(0,37,75,.15);position:relative;overflow:hidden}
.loader-bar::after{content:"";position:absolute;inset:0;background:var(--red);animation:load 1.1s infinite}
@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes pulse{50%{opacity:.5;transform:scale(.96)}}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease var(--d,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.reveal.from-left{transform:translateX(-60px)}
.reveal.zoom{transform:scale(.9) translateY(30px)}
.reveal.in{opacity:1;transform:none}

/* Entrada do hero */
.anim-up{opacity:0;transform:translateY(24px);animation:up .9s cubic-bezier(.2,.7,.2,1) var(--d,0s) forwards}
@keyframes up{to{opacity:1;transform:none}}
.split-title .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.15em}
.split-title .w span{display:inline-block;transform:translateY(110%);animation:word .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(.3s + var(--i)*.12s)}
@keyframes word{to{transform:none}}
.hero-bg{animation:kenburns 22s ease-in-out infinite alternate}
@keyframes kenburns{from{scale:1}to{scale:1.1}}

/* Splash: onda suave */
.splash path{transform-origin:center bottom;animation:splash 7s ease-in-out infinite alternate}
.splash circle{animation:drops 3.2s ease-in-out infinite alternate}
.splash circle:nth-of-type(2n){animation-delay:-1.4s}
@keyframes splash{to{transform:scaleY(1.12) translateX(-6px)}}
@keyframes drops{to{transform:translateY(-8px)}}

/* Botões */
.btn::before{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg)}
.btn:hover::before{animation:shine .8s}
@keyframes shine{to{left:130%}}
.btn{animation:btnpulse 3s infinite}
@keyframes btnpulse{0%,100%{box-shadow:0 4px 14px rgba(224,12,49,.35)}50%{box-shadow:0 4px 26px rgba(224,12,49,.6)}}

/* Parceiro flutuando */
.partner-main img{animation:float 4s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-10px)}}

/* Redes e WhatsApp */
.wa-float{animation:ring 2.4s infinite;transition:transform .3s}
.wa-float:hover{transform:scale(1.12) rotate(-8deg)}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(37,211,102,.6)}70%,100%{box-shadow:0 0 0 22px rgba(37,211,102,0)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal,.anim-up{opacity:1;transform:none}
  .split-title .w span{transform:none}
}
