/* ============================================================
   VISUOSOFTS — Loading screen (matches red #FA0E0F / white theme)
   ============================================================ */
.vs-loader{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  background:#ffffff;
  transition:opacity .5s ease, visibility .5s ease;
}
.vs-loader-hide{ opacity:0; visibility:hidden; pointer-events:none; }
.vs-loader-inner{ display:flex; flex-direction:column; align-items:center; gap:26px; }
.vs-loader-logo img{
  height:58px; width:auto; object-fit:contain;
  animation:vsPulse 1.3s ease-in-out infinite;
}
@keyframes vsPulse{
  0%,100%{ transform:scale(1); opacity:.85; }
  50%{ transform:scale(1.06); opacity:1; }
}
.vs-loader-bar{
  width:180px; height:3px; background:rgba(250,14,15,.12);
  border-radius:99px; overflow:hidden;
}
.vs-loader-bar span{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg,#FA0E0F,#ff4545);
  border-radius:99px; transition:width .25s ease;
}

/* Body scroll lock while the mobile menu is open (menu-glitch fix) */
body.nav-open{ overflow:hidden; touch-action:none; }
