:root {
  --ppmvk-loader-bg: #fff;
  --ppmvk-loader-opacity: 1;
  --ppmvk-loader-logo-size: 100px;
  --ppmvk-loader-fade-duration: 300ms;
}

body.loading { overflow: hidden; }

#loading-screen.ppmvk-loading-screen {
  position: fixed;
  inset: 0;
  z-index: 1000000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--ppmvk-loader-fade-duration) ease, visibility 0s linear var(--ppmvk-loader-fade-duration);
}

#loading-screen.ppmvk-loading-screen::before {
  position: absolute;
  inset: 0;
  background: var(--ppmvk-loader-bg);
  content: "";
  opacity: var(--ppmvk-loader-opacity);
}

#loading-screen.ppmvk-loading-screen.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.ppmvk-loader-content { position: relative; z-index: 1; }

.ppmvk-loader-logo {
  display: flex;
  width: min(var(--ppmvk-loader-logo-size), 70vw);
  height: min(var(--ppmvk-loader-logo-size), 70vh);
  align-items: center;
  justify-content: center;
  color: #202532;
  font-weight: 900;
  letter-spacing: 0;
}

.ppmvk-loader-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (prefers-reduced-motion: reduce) {
  #loading-screen.ppmvk-loading-screen { transition-duration: 1ms; }
}
