/* Bora · camada de animação dos demos (premium). Tudo desliga com prefers-reduced-motion. */
/* barra de progresso de leitura */
.progress{position:fixed;left:0;top:0;z-index:60;width:100%;height:3px;background:var(--accent,#d8f55f);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
html.embed .progress{display:none}
/* topo encolhe ao rolar */
.nav{transition:padding .35s ease,box-shadow .35s ease,background .35s ease}
.nav.scrolled{padding-top:9px;padding-bottom:9px;box-shadow:0 10px 30px -18px rgba(0,0,0,.55)}
/* hero: zoom lento na foto + entrada em cascata */
.hero>img,.hs-media>img{animation:kb 16s cubic-bezier(.2,.6,.2,1) both;will-change:scale,translate}
@keyframes kb{from{scale:1.26}to{scale:1.12}}
.hero-in>*,.hs-text>*{opacity:0;translate:0 28px;animation:up 1s cubic-bezier(.2,.7,.2,1) forwards}
.hero-in>*:nth-child(1),.hs-text>*:nth-child(1){animation-delay:.15s}
.hero-in>*:nth-child(2),.hs-text>*:nth-child(2){animation-delay:.28s}
.hero-in>*:nth-child(3),.hs-text>*:nth-child(3){animation-delay:.42s}
.hero-in>*:nth-child(4),.hs-text>*:nth-child(4){animation-delay:.56s}
.hero-in>*:nth-child(5),.hs-text>*:nth-child(5){animation-delay:.7s}
.hs-tag{opacity:0;translate:0 24px;animation:up .9s cubic-bezier(.2,.7,.2,1) .9s forwards}
@keyframes up{to{opacity:1;translate:0 0}}
/* títulos: palavras sobem uma a uma */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.w>span{display:inline-block;translate:0 105%;transition:translate .9s cubic-bezier(.2,.7,.2,1)}
.in .w>span,.w.in>span{translate:0 0}
/* fotos entram com zoom suave e cortina */
.rv figure,figure.rv{clip-path:inset(8% 4% 8% 4% round 28px);transition:clip-path 1.1s cubic-bezier(.2,.7,.2,1),opacity .7s ease,transform .7s ease}
.rv.in figure,figure.rv.in{clip-path:inset(0 0 0 0 round 0)}
.rv figure img,figure.rv img{scale:1.14;transition:scale 1.6s cubic-bezier(.2,.7,.2,1),transform .6s ease}
.rv.in figure img,figure.rv.in img{scale:1}
.rv.in figure img.par,figure.rv.in img.par,img.par{scale:1.12}
.card figure,.cat figure{clip-path:none!important}
/* botões com brilho que passa */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);translate:-120% 0;transition:translate .7s ease}
.btn:hover::after{translate:120% 0}
/* cartões inclinam com o mouse (ligado por JS em telas com mouse) */
.tilt.in,.tilt:not(.rv){transition:transform .25s ease,box-shadow .25s ease,opacity .7s ease}
/* WhatsApp flutuante: anel que pulsa */
.fab{animation:fabin .6s cubic-bezier(.2,.7,.2,1) 1.2s both}
.fab::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--wa,#25d366);animation:ring 2.6s ease-out 2s infinite}
@keyframes ring{0%{scale:1;opacity:.9}100%{scale:1.7;opacity:0}}
@keyframes fabin{from{scale:0;opacity:0}to{scale:1;opacity:1}}
/* números contam */
[data-count]{font-variant-numeric:tabular-nums}
/* faixa corrida desacelera no hover */
.marquee:hover div{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){
  .hero>img,.hs-media>img,.hero-in>*,.hs-text>*,.hs-tag,.fab,.fab::before{animation:none!important;opacity:1!important;translate:none!important;scale:none!important}
  .w>span{translate:none!important;transition:none}
  .rv figure{clip-path:none!important}.rv figure img{scale:1!important}
  .btn::after{display:none}.progress{display:none}
}
