#page-preloader {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000000;
    z-index: 9999;
    transition: opacity 0.4s ease;
  }

  /* White square loader */
  #page-preloader .loader {
    width: 64px;
    height: 64px;
    background: #ffffff;
    animation: quarter-turn 0.8s infinite;
  }

  @keyframes quarter-turn {
    0% {
      transform: rotate(0deg);
      animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1); /* ease-in-out */
    }
    44% {
      transform: rotate(90deg);
      animation-timing-function: linear;
    }
    100% {
      transform: rotate(90deg);
    }
  }

  /* Prevent scroll while loading */
  body:not(.page-loaded) {
    overflow: hidden;
  }

  /* Hide preloader once loaded */
  body.page-loaded #page-preloader {
    opacity: 0;
    pointer-events: none;
  }