html.preloading,
body.preloading{
  overflow:hidden;
  height:100%;
}

body.preloading{
  position:relative;
}

body.preloading > *:not(#site-preloader):not(script):not(style):not(link){
  visibility:hidden;
}

body.preloading #site-preloader{
  visibility:visible;
}

.site-preloader{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  z-index:99999;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 30% 20%, rgba(29,161,242,.12), transparent 28%),
    radial-gradient(circle at 70% 80%, rgba(255,122,0,.10), transparent 24%),
    linear-gradient(135deg,#fbfdff 0%,#f2f8ff 55%,#fffaf6 100%);
  opacity:1;
  visibility:visible;
  transition:opacity .6s ease, visibility .6s ease, transform .6s ease;
}

.site-preloader.is-hidden{
  opacity:0;
  visibility:hidden;
  transform:scale(1.02);
}

.preloader-inner{
  width:min(460px,92vw);
  text-align:center;
  padding:2rem 1.5rem;
}

.preloader-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1rem;
}

.preloader-logo-wrap{
  position:relative;
  width:118px;
  height:118px;
  display:grid;
  place-items:center;
}

.preloader-ring,
.preloader-ring::before,
.preloader-ring::after{
  position:absolute;
  inset:0;
  border-radius:50%;
  content:"";
}

.preloader-ring{
  background:conic-gradient(from 160deg, rgba(10,61,145,.12), rgba(29,161,242,.82), rgba(255,122,0,.84), rgba(10,61,145,.12));
  animation:navexaSpin 1.45s linear infinite;
  filter:drop-shadow(0 14px 28px rgba(10,61,145,.12));
}

.preloader-ring::before{
  inset:10px;
  background:linear-gradient(135deg, rgba(255,255,255,.98), rgba(245,250,255,.96));
}

.preloader-ring::after{
  inset:18px;
  border:1px solid rgba(10,61,145,.07);
  background:rgba(255,255,255,.84);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

.preloader-logo{
  position:relative;
  z-index:2;
  width:58px;
  height:58px;
  object-fit:contain;
  animation:navexaPulse 1.2s ease-in-out infinite;
}

.preloader-title{
  color:var(--primary);
  font-weight:800;
  letter-spacing:.08em;
  font-size:1rem;
}

.preloader-text{
  color:var(--muted);
  font-size:.95rem;
}

.preloader-bars{
  display:flex;
  justify-content:center;
  gap:.45rem;
  margin-top:1rem;
}

.preloader-bars span{
  width:10px;
  height:10px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--secondary),var(--accent));
  box-shadow:0 8px 18px rgba(10,61,145,.10);
  animation:navexaBounce .9s ease-in-out infinite;
}

.preloader-bars span:nth-child(2){animation-delay:.14s}
.preloader-bars span:nth-child(3){animation-delay:.28s}
.preloader-bars span:nth-child(4){animation-delay:.42s}

@keyframes navexaSpin{to{transform:rotate(360deg)}}
@keyframes navexaPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@keyframes navexaBounce{0%,100%{transform:translateY(0);opacity:.65}50%{transform:translateY(-8px);opacity:1}}

@media (prefers-reduced-motion:reduce){
  .preloader-ring,
  .preloader-logo,
  .preloader-bars span{
    animation:none !important;
  }
}

@media (max-width:640px){
  .preloader-logo-wrap{width:102px;height:102px}
  .preloader-logo{width:50px;height:50px}
  .preloader-inner{padding:1.5rem 1rem}
}
