.nm-technical-label,
.is-style-nm-technical-label {
	color: var(--wp--preset--color--deep-teal);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--technical-xs);
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.nm-technical-label--accent {
	color: var(--wp--preset--color--workshop-teal);
}

.nm-technical-label--brass {
	color: var(--wp--preset--color--soft-brass);
}

.nm-technical-label--inverse {
	color: var(--wp--preset--color--studio-white);
}

.nm-technical-label--muted {
	color: var(--wp--preset--color--muted-text);
}

.is-style-nm-lead {
	max-width: 64ch;
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.6;
}

.nm-prose,
.is-style-nm-prose {
	max-width: 760px;
	margin-right: auto;
	margin-left: auto;
}

.nm-section {
	padding-top: var(--nm-section-space);
	padding-bottom: var(--nm-section-space);
}

.nm-section-compact {
	padding-top: var(--nm-section-space-compact);
	padding-bottom: var(--nm-section-space-compact);
}

.nm-registration-mark {
	position: relative;
	width: 1rem;
	height: 1rem;
	color: var(--wp--preset--color--soft-brass);
}

.nm-registration-mark::before,
.nm-registration-mark::after {
	position: absolute;
	content: "";
	background: currentColor;
}

.nm-registration-mark::before {
	top: 50%;
	left: 0;
	width: 100%;
	height: 1px;
}

.nm-registration-mark::after {
	top: 0;
	left: 50%;
	width: 1px;
	height: 100%;
}

.nm-dimension-line {
	position: relative;
	min-height: 1px;
	border-top: 1px solid var(--wp--preset--color--soft-brass);
}

.nm-dimension-line::before,
.nm-dimension-line::after {
	position: absolute;
	top: -0.25rem;
	width: 1px;
	height: 0.5rem;
	content: "";
	background: var(--wp--preset--color--soft-brass);
}

.nm-dimension-line::before {
	left: 0;
}

.nm-dimension-line::after {
	right: 0;
}

.nm-measurement-tick {
	display: inline-block;
	width: 1px;
	height: 0.75rem;
	background: var(--wp--preset--color--soft-brass);
	vertical-align: middle;
}

.nm-technical-grid {
	background-image:
		linear-gradient(rgb(16 40 42 / 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgb(16 40 42 / 0.04) 1px, transparent 1px);
	background-size: 24px 24px;
}

.nm-loading {
	position: relative;
	pointer-events: none;
}

.nm-loading::after {
	display: inline-block;
	width: 0.75rem;
	height: 0.75rem;
	margin-left: var(--wp--preset--spacing--20);
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	content: "";
	vertical-align: -0.1em;
	animation: nm-spin 800ms linear infinite;
}

.screen-reader-text,
.nm-screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@keyframes nm-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.nm-loading::after {
		animation: none;
	}
}
