#project-loading-overlay {
  position:fixed; inset:0; z-index:250000; display:grid; place-items:center;
  background:rgba(247,242,255,.65); backdrop-filter:blur(5px); cursor:progress;
}
#project-loading-overlay[hidden] { display:none !important; }
#project-loading-overlay .project-loading-card {
  position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center;
  width:252px; max-width:calc(100vw - 40px); padding:26px 28px 24px;
  background:linear-gradient(145deg,#fff 35%,#fbf6ff); color:#5410bd;
  border:1px solid rgba(255,255,255,.95); border-radius:24px;
  box-shadow:0 20px 60px rgba(84,16,189,.16),0 0 0 1px rgba(196,181,253,.3);
  font:600 14px 'Poppins',sans-serif;
}
#project-loading-overlay .project-loading-card::before { content:''; position:absolute; top:0; left:28px; right:28px; height:3px; border-radius:0 0 4px 4px; background:linear-gradient(90deg,#6610f2,#e517d4,#6610f2); }
#project-loading-overlay .project-loading-image { width:112px; height:112px; margin-bottom:14px; filter:drop-shadow(0 7px 10px rgba(102,16,242,.12)); }
#project-loading-overlay .project-loading-title { font-size:17px; font-weight:600; letter-spacing:.2px; color:#5410bd; }
#project-loading-overlay .project-loading-subtitle { margin-top:5px; font-size:12px; font-weight:400; color:#827292; }
#project-loading-overlay .project-loading-dots { display:flex; gap:6px; margin-top:17px; height:9px; align-items:center; }
#project-loading-overlay .project-loading-dots span { width:6px; height:6px; border-radius:50%; background:#6610f2; animation:project-loader-dot 1.2s ease-in-out infinite; }
#project-loading-overlay .project-loading-dots span:nth-child(2) { background:#a620e8; animation-delay:.15s; }
#project-loading-overlay .project-loading-dots span:nth-child(3) { background:#e517d4; animation-delay:.3s; }
@keyframes project-loader-dot { 0%,70%,100% { transform:translateY(0); opacity:.45; } 35% { transform:translateY(-4px); opacity:1; } }
@media (prefers-reduced-motion:reduce) { #project-loading-overlay .project-loading-dots span { animation:none; opacity:1; } }
@media print { #project-loading-overlay { display:none !important; } }
