/* === TELÓN COMPLETO === */
#loader-telon {
  position: fixed;
  inset: 0;
  background: #000;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 999999; /* por encima de TODO */
  opacity: 1;
  transition: opacity 0.8s ease-out;
}

/* === QR === */
#qr-loader-img {
  width: 160px;
  opacity: 0;
  transform: scale(0.7) rotate(0deg);
  transition: opacity 0.6s ease-out, transform 0.8s ease-out;
}

/* === Giro completo con suavidad === */
@keyframes giroCompleto {
  0%   { transform: scale(0.95) rotate(0deg); }
  50%  { transform: scale(1.05) rotate(180deg); }
  100% { transform: scale(1) rotate(360deg); }
}

/* === Respiración sutil infinita === */
@keyframes respirarQR {
  0%   { transform: scale(1); filter: brightness(1); }
  50%  { transform: scale(1.03); filter: brightness(1.12); }
  100% { transform: scale(1); filter: brightness(1); }
}

.qr-girar {
  animation: giroCompleto 1.8s ease-out forwards;
}

.qr-respirar {
  animation: respirarQR 5s ease-in-out infinite;
}