/* Independent overlay: never transforms or locks the page underneath. */
.page-loader{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  background:var(--ivory,#f4efe5);
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  /* Also releases the page if JavaScript is unavailable or fails to load. */
  animation:pawLoaderFailsafe .4s ease-out 1.6s forwards;
}
.page-loader[hidden],
.paw-loader-shown .page-loader{ display:none; opacity:0; visibility:hidden; pointer-events:none; }
.page-loader__logo{
  display:block;
  width:clamp(150px,18vw,210px);
  max-width:70vw;
  height:auto;
  object-fit:contain;
  opacity:0;
  animation:
    pawLoaderLogo .7s ease-out forwards,
    pawLoaderShutter .18s ease-in-out .7s both;
}
.page-loader::after{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  opacity:0;
  pointer-events:none;
  animation:pawLoaderFlash .12s ease-out .74s both;
}
.page-loader.is-leaving{
  pointer-events:none;
  animation:pawLoaderExit .4s ease-out forwards;
}
@keyframes pawLoaderLogo{
  to{ opacity:1; }
}
@keyframes pawLoaderShutter{
  0%,100%{ transform:scale(1); }
  35%{ transform:scale(.97); }
}
@keyframes pawLoaderFlash{
  0%,100%{ opacity:0; }
  25%{ opacity:.8; }
}
@keyframes pawLoaderExit{
  to{ opacity:0; visibility:hidden; pointer-events:none; }
}
@keyframes pawLoaderFailsafe{
  to{ opacity:0; visibility:hidden; pointer-events:none; }
}
@media(prefers-reduced-motion:reduce){
  .page-loader,
  .page-loader.is-leaving{ animation-duration:0s; }
  .page-loader__logo{ opacity:1; animation:none; }
  .page-loader::after{ opacity:0; animation:none; }
}
