html, body, #root { min-height: 100%; margin: 0; }
body { background: #f8f9f8; }
.boot-loading { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; min-height: 100dvh; background: #f8f9f8; }
.boot-loading-mark { position: relative; width: 150px; height: 58px; display: grid; place-items: center; }
.boot-loading-mark img { display: block; width: 132px; height: auto; animation: boot-logo 1.45s cubic-bezier(.4, 0, .2, 1) infinite; }
.boot-loading-mark span { position: absolute; left: 9px; right: 9px; bottom: -7px; height: 2px; overflow: hidden; border-radius: 999px; background: #e1e7e8; }
.boot-loading-mark span::after { content: ""; position: absolute; inset: 0; width: 44%; border-radius: inherit; background: #b84e1a; animation: boot-line 1.15s cubic-bezier(.65, 0, .35, 1) infinite; }
.boot-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@keyframes boot-logo { 0%, 100% { opacity: .72; transform: translateY(1px); } 50% { opacity: 1; transform: translateY(-1px); } }
@keyframes boot-line { 0% { transform: translateX(-115%); } 55% { transform: translateX(100%); } 100% { transform: translateX(245%); } }
@media (prefers-reduced-motion: reduce) { .boot-loading-mark img, .boot-loading-mark span::after { animation: none; } }
