.page-loader {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  background: rgba(250, 250, 248, 0.965);
  color: #1a1a1a;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 180ms ease, visibility 0s linear 180ms;
}

.page-loader.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  cursor: progress;
  transition: opacity 120ms ease, visibility 0s;
}

[data-theme="dark"] .page-loader {
  background: rgba(15, 15, 18, 0.97);
  color: #f4f4f5;
}

@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))) {
  .page-loader {
    background: rgba(250, 250, 248, 0.91);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
  [data-theme="dark"] .page-loader { background: rgba(15, 15, 18, 0.92); }
}

.page-loader__mark {
  display: block;
  overflow: visible;
  transform-origin: 50% 50%;
  animation: page-loader-revolve 920ms linear infinite;
}

.page-loader__orbiter { transform-origin: 27px 27px; }

@keyframes page-loader-revolve {
  to { transform: rotate(360deg); }
}

@keyframes page-loader-breathe {
  0%, 100% { opacity: 0.62; transform: scale(0.96); }
  50% { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .page-loader, .page-loader.is-active { transition-duration: 0.01ms; }
  .page-loader__mark { animation: page-loader-breathe 1.25s ease-in-out infinite; }
}

@media print {
  .page-loader { display: none !important; }
}
