@layer utilities {
  /* Text utilities */
  .txt-small { font-size: var(--text-small); }
  .txt-large { font-size: var(--text-large); }
  .txt-xl { font-size: var(--text-xl); }
  .txt-2xl { font-size: var(--text-2xl); }

  .txt-align-center { text-align: center; }
  .txt-align-start { text-align: start; }
  .txt-align-end { text-align: end; }

  .txt-light { color: var(--color-ink-light); }
  .txt-primary { color: var(--color-primary); }
  .txt-success { color: var(--color-success); }
  .txt-error { color: var(--color-error); }

  .txt-nowrap { white-space: nowrap; }
  .txt-break { word-break: break-word; }

  /* Font weight */
  .font-normal { font-weight: 400; }
  .font-semibold { font-weight: 600; }
  .font-bold { font-weight: 700; }

  /* Layout utilities */
  .flex { display: flex; }
  .flex-column { flex-direction: column; }
  .flex-wrap { flex-wrap: wrap; }
  .gap { gap: var(--inline-space); }
  .gap-half { gap: var(--inline-space-half); }

  .justify-center { justify-content: center; }
  .justify-between { justify-content: space-between; }
  .align-center { align-items: center; }

  /* Spacing utilities */
  .margin-block { margin-block: var(--block-space); }
  .margin-block-start { margin-block-start: var(--block-space); }
  .margin-block-end { margin-block-end: var(--block-space); }

  .margin-inline { margin-inline: var(--inline-space); }
  .margin-inline-start { margin-inline-start: var(--inline-space); }
  .margin-inline-end { margin-inline-end: var(--inline-space); }

  .pad { padding: var(--block-space) var(--inline-space); }
  .pad-block { padding-block: var(--block-space); }
  .pad-inline { padding-inline: var(--inline-space); }

  /* Display utilities */
  .block { display: block; }
  .inline { display: inline; }
  .inline-block { display: inline-block; }
  .hide { display: none; }

  /* Visibility */
  .for-screen-reader {
    block-size: 1px;
    clip-path: inset(50%);
    inline-size: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
  }
}
