/* Preloader Keytech — lettres du logo animées */

.preloader {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(ellipse 60% 50% at 50% 45%, rgba(0, 60, 207, 0.08), transparent 70%),
    #fff;
  transition: opacity 0.45s ease, visibility 0.45s ease;
}

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

.kt-preloader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  padding: 24px;
}

.kt-preloader__logo {
  width: min(320px, 72vw);
  height: auto;
  overflow: visible;
}

.kt-preloader__logo .kt-letter {
  opacity: 0;
  transform: translateY(22px) scale(0.92);
  transform-origin: center;
  transform-box: fill-box;
  animation: kt-letter-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.kt-preloader__logo .kt-letter:nth-child(1) { animation-delay: 0.05s; }
.kt-preloader__logo .kt-letter:nth-child(2) { animation-delay: 0.12s; }
.kt-preloader__logo .kt-letter:nth-child(3) { animation-delay: 0.19s; }
.kt-preloader__logo .kt-letter:nth-child(4) { animation-delay: 0.26s; }
.kt-preloader__logo .kt-letter:nth-child(5) { animation-delay: 0.33s; }
.kt-preloader__logo .kt-letter:nth-child(6) { animation-delay: 0.4s; }
.kt-preloader__logo .kt-letter:nth-child(7) { animation-delay: 0.47s; }
.kt-preloader__logo .kt-letter:nth-child(8) { animation-delay: 0.54s; }

.kt-preloader__logo.is-loop .kt-letter {
  animation: kt-letter-pulse 1.8s ease-in-out infinite;
}

.kt-preloader__logo.is-loop .kt-letter:nth-child(1) { animation-delay: 0s; }
.kt-preloader__logo.is-loop .kt-letter:nth-child(2) { animation-delay: 0.08s; }
.kt-preloader__logo.is-loop .kt-letter:nth-child(3) { animation-delay: 0.16s; }
.kt-preloader__logo.is-loop .kt-letter:nth-child(4) { animation-delay: 0.24s; }
.kt-preloader__logo.is-loop .kt-letter:nth-child(5) { animation-delay: 0.32s; }
.kt-preloader__logo.is-loop .kt-letter:nth-child(6) { animation-delay: 0.4s; }
.kt-preloader__logo.is-loop .kt-letter:nth-child(7) { animation-delay: 0.48s; }
.kt-preloader__logo.is-loop .kt-letter:nth-child(8) { animation-delay: 0.56s; }

.kt-preloader__bar {
  width: min(180px, 46vw);
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(30, 43, 80, 0.08);
}

.kt-preloader__bar-fill {
  display: block;
  width: 40%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #003ccf, #00ae01);
  animation: kt-loader-bar 1.1s ease-in-out infinite;
}

@keyframes kt-letter-in {
  from {
    opacity: 0;
    transform: translateY(22px) scale(0.92);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes kt-letter-pulse {
  0%,
  100% {
    opacity: 0.55;
    transform: translateY(0) scale(1);
  }
  50% {
    opacity: 1;
    transform: translateY(-3px) scale(1.02);
  }
}

@keyframes kt-loader-bar {
  0% {
    transform: translateX(-120%);
  }
  100% {
    transform: translateX(320%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .kt-preloader__logo .kt-letter,
  .kt-preloader__logo.is-loop .kt-letter,
  .kt-preloader__bar-fill {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .kt-preloader__bar-fill {
    width: 100%;
  }
}
