.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--bg-color) 0,var(--bg-light) 100%);display:flex;justify-content:center;align-items:center;z-index:9999;transition:opacity .4s ease-in-out,visibility .4s ease-in-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:none;will-change:opacity,visibility}.loading-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.wrap{display:flex;flex-direction:column;align-items:center;gap:24px}.scene{position:relative;width:130px;height:130px;display:flex;align-items:center;justify-content:center}.ring-pulse{position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(36,92,221,.2);animation:pulse 2.6s ease-in-out infinite}.ring-spin{position:absolute;inset:6px;border-radius:50%;border:3px solid transparent;border-top-color:var(--primary-color);border-right-color:rgba(36,92,221,.3);animation:spin 1.5s cubic-bezier(.5,0,.5,1) infinite;filter:drop-shadow(0 0 6px var(--spinner-color))}.ring-inner{position:absolute;inset:18px;border-radius:50%;border:1.5px solid transparent;border-bottom-color:rgba(36,92,221,.5);animation:spin-rev 2.2s linear infinite}.logo-img{width:60px;height:60px;object-fit:contain;animation:breathe 2.6s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(36, 92, 221, .9)) brightness(1.1)}.dots{display:flex;gap:8px}.dot{width:5px;height:5px;border-radius:50%;background:var(--primary-color);animation:blink 1.4s ease-in-out infinite}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-rev{to{transform:rotate(-360deg)}}@keyframes pulse{0%,100%{transform:scale(1);opacity:.3}50%{transform:scale(1.1);opacity:.8}}@keyframes breathe{0%,100%{transform:scale(1);filter:drop-shadow(0 0 8px rgba(36, 92, 221, .7)) brightness(1.05)}50%{transform:scale(1.08);filter:drop-shadow(0 0 20px rgba(36, 92, 221, 1)) brightness(1.2)}}@keyframes blink{0%,100%,80%{transform:scale(.55);opacity:.2}40%{transform:scale(1);opacity:1}}@keyframes fade{0%,100%{opacity:.25}50%{opacity:.65}}