/* ===== animações ===== */
.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:80;background:var(--grad);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
.blob{position:absolute;border-radius:50%;pointer-events:none;will-change:transform;z-index:0}
.b-hero1{width:520px;height:520px;left:-160px;top:40px;background:radial-gradient(circle,rgba(255,59,0,.20),transparent 68%)}
.b-hero2{width:620px;height:620px;right:-200px;top:180px;background:radial-gradient(circle,rgba(255,176,0,.26),transparent 68%)}
.b-intro{width:560px;height:560px;right:-180px;top:-120px;background:radial-gradient(circle,rgba(255,122,0,.16),transparent 68%)}
.b-tech1{width:640px;height:640px;right:-200px;top:20%;background:radial-gradient(circle,rgba(255,122,0,.22),transparent 66%)}
.b-tech2{width:520px;height:520px;left:-180px;bottom:5%;background:radial-gradient(circle,rgba(255,59,0,.18),transparent 66%)}
.b-final{width:700px;height:700px;left:-220px;top:-160px;background:radial-gradient(circle,rgba(255,176,0,.2),transparent 66%)}
.intro,.tech,.final{position:relative}
.intro{overflow:hidden}
.tech,.final{overflow:hidden}
.hero .wrap{z-index:2}
.tech .wrap,.final .wrap,.intro .wrap{position:relative;z-index:1}

/* brasas */
.embers{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.ember{position:absolute;bottom:-12px;width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle,#FFB000,#FF3B00 70%,transparent);opacity:0;animation:rise var(--d) linear var(--dl) infinite}
@keyframes rise{0%{transform:translate3d(0,0,0) scale(1);opacity:0}12%{opacity:.85}100%{transform:translate3d(var(--x),-110vh,0) scale(.3);opacity:0}}

/* hero: emblema e título */
.emblem-wrap{width:132px;margin:0 auto 34px;will-change:transform;perspective:600px}
.emblem-wrap .emblem{width:100%;margin:0;animation:float 6s ease-in-out infinite,glow 3.4s ease-in-out infinite;transition:transform .2s ease-out}
@keyframes glow{50%{filter:drop-shadow(0 26px 42px rgba(255,90,0,.6))}}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .ln>span{display:inline-block;transform:translateY(105%);animation:lnup .9s var(--ease) forwards}
.hero h1 .ln:nth-child(2)>span{animation-delay:.14s}
@keyframes lnup{to{transform:none}}
.hero .eyebrow,.hero .sub,.hero .cta,.hero .chips,.hero .meta{opacity:0;transform:translateY(18px);animation:fadeup .8s var(--ease) forwards}
.hero .eyebrow{animation-delay:.05s}
.hero .sub{animation-delay:.38s}
.hero .cta{animation-delay:.5s}
.hero .chips{animation-delay:.62s}
.hero .meta{animation-delay:.74s}
@keyframes fadeup{to{opacity:1;transform:none}}
.hero .emblem-wrap{animation:pop .9s var(--ease) .1s backwards}
@keyframes pop{from{opacity:0;scale:.6}}

/* faixa em movimento */
.marq{overflow:hidden;background:var(--night);color:#fff;padding:16px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marq .track{display:flex;gap:34px;align-items:center;width:max-content;animation:marq 40s linear infinite}
.marq span{font-size:13px;font-weight:700;letter-spacing:.22em;white-space:nowrap}
.marq i{font-style:normal;color:var(--orange);font-size:14px}
@keyframes marq{to{transform:translateX(-50%)}}
.marq:hover .track{animation-play-state:paused}

/* variações de entrada */
.rv.from-l{transform:translateX(-34px)}
.rv.from-r{transform:translateX(34px)}
.rv.zoom{transform:scale(.94)}
.rv.from-l.in,.rv.from-r.in,.rv.zoom.in{transform:none}

/* spotlight nos cartões */
.tcard,.fcard,.pillar,.kpi{position:relative;overflow:hidden}
.tcard::after,.fcard::after,.pillar::after,.kpi::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(255,122,0,.16),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.tcard:hover::after,.fcard:hover::after,.pillar:hover::after,.kpi:hover::after{opacity:1}
.tcard::after{background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(255,122,0,.22),transparent 60%)}
.pillar,.kpi{transition:transform .35s var(--ease),box-shadow .35s,opacity .8s var(--ease)}
.pillar:hover,.kpi:hover{transform:translateY(-5px);box-shadow:var(--shadow)}

/* número da frente com linha crescendo */
.frente .fnum{position:relative;display:inline-block}
.frente .fnum::after{content:"";position:absolute;left:0;bottom:-8px;height:4px;width:0;background:var(--grad);border-radius:4px;transition:width 1s var(--ease) .3s}
.frente .side.in .fnum::after{width:64px}

@media (prefers-reduced-motion:reduce){
  .hero h1 .ln>span,.hero .eyebrow,.hero .sub,.hero .cta,.hero .chips,.hero .meta,.hero .emblem-wrap{animation:none;opacity:1;transform:none}
  .ember{display:none}
  .marq .track,.emblem-wrap .emblem{animation:none}
}
@media (max-width:620px){.blob{opacity:.7}.emblem-wrap{width:104px}}

/* corrige corte do numero com gradiente */
.frente .fnum{line-height:1.08;padding:.04em .06em .1em 0;margin-bottom:22px}
.frente .fnum::after{bottom:0}

/* corrige corte do numero com gradiente */
.frente .fnum{line-height:1.08;padding:.04em .06em .1em 0;margin-bottom:22px}
.frente .fnum::after{bottom:0}
