/*
 * Boot splash — shown while the Flutter engine + app bundle download, so the
 * first paint is branded instead of a blank white screen. Removed by splash.js
 * on the `flutter-first-frame` event. Kept in a separate file (not inline) so a
 * strict Content-Security-Policy needs no 'unsafe-inline'.
 */
:root { color-scheme: light dark; }
html, body { margin: 0; padding: 0; height: 100%; }

#boot-splash {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 20px;
  background: #FFF0F4;            /* brandSurfaceSubtle */
  z-index: 9999;
  transition: opacity 200ms ease-out;
}

@media (prefers-color-scheme: dark) {
  #boot-splash { background-color: #221016; }
}

#boot-splash.hidden { opacity: 0; pointer-events: none; }

#boot-splash .brand {
  font: 700 34px/1 -apple-system, "Segoe UI", Roboto, system-ui, sans-serif;
  letter-spacing: 0.5px;
  color: #E91E63;                /* brand */
}

#boot-splash .spinner {
  width: 34px;
  height: 34px;
  border: 3px solid #F8BBD0;     /* brandMuted */
  border-top-color: #E91E63;     /* brand */
  border-radius: 50%;
  animation: boot-spin 0.9s linear infinite;
}

@keyframes boot-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  #boot-splash .spinner { animation-duration: 2s; }
}
