/* © 2024-2026 Violet Tech Ltd. All rights reserved.
   This source code is proprietary and confidential.
   Unauthorised copying, modification, or distribution is strictly prohibited.

   Boot splash styles (index.html #boot-splash, dismissed by boot-splash.js).
   A render-blocking public stylesheet, not an inline <style>: Vite turns an
   inline <style> into an index.html?html-proxy CSS module, which changes the
   route-budget graph CI pins (collect-route-budgets.mjs strips the query, so
   the entry appears to import itself). Files in public/ stay outside it.

   Token fallbacks are the meridian-tokens.css values, which load with the
   bundle. */
#boot-splash {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  background: var(--paper, #FAF8F4);
  font-family: 'Archivo', system-ui, sans-serif;
  transition: opacity 400ms ease-out;
}
#boot-splash.is-leaving { opacity: 0; pointer-events: none; }
#boot-splash p { margin: 0; }
.boot-spark { width: 48px; height: 48px; animation: boot-spark-in 600ms ease-out both; }
.boot-spark line { animation: boot-ray 1.2s linear infinite; }
.boot-spark line:nth-child(1) { animation-delay: -1.2s; }
.boot-spark line:nth-child(2) { animation-delay: -1s; }
.boot-spark line:nth-child(3) { animation-delay: -0.8s; }
.boot-spark line:nth-child(4) { animation-delay: -0.6s; }
.boot-spark line:nth-child(5) { animation-delay: -0.4s; }
.boot-spark line:nth-child(6) { animation-delay: -0.2s; }
.boot-title { font-size: 22px; font-weight: 600; color: var(--text-ink, #1C1917); }
#boot-splash .boot-sub { margin-top: 4px; font-size: 14px; color: var(--text-faint, #77716A); }
@keyframes boot-spark-in { from { transform: scale(.6); } to { transform: scale(1); } }
@keyframes boot-ray { from { opacity: 1; } to { opacity: .25; } }
@media (prefers-reduced-motion: reduce) {
  #boot-splash, .boot-spark, .boot-spark line { animation: none; transition: none; }
}
