.flex { display: flex; }
.grid { display: grid; }
.wrap { flex-wrap: wrap; }
.col { flex-direction: column; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-between { justify-content: space-between; }
.gap-xs { gap: 0.5rem; }
.gap-s { gap: 1rem; }
.gap-m { gap: 2rem; }
.mt-xs { margin-top: 0.5rem; }
.mt-s { margin-top: 1rem; }
.mt-m { margin-top: 2rem; }
.mb-xs { margin-bottom: 0.5rem; }
.mb-s { margin-bottom: 1rem; }
.mb-m { margin-bottom: 2rem; }
.text-center { text-align: center; }
.text-soft { color: var(--c-text-2); }
.text-dim { color: var(--c-text-3); }
.text-gold { color: var(--c-gold); }
.text-ink { color: var(--c-ink); }
.fw-600 { font-weight: 600; }
.upper { text-transform: uppercase; }
.tracked { letter-spacing: 0.12em; }
.small { font-size: 0.875rem; }
.serif { font-family: 'Cormorant Garamond', Georgia, serif; }
.measure { max-width: 62ch; }
.w-full { width: 100%; }
.nowrap { white-space: nowrap; }
.list-plain { list-style: none; padding: 0; }
.no-underline { text-decoration: none; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.is-hidden { display: none; }

@media (max-width: 1024px) {
  .hide-tablet { display: none; }
}

@media (max-width: 767px) {
  .hide-phone { display: none; }
  .stack-phone { flex-direction: column; align-items: stretch; }
  .w-full-phone { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
.min-w-0 { min-width: 0; }
.no-shrink { flex-shrink: 0; }
@media print {
  .no-print { display: none; }
}
