.loading-overlay[hidden] { display: none; }
.loading-overlay { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(73, 18, 44, .78); background: rgba(73, 18, 44, .7); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.loading-card { width: min(100%, 435px); padding: 42px 37px; border: 1px solid rgba(255,255,255,.6); border-radius: 24px; background: linear-gradient(145deg, #fffafb, #fff1f5); box-shadow: 0 25px 70px rgba(30, 4, 17, .3); color: #3d2431; text-align: center; }
.loading-mark { display: block; color: #c94f78; font-size: 2rem; animation: loading-pulse 2.1s ease-in-out infinite; }
.loading-card h2 { margin: 8px 0 10px; font-size: 1.7rem; }
.loading-card p { margin: 0; color: #76606b; font-size: .88rem; }
.loading-card small { display: block; margin-top: 15px; color: #8b7380; font-size: .7rem; }
.loading-kicker { margin: 9px 0 0 !important; font-size: .66rem !important; }
.loading-progress-label { display: flex; align-items: center; justify-content: space-between; margin-top: 27px; color: #856572; font-size: .73rem; font-weight: 700; }
.loading-progress-label strong { color: #6b1f42; font-size: .9rem; }
.loading-track { height: 8px; overflow: hidden; margin-top: 8px; border-radius: 99px; background: #f2d6df; }
.loading-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #db7194, #b93d67); transition: width .65s ease-out; }
@keyframes loading-pulse { 50% { opacity: .72; transform: scale(1.13) rotate(14deg); } }
@media (max-width: 480px) { .loading-card { padding: 35px 23px; } }
