.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.text-center {
  text-align: center;
}

.mt-4 { margin-top: var(--space-sm); }
.mt-6 { margin-top: var(--space-md); }
.mt-8 { margin-top: var(--space-lg); }
.mb-4 { margin-bottom: var(--space-sm); }
.mb-6 { margin-bottom: var(--space-md); }

[data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--dur-long) var(--ease-soft), transform var(--dur-long) var(--ease-soft);
  will-change: opacity, transform;
}

[data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

[data-reveal][data-reveal-delay='1'].is-revealed { transition-delay: 60ms; }
[data-reveal][data-reveal-delay='2'].is-revealed { transition-delay: 120ms; }
[data-reveal][data-reveal-delay='3'].is-revealed { transition-delay: 180ms; }
[data-reveal][data-reveal-delay='4'].is-revealed { transition-delay: 240ms; }
[data-reveal][data-reveal-delay='5'].is-revealed { transition-delay: 300ms; }
