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

.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-xs { gap: var(--space-xs); }
.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }

.w-full { width: 100%; }
.d-block { display: block; }
.mb-8 { margin-bottom: var(--space-xs); }
.mb-12 { margin-bottom: 12px; }
.mb-16 { margin-bottom: var(--space-sm); }
.mb-20 { margin-bottom: 20px; }
.mb-24 { margin-bottom: var(--space-md); }
.mt-auto { margin-top: auto; }
.bt-rule { border-top: 1px solid var(--rule); }
.bb-rule { border-bottom: 1px solid var(--rule); }
.bg-white { background: var(--white); }
.bg-paper-2 { background: var(--paper-2); }
.bg-ink { background: var(--ink); }
.text-white { color: var(--white); }

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

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}
