/* Critical boot-splash styles — loaded FIRST and standalone (not in the hashed app
   bundle) so the branded loader is always styled instantly, even while the big
   bundle CSS is still downloading during a service-worker update. Keep in sync with
   the .splash rules in client/src/style.css. */
.splash { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; background: #ffffff; color: #0d1a1c; transition: opacity .32s ease; }
.splash--out { opacity: 0; pointer-events: none; }
.splash__box { display: flex; flex-direction: column; align-items: center; gap: 13px; padding: 24px; max-width: 320px; text-align: center; }
.splash__logo { width: 72px; height: 72px; border-radius: 18px; }
.splash__name { font-size: 27px; font-weight: 800; letter-spacing: -.01em; line-height: 1; }
.splash__name .b-doe { color: currentColor; }
.splash__name .b-ask { color: #ee6c0d; }
.splash__spin { width: 30px; height: 30px; border-radius: 50%; border: 3px solid rgba(16, 169, 139, .28); border-top-color: #10a98b; animation: splashSpin .8s linear infinite; margin-top: 3px; }
.splash__msg { font-size: 14px; opacity: .72; }
.splash__slow { font-size: 12.5px; line-height: 1.5; opacity: 0; max-width: 280px; animation: splashSlow 0s linear 8s forwards; }
@keyframes splashSpin { to { transform: rotate(360deg); } }
@keyframes splashSlow { to { opacity: .62; } }
@media (prefers-color-scheme: dark) { .splash { background: #0b141a; color: #e8f1ef; } .splash__name .b-ask { color: #ff8a2b; } .splash__spin { border-color: rgba(47, 224, 192, .25); border-top-color: #2fe0c0; } }
@media (prefers-reduced-motion: reduce) { .splash__spin { animation: none; } }
