html[data-preloader-active="true"],
html[data-preloader-active="true"] body {
  overflow: hidden;
}

.preloader-noscript-message {
  position: fixed;
  inset-block-end: 12px;
  inset-inline: 12px;
  z-index: 10000;
  padding: 10px 14px;
  color: #637889;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid #d8e2ee;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(16, 28, 40, 0.08);
  font:
    13px/1.4 Inter,
    "Helvetica Neue",
    Arial,
    sans-serif;
  text-align: center;
}

[data-preloader-theme="dark"] .preloader-noscript-message {
  color: #bac8d8;
  background: rgba(8, 15, 24, 0.94);
  border-color: rgba(186, 200, 216, 0.18);
}

#ednuva-preloader {
  --preloader-bg: #f5f8fc;
  --preloader-text: #1a2a38;
  --preloader-muted: #637889;
  --preloader-track: rgba(138, 156, 176, 0.16);
  --preloader-magenta-glow: rgba(227, 91, 162, 0.16);
  --preloader-blue-glow: rgba(79, 163, 220, 0.18);
  --preloader-logo-shadow: rgba(79, 163, 220, 0.24);
  position: fixed;
  inset: 0;
  z-index: 9999;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--preloader-bg);
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  transition:
    opacity 750ms cubic-bezier(0.4, 0, 0.2, 1),
    transform 950ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 750ms cubic-bezier(0.4, 0, 0.2, 1),
    visibility 750ms cubic-bezier(0.4, 0, 0.2, 1);
}

[data-preloader-theme="dark"] #ednuva-preloader,
[data-theme="dark"] #ednuva-preloader {
  --preloader-bg: #080f18;
  --preloader-text: #f5f8fc;
  --preloader-muted: #bac8d8;
  --preloader-track: rgba(186, 200, 216, 0.18);
  --preloader-magenta-glow: rgba(227, 91, 162, 0.22);
  --preloader-blue-glow: rgba(79, 163, 220, 0.24);
  --preloader-logo-shadow: rgba(79, 163, 220, 0.4);
}

#ednuva-preloader[data-state="hidden"] {
  visibility: hidden;
  opacity: 0;
  transform: scale(1.05);
  filter: blur(12px);
}

#ednuva-preloader .preloader-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(48px);
}

#ednuva-preloader .preloader-glow-magenta {
  top: 28%;
  left: 30%;
  width: 340px;
  height: 340px;
  background: radial-gradient(circle, var(--preloader-magenta-glow), transparent 66%);
  animation: ednuva-drift-a 16s ease-in-out infinite;
}

#ednuva-preloader .preloader-glow-blue {
  right: 28%;
  bottom: 26%;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, var(--preloader-blue-glow), transparent 66%);
  animation: ednuva-drift-b 19s ease-in-out infinite;
}

#ednuva-preloader .preloader-mark {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  width: 224px;
  height: 224px;
  align-items: center;
  justify-content: center;
  transform: translate(-50%, -50%);
}

#ednuva-preloader .preloader-halo {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  background: conic-gradient(from 90deg, #e35ba2, #f0a820, #5db2ea, #4fa3dc, #e35ba2);
  filter: blur(24px);
  opacity: 0.42;
  animation:
    ednuva-spin 8s linear infinite,
    ednuva-glow-pulse 4.4s ease-in-out infinite;
}

#ednuva-preloader .preloader-ring {
  position: absolute;
  inset: 0;
  width: 224px;
  height: 224px;
  transform: rotate(-90deg);
}

#ednuva-preloader .preloader-progress {
  stroke-dashoffset: 653.5;
  animation: ednuva-ring-progress 1900ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

#ednuva-preloader .preloader-orb {
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  --orb-r: 104px;
  animation: ednuva-orbit 9s linear infinite;
}

#ednuva-preloader .preloader-orb-magenta {
  width: 6px;
  height: 6px;
  margin: -3px 0 0 -3px;
  background: #e35ba2;
  box-shadow: 0 0 8px rgba(227, 91, 162, 0.7);
}

#ednuva-preloader .preloader-orb-blue {
  width: 5px;
  height: 5px;
  margin: -2.5px 0 0 -2.5px;
  background: #4fa3dc;
  box-shadow: 0 0 8px rgba(79, 163, 220, 0.7);
  animation-delay: -4.5s;
}

#ednuva-preloader .preloader-logo {
  position: relative;
  width: 90px;
  height: 90px;
  object-fit: contain;
  filter: drop-shadow(0 10px 24px var(--preloader-logo-shadow));
  animation: ednuva-breathe 4.4s ease-in-out infinite;
}

#ednuva-preloader .preloader-copy {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  margin-top: 150px;
  text-align: center;
}

#ednuva-preloader .preloader-wordmark {
  color: var(--preloader-text);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 5px;
  animation: ednuva-word-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.2s;
}

#ednuva-preloader .preloader-subtitle {
  color: var(--preloader-muted);
  font-size: 13px;
  letter-spacing: 0.2px;
  animation: ednuva-fade-up 0.8s cubic-bezier(0, 0, 0.2, 1) both;
  animation-delay: 0.42s;
}

@keyframes ednuva-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes ednuva-ring-progress {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes ednuva-breathe {
  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.03);
  }
}

@keyframes ednuva-glow-pulse {
  0%,
  100% {
    opacity: 0.4;
    transform: scale(1);
  }

  50% {
    opacity: 0.6;
    transform: scale(1.06);
  }
}

@keyframes ednuva-orbit {
  from {
    transform: rotate(0deg) translateX(var(--orb-r)) rotate(0deg);
  }

  to {
    transform: rotate(360deg) translateX(var(--orb-r)) rotate(-360deg);
  }
}

@keyframes ednuva-drift-a {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }

  50% {
    transform: translate(28px, -22px) scale(1.06);
  }
}

@keyframes ednuva-drift-b {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }

  50% {
    transform: translate(-32px, 24px) scale(1.05);
  }
}

@keyframes ednuva-word-in {
  from {
    opacity: 0;
    transform: translateY(6px);
    letter-spacing: 9px;
    filter: blur(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
    letter-spacing: 5px;
    filter: blur(0);
  }
}

@keyframes ednuva-fade-up {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 0.85;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  #ednuva-preloader .ednuva-anim {
    animation: none;
  }

  #ednuva-preloader[data-state="hidden"] {
    transform: none;
    filter: none;
  }
}
