.page-loader{position:fixed;top:0;left:0;width:100%;height:100vh;background:linear-gradient(135deg,var(--background) 0,var(--background-secondary,#0a0a0a) 100%);z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-slow),visibility var(--transition-slow);opacity:1;visibility:visible}.page-loader.fade-out{opacity:0;visibility:hidden;pointer-events:none}.loader-content{display:flex;flex-direction:column;align-items:center;gap:2rem}.loader-spinner{position:relative;width:80px;height:80px}.spinner-ring{position:absolute;width:100%;height:100%;border:3px solid transparent;border-radius:50%;animation:spin 1.5s cubic-bezier(.68,-.55,.265,1.55) infinite}.spinner-ring:first-child{border-top-color:var(--primary);animation-delay:0s}.spinner-ring:nth-child(2){border-right-color:var(--secondary,#666);animation-delay:.15s;width:90%;height:90%;top:5%;left:5%}.spinner-ring:nth-child(3){border-bottom-color:var(--accent,#888);animation-delay:.3s;width:80%;height:80%;top:10%;left:10%}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loader-progress{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:200px}.progress-bar{width:100%;height:4px;background:rgba(255,255,255,.1)}.progress-bar,.progress-fill{border-radius:2px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0,var(--secondary,var(--primary)) 100%);transition:width .3s cubic-bezier(.4,0,.2,1)}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-text{font-size:.875rem;color:var(--text-secondary);font-variant-numeric:tabular-nums;letter-spacing:.05em}.page-content{opacity:0;animation:fadeInUp .6s ease-out forwards;animation-delay:.1s}.page-content.visible{opacity:1}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.minimal-loader{position:fixed;top:0;left:0;width:100%;height:100vh;background:var(--background);z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeOut .4s ease-out forwards;animation-delay:.3s}.minimal-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top:3px solid var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes fadeOut{to{opacity:0;visibility:hidden}}.skeleton-loader{background:linear-gradient(90deg,rgba(255,255,255,.05) 25%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.05) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:4px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.pulse-loader{display:inline-block;width:40px;height:40px;background:var(--primary);border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%{transform:scale(0);opacity:1}to{transform:scale(1.2);opacity:0}}.dots-loader{display:flex;gap:.5rem}.dots-loader span{width:10px;height:10px;background:var(--primary);border-radius:50%;animation:dots 1.4s ease-in-out infinite both}.dots-loader span:first-child{animation-delay:-.32s}.dots-loader span:nth-child(2){animation-delay:-.16s}@keyframes dots{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}@media (max-width:768px){.loader-spinner{width:60px;height:60px}.loader-progress{min-width:150px}}@media (prefers-reduced-motion:reduce){.minimal-loader,.page-loader{transition:none}.minimal-spinner,.page-content,.progress-fill:after,.spinner-ring{animation:none}.page-content{opacity:1}}