/* ===================== LOADER ===================== */
#loader {
  position: fixed; inset: 0; background: var(--dark); z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  animation: fadeOut 0.5s 2.5s forwards;
}
.loader-content {
  display: flex; flex-direction: column; align-items: center; gap: 16px;
}
.loader-logo {
  width: 80px; animation: pulse 0.8s ease-in-out infinite alternate;
}
.loader-text {
  font-family: 'Oswald', sans-serif;
  font-size: 28px; font-weight: 700;
  letter-spacing: 3px; text-transform: uppercase;
  color: #fff;
  overflow: hidden;
  border-right: 3px solid var(--red);
  white-space: nowrap;
  width: 0;
  animation: typing 1.5s steps(16) 0.3s forwards, blink 0.6s step-end infinite;
}
.loader-bar {
  width: 180px; height: 3px;
  background: var(--dark3); border-radius: 2px;
  overflow: hidden;
}
.loader-bar-inner {
  width: 0; height: 100%;
  background: var(--red);
  border-radius: 2px;
  animation: loadBar 2s ease-in-out forwards;
}
@keyframes typing {
  from { width: 0; }
  to { width: 18ch; }
}
@keyframes blink {
  50% { border-color: transparent; }
}
@keyframes loadBar {
  0% { width: 0; }
  50% { width: 60%; }
  100% { width: 100%; }
}
@keyframes pulse {
  from { opacity: 0.5; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1.05); }
}
@keyframes fadeOut { to { opacity: 0; visibility: hidden; } }
