.site-loader{
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  place-items:center;
  width:100%;
  height:100vh;
  height:100dvh;
  min-height:100vh;
  background:#000;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity 420ms cubic-bezier(.22,.61,.36,1),visibility 420ms cubic-bezier(.22,.61,.36,1);
}
.site-loader.is-leaving{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.site-loader__logo-wrap{
  position:relative;
  width:clamp(76px,9vw,132px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  isolation:isolate;
}
.site-loader__logo-wrap::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  z-index:-1;
  width:190%;
  aspect-ratio:1;
  transform:translate(-50%,-50%) scale(.72);
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.16) 0%,rgba(255,255,255,.05) 36%,transparent 68%);
  opacity:0;
  animation:siteLoaderGlow 1450ms ease forwards;
}
.site-loader__logo{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:0;
  transform:scale(.84);
  filter:none;
  animation:siteLoaderLogo 1450ms cubic-bezier(.22,1,.36,1) forwards;
}
html.site-is-loading,
html.site-is-loading body{
  overflow:hidden;
}
@keyframes siteLoaderLogo{
  0%{opacity:0;transform:scale(.84)}
  18%{opacity:.62;transform:scale(.9)}
  56%{opacity:1;transform:scale(1.03)}
  78%{opacity:1;transform:scale(1)}
  100%{opacity:.84;transform:scale(.92)}
}
@keyframes siteLoaderGlow{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}
  42%{opacity:.95;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.18)}
}
@media (prefers-reduced-motion: reduce){
  .site-loader{
    transition-duration:120ms;
  }
  .site-loader__logo,
  .site-loader__logo-wrap::before{
    animation:none!important;
  }
  .site-loader__logo{
    opacity:1;
    transform:none;
  }
}
