/* Boot splash styles. Kept in a file rather than an inline <style> so the
   Content-Security-Policy can leave 'unsafe-inline' out of style-src. */
html, body { margin: 0; padding: 0; height: 100%; background: #0B0F10; overflow: hidden; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif; -webkit-font-smoothing: antialiased; }

/* Inline splash shown while the Flutter engine boots (~600 ms cold-start
   on a fast connection, longer on slow networks). Fades out as soon as
   Flutter dispatches the `flutter-first-frame` event. */
#splash {
  position: fixed; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(79,126,255,0.20) 0%, rgba(79,126,255,0.04) 40%, transparent 70%),
    #0B0F10;
  transition: opacity 0.15s ease;
  z-index: 9999;
}
#splash.hidden { opacity: 0; pointer-events: none; }
/* The mark is the AXIS app icon (web/icons/Icon-192.png). */
#splash .logo {
  width: 92px; height: 92px;
  border-radius: 22px;
  display: block;
  box-shadow: 0 16px 48px rgba(124,245,213,0.28);
}
#splash .name { color: #fff; font-size: 20px; font-weight: 800; letter-spacing: -0.5px; margin-top: 22px; }
#splash .tagline { color: rgba(255,255,255,0.55); font-size: 13px; margin-top: 6px; }
#splash .loader {
  width: 32px; height: 32px; margin-top: 32px;
  border: 2px solid rgba(255,255,255,0.12);
  border-top-color: #7CF5D5;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
/* Says out loud how long this takes. The spinner shows that something is
   happening; only a sentence stops a visitor deciding the page is stuck. */
#splash .hint { color: rgba(255,255,255,0.38); font-size: 12px; margin-top: 10px; }
/* Respect the OS setting: still obviously loading, just not moving. */
@media (prefers-reduced-motion: reduce) {
  #splash .loader { animation: none; border-top-color: rgba(255,255,255,0.35); }
}
