/* Loading screen. Markup is injected by partials/loader.js */
.nepa-loader {
  position: fixed; inset: 0; z-index: 99999;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px;
  background: #fff; color: #00205b;
  font: 600 16px/1.3 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  opacity: 1; visibility: visible;
  transition: opacity .2s ease, visibility 0s linear 0s;
  /* failsafe: if JavaScript never hides the loader, CSS removes it after 6 s */
  animation: nepa-failsafe 0s linear 6s forwards;
}
.nepa-loader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s ease, visibility 0s linear .2s; }
.nepa-loader__logo { width: 96px; height: auto; max-height: 96px; object-fit: contain; animation: nepa-pulse 1.6s ease-in-out infinite; }
.nepa-loader__ring {
  width: 44px; height: 44px; border-radius: 50%;
  border: 4px solid #d6deee; border-top-color: #00205b;
  animation: nepa-spin .9s linear infinite;
}
.nepa-loader__text { letter-spacing: .04em; }
@keyframes nepa-failsafe { to { opacity: 0; visibility: hidden; pointer-events: none; } }
@keyframes nepa-spin { to { transform: rotate(360deg); } }
@keyframes nepa-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@media (prefers-reduced-motion: reduce) {
  .nepa-loader__logo { animation: none; }
  .nepa-loader__ring { animation-duration: 2.4s; }
  .nepa-loader, .nepa-loader.is-hidden { transition: none; }
}
