/* Match ableGym's letter rise, rounded lower edge, and upward curtain exit. */
html[data-site-preloader-active] { overflow: hidden !important; }
html[data-site-preloader-active] body { overflow: hidden !important; }
#site-preloader {
  position: fixed !important; inset: 0 !important; width: 100%; height: 100vh; height: 100dvh;
  z-index: 2147483647 !important; background: #111; color: #fff;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; padding: 24px; box-sizing: border-box;
  border-radius: 0; transform: translateY(0);
  animation: site-preloader-failsafe 1ms 8s forwards !important;
}
#site-preloader .site-preloader-mark {
  font-family: var(--site-font-family, -apple-system, BlinkMacSystemFont, sans-serif);
  font-size: clamp(18px, 2.2vw, 34px); font-weight: 700;
  letter-spacing: -.035em; line-height: 1; text-align: center; white-space: nowrap;
}
#site-preloader .site-preloader-letter {
  display: inline-block; opacity: 0; transform: translateY(46vh);
  animation: site-preloader-letter-rise 560ms cubic-bezier(.19,1,.22,1) calc(var(--letter-index) * 45ms) both !important;
}
#site-preloader .site-preloader-space { display: inline-block; width: .28em; }
#site-preloader.is-leaving {
  animation: site-preloader-round 360ms ease-in-out both, site-preloader-fly 800ms cubic-bezier(.6,0,.8,.5) both !important;
}
@keyframes site-preloader-letter-rise { to { opacity: 1; transform: translateY(0); } }
@keyframes site-preloader-round { to { border-bottom-left-radius: 24px; border-bottom-right-radius: 24px; } }
@keyframes site-preloader-fly { to { transform: translateY(-110%); } }
@keyframes site-preloader-failsafe { to { visibility: hidden; pointer-events: none; } }
@media (prefers-reduced-motion: reduce) {
  #site-preloader .site-preloader-letter { animation: none !important; opacity: 1; transform: none; }
  #site-preloader.is-leaving { animation: site-preloader-fade 180ms ease-out both !important; }
}
@keyframes site-preloader-fade { to { opacity: 0; } }
