.page-loader {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  background: #fff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 180ms ease, visibility 0s 180ms;
}
.page-loading .page-loader,
.page-leaving .page-loader {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}
.page-loader img { width: min(220px, 55vw); height: auto; }
.page-loader-track { width: 100px; height: 2px; overflow: hidden; background: #f1e9e3; }
.page-loader-track::after {
  content: '';
  display: block;
  width: 45%;
  height: 100%;
  background: #fe5e01;
  animation: page-loader-progress 1s ease-in-out infinite;
}
@keyframes page-loader-progress {
  from { transform: translateX(-105%); }
  to { transform: translateX(325%); }
}
@media (prefers-reduced-motion: reduce) {
  .page-loader { transition: none; }
  .page-loader-track::after { animation: none; width: 100%; }
}
@media print {
  .page-loader { display: none; }
}
