/* tc-utilities.css — small, documented utilities. Each one earns its place. */

/* Screen-reader-only text that still receives focus when it is a control. */
.tc-visually-hidden {
  position: absolute !important; /* documented: must beat block layout rules */
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.tc-visually-hidden:focus-within { position: static !important; width: auto; height: auto; clip: auto; clip-path: none; }

/* Constrain a block of prose to the reading measure inside a wide container. */
.tc-u-reading { max-width: var(--tc-reading-width); }

/* Let a child escape the reading measure and use the full content width. */
.tc-wide { max-width: 100% !important; /* documented: overrides .tc-article__body child cap */ }

/* Vertical rhythm for arbitrary flows. */
.tc-u-flow > * + * { margin-top: var(--tc-space-6); }
.tc-u-flow--tight > * + * { margin-top: var(--tc-space-3); }

/* Kill the bottom margin of a final child. */
.tc-u-flush > :last-child { margin-bottom: 0; }

/* Monospace metadata run. */
.tc-u-mono { font-family: var(--tc-mono); font-size: var(--tc-fs-micro); letter-spacing: .04em; color: var(--tc-muted); }

/* Muted secondary text. */
.tc-u-muted { color: var(--tc-muted); }

/* Horizontal scroll container for wide tables/code on narrow screens. */
.tc-u-scroll-x { overflow-x: auto; }

/* Hide from all users (state toggles). */
[hidden] { display: none !important; }
