/* PAGE LOADER - Premium Design */
.page-loader { position:fixed; inset:0; z-index:99999; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--bg,#fff); transition:opacity .8s ease,visibility .8s ease; }
.page-loader.loaded { opacity:0; visibility:hidden; pointer-events:none; }
.loader-particles { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.loader-particle { position:absolute; width:4px; height:4px; background:var(--primary,#c0392b); border-radius:50%; opacity:.3; animation:particleFloat 4s ease-in-out infinite; }
.loader-particle:nth-child(1) { left:15%; top:20%; animation-delay:0s; }
.loader-particle:nth-child(2) { left:80%; top:30%; animation-delay:.5s; animation-duration:4.2s; }
.loader-particle:nth-child(3) { left:25%; top:75%; animation-delay:1s; animation-duration:3.8s; }
.loader-particle:nth-child(4) { left:70%; top:80%; animation-delay:1.5s; animation-duration:4.5s; }
.loader-particle:nth-child(5) { left:50%; top:15%; animation-delay:.3s; animation-duration:3.2s; }
.loader-particle:nth-child(6) { left:90%; top:60%; animation-delay:.8s; animation-duration:4s; }
@keyframes particleFloat { 0%,100% { transform:translateY(0) scale(1); opacity:.3; } 50% { transform:translateY(-20px) scale(1.5); opacity:.6; } }
.loader-logo { display:flex; flex-direction:column; align-items:center; gap:20px; }
.loader-logo-icon { width:80px; height:80px; border-radius:24px; background:var(--gradient); display:flex; align-items:center; justify-content:center; font-size:2rem; color:#fff; animation:loaderPulse 1.5s ease-in-out infinite; box-shadow:0 8px 32px rgba(192,57,43,.25); position:relative; }
.loader-logo-icon::after { content:''; position:absolute; inset:-4px; border-radius:28px; border:2px solid rgba(192,57,43,.2); animation:loaderRing 2s linear infinite; }
@keyframes loaderRing { 0% { transform:rotate(0deg); border-color:rgba(192,57,43,.2); } 50% { border-color:rgba(192,57,43,.5); } 100% { transform:rotate(360deg); border-color:rgba(192,57,43,.2); } }
.loader-logo-text { font-family:'Playfair Display',serif; font-size:2rem; font-weight:800; color:var(--text); letter-spacing:1px; animation:loaderFadeIn 1s ease; }
.loader-logo-text .logo-accent { color:var(--primary,#c0392b); }
@keyframes loaderPulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.05); } }
@keyframes loaderFadeIn { 0% { opacity:0; transform:translateY(10px); } 100% { opacity:1; transform:translateY(0); } }
.loader-progress-container { width:240px; margin-top:32px; }
.loader-progress-track { width:100%; height:3px; background:rgba(0,0,0,.08); border-radius:10px; overflow:hidden; position:relative; }
.loader-progress-track::before { content:''; position:absolute; top:0; left:-100%; width:100%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent); animation:loaderShimmer 1.5s ease infinite; }
@keyframes loaderShimmer { 0% { left:-100%; } 100% { left:200%; } }
.loader-progress-bar { height:100%; width:0%; background:var(--gradient); border-radius:10px; transition:width .3s ease; }

/* Version colors */
.v1 .page-loader { background:#0f0f0f; }
.v1 .loader-logo-text { color:#fff; }
.v2 .page-loader { background:#1a1f16; }
.v2 .loader-logo-text { color:#fff; }
.v3 .page-loader { background:#ffffff; }
.v3 .loader-logo-text { color:#1a1a2e; }
.v3 .loader-progress-track { background:rgba(0,0,0,.08); }
