/* Shared by the first HTML paint and Vue. Decorative motion never delays readiness. */
.ace-loading-screen {
  min-height:100vh; min-height:100dvh; box-sizing:border-box;
  display:flex; align-items:center; justify-content:center; padding:32px 24px;
  background:linear-gradient(155deg,#191723,#101117 72%); color:#f4f3fa;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.ace-loading-content { width:min(72vw,292px); text-align:center; }
.ace-loading-logo { display:block; width:100%; height:auto; animation:ace-brand-breathe 2.8s ease-in-out infinite; }
.ace-loading-track { position:relative; width:104px; height:3px; margin:30px auto 0; border-radius:3px; overflow:hidden; background:#343040; }
.ace-loading-track i { position:absolute; inset:0; border-radius:inherit; background:linear-gradient(90deg,#8759fc,#35c4f2); transform:translateX(-105%); animation:ace-loading-sweep 1.6s cubic-bezier(.45,0,.2,1) infinite; }
.ace-loading-label { display:block; margin:16px 0 0; color:#bcb9cd; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
@keyframes ace-brand-breathe { 0%,100% { opacity:.84; transform:scale(.99); } 50% { opacity:1; transform:scale(1.015); } }
@keyframes ace-loading-sweep { to { transform:translateX(105%); } }
@media (prefers-reduced-motion:reduce) {
  .ace-loading-logo,.ace-loading-track i { animation:none; transform:none; opacity:1; }
  .ace-loading-track i { inset-inline:25%; }
}
.ace-page-hidden .ace-loading-logo,.ace-page-hidden .ace-loading-track i { animation-play-state:paused; }
