/* Webyan Preloader — Pixel 3x3 with calm traveling pink active cell */
.wy-preloader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F7FCFF;
  transition: opacity .55s ease, visibility .55s ease;
}

.wy-preloader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.wy-pixel-grid {
  width: max-content;
  display: grid;
  grid-template-columns: repeat(3, 16px);
  grid-template-rows: repeat(3, 16px);
  gap: 4px;
}

.wy-pixel-grid span {
  width: 16px;
  height: 16px;
  border-radius: 0;
  display: block;
  background: var(--base-color, #25B9DC);
  animation: wyActivePixel 1.8s linear infinite;
  will-change: opacity, transform, background-color;
}

/* Base colors per cell + sequential delays so the pink pulse travels 1→9 calmly */
.wy-pixel-grid span:nth-child(1) { --base-color: #25B9DC; animation-delay: 0s;   }
.wy-pixel-grid span:nth-child(2) { --base-color: #8ADAE8; animation-delay: .20s; }
.wy-pixel-grid span:nth-child(3) { --base-color: #25B9DC; animation-delay: .40s; }
.wy-pixel-grid span:nth-child(4) { --base-color: #8ADAE8; animation-delay: .60s; }
.wy-pixel-grid span:nth-child(5) { --base-color: #25B9DC; animation-delay: .80s; }
.wy-pixel-grid span:nth-child(6) { --base-color: #8ADAE8; animation-delay: 1.0s; }
.wy-pixel-grid span:nth-child(7) { --base-color: #0978B8; animation-delay: 1.2s; }
.wy-pixel-grid span:nth-child(8) { --base-color: #25B9DC; animation-delay: 1.4s; }
.wy-pixel-grid span:nth-child(9) { --base-color: #0978B8; animation-delay: 1.6s; }

@keyframes wyActivePixel {
  0%, 14%, 100% {
    background: var(--base-color, #25B9DC);
    opacity: .72;
    transform: scale(1);
  }
  7% {
    background: #F66FA3;
    opacity: 1;
    transform: scale(1.08);
  }
}

body.wy-preload-lock { overflow: hidden; }

@media (max-width: 480px) {
  .wy-pixel-grid {
    grid-template-columns: repeat(3, 14px);
    grid-template-rows: repeat(3, 14px);
    gap: 3px;
  }
  .wy-pixel-grid span { width: 14px; height: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .wy-pixel-grid span { animation: none; }
}
