body.site-loading {
  overflow: hidden;
}

#site-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  transition: opacity 0.45s ease, visibility 0.45s ease;
}

#site-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.site-loader__mascot {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
}

.site-loader__mascot--bounce {
  align-items: flex-end;
  animation: canarinho-bounce 0.85s cubic-bezier(0.37, 0, 0.63, 1) infinite;
  will-change: transform;
  transform: translateZ(0);
}

#site-loader video,
#site-loader img {
  display: block;
  max-width: min(300px, 75vw);
  max-height: min(300px, 50vh);
  width: auto;
  height: auto;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  background: transparent;
}

#site-loader video.is-hidden,
#site-loader img.is-hidden {
  display: none;
}

@keyframes canarinho-bounce {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }
  45% {
    transform: translateY(-22px) scale(1.03);
  }
  55% {
    transform: translateY(-18px) scale(1.02);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-loader__mascot--bounce {
    animation: none;
  }
}
