.app-loading-overlay { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 24px; background: radial-gradient(circle at top, rgba(59, 130, 246, 0.24), transparent 30%), linear-gradient(135deg, rgba(2, 6, 23, 0.96), rgba(15, 23, 42, 0.98)); animation: app-loading-overlay-fade 0.45s ease-out 1.45s forwards; } .app-loading-panel { width: min(100%, 560px); padding: 28px; border: 1px solid rgba(96, 165, 250, 0.22); border-radius: 28px; background: linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(2, 6, 23, 0.96)), rgba(15, 23, 42, 0.92); box-shadow: 0 24px 80px rgba(15, 23, 42, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.08); backdrop-filter: blur(16px); } .app-loading-panel__eyebrow { display: inline-flex; margin-bottom: 10px; color: rgba(147, 197, 253, 0.92); font-size: 12px; font-weight: 700; letter-spacing: 0.24em; } .app-loading-panel__title { display: block; margin-bottom: 18px; color: #f8fafc; font-size: clamp(26px, 5vw, 40px); letter-spacing: 0.08em; } .app-loading-panel__status { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 22px; color: rgba(191, 219, 254, 0.88); font-size: 14px; text-transform: uppercase; letter-spacing: 0.08em; } .app-loading-panel__pulse { width: 10px; height: 10px; border-radius: 999px; background: #38bdf8; box-shadow: 0 0 0 rgba(56, 189, 248, 0.5); animation: app-loading-pulse 1.2s ease-out infinite; } .app-loading-log { display: grid; gap: 10px; } .app-loading-log__line { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; padding: 12px 14px; border: 1px solid rgba(96, 165, 250, 0.14); border-radius: 16px; background: rgba(15, 23, 42, 0.58); color: #dbeafe; opacity: 0; transform: translateY(8px); animation: app-loading-log-in 0.55s ease-out forwards; } .app-loading-log__time { color: rgba(125, 211, 252, 0.72); font-size: 13px; font-variant-numeric: tabular-nums; } .app-loading-log__text { min-width: 0; font-size: 14px; letter-spacing: 0.03em; } @keyframes app-loading-log-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } @keyframes app-loading-pulse { 0% { box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.46); } 70% { box-shadow: 0 0 0 12px rgba(56, 189, 248, 0); } 100% { box-shadow: 0 0 0 0 rgba(56, 189, 248, 0); } } @keyframes app-loading-overlay-fade { from { opacity: 1; } to { opacity: 0; visibility: hidden; } } @media (max-width: 640px) { .app-loading-panel { padding: 22px 18px; border-radius: 24px; } .app-loading-log__line { grid-template-columns: 1fr; gap: 6px; } }