/* Breadboard lab — shared geometry via --bb-* / --row-*; modules are the stars */

.cvt-main--kit {
	padding: 0;
}

.cvt-kit--hero {
	padding: 0 0 2rem;
	background: #0a0a0a;
	color: #eee;
}

.cvt-kit__hero {
	width: 100%;
	height: calc(100vh - 4.75rem);
	height: calc(100dvh - 4.75rem);
	min-height: calc(100vh - 4.75rem);
	min-height: calc(100dvh - 4.75rem);
	display: flex;
	align-items: stretch;
	justify-content: stretch;
	padding: 0;
	margin: 0;
	background: #ebe8e0;
	box-sizing: border-box;
}

.cvt-kit__board-wrap {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.cvt-kit__stage {
	--bb-w: 1320;
	--bb-h: 760;
	--bb-col0: 70;
	--bb-pitch: 17;
	--bb-cols: 70;
	--row-tp: 50;
	--row-tm: 74;
	--row-a: 124;
	--row-b: 154;
	--row-c: 184;
	--row-d: 214;
	--row-e: 244;
	--row-f: 274;
	--row-g: 452;
	--row-h: 482;
	--row-i: 512;
	--row-j: 542;
	--row-k: 572;
	--row-l: 602;
	--row-bp: 686;
	--row-bm: 710;
	--kit-chassis: #1a1c1e;
	--kit-chassis-top: #2e3236;
	--kit-cyan: #5ec8f0;
	--kit-amber: #e8a84a;
	--kit-green: #3dcc7a;

	position: relative;
	width: 100%;
	height: 100%;
	line-height: 0;
	background:
		radial-gradient(ellipse at 20% 15%, rgba(255, 255, 255, 0.35), transparent 45%),
		radial-gradient(ellipse at 80% 70%, rgba(0, 0, 0, 0.04), transparent 40%),
		#ebe8e0;
	border: 0;
	border-radius: 0;
	box-shadow: inset 0 0 80px rgba(0, 0, 0, 0.06);
	overflow: hidden;
}

.cvt-kit__board {
	display: block;
	width: 100%;
	height: 100%;
	vertical-align: top;
}

.cvt-kit__wires,
.cvt-kit__parts {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	overflow: visible;
}

.cvt-kit__wires {
	z-index: 4;
	opacity: 0.82;
}

.cvt-kit__parts {
	z-index: 5;
}

.cvt-kit__board-logo {
	pointer-events: none;
	opacity: 0.42;
	transition: opacity 0.35s var(--cvt-ease);
}

.cvt-kit__board-logo.is-powered {
	opacity: 0.92;
}

.cvt-kit__board-logo.is-powered .cvt-kit__logo-disc {
	filter: url(#cvt-hero-logo-glow-parts) drop-shadow(0 0 12px rgba(80, 190, 255, 0.75)) drop-shadow(0 0 22px rgba(43, 173, 224, 0.4));
}

.cvt-kit__logo-cvt {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 20px;
	font-weight: 700;
	fill: #fff;
	stroke: #0a4a7a;
	stroke-width: 1px;
	letter-spacing: 0.06em;
	pointer-events: none;
}

.cvt-kit__logo-systems {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 10px;
	font-weight: 700;
	fill: #fff;
	stroke: #0a4a7a;
	stroke-width: 0.6px;
	letter-spacing: 0.04em;
	pointer-events: none;
}

/* Quieter jumpers — character, not competition */
.cvt-kit__wire--outline {
	fill: none;
	stroke-width: 9;
	stroke-linecap: round;
	stroke-linejoin: round;
	pointer-events: none;
	opacity: 0.35;
}

.cvt-kit__wire--outline.is-dangling {
	stroke-width: 10;
}

.cvt-kit__wire--placed {
	fill: none;
	stroke-width: 5.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	pointer-events: stroke;
	cursor: pointer;
	opacity: 0.88;
}

.cvt-kit__wire--placed:hover {
	stroke-width: 7;
	opacity: 1;
}

.cvt-kit__wire--dangling {
	fill: none;
	stroke-width: 6;
	stroke-linecap: round;
	stroke-linejoin: round;
	pointer-events: none;
	opacity: 0.9;
}

.cvt-kit__station {
	fill: #f4f2ee;
	stroke: #333;
	stroke-width: 1.2;
	pointer-events: none;
}

.cvt-kit__station-core {
	pointer-events: none;
}

.cvt-kit__tip {
	pointer-events: none;
	stroke: #fff;
	stroke-width: 1.5;
}

/* ---- Hole grid ---- */

.cvt-kit__hole {
	--c: 1;
	position: absolute;
	z-index: 7;
	left: calc((var(--bb-col0) + (var(--c) - 1) * var(--bb-pitch)) / var(--bb-w) * 100%);
	width: calc(var(--bb-pitch) / var(--bb-w) * 100% * 0.68);
	height: calc(var(--bb-pitch) / var(--bb-h) * 100% * 0.68);
	aspect-ratio: 1;
	padding: 0;
	margin: 0;
	transform: translate(-50%, -50%);
	font-family: var(--cvt-label);
	font-size: 0.35rem;
	font-weight: 800;
	color: transparent;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 50%;
	cursor: crosshair;
	line-height: 1;
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.12);
}

.cvt-kit__hole[data-col="tp"] { top: calc(var(--row-tp) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="tm"] { top: calc(var(--row-tm) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="a"]  { top: calc(var(--row-a) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="b"]  { top: calc(var(--row-b) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="c"]  { top: calc(var(--row-c) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="d"]  { top: calc(var(--row-d) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="e"]  { top: calc(var(--row-e) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="f"]  { top: calc(var(--row-f) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="g"]  { top: calc(var(--row-g) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="h"]  { top: calc(var(--row-h) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="i"]  { top: calc(var(--row-i) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="j"]  { top: calc(var(--row-j) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="k"]  { top: calc(var(--row-k) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="l"]  { top: calc(var(--row-l) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="bp"] { top: calc(var(--row-bp) / var(--bb-h) * 100%); }
.cvt-kit__hole[data-col="bm"] { top: calc(var(--row-bm) / var(--bb-h) * 100%); }

.cvt-kit__hole:hover,
.cvt-kit__hole:focus-visible {
	background: rgba(255, 255, 255, 0.7);
	border-color: var(--cvt-blue);
	outline: none;
	z-index: 8;
	transform: translate(-50%, -50%) scale(1.45);
}

.cvt-kit__hole.is-pending {
	background: #2bade0;
	border-color: #0a3550;
	color: #fff;
	z-index: 9;
}

.cvt-kit__hole.is-plug-target {
	background: #9b59b6 !important;
	border: 2px solid #fff !important;
	color: #fff !important;
	box-shadow: 0 0 0 3px rgba(155, 89, 182, 0.5);
	z-index: 10;
}

.cvt-kit__hole--sw,
.cvt-kit__hole--logo,
.cvt-kit__hole--info {
	z-index: 11;
}

.cvt-kit__hole--logo {
	width: 1rem;
	height: 1rem;
	background: radial-gradient(circle at 35% 30%, #f7f3e9, #d0cbc1 62%, #8c857b 100%);
	border: 2px solid #1b1b1b;
	box-shadow: 0 0 0 4px rgba(255,255,255,0.72);
	color: transparent;
}

.cvt-kit__hole--logo::after {
	content: attr(data-label);
	position: absolute;
	left: 50%;
	top: -1.55rem;
	transform: translateX(-50%);
	padding: 0.18rem 0.4rem;
	border-radius: 999px;
	font-size: 0.46rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	white-space: nowrap;
	color: #fff;
	background: rgba(35, 46, 56, 0.92);
	border: 1px solid rgba(255,255,255,0.22);
	box-shadow: 0 3px 10px rgba(0,0,0,0.15);
	pointer-events: none;
}

.cvt-kit__hole--logo::before {
	content: '';
	position: absolute;
	left: 50%;
	top: -0.42rem;
	width: 2px;
	height: 0.4rem;
	background: rgba(35, 46, 56, 0.92);
	transform: translateX(-50%);
	pointer-events: none;
}

.cvt-kit__hole--logo.is-plug-target,
.cvt-kit__hole--logo:hover,
.cvt-kit__hole--logo:focus-visible {
	transform: translate(-50%, -50%) scale(1.12);
}

.cvt-kit__hole--info,
.cvt-kit__hole--sw {
	width: 0.84rem;
	height: 0.84rem;
	background: radial-gradient(circle at 35% 30%, #f7f3e9, #d0cbc1 62%, #8c857b 100%);
	border: 2px solid #1b1b1b;
	box-shadow: 0 0 0 3px rgba(255,255,255,0.55);
	color: transparent;
}

.cvt-kit__hole--info:hover,
.cvt-kit__hole--info:focus-visible,
.cvt-kit__hole--sw:hover,
.cvt-kit__hole--sw:focus-visible {
	transform: translate(-50%, -50%) scale(1.18);
}

.cvt-kit__hole--socket::after {
	top: -1.4rem;
}

/* ---- Modules (HMI chassis kit) ---- */

.cvt-kit__ic {
	position: absolute;
	z-index: 8;
	transform: translate(0, -50%);
	box-sizing: border-box;
	text-decoration: none;
	color: #e8f0f4;
	line-height: 1.2;
	pointer-events: none;
	opacity: 0.62;
	filter: saturate(0.45);
	transition: opacity 0.3s var(--cvt-ease), filter 0.3s var(--cvt-ease);
}

.cvt-kit__ic.is-powered {
	opacity: 1;
	filter: saturate(1);
}

/* Circuit dims modules but never blocks CTAs / navigation */
.cvt-kit__ic .cvt-kit__ic-btn,
.cvt-kit__ic .cvt-kit__ic-actions a,
.cvt-kit__ic .cvt-kit__ic-body,
.cvt-kit__ic .cvt-kit__ic-body * {
	pointer-events: auto;
}

.cvt-kit__ic-pin {
	position: absolute;
	z-index: 3;
	top: 50%;
	width: 0.5rem;
	height: 1.05rem;
	margin: 0;
	background: linear-gradient(90deg, #b0b0b0 0%, #f2f2f2 45%, #7a7a7a 100%);
	border: 1px solid #444;
	border-radius: 1px;
	box-shadow: 0 2px 0 #333, inset 0 0 2px rgba(255, 255, 255, 0.55);
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.cvt-kit__ic-pin--a { left: 0; }
.cvt-kit__ic-pin--b { left: 100%; }

.cvt-kit__ic--quad {
	transform: none;
}

.cvt-kit__ic--quad .cvt-kit__ic-pin {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #f5f5f5, #9a9a9a 55%, #555 100%);
}

.cvt-kit__ic--quad .cvt-kit__ic-pin--tl { left: 0; top: 0; }
.cvt-kit__ic--quad .cvt-kit__ic-pin--tr { left: 100%; top: 0; }
.cvt-kit__ic--quad .cvt-kit__ic-pin--bl { left: 0; top: 100%; }
.cvt-kit__ic--quad .cvt-kit__ic-pin--br { left: 100%; top: 100%; }

.cvt-kit__ic--quad .cvt-kit__ic-body {
	position: absolute;
	inset: 10% 6%;
	margin: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
}

.cvt-kit__ic-body {
	position: relative;
	z-index: 2;
	display: block;
	margin: 0 0.65rem;
	padding: 0.5rem 0.65rem;
	background-color: var(--kit-chassis);
	background-image: linear-gradient(165deg, var(--kit-chassis-top) 0%, var(--kit-chassis) 42%, #0c0d0e 100%);
	border: 1px solid #000;
	border-radius: 4px;
	box-shadow:
		0 4px 0 #050505,
		0 8px 18px rgba(0, 0, 0, 0.28),
		inset 0 1px 0 rgba(255, 255, 255, 0.1);
	overflow: hidden;
	pointer-events: auto;
}

.cvt-kit__ic-notch {
	position: absolute;
	left: 0;
	top: 50%;
	width: 0.4rem;
	height: 0.65rem;
	transform: translate(-40%, -50%);
	background: #ebe8e0;
	border-radius: 0 0.3rem 0.3rem 0;
	box-shadow: inset -1px 0 0 #999;
}

.cvt-kit__ic-leds {
	display: flex;
	gap: 0.28rem;
	margin-bottom: 0.35rem;
}

.cvt-kit__ic-leds span {
	width: 0.38rem;
	height: 0.38rem;
	border-radius: 50%;
	background: #2a2a2a;
	border: 1px solid #111;
	box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.15);
}

.cvt-kit__ic.is-powered .cvt-kit__ic-leds span {
	background: var(--kit-cyan);
	box-shadow: 0 0 6px rgba(94, 200, 240, 0.85);
}

.cvt-kit__ic.is-powered .cvt-kit__ic-leds--amber span {
	background: var(--kit-amber);
	box-shadow: 0 0 6px rgba(232, 168, 74, 0.85);
}

.cvt-kit__ic.is-powered .cvt-kit__ic-leds--green span {
	background: var(--kit-green);
	box-shadow: 0 0 6px rgba(61, 204, 122, 0.85);
}

.cvt-kit__ic.is-powered .cvt-kit__ic-body {
	border-color: #1a6fa8;
	box-shadow:
		0 4px 0 #050505,
		0 0 14px rgba(60, 170, 240, 0.4),
		0 0 28px rgba(40, 140, 220, 0.18),
		inset 0 0 16px rgba(80, 180, 255, 0.1);
}

.cvt-kit__ic-kicker {
	margin: 0 0 0.2rem;
	display: block;
	font-family: var(--cvt-label), sans-serif;
	font-size: clamp(0.5rem, 0.95vw, 0.68rem);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kit-cyan);
}

.cvt-kit__ic-headline {
	margin: 0 0 0.35rem;
	font-family: var(--cvt-display, Georgia, serif);
	font-size: clamp(1.05rem, 2.4vw, 1.85rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: #f7fbff;
}

.cvt-kit__ic-title {
	display: block;
	font-family: var(--cvt-display, Georgia, serif);
	font-size: clamp(0.95rem, 1.9vw, 1.3rem);
	font-weight: 700;
	color: #f4f8fb;
}

.cvt-kit__ic-meta {
	display: block;
	margin-top: 0.2rem;
	font-family: var(--cvt-label), sans-serif;
	font-size: clamp(0.45rem, 0.85vw, 0.58rem);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(200, 220, 235, 0.65);
}

.cvt-kit__ic-copy {
	margin: 0;
	font-family: var(--cvt-body, system-ui, sans-serif);
	font-size: clamp(0.65rem, 1.15vw, 0.85rem);
	line-height: 1.35;
	color: #c5d4de;
}

.cvt-kit__ic-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.5rem;
}

.cvt-kit__ic-btn {
	display: inline-block;
	padding: 0.38rem 0.65rem;
	font-family: var(--cvt-label), sans-serif;
	font-size: clamp(0.5rem, 0.9vw, 0.65rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	color: #0a2a40;
	background: var(--kit-cyan);
	border: 1px solid var(--kit-cyan);
	border-radius: 2px;
	transition: background 0.15s var(--cvt-ease), color 0.15s var(--cvt-ease);
}

.cvt-kit__ic-btn:hover,
.cvt-kit__ic-btn:focus-visible {
	background: #fff;
	border-color: #fff;
	outline: none;
}

.cvt-kit__ic-btn--ghost {
	color: #dce8f0;
	background: transparent;
	border-color: rgba(180, 210, 230, 0.45);
}

.cvt-kit__ic-btn--ghost:hover,
.cvt-kit__ic-btn--ghost:focus-visible {
	color: #0a2a40;
	background: rgba(255, 255, 255, 0.9);
	border-color: #fff;
}

/* Hero HMI */
.cvt-kit__ic--hero {
	z-index: 9;
}

.cvt-kit__ic--hero .cvt-kit__ic-body {
	padding: 0.55rem 0.85rem 0.6rem 1rem;
	border-radius: 5px;
	background-image:
		linear-gradient(135deg, rgba(43, 173, 224, 0.12), transparent 40%),
		linear-gradient(165deg, #2a3036 0%, #14181c 50%, #0a0c0e 100%);
}

.cvt-kit__ic--hero.is-powered .cvt-kit__ic-body {
	border-color: var(--kit-cyan);
}

/* EICR instrument */
.cvt-kit__ic--eicr .cvt-kit__ic-kicker {
	color: var(--kit-amber);
}

.cvt-kit__ic--eicr.is-powered .cvt-kit__ic-body {
	border-color: #c4882a;
	box-shadow:
		0 4px 0 #050505,
		0 0 12px rgba(232, 168, 74, 0.35),
		inset 0 0 12px rgba(232, 168, 74, 0.08);
}

/* EV module */
.cvt-kit__ic--ev .cvt-kit__ic-kicker {
	color: var(--kit-green);
}

.cvt-kit__ic--ev.is-powered .cvt-kit__ic-body {
	border-color: #2a9e5c;
	box-shadow:
		0 4px 0 #050505,
		0 0 12px rgba(61, 204, 122, 0.35),
		inset 0 0 12px rgba(61, 204, 122, 0.08);
}

.cvt-kit__ic--link:hover .cvt-kit__ic-body,
.cvt-kit__ic--link:focus-visible .cvt-kit__ic-body {
	border-color: #9fd8ff;
}

.cvt-kit__ic--cta .cvt-kit__ic-body {
	padding: 0.55rem 0.75rem;
}

.cvt-kit__ic--tag .cvt-kit__ic-body,
.cvt-kit__ic--cta .cvt-kit__ic-body,
.cvt-kit__ic--link .cvt-kit__ic-body {
	padding: 0.5rem 0.75rem;
}

.cvt-kit__ic--hero .cvt-kit__ic-body {
	padding: 0.55rem 0.85rem 0.6rem 1rem;
}

/* Switch — always interactive */
.cvt-kit__ic--switch {
	z-index: 9;
	cursor: pointer;
	opacity: 1;
	filter: none;
}

.cvt-kit__switch-input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: -1px;
	clip: rect(0 0 0 0);
	overflow: hidden;
}

.cvt-kit__ic-body--switch {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.28rem;
}

.cvt-kit__lever {
	display: block;
	width: 100%;
	height: 100%;
}

.cvt-kit__lever-base {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.18rem;
	width: 100%;
	height: 100%;
	padding: 0.2rem 0.32rem;
	box-sizing: border-box;
	background: linear-gradient(180deg, #3f4348 0%, #1a1c1e 100%);
	border: 1px solid #000;
	border-radius: 0.3rem;
	box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.5);
}

.cvt-kit__lever-slot {
	position: relative;
	width: 72%;
	height: 48%;
	min-height: 1.7rem;
	background: linear-gradient(180deg, #0a0a0a 0%, #1e1e1e 100%);
	border: 1px solid #444;
	border-radius: 999px;
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.75);
}

.cvt-kit__lever-arm {
	position: absolute;
	left: 50%;
	bottom: 12%;
	width: 0.56rem;
	height: 78%;
	margin-left: -0.28rem;
	transform-origin: 50% 100%;
	transform: rotate(-42deg);
	background: linear-gradient(90deg, #8a8a8a 0%, #ececec 40%, #6a6a6a 100%);
	border: 1px solid #222;
	border-radius: 0.25rem 0.25rem 0.12rem 0.12rem;
	box-shadow: 2px 3px 4px rgba(0, 0, 0, 0.5);
	transition: transform 0.18s var(--cvt-ease), background 0.18s var(--cvt-ease);
}

.cvt-kit__lever-knob {
	position: absolute;
	left: 50%;
	top: -0.42rem;
	width: 1.05rem;
	height: 1.05rem;
	margin-left: -0.525rem;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #fff, #b0b0b0 50%, #555 100%);
	border: 2px solid #222;
	box-shadow: 0 3px 5px rgba(0, 0, 0, 0.45);
}

.cvt-kit__lever-labels {
	display: flex;
	justify-content: space-between;
	width: 72%;
	font-family: var(--cvt-label), sans-serif;
	font-size: clamp(0.5rem, 0.95vw, 0.65rem);
	font-weight: 800;
	letter-spacing: 0.1em;
	color: #777;
	user-select: none;
}

.cvt-kit__ic--switch.is-on .cvt-kit__lever-arm,
.cvt-kit__ic--switch:has(.cvt-kit__switch-input:checked) .cvt-kit__lever-arm {
	transform: rotate(42deg);
	background: linear-gradient(90deg, #1e8449 0%, #6fdf9a 40%, #145a32 100%);
}

.cvt-kit__ic--switch.is-on .cvt-kit__lever-labels span:last-child,
.cvt-kit__ic--switch:has(.cvt-kit__switch-input:checked) .cvt-kit__lever-labels span:last-child {
	color: #2ecc71;
}

.cvt-kit__ic--switch:not(.is-on) .cvt-kit__lever-labels span:first-child {
	color: #e74c3c;
}

.cvt-kit__ic--switch.is-on .cvt-kit__ic-body,
.cvt-kit__ic--switch:has(.cvt-kit__switch-input:checked) .cvt-kit__ic-body {
	border-color: #1e8449;
	box-shadow:
		0 3px 0 #050505,
		0 0 12px rgba(39, 174, 96, 0.4),
		inset 0 0 10px rgba(39, 174, 96, 0.1);
}

.cvt-kit__ic--switch:focus-within {
	outline: 2px solid var(--cvt-blue);
	outline-offset: 3px;
}

.cvt-kit.is-fault .cvt-kit__stage {
	box-shadow: 0 14px 40px rgba(160, 40, 40, 0.3);
}

/* ---- Copy below the board ---- */

.cvt-kit__below {
	max-width: 72rem;
	margin: 0;
	padding: 2rem 2rem 3rem;
}

.cvt-kit__chrome {
	margin-bottom: 2rem;
}

.cvt-kit__eyebrow {
	margin: 0 0 0.35rem;
	font-family: var(--cvt-label);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cvt-blue);
}

.cvt-kit__title {
	margin: 0 0 0.5rem;
	font-family: var(--cvt-accent);
	font-size: clamp(1.35rem, 3vw, 1.85rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #fff;
}

.cvt-kit__lede {
	margin: 0 0 0.75rem;
	font-size: 0.95rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.7);
}

.cvt-kit__status {
	margin: 0 0 1rem;
	font-family: var(--cvt-label);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.55);
}

.cvt-kit__status.is-lit {
	color: #7dcea0;
}

.cvt-kit__scroll-story {
	padding: 2rem 0 3rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	opacity: 0.35;
	transition: opacity 0.4s var(--cvt-ease);
}

.cvt-kit__scroll-story.is-revealed {
	opacity: 1;
}

.cvt-kit__scroll-kicker {
	margin: 0 0 0.35rem;
	font-family: var(--cvt-label);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cvt-blue);
}

.cvt-kit__scroll-title {
	margin: 0 0 0.6rem;
	font-family: var(--cvt-accent);
	font-size: clamp(1.15rem, 2.5vw, 1.5rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #fff;
}

.cvt-kit__scroll-copy {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.65);
}

/* Mobile: compact board strip + stacked readable modules */
@media (max-width: 720px) {
	.cvt-kit__hero {
		height: auto;
		min-height: 0;
	}

	.cvt-kit__board-wrap {
		height: auto;
		min-height: 0;
	}

	.cvt-kit__stage {
		--mobile-board-h: 300px;
		position: relative;
		height: auto;
		min-height: calc(var(--mobile-board-h) + 2rem);
		overflow: visible;
		padding-bottom: 0.75rem;
	}

	.cvt-kit__board,
	.cvt-kit__wires,
	.cvt-kit__parts {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: var(--mobile-board-h);
		width: 100%;
	}

	.cvt-kit__hole {
		/* Keep wire maths; hide dense hole UI on small screens */
		opacity: 0;
		pointer-events: none;
	}

	.cvt-kit__hole--logo,
	.cvt-kit__hole--sw,
	.cvt-kit__hole.is-plug-target {
		opacity: 1;
		pointer-events: auto;
	}

	.cvt-kit__ic--hero,
	.cvt-kit__ic--eicr,
	.cvt-kit__ic--ev,
	.cvt-kit__ic--cta,
	.cvt-kit__ic--switch {
		position: relative !important;
		left: auto !important;
		top: auto !important;
		width: auto !important;
		height: auto !important;
		margin: 0.55rem 0.85rem;
		transform: none;
		opacity: 1;
		filter: none;
		z-index: 8;
	}

	.cvt-kit__ic--hero {
		margin-top: calc(var(--mobile-board-h) + 0.35rem);
	}

	.cvt-kit__ic--quad .cvt-kit__ic-body {
		position: relative;
		inset: auto;
		min-height: 0;
		padding: 0.85rem 1rem;
	}

	.cvt-kit__ic--hero .cvt-kit__ic-headline {
		font-size: 1.4rem;
	}

	.cvt-kit__ic-actions {
		width: 100%;
	}

	.cvt-kit__ic-pin {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cvt-kit__lever-arm,
	.cvt-kit__board-logo,
	.cvt-kit__ic,
	.cvt-kit__hole,
	.cvt-kit__ic-btn {
		transition: none;
	}
}

/* v0.6: full-width editorial hero. Scale board uniformly; never distort SVG geometry. */
@media (min-width: 721px) {
  .cvt-kit--hero {
    padding: 0 0 3rem;
    background: #e1ded7;
  }
  .cvt-kit__hero {
    width: 100%;
    min-height: calc(100vh - 4.75rem);
    min-height: calc(100dvh - 4.75rem);
    margin: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background: transparent;
  }
  .cvt-kit__board-wrap {
    width: 100%;
    height: auto;
    aspect-ratio: 1320 / 760;
    margin: 0;
  }
  .cvt-kit__stage {
    width: 100%;
    height: 100%;
    aspect-ratio: 1320 / 760;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .cvt-kit__below {
    max-width: 72rem;
    padding: 2rem 2rem 3rem;
    text-align: center;
  }
}
.cvt-kit__board-logo { opacity: 0.92; }
.cvt-kit__board-logo.is-powered { opacity: 1; }
.cvt-kit__board-logo.is-powered .cvt-kit__logo-disc { filter: drop-shadow(0 0 4px rgba(40,150,200,.35)); }
.cvt-kit__wires { opacity: 0.96; }
.cvt-kit__wire--outline { stroke-width: 6; opacity: .28; }
.cvt-kit__ic-body { border-radius: 3px; box-shadow: 0 2px 0 #090b0c, 0 4px 9px rgba(0,0,0,.19), inset 0 1px 0 rgba(255,255,255,.09); }
.cvt-kit__ic--eicr.is-powered .cvt-kit__ic-body,
.cvt-kit__ic--ev.is-powered .cvt-kit__ic-body { box-shadow: 0 2px 0 #050505, 0 4px 9px rgba(0,0,0,.2); }
.cvt-kit__logo-cvt { font-family: 'Chakra Petch', sans-serif; font-size: 15px; letter-spacing: .09em; fill: #eaf8ff; stroke: none; }
.cvt-kit__logo-systems { font-family: 'Inter', sans-serif; font-size: 7px; fill: #b0d9ee; stroke: none; letter-spacing: .06em; }
@media (max-width: 720px) {
  .cvt-kit__board { object-fit: contain; }
  .cvt-kit__board-logo.is-powered .cvt-kit__logo-disc { filter: none; }
}

/* v0.9 — one obvious socket per power/ground terminal, aligned to the actual chip sides. */
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch) .cvt-kit__ic-body {
  inset: 4% 3%;
}
.cvt-kit__hole--info {
  z-index: 30;
  width: clamp(14px, 1.1vw, 19px);
  height: clamp(14px, 1.1vw, 19px);
  cursor: pointer;
  color: #fff;
  background: #263845;
  border: 2px solid #fff;
  box-shadow: 0 0 0 3px #171f24, 0 3px 8px rgba(0,0,0,.25);
  font-size: 0;
  overflow: visible;
}
.cvt-kit__hole--info::after {
  content: attr(data-label);
  position: absolute;
  top: 50%; left: 50%; transform: translate(-50%, -50%);
  font: 800 10px/1 system-ui, sans-serif;
  color: white;
  pointer-events: none;
}
.cvt-kit__hole--info[data-label="+"] { background: #c0352c; }
.cvt-kit__hole--info[data-label="−"] { background: #176f9a; }
.cvt-kit__hole--info:hover, .cvt-kit__hole--info:focus-visible {
  z-index: 40; box-shadow: 0 0 0 5px #f6b34b, 0 0 15px #f6b34b;
}
/* Do not allow foreground cards or wires to capture a terminal click. */
.cvt-kit__hole--socket { z-index: 30; }

/* v1.0: mounting tabs are part of the equipment, not floating connectors. */
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch)::before,
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch)::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 24px;
  height: 34px;
  transform: translateY(-50%);
  background: linear-gradient(90deg, #777d81 0%, #dfe5e6 32%, #92999c 62%, #666d72 100%);
  border: 2px solid #5a6267;
  border-radius: 5px;
  z-index: 9;
  box-shadow: 0 2px 5px rgba(0,0,0,.24);
  pointer-events: none;
}
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch)::before { left: -12px; }
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch)::after { right: -12px; }
.cvt-kit__hole--info {
  z-index: 35;
  width: 17px;
  height: 17px;
  border: 2px solid #1b262d;
  background: radial-gradient(circle at 36% 31%, #fff 0 18%, #d5dee0 35%, #7f909b 100%);
  box-shadow: 0 0 0 3px #c8cbcc, 0 1px 4px rgba(0,0,0,.4);
}
.cvt-kit__hole--info[data-label="+"] { background: #eadcda; }
.cvt-kit__hole--info[data-label="−"] { background: #d5e4ed; }
.cvt-kit__hole--info::after { color: #1b303b; font-size: 10px; }
.cvt-kit__hole--logo::after { display: none; }
.cvt-kit__hole--logo::before { display: none; }
.cvt-kit__hole--logo {
  width: 15px;
  height: 15px;
  z-index: 35;
  background: radial-gradient(circle, #f7f7f4 15%, #abb7bd 65%, #57616a 100%);
  border: 2px solid #202b31;
  box-shadow: 0 0 0 3px #92999b, 0 2px 5px rgba(0,0,0,.25);
}
.cvt-kit__board-logo .cvt-kit__logo-disc { filter: none; }


/* v1.2: refine centre unit and switch hardware */
.cvt-kit__ic--switch .cvt-kit__ic-pin {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #f5f5f5, #9a9a9a 55%, #555 100%);
}

.cvt-kit__ic--switch .cvt-kit__ic-body {
  border-radius: 0.42rem;
}

.cvt-kit__lever-base {
  position: relative;
  gap: 0.12rem;
  padding: 0.18rem 0.3rem 0.16rem;
  background: linear-gradient(180deg, #45494d 0%, #17191b 100%);
  border: 1px solid #060708;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), inset 0 -2px 4px rgba(0,0,0,.55);
}

.cvt-kit__lever-slot {
  width: 68%;
  height: 50%;
  min-height: 1.55rem;
  border-radius: 0.85rem;
  background: linear-gradient(180deg, #0d0f10 0%, #1d2022 100%);
  border: 1px solid #36393d;
  box-shadow: inset 0 2px 7px rgba(0,0,0,.82), inset 0 0 0 1px rgba(255,255,255,.03);
  overflow: visible;
}

.cvt-kit__lever-slot::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0.18rem;
  width: 0.62rem;
  height: 0.62rem;
  margin-left: -0.31rem;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #dadada, #7c8287 62%, #41474c 100%);
  border: 1px solid #1b1f22;
  box-shadow: 0 1px 3px rgba(0,0,0,.45);
}

.cvt-kit__lever-arm {
  left: 50%;
  bottom: 0.34rem;
  width: 0.48rem;
  height: 66%;
  margin-left: -0.24rem;
  transform-origin: 50% calc(100% - 0.08rem);
  background: linear-gradient(90deg, #889096 0%, #eef1f2 40%, #687078 100%);
  border: 1px solid #25292c;
  border-radius: 0.32rem;
  box-shadow: 1px 2px 4px rgba(0,0,0,.4);
}

.cvt-kit__lever-knob {
  top: -0.08rem;
  width: 0.88rem;
  height: 0.88rem;
  margin-left: -0.44rem;
  background: radial-gradient(circle at 35% 30%, #ffffff, #c0c5c9 48%, #646b70 100%);
  border: 2px solid #1f2326;
  box-shadow: 0 2px 4px rgba(0,0,0,.38);
}

.cvt-kit__lever-labels {
  width: 68%;
  font-size: clamp(0.46rem, 0.84vw, 0.58rem);
  letter-spacing: 0.08em;
}

.cvt-kit__ic--switch.is-on .cvt-kit__lever-arm,
.cvt-kit__ic--switch:has(.cvt-kit__switch-input:checked) .cvt-kit__lever-arm {
  transform: rotate(38deg);
}

.cvt-kit__ic--switch:not(.is-on) .cvt-kit__lever-arm,
.cvt-kit__ic--switch:not(:has(.cvt-kit__switch-input:checked)) .cvt-kit__lever-arm {
  transform: rotate(-38deg);
}

.cvt-kit__hole--logo {
  width: 14px;
  height: 14px;
  box-shadow: 0 0 0 2px #8d9598, 0 1px 4px rgba(0,0,0,.22);
}

/* v1.3 rebuilt centre identity and physical rocker switch */
.cvt-kit__board-logo { opacity: 1 !important; }
.cvt-kit__board-logo.is-powered { opacity: 1 !important; }
.cvt-kit__ic--switch .cvt-kit__ic-body { inset: 3% 3%; padding: 0; border: 2px solid #30393f; background: #222a30; border-radius: 5px; overflow: hidden; }
.cvt-kit__rocker { width: 100%; height: 100%; display:block; box-sizing:border-box; padding:5px; }
.cvt-kit__rocker-plate { display:flex; flex-direction:column; justify-content:space-around; align-items:center; height:100%; background:linear-gradient(135deg,#454e53,#1d252a); border:1px solid #101619; box-shadow:inset 0 1px 1px #6c777b,inset 0 -3px 5px #111; border-radius:3px; }
.cvt-kit__rocker-status { font:700 clamp(6px,.62vw,10px)/1.1 Arial,sans-serif; letter-spacing:.1em; color:#d3e3e9; }
.cvt-kit__rocker-paddle { position:relative; width:45%; height:39%; min-height:19px; border-radius:4px; background:linear-gradient(175deg,#626f75 0%,#353f45 45%,#111b22 53%,#090f12 100%); border:1px solid #070d11; box-shadow: 0 3px 4px #111,inset 0 2px 2px #829097; transform:perspective(65px) rotateX(14deg); transition:transform .2s ease; }
.cvt-kit__rocker-paddle::before {content:'';position:absolute;left:13%;right:13%;top:20%;height:2px;background:#a8bdc6;opacity:.65;}
.cvt-kit__ic--switch:not(.is-on) .cvt-kit__rocker-paddle {transform:perspective(65px) rotateX(-15deg);background:linear-gradient(8deg,#68747c,#28333a 56%,#10181e);}
.cvt-kit__rocker-bottom {display:flex; align-items:center; justify-content:space-between; width:67%; font:700 clamp(6px,.65vw,10px)/1 Arial,sans-serif; color:#829198;}
.cvt-kit__rocker-led {width:7px;height:7px;border-radius:50%;background:#3e4549;box-shadow:inset 0 1px 2px #0b1013;}
.cvt-kit__ic--switch.is-on .cvt-kit__rocker-led {background:#46e098;box-shadow:0 0 8px #32d98c;}
.cvt-kit__ic--switch.is-on .cvt-kit__rocker-bottom span:last-child {color:#57edaa;}
.cvt-kit__ic--switch:not(.is-on) .cvt-kit__rocker-bottom span:first-child {color:#e7a198;}
.cvt-kit__hole--socket {width:18px;height:18px;background:radial-gradient(circle,#f4f5f4 0 23%,#6d7e86 40%,#c8d0d4 68%);border:2px solid #293940;box-shadow:0 0 0 3px #9aa7aa,0 2px 5px #303b3e;}


/* v1.4 — circuit states must be unambiguous, even with wires removed.
   The switch itself is a mechanical control; it does not glow unless on. */
.cvt-kit__board-logo { opacity: 1 !important; transition: filter .2s ease, opacity .2s ease; }
.cvt-kit__controller-power { opacity: .18; transition: opacity .2s ease, filter .2s ease; }
.cvt-kit__controller-power.is-powered,
.cvt-kit__board-logo.is-powered .cvt-kit__controller-power {
  opacity: 1;
  filter: drop-shadow(0 0 7px #46eec1) drop-shadow(0 0 13px #25a8dd);
}
.cvt-kit__board-logo:not(.is-powered) .cvt-kit__controller-screen {
  fill: #151d21 !important;
}
.cvt-kit__board-logo.is-powered .cvt-kit__controller-screen {
  fill: #123a4c !important;
  filter: drop-shadow(0 0 10px rgba(41,202,241,.42));
}
.cvt-kit__board-logo:not(.is-powered) .cvt-kit__controller-title,
.cvt-kit__board-logo:not(.is-powered) .cvt-kit__controller-detail {
  fill: #647077 !important;
  opacity: .55;
}
.cvt-kit__board-logo.is-powered .cvt-kit__controller-title,
.cvt-kit__board-logo.is-powered .cvt-kit__controller-detail { opacity: 1; }
.cvt-kit__board-logo .cvt-kit__controller-online { display: none; }
.cvt-kit__board-logo.is-powered .cvt-kit__controller-online { display: block; }
.cvt-kit__board-logo .cvt-kit__controller-offline { display: block; }
.cvt-kit__board-logo.is-powered .cvt-kit__controller-offline { display: none; }

/* Module body remains mounted, but its display and indicator go dark when unpowered. */
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch) {
  opacity: 1 !important;
  filter: none !important;
}
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch) .cvt-kit__ic-body {
  background: #20272a !important;
  border-color: #425057 !important;
  box-shadow: inset 0 2px 7px rgba(0,0,0,.54), 0 2px 3px rgba(0,0,0,.25) !important;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch):not(.is-powered) .cvt-kit__ic-body {
  background: #242728 !important;
  border-color: #505354 !important;
}
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch):not(.is-powered) .cvt-kit__ic-body :is(.cvt-kit__ic-headline, .cvt-kit__ic-title, .cvt-kit__ic-kicker, .cvt-kit__ic-copy, .cvt-kit__ic-meta) {
  color: #7e898e !important;
  text-shadow: none !important;
}
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch).is-powered .cvt-kit__ic-body {
  background: linear-gradient(160deg,#173443,#091319) !important;
  border-color: #37b8e4 !important;
  box-shadow: 0 0 0 1px rgba(50,196,235,.3), 0 0 16px rgba(24,181,227,.5), inset 0 0 15px rgba(17,154,185,.15) !important;
}
.cvt-kit__ic--eicr.is-powered .cvt-kit__ic-body { border-color: #eda64b !important; box-shadow: 0 0 14px rgba(237,166,75,.42), inset 0 0 13px rgba(237,166,75,.1) !important; }
.cvt-kit__ic--ev.is-powered .cvt-kit__ic-body { border-color: #38e39b !important; box-shadow: 0 0 14px rgba(56,227,155,.4), inset 0 0 13px rgba(56,227,155,.1) !important; }
.cvt-kit__ic--quad:not(.cvt-kit__ic--switch):not(.is-powered) .cvt-kit__ic-leds span {
  background: #303b40 !important; box-shadow: none !important;
}
