/* www/utilities.css — utilities layer.
 *
 * CUBE-CSS "Utility" axis (Andy Bell): single-responsibility helper
 * classes. Decision 6 guardrail 3 caps this surface at ~6 utilities;
 * crossing 8 is a signal the block API is too narrow. The `.u-*`
 * prefix marks every utility — resist adding utilities that belong
 * inside a block (e.g. `.u-text-center` for one centred caption is a
 * block exception, not a utility).
 *
 * Sister file to brand.css (tokens), layouts.css (composition),
 * components.css (blocks), and pricing.css (exceptions). The
 * `utilities` cascade layer is declared in brand.css:
 *
 *   @layer tokens, composition, utilities, blocks, exceptions;
 *
 * At F5 we ship exactly ONE utility: `.u-visually-hidden`, the
 * canonical screen-reader-only helper. Adding more requires a named
 * use-case in PR review (per Decision 6 guardrail 3).
 */

@layer utilities {
    /* Visually hides an element while keeping it in the a11y tree —
       the canonical screen-reader-only utility. Sourced from
       https://www.tpgi.com/the-anatomy-of-visually-hidden/ (the WCAG
       reference shape) without modification. */
    .u-visually-hidden {
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        height: 1px;
        overflow: hidden;
        position: absolute;
        white-space: nowrap;
        width: 1px;
    }
}
