#boot-loader { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 24px; background: linear-gradient(145deg, #dceceb 0%, #eef6f4 52%, #e4eee8 100%); }
.boot-loader-card { display: flex; flex-direction: column; align-items: center; gap: 16px; min-width: 180px; padding: 28px 32px; color: #263941; border: 1px solid rgba(255,255,255,.78); border-radius: 26px; background: rgba(255,255,255,.68); box-shadow: 0 24px 60px rgba(31,76,91,.14); font: 700 17px/1.2 ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.boot-loader-card strong span { color: #647b18; }
.boot-loader-mark { display: grid; place-items: center; width: 78px; height: 78px; border-radius: 24px; background: rgba(255,255,255,.56); box-shadow: inset 0 0 0 1px rgba(255,255,255,.78); animation: boot-breathe 1.8s ease-in-out infinite; }
.boot-loader-mark img { width: 58px; height: 58px; object-fit: contain; }
.boot-loader-dots { display: flex; gap: 6px; }
.boot-loader-dots i { width: 6px; height: 6px; border-radius: 50%; background: #2f81b7; animation: boot-dot 1s ease-in-out infinite; }
.boot-loader-dots i:nth-child(2) { animation-delay: .12s; }
.boot-loader-dots i:nth-child(3) { animation-delay: .24s; }
.boot-loader-recovery { max-width: 250px; text-align: center; font: 500 14px/1.5 ui-sans-serif, system-ui, sans-serif; }
.boot-loader-recovery button { padding: 9px 14px; color: #fff; border: 0; border-radius: 10px; background: #2f81b7; font: 700 14px/1.2 ui-sans-serif, system-ui, sans-serif; cursor: pointer; }
.boot-loader.is-stalled .boot-loader-dots { display: none; }
.boot-loader.is-stalled .boot-loader-recovery { display: block; }
@keyframes boot-breathe { 0%, 100% { transform: scale(.96); opacity: .82; } 50% { transform: scale(1); opacity: 1; } }
@keyframes boot-dot { 0%, 100% { transform: translateY(0); opacity: .38; } 50% { transform: translateY(-4px); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .boot-loader-mark, .boot-loader-dots i { animation: none; } }
#boot-loader.is-stalled .boot-loader-recovery[hidden] { display: none; }
