#loader {
  position: fixed; inset: 0; background: var(--bg); z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 48px; transition: background 0.5s;
}
.ld-name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(40px, 10vw, 140px);
  letter-spacing: 0.08em; line-height: 1; color: var(--text);
  display: flex; flex-wrap: wrap; justify-content: center; overflow: hidden;
}
.ld-name span {
  display: inline-block; transform: translateY(115%);
  transition: transform 0.75s cubic-bezier(0.16,1,0.3,1);
}
.ld-name span.space { width: 2vw; }
.ld-name span.up { transform: translateY(0); }

.ld-bottom { display: flex; flex-direction: column; gap: 12px; width: min(400px, 80vw); }
.ld-row { display: flex; justify-content: space-between; align-items: center; }
.ld-status { font-family: 'Space Mono', monospace; font-size: 11px; letter-spacing: 0.08em; color: var(--muted); height: 16px; overflow: hidden; }
.ld-status-inner { transition: transform 0.5s cubic-bezier(0.16,1,0.3,1); }
.ld-status-inner div { height: 16px; line-height: 16px; }
.ld-pct { font-family: 'Bebas Neue', sans-serif; font-size: 18px; letter-spacing: 0.08em; color: var(--muted); transition: color 0.5s; }
.ld-track { height: 1px; background: var(--line2); position: relative; }
.ld-fill { position: absolute; top: 0; left: 0; height: 100%; width: 0; background: var(--accent); transition: width 0.06s linear, background 0.5s; }
#loader.exit { animation: ldOut 0.65s cubic-bezier(0.76,0,0.24,1) forwards; }
@keyframes ldOut { to { opacity: 0; pointer-events: none; } }
