
@layer utilities {
  /* vertical rhythm */
  .u-mt-1        { margin-top: 1rem; }
  .u-mt-half     { margin-top: .5rem; }
  .u-mt-s3       { margin-top: var(--space-3); }
  .u-mt-s4       { margin-top: var(--space-4); }
  .u-mt-s6       { margin-top: var(--space-6); }
  .u-mt-s8       { margin-top: var(--space-8); }
  .u-mb-0        { margin-bottom: 0; }
  .u-ml-6        { margin-left: 1.5rem; }
  .u-pt-0        { padding-top: 0; }
  .u-tight       { margin: 0 0 var(--space-3); }

  /* removes the rule + gap a section separator would otherwise draw */
  .u-flush-top   { border-top: none; padding-top: 0; }

  /* type */
  .u-semibold    { font-weight: 600; }
  .u-not-italic  { font-style: normal; }
  .u-dim         { opacity: .55; }

  /* box */
  .u-inline-block { display: inline-block; }
  .u-maxw-640    { max-width: 640px; }
  .u-center-block { text-align: center; padding: var(--space-10) 0; }
  /* opt out of the site-wide 68ch measure set in tokens.css */
  .u-full        { max-width: none; }

  /* reveal-animation stagger */
  .u-delay-1     { transition-delay: .1s; }
  .u-delay-15    { transition-delay: .15s; }
  .u-delay-2     { transition-delay: .2s; }
}

@layer utilities {
  /* The site's signature kicker. It lived in @layer page, where any container's
     descendant `p` rule (0,1,1) out-specified it (0,1,0) — that silently broke it
     under .see-it, .opensource and .triad-plinth, three times, found one at a time.
     In the utilities layer, layer order decides and specificity cannot reach it. */
  .section-label {
    font-family: var(--font-mono);
    font-size: var(--text-meta);
    font-weight: 500;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--accent-link);
    max-width: none;
    /* moved here from the eight page-sheet .section-label blocks before they
       were deleted — this rule never set it, and it is the only thing spacing
       every section label on all 74 pages. */
    margin-bottom: var(--space-4);
  }
}

@layer utilities {
  /* keeps a phrase on one line; the fluid h1 clamp still governs its size */
  .u-nowrap { white-space: nowrap; }
}
