/* Shared full-page reveal loader. */
.feed-open-reveal {
  position: fixed;
  inset: 0;
  z-index: var(--z-spectacle);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-app);
  color: var(--text-primary);
}

.feed-open-reveal__loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}

.feed-open-reveal__ring {
  position: relative;
  width: calc(var(--size-16) + var(--space-3));
  height: calc(var(--size-16) + var(--space-3));
}

.feed-open-reveal__ring::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: calc(var(--space-1) - var(--space-1) / 4) solid color-mix(in srgb, var(--text-primary) 12%, transparent);
  border-top-color: var(--accent-primary);
  animation: boho-open-reveal-spin calc(var(--duration-slow) * 2 + var(--duration-normal)) linear infinite;
}

.feed-open-reveal__glyph {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--size-10);
  height: var(--size-10);
  border-radius: var(--radius-md);
  transform: translate(-50%, -50%);
}

.feed-open-reveal__label {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--text-muted);
}

.feed-open-reveal__title {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
  color: var(--text-primary);
  max-width: calc(var(--size-32) * 2 + var(--space-6));
  text-align: center;
  line-height: var(--leading-tight);
}

@keyframes boho-open-reveal-spin {
  to {
    transform: rotate(360deg);
  }
}
