/* Scroll lock while preloader active */
html.is-loading,
body.is-loading{
  overflow: hidden;
}

/* Preloader overlay */
.idl-preloader{
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: block;
  background: #fff; 
}

.idl-preloader__inner{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: var(--r);
}

.idl-preloader__number{
  font: 300 16px/1.1 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: black;
}

/* Optional: if you want to prevent any interactions before loaded */
body:not(.page-loaded) *{
  /* keep disabled if it breaks things; overlay already blocks visually */
}

/* Reduced motion friendly */
@media (prefers-reduced-motion: reduce){
  .idl-preloader{
    transition: none !important;
  }
}

/* Hidden by default */
.idl-preloader{
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 180ms ease, visibility 0s linear 180ms;
}

/* Only visible when JS decides it’s needed */
.idl-preloader.is-active{
  opacity: 1;
  visibility: visible;
  pointer-events: all;
  transition: opacity 180ms ease;
}

/* Default: content visible */
body .idl-preload-hide {}

/* While preloading: hide everything except the mask */
html.idl-preloading body > * { visibility: hidden !important; }
html.idl-preloading body #idl-preloader-mask { visibility: visible !important; }

/* Make sure mask is always on top */
#idl-preloader-mask{
  position: fixed;
  inset: 0;
  z-index: 2147483647;
}