/* ─── Animation classes ─────────────────────────────────────────────────── */

.preloadify-rotate-vert-center {
  -webkit-animation: preloadify-rotate-vert-center 1.5s ease-in-out infinite both;
          animation: preloadify-rotate-vert-center 1.5s ease-in-out infinite both;
}
@-webkit-keyframes preloadify-rotate-vert-center {
  0%   { -webkit-transform: rotateY(0);      transform: rotateY(0); }
  100% { -webkit-transform: rotateY(360deg); transform: rotateY(360deg); }
}
@keyframes preloadify-rotate-vert-center {
  0%   { -webkit-transform: rotateY(0);      transform: rotateY(0); }
  100% { -webkit-transform: rotateY(360deg); transform: rotateY(360deg); }
}

.preloadify-pulse {
  -webkit-animation: preloadify-pulse 1.5s ease-in-out infinite both;
          animation: preloadify-pulse 1.5s ease-in-out infinite both;
}
@-webkit-keyframes preloadify-pulse {
  0%, 100% { -webkit-transform: scale(1);   transform: scale(1); }
  50%       { -webkit-transform: scale(1.1); transform: scale(1.1); }
}
@keyframes preloadify-pulse {
  0%, 100% { -webkit-transform: scale(1);   transform: scale(1); }
  50%       { -webkit-transform: scale(1.1); transform: scale(1.1); }
}

.preloadify-fade-in-out {
  -webkit-animation: preloadify-fade-in-out 1.5s ease-in-out infinite both;
          animation: preloadify-fade-in-out 1.5s ease-in-out infinite both;
}
@-webkit-keyframes preloadify-fade-in-out {
  0%, 100% { opacity: 0; }
  50%       { opacity: 1; }
}
@keyframes preloadify-fade-in-out {
  0%, 100% { opacity: 0; }
  50%       { opacity: 1; }
}

.preloadify-bounce {
  -webkit-animation: preloadify-bounce 1.5s ease-in-out infinite both;
          animation: preloadify-bounce 1.5s ease-in-out infinite both;
}
@-webkit-keyframes preloadify-bounce {
  0%, 100% { -webkit-transform: translateY(0);     transform: translateY(0); }
  50%       { -webkit-transform: translateY(-25px); transform: translateY(-25px); }
}
@keyframes preloadify-bounce {
  0%, 100% { -webkit-transform: translateY(0);     transform: translateY(0); }
  50%       { -webkit-transform: translateY(-25px); transform: translateY(-25px); }
}

.preloadify-blur-in-out {
  -webkit-animation: preloadify-blur-in-out 1.5s ease-in-out infinite both;
          animation: preloadify-blur-in-out 1.5s ease-in-out infinite both;
}
@-webkit-keyframes preloadify-blur-in-out {
  0%, 100% { -webkit-filter: blur(5px); filter: blur(5px); opacity: 0; }
  50%       { -webkit-filter: blur(0);   filter: blur(0);   opacity: 1; }
}
@keyframes preloadify-blur-in-out {
  0%, 100% { -webkit-filter: blur(5px); filter: blur(5px); opacity: 0; }
  50%       { -webkit-filter: blur(0);   filter: blur(0);   opacity: 1; }
}

.preloadify-rotate-horiz-center {
  -webkit-animation: preloadify-rotate-horiz-center 1.5s ease-in-out infinite both;
          animation: preloadify-rotate-horiz-center 1.5s ease-in-out infinite both;
}
@-webkit-keyframes preloadify-rotate-horiz-center {
  0%   { -webkit-transform: rotateZ(0);      transform: rotateZ(0); }
  100% { -webkit-transform: rotateZ(360deg); transform: rotateZ(360deg); }
}
@keyframes preloadify-rotate-horiz-center {
  0%   { -webkit-transform: rotateZ(0);      transform: rotateZ(0); }
  100% { -webkit-transform: rotateZ(360deg); transform: rotateZ(360deg); }
}

/* ─── Preloader show/hide keyframes ─────────────────────────────────────── */

@keyframes fadeInPreloaderApp {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes fadeOutPreloaderApp {
  0%   { opacity: 1; }
  100% { opacity: 0; }
}

/* ─── Base layout (static, merchant-independent) ────────────────────────── */

.c-preloaderapp {
  position: fixed;
  z-index: 2147483647;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 1;
  visibility: visible;
  will-change: opacity, visibility;
  pointer-events: none;
}

.c-preloaderapp__inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-perspective: 500px;
          perspective: 500px;
  -webkit-perspective-origin: calc(50% + 20px) 50%;
          perspective-origin: calc(50% + 20px) 50%;
}