#page-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.6); /* Light transparent white */
  z-index: 9999;
  display: flex; /* Always display; control with opacity */
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(2px);
  transition: opacity 0.4s ease;
  opacity: 1;
}

#page-loader.hidden {
  opacity: 0;
  pointer-events: none;
}

.opensava-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.opensava-loader span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: block;
    animation: opensavaBounce 0.8s infinite ease-in-out;
}

/* OpenSava colours */
.opensava-loader span:nth-child(1) {
    background: #EB7A1A;
    animation-delay: 0s;
}

.opensava-loader span:nth-child(2) {
    background: #1B263B;
    animation-delay: 0.15s;
}

.opensava-loader span:nth-child(3) {
    background: #000;
    animation-delay: 0.3s;
}

@keyframes opensavaBounce {
    0%, 60%, 100% {
        transform: translateY(0);
    }

    30% {
        transform: translateY(-12px);
    }
}