/* Loading Overlay */
.loading{
  position:fixed; inset:0; z-index:9999; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; backdrop-filter:saturate(120%) blur(2px); background:rgba(0,0,0,.55); color:#ffffff;
}
.loading.hidden{ display:none; }

.loader{
  width:64px; height:64px; border-radius:50%;
  border:4px solid rgba(255,255,255,.25);
  border-top-color: var(--title, #E67223);
  animation: spin .9s linear infinite;
}

.loading__text{ font-weight:700; letter-spacing:.2px; }

.loading__bar{
  width:220px; height:6px; border-radius:999px; overflow:hidden;
  border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.12);
}
.loading__bar span{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--brand,#0ea5b7), var(--title,#E67223));
  width:0%; animation: loadbar 3.6s ease-in-out forwards;
}

@keyframes spin{ to{ transform:rotate(360deg); } }
@keyframes loadbar{ 0%{ width:0% } 100%{ width:100% } }
