/* ============================================================
   BOLTON Signal — 07 UTILITIES (last layer; small, opt-in helpers)
   ============================================================ */
@layer utilities {
	.u-center { text-align: center; }
	.u-mono { font-family: var(--bx-font-mono); }
	.u-muted { color: var(--bx-contrast-midtone); }
	.u-dim { color: var(--bx-steel); }
	.u-gold { color: var(--bx-accent-strong); }
	.u-measure { max-width: 60ch; }
	.u-stack > * + * { margin-top: var(--bx-sp-40); }
	.u-flow > * + * { margin-top: var(--bx-sp-30); }
	.u-mt-0 { margin-top: 0; }
	.u-hidden { display: none !important; }
	.u-sr-only {
		position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
		overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
	}
	.u-no-scroll { overflow: hidden; }

	/* Scene fallback handling — until a motion module mounts, the static
	   fallback (poster/SVG) shows; when reduced-motion, it always shows. */
	[data-bx-scene] .scene-fallback { display: block; }
	[data-bx-scene].bx-scene-ready .scene-fallback { display: none; }
	@media (prefers-reduced-motion: reduce) {
		[data-bx-scene] .scene-fallback { display: block !important; }
		[data-bx-scene] canvas, [data-bx-scene] .scene-canvas { display: none !important; }
	}

	/* Print: drop motion/chrome, keep content legible. */
	@media print {
		.site-header, .site-footer, .footer-rfq, .nav-toggle, [data-bx-scene] canvas { display: none !important; }
		body { background: #fff; color: #000; }
	}
}
