.novaris-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 1rem;
  color: var(--text);
  background:
    radial-gradient(circle at 50% 24%, rgba(66, 139, 255, .14), transparent 28rem),
    linear-gradient(180deg, #071221 0%, #050a12 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity .28s ease, visibility .28s ease;
}
.novaris-loader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.loader-panel {
  width: min(560px, 90vw);
  min-height: 270px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: .72rem;
  padding: 1.8rem 2rem;
  border: 1px solid rgba(92, 156, 255, .28);
  border-radius: 26px;
  background:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(135deg, rgba(8, 19, 36, .94), rgba(4, 10, 21, .88));
  background-size: 34px 34px, 34px 34px, auto;
  box-shadow: 0 24px 70px rgba(0,0,0,.48), inset 0 0 46px rgba(55, 136, 255, .045);
}
.loader-planet {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  position: relative;
  background:
    radial-gradient(circle at 35% 30%, rgba(255,255,255,.98) 0 5%, transparent 6%),
    radial-gradient(circle at 42% 40%, #4ab4ff 0 16%, transparent 17%),
    radial-gradient(circle at 58% 38%, #2f7ed1 0 22%, transparent 23%),
    radial-gradient(circle at 43% 58%, #69b56e 0 13%, transparent 14%),
    radial-gradient(circle at 66% 62%, #d6b16f 0 10%, transparent 11%),
    radial-gradient(circle at 50% 50%, #143b86 0 58%, #061a49 70%, #020915 100%);
  box-shadow: 0 0 0 3px rgba(190, 228, 255, .58), 0 0 24px rgba(104, 188, 255, .72), 0 0 54px rgba(80, 142, 255, .24);
}
.loader-planet::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid rgba(194, 232, 255, .44); }
.loader-kicker { margin-top: .35rem; color: #ffe083; font-weight: 850; letter-spacing: .38em; font-size: .78rem; }
.loader-title { text-align: center; font-weight: 880; letter-spacing: -.035em; line-height: 1.02; font-size: clamp(2rem, 4vw, 3rem); text-shadow: 0 0 28px rgba(210, 234, 255, .1); }
.loader-subtitle { color: #b9c8da; text-align: center; font-size: clamp(.96rem, 1.5vw, 1.1rem); }
.loader-bar { width: min(390px, 72vw); height: 7px; margin-top: .6rem; overflow: hidden; border-radius: 999px; border: 1px solid rgba(104, 160, 255, .16); background: rgba(255,255,255,.075); box-shadow: inset 0 0 12px rgba(0,0,0,.35); }
.loader-bar span { display: block; width: 58%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, rgba(61, 116, 215, .25), #6de4ff 48%, #ffda72 100%); animation: novarisLoaderPulse 1.25s ease-in-out infinite alternate; box-shadow: 0 0 18px rgba(122, 225, 255, .28); }
@keyframes novarisLoaderPulse { from { transform: translateX(-18%); } to { transform: translateX(82%); } }
@media (max-width: 720px) { .loader-panel { min-height: 240px; padding: 1.5rem; border-radius: 22px; } .loader-planet { width: 46px; height: 46px; } .loader-kicker { letter-spacing: .3em; } }
@media (prefers-reduced-motion: reduce) { .loader-bar span { animation: none; transform: translateX(0); } .novaris-loader { transition: none; } }
