:root{--loader-bg:#ffffff;--loader-primary:#a80c0c;--loader-secondary:#9c0808;--loader-text:#333333;--loader-logo-size:100px;--spinner-size:160px;--spinner-thickness:4px;--transition-duration:0.5s}.loader-wrapper.dark{--loader-bg:#1a1a2e;--loader-text:#ffffff}.loader-wrapper{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--loader-bg);display:flex;justify-content:center;align-items:center;z-index:9999;transition:opacity var(--transition-duration) ease,visibility var(--transition-duration) ease}.loader-wrapper.hidden{opacity:0;visibility:hidden}.loader-wrapper.removed{display:none}.loader-content{display:flex;flex-direction:column;align-items:center;gap:20px}.logo-container{margin-top: 1.55rem;position:relative;width:var(--loader-logo-size);height:var(--loader-logo-size);display:flex;justify-content:center;align-items:center}.loader-logo{width:100%;height:100%;object-fit:contain;animation:2s ease-in-out infinite logoPulse}@keyframes logoPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.spinner{width:var(--spinner-size);height:var(--spinner-size);border:var(--spinner-thickness) solid rgba(0,0,0,.1);border-top-color:var(--loader-primary);border-right-color:var(--loader-secondary);border-radius:50%;animation:1s linear infinite spin;position:absolute}@keyframes spin{to{transform:rotate(360deg)}}.logo-container .spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(var(--loader-logo-size) + 40px);height:calc(var(--loader-logo-size) + 40px)}.loading-text{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;font-size:1.2rem;color:var(--loader-text);margin-top:1.5rem;letter-spacing:2px}.dots::after{content:'';animation:1.5s steps(4,end) infinite dots}@keyframes dots{0%,20%{content:''}40%{content:'.'}60%{content:'..'}100%,80%{content:'...'}}.progress-bar{width:200px;height:4px;background-color:rgba(0,0,0,.1);border-radius:2px;overflow:hidden;margin-top:2.5rem}.progress-fill{width:0%;height:100%;background:linear-gradient(90deg,var(--loader-primary),var(--loader-secondary));border-radius:2px;transition:width .3s}.progress-bar.indeterminate .progress-fill{width:30%;animation:1.5s ease-in-out infinite indeterminate}@keyframes indeterminate{0%{transform:translateX(-100%)}100%{transform:translateX(400%)}}.page-content{opacity:0;transition:opacity var(--transition-duration) ease}.page-content.visible{opacity:1}.loader-logo.bounce{animation:1s infinite bounce}@keyframes bounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}.loader-logo.rotate{animation:2s ease-in-out infinite rotate3d}@keyframes rotate3d{0%{transform:perspective(400px) rotateY(0)}50%{transform:perspective(400px) rotateY(180deg)}100%{transform:perspective(400px) rotateY(360deg)}}.loader-logo.glow{animation:2s ease-in-out infinite glow}@keyframes glow{0%,100%{filter:drop-shadow(0 0 5px var(--loader-primary))}50%{filter:drop-shadow(0 0 20px var(--loader-primary)) drop-shadow(0 0 40px var(--loader-secondary))}}.dots-loader{display:flex;gap:8px}.dots-loader span{width:12px;height:12px;background-color:var(--loader-primary);border-radius:50%;animation:1.4s ease-in-out infinite both dotBounce}.dots-loader span:first-child{animation-delay:-.32s}.dots-loader span:nth-child(2){animation-delay:-.16s}.dots-loader span:nth-child(3){animation-delay:0s}@keyframes dotBounce{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}@media (max-width:768px){:root{--loader-logo-size:72px;--spinner-size:120px}.loading-text{font-size:1rem}.progress-bar{width:150px}}