/* /upgrade/blocos-animados.css -- cenario animado em TODO bloco das telas do Upgrade (regra 11 do CLAUDE.md; mockup aprovado em 02/10/2026:
   docs/mockups/upgrade/upgrade-hubs-abas.html). Montagem em blocos-animados.js. Sem rotulo de cenario. */
.ba-cena{position:relative;isolation:isolate}
.ba-cena::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--faixa,#ff8a3d);z-index:1;pointer-events:none;border-radius:inherit}
.ba-fundo,.ba-cortes{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.ba-fundo{z-index:-3;opacity:.85}
.ba-fundo svg{width:100%;height:100%;display:block}
.ba-cena::after{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;border-radius:inherit;
  background:linear-gradient(90deg,rgba(15,19,28,.94),rgba(15,19,28,.82) 55%,rgba(15,19,28,.55)),linear-gradient(0deg,rgba(15,19,28,.7),transparent 60%)}
.ba-cortes{z-index:-1}
.ba-cortes i{position:absolute;height:2px;border-radius:2px;transform:rotate(-28deg);opacity:.5;
  background:linear-gradient(90deg,transparent,var(--faixa,#ff8a3d) 35%,#fff 50%,var(--faixa,#ff8a3d) 65%,transparent);box-shadow:0 0 10px var(--faixa,#ff8a3d)}
.ba-cortes i:nth-child(1){width:46%;right:3%;top:34%}
.ba-cortes i:nth-child(2){width:28%;right:16%;top:64%;opacity:.3}
.ba-cortes i:nth-child(3){width:20%;right:-2%;top:14%;opacity:.28;height:1px}
.ba-cortes i::after{content:"";position:absolute;inset:-3px 0;width:30%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);transform:translateX(-120%);animation:baBrilho 6s ease-in-out infinite}
.ba-cortes i:nth-child(2)::after{animation-delay:1.8s}.ba-cortes i:nth-child(3)::after{animation-delay:3.4s}
@keyframes baBrilho{0%,70%{transform:translateX(-120%);opacity:0}75%{opacity:1}90%,100%{transform:translateX(420%);opacity:0}}
.ba-faisca{animation:baSubir 6s linear infinite;transform-box:fill-box}
@keyframes baSubir{0%{transform:translateY(0);opacity:0}10%{opacity:1}100%{transform:translateY(-240px);opacity:0}}
.ba-nevoa{animation:baNevoa 14s ease-in-out infinite alternate}
@keyframes baNevoa{from{transform:translateX(-60px)}to{transform:translateX(60px)}}
.ba-gira{transform-box:fill-box;transform-origin:50% 50%;animation:baGira 40s linear infinite}
@keyframes baGira{to{transform:rotate(360deg)}}
.ba-pisca{animation:baPisca 4s ease-in-out infinite}
@keyframes baPisca{0%,100%{opacity:.3}50%{opacity:1}}
.ba-vento{stroke-dasharray:60 400;animation:baVento 7s linear infinite}
@keyframes baVento{to{stroke-dashoffset:-460}}
@media (prefers-reduced-motion:reduce){.ba-cortes i::after,.ba-faisca,.ba-nevoa,.ba-gira,.ba-pisca,.ba-vento{animation:none}}
@media (max-width:640px){.ba-cena::after{background:linear-gradient(180deg,rgba(15,19,28,.7),rgba(15,19,28,.92))}}
