/* Preloader com a logo do menu: aparece só no primeiro carregamento de cada abertura (sessionStorage). */
.app-preloader {
  position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center;
  background: radial-gradient(ellipse 520px 420px at 50% 38%, rgba(121, 86, 192, .16), transparent 75%), #080912;
  transition: opacity 380ms ease, visibility 380ms ease;
}
html.no-preloader .app-preloader { display: none; }
.app-preloader.is-done { opacity: 0; visibility: hidden; pointer-events: none; }
.app-preloader-logo { display: flex; align-items: center; gap: 16px; animation: appPreIn 520ms cubic-bezier(.2, .8, .2, 1) both; }
.app-preloader-mark { display: grid; grid-template-columns: repeat(2, 13px); grid-template-rows: repeat(2, 13px); gap: 5px; transform: rotate(-22deg); }
.app-preloader-mark span { display: block; border-radius: 4px; background: #c9b7ff; animation: appPrePulse 1.2s ease-in-out infinite; }
.app-preloader-mark span:nth-child(1) { animation-delay: 0ms; }
.app-preloader-mark span:nth-child(2) { opacity: .58; animation-delay: 150ms; }
.app-preloader-mark span:nth-child(4) { opacity: .37; animation-delay: 300ms; }
.app-preloader-mark span:nth-child(3) { opacity: .8; animation-delay: 450ms; }
.app-preloader-logo strong { font-family: Inter, "Segoe UI", system-ui, -apple-system, sans-serif; font-size: 38px; letter-spacing: -.07em; line-height: 1; font-weight: 760; color: #f4f1ff; }
.app-preloader-logo strong span { color: #b9a5ff; }
@keyframes appPreIn { from { opacity: 0; transform: translateY(6px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes appPrePulse { 0%, 100% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(.78); filter: brightness(1.25); } }
@media (prefers-reduced-motion: reduce) { .app-preloader-logo, .app-preloader-mark span { animation: none; } }
