.loader {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(3,3,3,0.96);
  display: grid; place-items: center;
  transition: opacity 0.22s ease, visibility 0.22s ease;
}
.loader__inner {
  display: grid;
  justify-items: center;
  gap: 1rem;
}
.loader__mark {
  font-family: var(--f-display);
  font-size: clamp(2.5rem, 8vw, 4.5rem);
  line-height: 1;
  letter-spacing: 0.08em;
  color: var(--accent);
}
.loader__spinner {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.14);
  border-top-color: var(--accent);
  animation: loader-spin 0.8s linear infinite;
}
.loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
@keyframes loader-spin {
  to { transform: rotate(360deg); }
}
