.site-loader { display: none; }
html.is-loading { overflow: hidden; }
html.is-loading .site-loader {
  position: fixed; inset: 0; z-index: 200000;
  display: grid; place-items: center;
  background: #fff; opacity: 1;
  transition: opacity 300ms ease;
}
html.is-loading .site-loader.is-leaving { opacity: 0; pointer-events: none; }
.site-loader-tie { position: relative; width: min(325px, 70vw, 52svh); aspect-ratio: 1; }
.site-loader-tie img { display: block; width: 100%; height: 100%; object-fit: contain; }
.site-loader-tie .site-loader-fill {
  position: absolute; inset: 0;
  filter: url(#loader-red);
  clip-path: inset(91.3% 0 0);
  animation: tie-fill 4.5s cubic-bezier(.15,.6,.2,1) forwards;
}
.site-loader.is-complete .site-loader-fill {
  animation: none;
  clip-path: inset(0);
  transition: clip-path 300ms ease;
}
@keyframes tie-fill { from { clip-path: inset(91.3% 0 0); } to { clip-path: inset(18% 0 0); } }
@media (prefers-reduced-motion: reduce) {
  .site-loader-tie .site-loader-fill { animation: none; }
  .site-loader.is-complete .site-loader-fill, html.is-loading .site-loader { transition: none; }
}
