/* The first load (operator request of 2026-11-05): the same Breckly opening screen in the static page while WebAssembly downloads
   (index.html, with Blazor's --blazor-load-percentage) and while the app checks the session (MainLayout), so nothing jumps between
   the two. Tokens come from breckly.css; theme-boot.js has already applied the saved theme. */
.boot-splash { min-height: 100dvh; display: grid; place-items: center; background: var(--bg, #f4f6fb); color: var(--ink-2, #44506b); }
.boot-splash-inner { display: grid; justify-items: center; gap: 16px; }
.boot-splash-mark { width: 46px; height: 46px; }
.boot-splash-bar { position: relative; width: 132px; height: 3px; border-radius: 3px; overflow: hidden; background: var(--line, #e3e8f2); }
.boot-splash-bar > span { position: absolute; inset: 0 auto 0 0; width: var(--blazor-load-percentage, 34%); border-radius: 3px; background: var(--accent, #0a63e5); transition: width 0.2s ease; }
.boot-splash-bar.indeterminate > span { width: 34%; animation: boot-sweep 1.4s ease-in-out infinite; }
@keyframes boot-sweep { from { transform: translateX(-100%); } to { transform: translateX(290%); } }
@media (prefers-reduced-motion: reduce) { .boot-splash-bar.indeterminate > span { animation: none; width: 100%; opacity: 0.35; } .boot-splash-bar > span { transition: none; } }
html.reduce-motion .boot-splash-bar.indeterminate > span { animation: none; width: 100%; opacity: 0.35; }
