/* ---------------------------------------------
   Preloader - initialer Lade-Screen mit Power-Symbol
--------------------------------------------- */

.preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-black);
  transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
}

.preloader__glow {
  position: absolute;
  width: min(70vw, 480px);
  height: min(70vw, 480px);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.08), transparent 70%);
  filter: blur(60px);
  opacity: 0;
  animation: preloader-glow 0.65s ease-out 0.72s forwards;
}

.preloader__pulse {
  position: absolute;
  width: clamp(56px, 9vw, 88px);
  height: clamp(56px, 9vw, 88px);
  border-radius: 50%;
  border: 1px solid var(--c-dot-green);
  opacity: 0;
  transform: scale(0.65);
  animation: preloader-ripple 0.7s ease-out 0.72s forwards;
}

.preloader__icon-wrap {
  position: relative;
  width: clamp(56px, 9vw, 88px);
  height: clamp(56px, 9vw, 88px);
  transform-origin: center;
  animation: power-rise-pop 1.35s ease-out forwards;
}

.preloader__symbol {
  display: block;
  width: 100%;
  height: 100%;
  color: var(--c-white);
}

.preloader.is-loaded {
  opacity: 0;
  transform: translateY(-16px);
  pointer-events: none;
}

/* Von unten hochkommen -> Press & Pop -> Einrasten */
@keyframes power-rise-pop {
  0% {
    opacity: 0;
    transform: translateY(150px) scale(0.72);
    filter: blur(6px);
  }
  18% {
    opacity: 1;
    transform: translateY(95px) scale(0.82);
    filter: blur(3px);
  }
  40% {
    opacity: 1;
    transform: translateY(0) scale(1.06);
    filter: blur(0);
  }
  52% {
    transform: translateY(0) scale(0.88);
  }
  68% {
    transform: translateY(0) scale(1.14);
  }
  82% {
    transform: translateY(0) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

/* Dezenter Aktivierungs-Glow, einmalig, kurz nach dem Pop */
@keyframes preloader-glow {
  0% {
    opacity: 0;
    transform: scale(0.92);
  }
  50% {
    opacity: 0.65;
    transform: scale(1.1);
  }
  100% {
    opacity: 0.4;
    transform: scale(1.02);
  }
}

/* Aktivierungs-Ring: laeuft einmal nach aussen aus */
@keyframes preloader-ripple {
  0% {
    opacity: 0;
    transform: scale(0.65);
  }
  35% {
    opacity: 0.45;
  }
  100% {
    opacity: 0;
    transform: scale(1.7);
  }
}

@media (prefers-reduced-motion: reduce) {
  .preloader__icon-wrap {
    opacity: 1;
    transform: none;
    filter: none;
    animation: none;
  }

  .preloader__glow,
  .preloader__pulse {
    animation: none;
    opacity: 0;
  }
}
