.aurora .atmosphere{position:fixed;inset:0;z-index:var(--z-atm);overflow:hidden;pointer-events:none}
.aurora .atmosphere .blob{position:absolute;border-radius:50%;filter:blur(80px);mix-blend-mode:screen;opacity:.34;animation:atm-drift 14s ease-in-out infinite alternate;will-change:transform}
.aurora .atmosphere .b1{width:42vw;height:42vw;background:var(--aurora-1);top:-14vw;right:6vw}
.aurora .atmosphere .b2{width:38vw;height:38vw;background:var(--aurora-2);bottom:-16vw;left:-6vw;animation-delay:-5s}
.aurora .atmosphere .b3{width:26vw;height:26vw;background:var(--brand);top:30vh;left:40%;animation-delay:-8s}
.aurora .atmosphere .grain{position:absolute;inset:0;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.aurora .atmosphere .particle{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff;opacity:.5;animation:atm-float 7s ease-in-out infinite}
@keyframes atm-drift{from{transform:translate(0,0) scale(1)}to{transform:translate(2vw,1.6vw) scale(1.18)}}
@keyframes atm-float{0%,100%{transform:translateY(0);opacity:.3}50%{transform:translateY(-16px);opacity:1}}
/* Mobile: orçamento de performance — menos blur, sem b3, sem partículas */
@media (max-width:768px){
  .aurora .atmosphere .blob{filter:blur(54px);opacity:.28}
  .aurora .atmosphere .b3,.aurora .atmosphere .particle{display:none}
}
@media (prefers-reduced-motion:reduce){
  .aurora .atmosphere .blob,.aurora .atmosphere .particle{animation:none}
}
