/* assets/css/nova-visuals.css
 * Code-native Nova product storytelling fragments.
 */

.nv-visual {
	--nv-teal: var(--nova-primary);
	--nv-teal-bright: var(--nova-primary-hover);
	--nv-teal-soft: rgba(var(--t0-blue-rgb), .14);
	--nv-amber: var(--t0-gold);
	--nv-amber-soft: var(--t0-overlay-4);
	--nv-route-base: rgba(var(--t0-blue-rgb), .46);
	--nv-route-live: rgba(var(--t0-blue-rgb), .92);
	--nv-route-glow: rgba(var(--t0-blue-rgb), .48);
	--nv-copy-size: 12px;
	--nv-meta-size: 10px;
	container-name: nova-visual;
	container-type: inline-size;
	width: 100%;
	margin: 0;
	border: 1px solid var(--t0-line);
	background:
		radial-gradient(circle at 52% 38%, rgba(var(--t0-blue-rgb), .11), transparent 34%),
		linear-gradient(155deg, var(--t0-panel-2), var(--t0-panel) 72%);
	box-shadow: 0 28px 70px -48px rgba(var(--t0-blue-rgb), .72);
	overflow: hidden;
	transition: border-color var(--t0-motion-base) var(--t0-ease), box-shadow var(--t0-motion-base) var(--t0-ease), transform var(--t0-motion-base) var(--t0-ease);
}

.nv-visual:hover,
.nv-visual:focus-within {
	border-color: rgba(var(--t0-blue-rgb), .56);
	box-shadow: 0 34px 90px -48px rgba(var(--t0-blue-rgb), .86);
}

.nv-visual button {
	font: inherit;
	color: inherit;
	border: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.nv-visual button:focus-visible {
	outline: 2px solid var(--t0-ice);
	outline-offset: 3px;
}

.nv-visual__caption {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.nv-visual__header {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 18px;
	align-items: stretch;
	padding: 22px 24px 18px;
	border-bottom: 1px solid var(--t0-line-soft);
	background: rgba(var(--t0-panel-rgb), .64);
}

.nv-visual__intro {
	display: grid;
	grid-template-columns: minmax(170px, 210px) minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: clamp(20px, 2vw, 30px);
	row-gap: 7px;
	align-items: start;
}

.nv-visual__eyebrow,
.nv-label,
.nv-visual small,
.nv-visual em {
	font-family: var(--t0-display);
	font-style: normal;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.nv-visual__eyebrow {
	display: block;
	grid-column: 1;
	grid-row: 1 / span 2;
	margin: 2px 0 0;
	font-size: var(--nv-meta-size);
	color: var(--nova-text-accent);
}

.nv-visual__header h3 {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	font-family: var(--t0-body);
	font-size: clamp(16px, 2vw, 21px);
	font-weight: 560;
	line-height: 1.25;
	color: var(--t0-text);
}

.nv-visual__header p {
	grid-column: 2;
	grid-row: 2;
	max-width: 620px;
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--t0-text-3);
}

.nv-stages {
	display: flex;
	width: 100%;
	gap: 4px;
	padding: 4px;
	border: 1px solid var(--t0-line);
	background: var(--t0-overlay-4);
}

.nv-stage {
	display: flex;
	align-items: center;
	gap: 6px;
	flex: 1 1 0;
	justify-content: center;
	min-width: 0;
	min-height: 34px;
	padding: 7px 9px;
	background: transparent;
	font-family: var(--t0-display) !important;
	font-size: var(--nv-copy-size) !important;
	line-height: 1.35;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-align: center;
	overflow-wrap: anywhere;
	color: var(--t0-muted) !important;
	transition: color var(--t0-motion-fast) var(--t0-ease), background var(--t0-motion-fast) var(--t0-ease), transform var(--t0-motion-fast) var(--t0-ease);
}

.nv-stage span {
	flex: 0 0 auto;
	white-space: nowrap;
	color: var(--nova-text-accent);
}
.nv-stage:hover { color: var(--t0-text-2) !important; }
.nv-stage.is-active {
	color: var(--t0-text) !important;
	background: var(--nv-teal-soft);
	box-shadow: inset 0 0 0 1px rgba(var(--t0-blue-rgb), .18);
}

[data-theme="light"] .nv-stage.is-active {
	color: #ffffff !important;
	background: var(--nova-control-primary);
	box-shadow: 0 10px 28px -20px rgba(var(--nova-control-primary-rgb), .78);
}

[data-theme="light"] .nv-stage.is-active span {
	color: #ffffff;
}

.nv-scene {
	position: relative;
	min-height: 330px;
	aspect-ratio: 16 / 8.2;
	isolation: isolate;
	overflow: hidden;
}

.nv-grid {
	position: absolute;
	inset: 0;
	z-index: -2;
	background-image:
		linear-gradient(var(--t0-stroke) 1px, transparent 1px),
		linear-gradient(90deg, var(--t0-stroke) 1px, transparent 1px);
	background-size: 28px 28px;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%);
}

.nv-scene::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(105deg, transparent 25%, rgba(var(--t0-blue-rgb), .045) 50%, transparent 75%);
	transform: translateX(-100%);
}

.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-scene::after {
	animation: nv-scan 8s var(--t0-ease) infinite;
}

.nv-routes {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	overflow: visible;
}

.nv-route {
	fill: none;
	stroke: var(--nv-route-base);
	stroke-width: 1.15;
	vector-effect: non-scaling-stroke;
	stroke-linecap: round;
	opacity: .9;
	filter: drop-shadow(0 0 3px rgba(var(--t0-blue-rgb), .24));
	transition: stroke var(--t0-motion-base) var(--t0-ease), opacity var(--t0-motion-base) var(--t0-ease);
}

.nv-route::selection { background: transparent; }

.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-route {
	stroke-dasharray: .045 .035;
	stroke-dashoffset: 0;
	animation: nv-route-live 2.4s linear infinite;
}

.nv-visual[data-nv-step="0"] .nv-route--one,
.nv-visual[data-nv-step="0"] .nv-route--two,
.nv-visual[data-nv-step="0"] .nv-route--three,
.nv-visual[data-nv-step="1"] .nv-route:not(.nv-route--ghost),
.nv-visual[data-nv-step="2"] .nv-route:not(.nv-route--ghost) {
	stroke: var(--nv-route-live);
	stroke-width: 1.35;
	stroke-dasharray: .055 .03;
	stroke-dashoffset: 0;
	animation: none;
	filter: drop-shadow(0 0 4px var(--nv-route-glow));
}

.nv-visual.is-enhanced.is-motion-safe.is-in-view[data-nv-step="0"] .nv-route--one,
.nv-visual.is-enhanced.is-motion-safe.is-in-view[data-nv-step="0"] .nv-route--two,
.nv-visual.is-enhanced.is-motion-safe.is-in-view[data-nv-step="0"] .nv-route--three,
.nv-visual.is-enhanced.is-motion-safe.is-in-view[data-nv-step="1"] .nv-route:not(.nv-route--ghost),
.nv-visual.is-enhanced.is-motion-safe.is-in-view[data-nv-step="2"] .nv-route:not(.nv-route--ghost) {
	animation: nv-route-flow .8s var(--t0-ease) both, nv-route-live 1.85s linear .8s infinite;
}

.nv-visual[data-nv-step="0"] .nv-route--out { stroke: var(--t0-line); }
.nv-route--ghost { stroke-dasharray: .02 .075; opacity: .46; }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-route--ghost { animation-duration: 4.8s; }

/* JavaScript mirrors each SVG route into a soft trace and a distinct moving packet. */
.nv-route-trace,
.nv-route-packet {
	fill: none;
	pointer-events: none;
	vector-effect: non-scaling-stroke;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.nv-route-trace {
	--nv-packet-opacity: .34;
	stroke: var(--nv-route-live);
	stroke-width: 5;
	stroke-dasharray: .065 .935;
	stroke-dashoffset: 1;
	opacity: 0;
	filter: blur(2.8px) drop-shadow(0 0 6px var(--nv-route-glow));
}

.nv-route-packet {
	--nv-packet-opacity: .96;
	stroke: var(--nv-route-live);
	stroke-width: 2.15;
	stroke-dasharray: .045 .955;
	stroke-dashoffset: 1;
	opacity: 0;
	filter: drop-shadow(0 0 2px var(--nv-route-live)) drop-shadow(0 0 6px var(--nv-route-glow));
}

.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-route-trace,
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-route-packet {
	animation: nv-route-packet var(--nv-route-duration, 3.2s) linear var(--nv-route-delay, 0s) infinite;
}

.nv-route-endpoint {
	fill: var(--nv-route-live);
	stroke: var(--t0-panel);
	stroke-width: 1.25;
	vector-effect: non-scaling-stroke;
	opacity: .84;
	filter: drop-shadow(0 0 4px var(--nv-route-glow));
	transform-box: fill-box;
	transform-origin: center;
}

.is-route-suppressed { display: none !important; }

.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-route-endpoint {
	animation: nv-endpoint-pulse 2.6s var(--t0-ease) var(--nv-route-delay, 0s) infinite;
}

.nv-route-trace--ghost { --nv-packet-opacity: .12; }
.nv-route-packet--ghost { --nv-packet-opacity: .32; }
.nv-visual[data-nv-step="0"] .nv-route-trace--out { --nv-packet-opacity: .15; }
.nv-visual[data-nv-step="0"] .nv-route-packet--out { --nv-packet-opacity: .42; }

.nv-label {
	margin: 0 0 12px;
	font-size: var(--nv-meta-size);
	color: var(--t0-muted);
}

.nv-source,
.nv-state,
.nv-hub,
.nv-path-node,
.nv-queue-card,
.nv-assessment-card,
.nv-next-step,
.nv-leadership-card,
.nv-decision,
.nv-compliance__summary > div,
.nv-investigation__timeline > div,
.nv-triage__signals > div,
.nv-journey__rail article,
.nv-journey__outcome,
.nv-flow article,
.nv-flow__outcome {
	border: 1px solid var(--t0-line) !important;
	background: rgba(var(--t0-panel-rgb), .88);
	transition: border-color var(--t0-motion-base) var(--t0-ease), background var(--t0-motion-base) var(--t0-ease), box-shadow var(--t0-motion-base) var(--t0-ease), opacity var(--t0-motion-base) var(--t0-ease), transform var(--t0-motion-base) var(--t0-ease);
}

[data-theme="light"] .nv-visual {
	--nv-route-base: rgba(4, 74, 69, .84);
	--nv-route-live: #006e68;
	--nv-route-glow: rgba(0, 111, 104, .4);
	border-color: #aebebb;
	background: #ffffff;
	box-shadow: 0 34px 86px -62px rgba(6, 37, 33, .46), inset 0 1px 0 rgba(255, 255, 255, .98);
}

[data-theme="light"] .nv-visual__header {
	background: rgba(255, 255, 255, .94);
}

[data-theme="light"] .nv-source,
[data-theme="light"] .nv-state,
[data-theme="light"] .nv-hub,
[data-theme="light"] .nv-path-node,
[data-theme="light"] .nv-queue-card,
[data-theme="light"] .nv-assessment-card,
[data-theme="light"] .nv-next-step,
[data-theme="light"] .nv-leadership-card,
[data-theme="light"] .nv-compliance__summary > div,
[data-theme="light"] .nv-investigation__timeline > div,
[data-theme="light"] .nv-triage__signals > div,
[data-theme="light"] .nv-journey__rail article,
[data-theme="light"] .nv-journey__outcome,
[data-theme="light"] .nv-flow article,
[data-theme="light"] .nv-flow__outcome {
	border-color: #b3c2bf !important;
	background: #ffffff;
	box-shadow: 0 18px 42px -34px rgba(6, 37, 33, .46), inset 0 1px 0 rgba(255, 255, 255, .98);
}

[data-theme="light"] .nv-decision {
	border-color: #006b67 !important;
	background: linear-gradient(145deg, var(--nova-control-primary), var(--nova-text-accent));
	color: #ffffff;
	box-shadow: 0 28px 58px -38px rgba(0, 78, 74, .72);
}

[data-theme="light"] .nv-decision small,
[data-theme="light"] .nv-decision strong {
	color: #ffffff;
}

[data-theme="light"] .nv-decision p {
	color: rgba(255, 255, 255, .86);
}

[data-theme="light"] .nv-decision > div span {
	border-color: rgba(255, 255, 255, .34);
	background: rgba(255, 255, 255, .1);
	color: #ffffff;
}

[data-theme="light"] .nv-route {
	stroke: var(--nv-route-base);
	stroke-width: 1.45;
	opacity: .98;
	filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .94)) drop-shadow(0 0 3px rgba(0, 82, 77, .34));
}

[data-theme="light"] .nv-visual[data-nv-step="0"] .nv-route--one,
[data-theme="light"] .nv-visual[data-nv-step="0"] .nv-route--two,
[data-theme="light"] .nv-visual[data-nv-step="0"] .nv-route--three,
[data-theme="light"] .nv-visual[data-nv-step="1"] .nv-route:not(.nv-route--ghost),
[data-theme="light"] .nv-visual[data-nv-step="2"] .nv-route:not(.nv-route--ghost) {
	stroke: var(--nv-route-live);
	stroke-width: 1.8;
	filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .96)) drop-shadow(0 0 4px rgba(0, 111, 104, .46));
}

[data-theme="light"] .nv-visual[data-nv-step="0"] .nv-route--out {
	stroke: rgba(0, 91, 85, .76);
	stroke-width: 1.35;
	opacity: .94;
}

[data-theme="light"] .nv-route--ghost {
	stroke: rgba(30, 79, 74, .68);
	stroke-width: 1.3;
	stroke-dasharray: .026 .058;
	opacity: .78;
	filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .92)) drop-shadow(0 0 2px rgba(0, 82, 77, .26));
}

[data-theme="light"] .nv-route-trace {
	--nv-packet-opacity: .48;
	stroke: #00a096;
	stroke-width: 6.4;
	filter: blur(2.3px) drop-shadow(0 0 7px rgba(0, 124, 116, .48));
}

[data-theme="light"] .nv-route-packet {
	--nv-packet-opacity: 1;
	stroke: #008d84;
	stroke-width: 3;
	stroke-dasharray: .045 .955;
	filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .96)) drop-shadow(0 0 3px rgba(0, 141, 132, .72)) drop-shadow(0 0 8px rgba(0, 111, 104, .42));
}

[data-theme="light"] .nv-route-endpoint {
	fill: #006e68;
	stroke: #ffffff;
	stroke-width: .6;
	opacity: .96;
	filter: drop-shadow(0 0 3px rgba(0, 111, 104, .62)) drop-shadow(0 0 7px rgba(0, 111, 104, .34));
}

[data-theme="light"] .nv-route-trace--ghost {
	--nv-packet-opacity: .22;
	stroke: #287f78;
}

[data-theme="light"] .nv-route-packet--ghost {
	--nv-packet-opacity: .58;
	stroke: #16776f;
}

[data-theme="light"] .nv-visual[data-nv-step="0"] .nv-route-trace--out {
	--nv-packet-opacity: .3;
}

[data-theme="light"] .nv-visual[data-nv-step="0"] .nv-route-packet--out {
	--nv-packet-opacity: .72;
}

.nv-source:hover,
.nv-state:hover,
.nv-hub:hover,
.nv-path-node:hover,
.nv-queue-card:hover,
.nv-assessment-card:hover,
.nv-next-step:hover,
.nv-leadership-card:hover,
.nv-decision:hover,
.nv-compliance__summary > div:hover,
.nv-investigation__timeline > div:hover,
.nv-triage__signals > div:hover,
.nv-journey__rail article:hover,
.nv-flow article:hover {
	border-color: rgba(var(--t0-blue-rgb), .66) !important;
	background: var(--t0-panel-2);
}

/* Lift only free-standing cards. Measured route ports retain their authored geometry. */
:is(
	.nv-source,
	.nv-state,
	.nv-hub,
	.nv-path-node,
	.nv-queue-card,
	.nv-assessment-card,
	.nv-next-step,
	.nv-leadership-card,
	.nv-decision,
	.nv-compliance__summary > div,
	.nv-investigation__timeline > div,
	.nv-triage__signals > div,
	.nv-journey__rail article,
	.nv-flow article
):not(.nv-route-port):hover {
	transform: translateY(-2px);
}

/* Keep the white-theme decision surface saturated under every interactive state. */
[data-theme="light"] .nv-decision:is(:hover, :focus, :focus-within) {
	border-color: #005f5b !important;
	background: linear-gradient(145deg, #00766f 0%, #005e59 100%);
	color: #ffffff;
	box-shadow: 0 30px 64px -36px rgba(0, 78, 74, .78);
}

[data-theme="light"] .nv-decision:is(:hover, :focus, :focus-within) small,
[data-theme="light"] .nv-decision:is(:hover, :focus, :focus-within) strong,
[data-theme="light"] .nv-decision:is(:hover, :focus, :focus-within) p,
[data-theme="light"] .nv-decision:is(:hover, :focus, :focus-within) > div span {
	color: #ffffff;
}

/* Coverage: sources feed a scope and freshness check, then split into truth states. */
.nv-coverage__sources,
.nv-coverage__posture {
	position: absolute;
	top: 50%;
	z-index: 1;
	width: 28%;
	transform: translateY(-50%);
}

.nv-coverage__sources { left: 4%; }
.nv-coverage__posture { right: 4%; }
.nv-source {
	position: relative;
	display: grid;
	grid-template-columns: 10px minmax(0, 1fr);
	gap: 2px 8px;
	align-items: center;
	width: 100%;
	margin: 0 0 8px;
	padding: 10px 11px;
	text-align: left;
	font-size: var(--nv-copy-size);
	line-height: 1.35;
}

.nv-source small { grid-column: 2; font-size: var(--nv-meta-size); color: var(--t0-muted); }
.nv-source__pulse {
	grid-row: 1 / span 2;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	color: var(--nv-teal);
	background: currentColor;
	box-shadow: 0 0 0 4px var(--nv-teal-soft);
}

.nv-source:last-child .nv-source__pulse { color: var(--nv-amber); box-shadow: 0 0 0 4px var(--nv-amber-soft); }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-source__pulse { animation: nv-node-pulse 2.8s var(--t0-ease) infinite; }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-source:nth-child(3) .nv-source__pulse { animation-delay: -.9s; }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-source:nth-child(4) .nv-source__pulse { animation-delay: -1.8s; }
.nv-hub {
	position: absolute;
	left: 49%;
	top: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	z-index: 1;
	width: clamp(152px, 13cqi, 172px);
	height: clamp(152px, 13cqi, 172px);
	padding: 22px;
	border-radius: 50%;
	text-align: center;
	transform: translate(-50%, -50%);
}

.nv-hub:not(.nv-route-port):hover { transform: translate(-50%, calc(-50% - 2px)); }
.nv-hub small,
.nv-hub strong,
.nv-hub em { position: relative; z-index: 1; display: block; max-width: 100%; overflow-wrap: normal; word-break: normal; }
.nv-hub small { font-size: var(--nv-meta-size); line-height: 1.25; letter-spacing: .08em; color: var(--t0-muted); }
.nv-hub strong { margin: 7px 0; font-size: var(--nv-copy-size); line-height: 1.25; }
.nv-hub em { font-size: var(--nv-meta-size); line-height: 1.25; letter-spacing: .08em; color: var(--nova-text-accent); }
.nv-hub__ring {
	position: absolute;
	inset: 10px;
	border: 1px solid rgba(var(--t0-blue-rgb), .5);
	border-radius: 50%;
	box-shadow: inset 0 0 24px var(--nv-teal-soft), 0 0 28px var(--nv-teal-soft);
}

.nv-state {
	display: block;
	width: 100%;
	margin-bottom: 10px;
	padding: 13px 14px;
	text-align: left;
}

.nv-state span { display: block; margin-bottom: 4px; font-size: var(--nv-meta-size); letter-spacing: .1em; text-transform: uppercase; color: var(--t0-muted); }
.nv-state strong { font-size: var(--nv-copy-size); font-weight: 550; }
.nv-state--good strong { color: var(--t0-text); }
.nv-state--warn strong { color: var(--t0-gold-2); }
.nv-visual--coverage[data-nv-step="1"] .nv-hub,
.nv-visual--coverage[data-nv-step="1"] .nv-state--good,
.nv-visual--coverage[data-nv-step="2"] .nv-state--warn {
	border-color: rgba(var(--t0-blue-rgb), .66) !important;
	box-shadow: 0 16px 42px -28px rgba(var(--t0-blue-rgb), .9);
}
.nv-visual--coverage[data-nv-step="2"] .nv-state--warn { border-color: var(--t0-gold) !important; }

/* Attack path: focused graph with evidence and ownership, never a whole product screen. */
.nv-routes--path { inset: 0; height: 100%; }
.nv-path-node {
	position: absolute;
	top: 50%;
	width: 25%;
	display: grid;
	grid-template-columns: 14px minmax(0, 1fr);
	column-gap: 10px;
	align-content: center;
	min-height: 118px;
	padding: 16px 14px;
	text-align: left;
	transform: translateY(-50%);
}
.nv-path-node:not(.nv-route-port):hover { transform: translateY(calc(-50% - 2px)); }
.nv-path-node--exposure { left: 5%; }
.nv-path-node--identity { left: 38%; top: 31%; }
.nv-path-node--resource { right: 5%; }
.nv-node-icon {
	display: block;
	grid-column: 1;
	grid-row: 1;
	align-self: center;
	width: 11px;
	height: 11px;
	margin: 0;
	border: 1px solid var(--t0-blue);
	transform: rotate(45deg);
	background: var(--nv-teal-soft);
}
.nv-path-node small,
.nv-path-node strong,
.nv-path-node em { display: block; }
.nv-path-node small { grid-column: 2; grid-row: 1; align-self: center; font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-path-node strong,
.nv-path-node em { grid-column: 1 / -1; }
.nv-path-node strong { margin: 7px 0 10px; font-size: var(--nv-copy-size); line-height: 1.35; }
.nv-path-node em { font-size: var(--nv-meta-size); color: var(--t0-muted); }
.nv-evidence-dock {
	position: absolute;
	left: 35%;
	right: 8%;
	bottom: 7%;
	display: flex;
	justify-content: flex-end;
	gap: 6px;
}
.nv-evidence-dock span {
	padding: 6px 8px;
	border: 1px solid var(--t0-line);
	background: var(--t0-overlay-4);
	font-family: var(--t0-display);
	font-size: var(--nv-meta-size);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--t0-text-3);
}
.nv-visual--attack-path[data-nv-step="0"] .nv-path-node--exposure,
.nv-visual--attack-path[data-nv-step="1"] .nv-path-node--identity,
.nv-visual--attack-path[data-nv-step="2"] .nv-path-node--resource {
	border-color: rgba(var(--t0-blue-rgb), .72) !important;
	background: linear-gradient(145deg, var(--nv-teal-soft), rgba(var(--t0-panel-rgb), .9));
	box-shadow: 0 18px 48px -30px rgba(var(--t0-blue-rgb), .9);
}

/* Triage: add context before moving work into a priority queue. */
.nv-triage__signals,
.nv-triage__queue {
	position: absolute;
	top: 50%;
	z-index: 1;
	width: 30%;
	transform: translateY(-50%);
}
.nv-triage__signals { left: 4%; }
.nv-triage__queue { right: 4%; }
.nv-triage__signals > div {
	display: flex;
	align-items: center;
	gap: 9px;
	width: 100%;
	margin-bottom: 8px;
	padding: 11px;
	font-size: var(--nv-copy-size);
	line-height: 1.35;
	text-align: left;
}
.nv-triage__signals i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--t0-muted);
}
.nv-triage__signals > div:nth-of-type(2) i { background: var(--nv-amber); }
.nv-triage__signals > div:nth-of-type(3) i { background: var(--t0-blue-2); }
.nv-context-wheel {
	position: absolute;
	left: 49%;
	top: 49%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	z-index: 1;
	width: clamp(152px, 13cqi, 172px);
	height: clamp(152px, 13cqi, 172px);
	padding: 13px;
	border: 1px solid rgba(var(--t0-blue-rgb), .62) !important;
	border-radius: 50%;
	background:
		radial-gradient(circle at 50% 45%, rgba(var(--t0-blue-rgb), .13), transparent 48%),
		radial-gradient(circle at 72% 24%, rgba(116, 140, 255, .1), transparent 34%),
		rgba(var(--t0-panel-rgb), .94);
	box-shadow:
		inset 0 0 0 8px rgba(var(--t0-blue-rgb), .025),
		inset 0 0 38px rgba(var(--t0-blue-rgb), .08),
		0 0 0 10px rgba(var(--t0-blue-rgb), .025),
		0 26px 72px -38px rgba(var(--t0-blue-rgb), .72);
	isolation: isolate;
	transform: translate(-50%, -50%);
	transition: border-color var(--t0-motion-base) var(--t0-ease), background var(--t0-motion-base) var(--t0-ease), box-shadow var(--t0-motion-base) var(--t0-ease), opacity var(--t0-motion-base) var(--t0-ease), transform var(--t0-motion-base) var(--t0-ease);
}
.nv-context-wheel::before,
.nv-context-wheel::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}
.nv-context-wheel::before {
	inset: 8px;
	z-index: 0;
	border: 1px solid rgba(var(--t0-blue-rgb), .42);
	border-left-color: rgba(116, 140, 255, .5);
	border-bottom-color: transparent;
	transform: rotate(-24deg);
}
.nv-context-wheel::after {
	inset: -11px;
	z-index: -2;
	border: 1px solid rgba(var(--t0-blue-rgb), .16);
	border-right-color: rgba(116, 140, 255, .28);
	box-shadow: 0 0 34px rgba(var(--t0-blue-rgb), .08);
	transform: rotate(18deg);
}
.nv-context-wheel:not(.nv-route-port):hover {
	border-color: rgba(var(--t0-blue-rgb), .66) !important;
	background:
		radial-gradient(circle at 50% 45%, rgba(var(--t0-blue-rgb), .16), transparent 48%),
		radial-gradient(circle at 72% 24%, rgba(116, 140, 255, .12), transparent 34%),
		var(--t0-panel-2);
	transform: translate(-50%, calc(-50% - 2px));
}
.nv-context-wheel strong { position: relative; z-index: 1; font-size: var(--nv-copy-size); color: var(--t0-text); }
.nv-context-wheel__facets { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; width: 100%; }
.nv-context-wheel__facets span { font-size: var(--nv-meta-size); line-height: 1.2; text-align: center; color: var(--t0-text-3); }
.nv-queue-card {
	display: block;
	width: 100%;
	margin-bottom: 7px;
	padding: 10px 12px;
	text-align: left;
}
.nv-queue-card small,
.nv-queue-card strong,
.nv-queue-card em { display: block; }
.nv-queue-card small { font-size: var(--nv-meta-size); color: var(--t0-muted); }
.nv-queue-card strong { margin-top: 4px; font-size: var(--nv-copy-size); line-height: 1.35; }
.nv-queue-card em { margin-top: 5px; font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-visual--triage[data-nv-step="1"] .nv-context-wheel,
.nv-visual--triage[data-nv-step="2"] .nv-queue-card.is-priority {
	border-color: rgba(var(--t0-blue-rgb), .72) !important;
	box-shadow: 0 18px 52px -32px rgba(var(--t0-blue-rgb), .9);
}
.nv-visual--triage[data-nv-step="2"] .nv-queue-card:not(.is-priority) { opacity: .52; }

/* Investigation: sequence, bounded assessment, and an explicit human next step. */
.nv-investigation__timeline {
	position: absolute;
	left: 4%;
	top: 9%;
	z-index: 1;
	width: 38%;
}
.nv-investigation__timeline::before {
	content: "";
	position: absolute;
	left: 8px;
	top: 42px;
	bottom: 28px;
	width: 2px;
	background: linear-gradient(180deg, transparent 0%, var(--nv-route-base) 16%, var(--nv-route-live) 44%, var(--t0-ice) 50%, var(--nv-route-live) 56%, var(--nv-route-base) 84%, transparent 100%);
	background-size: 100% 280%;
	background-repeat: no-repeat;
	filter: drop-shadow(0 0 4px var(--nv-route-glow));
}
.nv-investigation__timeline > div {
	position: relative;
	display: grid;
	grid-template-columns: 14px 1fr;
	gap: 3px 8px;
	width: 100%;
	margin-bottom: 8px;
	padding: 10px 11px;
	text-align: left;
}
.nv-investigation__timeline i {
	position: relative;
	z-index: 1;
	grid-row: 1 / span 2;
	width: 7px;
	height: 7px;
	margin-top: 2px;
	border-radius: 50%;
	color: var(--nv-teal);
	background: currentColor;
	box-shadow: 0 0 0 3px var(--t0-panel), 0 0 0 4px rgba(var(--t0-blue-rgb), .38);
}
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-investigation__timeline i { animation: nv-node-pulse 3s var(--t0-ease) infinite; }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-investigation__timeline > div:nth-of-type(2) i { animation-delay: -1s; }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-investigation__timeline > div:nth-of-type(3) i { animation-delay: -2s; }
.nv-investigation__timeline small { font-size: var(--nv-meta-size); color: var(--t0-muted); }
.nv-investigation__timeline strong { font-size: var(--nv-copy-size); line-height: 1.35; }
.nv-investigation__assessment {
	position: absolute;
	right: 4%;
	top: 9%;
	z-index: 1;
	width: 47%;
}
.nv-assessment-card {
	display: inline-block;
	width: calc(50% - 5px);
	min-height: 68px;
	margin: 0 5px 8px 0;
	padding: 11px;
	vertical-align: top;
	text-align: left;
}
.nv-assessment-card--conflict { width: calc(100% - 5px); }
.nv-assessment-card small,
.nv-assessment-card strong { display: block; }
.nv-assessment-card small { font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-assessment-card--unknown small,
.nv-assessment-card--conflict small { color: var(--t0-gold-2); }
.nv-assessment-card strong { margin-top: 7px; font-size: var(--nv-copy-size); line-height: 1.35; }
.nv-next-step {
	position: absolute;
	left: 46%;
	right: 4%;
	bottom: 7%;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 4px 18px;
	padding: 12px 14px;
	text-align: left;
}
.nv-next-step small { grid-column: 1; font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-next-step strong { grid-column: 1; font-size: var(--nv-copy-size); line-height: 1.4; }
.nv-next-step span { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: var(--nv-copy-size); color: var(--nova-text-accent); }
.nv-visual--investigation[data-nv-step="0"] .nv-investigation__timeline > div,
.nv-visual--investigation[data-nv-step="1"] .nv-assessment-card,
.nv-visual--investigation[data-nv-step="2"] .nv-next-step { border-color: rgba(var(--t0-blue-rgb), .64) !important; }

.nv-visual--investigation .nv-scene {
	aspect-ratio: auto;
	height: clamp(420px, 34cqi, 560px);
	min-height: 420px;
}

/* Compliance: deliberately independent truth dimensions. */
.nv-compliance__summary {
	position: absolute;
	left: 4%;
	right: 4%;
	top: 7%;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 7px;
}
.nv-compliance__summary > div { min-height: 62px; padding: 10px; text-align: left; }
.nv-compliance__summary small,
.nv-compliance__summary strong { display: block; }
.nv-compliance__summary small { font-size: var(--nv-meta-size); color: var(--t0-muted); }
.nv-compliance__summary strong { margin-top: 7px; font-size: var(--nv-copy-size); line-height: 1.35; }
.nv-compliance__matrix {
	position: absolute;
	left: 4%;
	right: 4%;
	top: 36%;
	z-index: 1;
	border: 1px solid var(--t0-line);
	background: rgba(var(--t0-panel-rgb), .76);
}
.nv-matrix-row {
	display: grid;
	grid-template-columns: 1.25fr .8fr .8fr;
	border-top: 1px solid var(--t0-line-soft);
	transition: background var(--t0-motion-base) var(--t0-ease), color var(--t0-motion-base) var(--t0-ease);
}
.nv-matrix-row:first-child { border-top: 0; }
.nv-matrix-row > * { padding: 9px 10px; border-left: 1px solid var(--t0-line-soft); font-size: var(--nv-copy-size); font-style: normal; line-height: 1.35; }
.nv-matrix-row > *:first-child { border-left: 0; }
.nv-matrix-row--head { background: var(--t0-overlay-4); font-family: var(--t0-display); text-transform: uppercase; letter-spacing: .08em; color: var(--t0-muted); }
.nv-matrix-row--head > * { font-size: var(--nv-meta-size); }
.nv-matrix-row em { color: var(--t0-text-3); }
.nv-compliance__truth {
	position: absolute;
	left: 4%;
	right: 4%;
	bottom: 6%;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 12px;
	border-left: 2px solid var(--t0-gold);
	background: var(--nv-amber-soft);
}
.nv-compliance__truth span { font-family: var(--t0-display); font-size: var(--nv-meta-size); letter-spacing: .1em; text-transform: uppercase; color: var(--t0-gold-2); }
.nv-compliance__truth strong { font-size: var(--nv-copy-size); line-height: 1.4; font-weight: 500; text-align: right; }
.nv-visual--compliance[data-nv-step="0"] .nv-compliance__summary > div:nth-child(-n+2),
.nv-visual--compliance[data-nv-step="1"] .nv-compliance__summary > div:nth-child(3),
.nv-visual--compliance[data-nv-step="2"] .nv-compliance__summary > div:nth-child(4) { border-color: rgba(var(--t0-blue-rgb), .64) !important; }
.nv-visual--compliance[data-nv-step="0"] [data-nv-matrix-step="0"],
.nv-visual--compliance[data-nv-step="1"] [data-nv-matrix-step="1"],
.nv-visual--compliance[data-nv-step="2"] [data-nv-matrix-step="2"] { background: var(--nv-teal-soft); }

/* Leadership: stable, normal-flow decision context rather than a dashboard replica. */
.nv-leadership__board {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, .88fr) minmax(250px, 1.2fr) minmax(0, .88fr);
	gap: 14px;
	align-items: stretch;
	min-height: 330px;
	padding: 26px;
}

.nv-visual--leadership .nv-scene {
	aspect-ratio: auto;
	min-height: 0;
}
.nv-leadership__column {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 12px;
}
.nv-leadership-card {
	min-width: 0;
	padding: 18px;
	text-align: left;
}
.nv-leadership-card small,
.nv-leadership-card strong,
.nv-leadership-card span { display: block; }
.nv-leadership-card small { font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-leadership-card strong { margin: 10px 0; font-size: 14px; line-height: 1.35; }
.nv-leadership-card span { font-size: var(--nv-copy-size); line-height: 1.45; color: var(--t0-muted); }
.nv-decision {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 30px;
	text-align: left;
	background: linear-gradient(145deg, rgba(var(--t0-blue-rgb), .16), rgba(var(--t0-panel-rgb), .92));
}
.nv-decision small,
.nv-decision strong { display: block; }
.nv-decision small { font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-decision strong { margin: 12px 0; font-size: clamp(18px, 2.2vw, 26px); line-height: 1.18; }
.nv-decision p { margin: 0; font-size: var(--nv-copy-size); line-height: 1.55; color: var(--t0-text-3); }
.nv-decision > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 22px; }
.nv-decision > div span { padding: 7px 9px; border: 1px solid var(--t0-line); background: var(--t0-overlay-4); font-family: var(--t0-display); font-size: var(--nv-meta-size); letter-spacing: .08em; text-transform: uppercase; color: var(--nova-text-accent); }
.nv-visual--leadership[data-nv-step="0"] .nv-leadership-card--priority,
.nv-visual--leadership[data-nv-step="0"] .nv-leadership-card--coverage,
.nv-visual--leadership[data-nv-step="1"] .nv-leadership-card--owner,
.nv-visual--leadership[data-nv-step="1"] .nv-decision,
.nv-visual--leadership[data-nv-step="2"] .nv-leadership-card--response {
	border-color: rgba(var(--t0-blue-rgb), .68) !important;
	box-shadow: 0 18px 48px -31px rgba(var(--t0-blue-rgb), .9);
}

/* Wide leadership scenes use the route field as intentional connective space. */
@container nova-visual (min-width: 761px) {
	.nv-visual--leadership .nv-leadership__board {
		grid-template-columns: minmax(145px, .82fr) minmax(270px, 1.12fr) minmax(145px, .82fr);
		column-gap: clamp(24px, 4cqi, 52px);
		row-gap: 18px;
		min-height: clamp(370px, 43cqi, 430px);
		padding: clamp(28px, 4cqi, 50px);
	}

	.nv-visual--leadership .nv-leadership__column {
		gap: clamp(16px, 2cqi, 24px);
	}

	.nv-visual--leadership .nv-leadership-card {
		padding: clamp(19px, 2.2cqi, 26px);
	}

	.nv-visual--leadership .nv-decision {
		padding: clamp(28px, 3cqi, 40px);
	}
}

/* Product journey: a focused sequence using synthetic customer-safe content. */
.nv-visual--journey .nv-scene { aspect-ratio: auto; min-height: 0; padding: 26px; }
.nv-visual--journey .nv-stages { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.nv-visual--journey .nv-stage {
	gap: 4px;
	padding-inline: 5px;
	font-size: clamp(10px, 1.05cqi, 12px) !important;
	letter-spacing: .045em;
	overflow-wrap: normal;
	word-break: normal;
}
.nv-journey__rail {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
}
.nv-journey__rail::before {
	content: none;
}
.nv-journey__rail article { position: relative; z-index: 1; display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 10px; align-content: start; min-width: 0; min-height: 172px; padding: 18px 15px; text-align: left; }
.nv-journey__rail article > span { position: relative; z-index: 1; display: grid; grid-column: 1; grid-row: 1; place-items: center; width: 30px; height: 30px; margin: 0; border: 1px solid rgba(var(--t0-blue-rgb), .55); background: var(--t0-panel); font-family: var(--t0-display); font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-journey__rail article > span::after,
.nv-flow article > span::after {
	content: "";
	position: absolute;
	inset: -5px;
	border: 1px solid var(--nv-route-live);
	opacity: 0;
	pointer-events: none;
	transform: scale(.78);
}
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-journey__rail article > span::after,
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-flow article > span::after {
	animation: nv-ring-pulse 3.2s var(--t0-ease) infinite;
}
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-journey__rail article:nth-of-type(2) > span::after,
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-flow article:nth-of-type(2) > span::after { animation-delay: -1.05s; }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-journey__rail article:nth-of-type(3) > span::after,
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-flow article:nth-of-type(3) > span::after { animation-delay: -2.1s; }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-journey__rail article:nth-of-type(4) > span::after { animation-delay: -1.55s; }
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-journey__rail article:nth-of-type(5) > span::after { animation-delay: -.5s; }
.nv-journey__rail small,
.nv-journey__rail strong,
.nv-journey__rail em { display: block; }
.nv-journey__rail small { grid-column: 2; grid-row: 1; align-self: center; min-width: 0; max-width: 100%; font-size: var(--nv-meta-size); line-height: 1.35; white-space: normal; overflow-wrap: anywhere; color: var(--nova-text-accent); }
.nv-journey__rail strong { grid-column: 1 / -1; margin: 18px 0 9px; font-size: 14px; line-height: 1.35; }
.nv-journey__rail em { grid-column: 1 / -1; font-family: var(--t0-body); font-size: var(--nv-copy-size); line-height: 1.45; letter-spacing: 0; text-transform: none; color: var(--t0-muted); }
.nv-journey__outcome { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; align-items: center; margin-top: 12px; padding: 16px 18px; border-left: 2px solid var(--nv-teal) !important; }
.nv-journey__outcome small { font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-journey__outcome strong { font-size: 14px; line-height: 1.4; font-weight: 520; }
.nv-visual--journey[data-nv-step="0"] [data-nv-journey-step="0"],
.nv-visual--journey[data-nv-step="1"] [data-nv-journey-step="1"],
.nv-visual--journey[data-nv-step="2"] [data-nv-journey-step="2"],
.nv-visual--journey[data-nv-step="3"] [data-nv-journey-step="3"],
.nv-visual--journey[data-nv-step="4"] [data-nv-journey-step="4"] { border-color: rgba(var(--t0-blue-rgb), .72) !important; background: linear-gradient(145deg, var(--nv-teal-soft), rgba(var(--t0-panel-rgb), .9)); box-shadow: 0 18px 48px -31px rgba(var(--t0-blue-rgb), .9); }

/* Detection and threat: focused product stories, never copies of a dashboard. */
.nv-visual--detection .nv-scene,
.nv-visual--hunt-validation .nv-scene,
.nv-visual--threat .nv-scene,
.nv-visual--code-security .nv-scene { min-height: 0; aspect-ratio: auto; padding: 26px; }
.nv-flow { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.nv-flow::before { content: none; }
.nv-flow article { position: relative; z-index: 1; display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 10px; align-content: start; min-width: 0; min-height: 210px; padding: 18px; text-align: left; }
.nv-flow article > span { position: relative; z-index: 1; display: grid; grid-column: 1; grid-row: 1; place-items: center; width: 32px; height: 32px; margin: 0; border: 1px solid rgba(var(--t0-blue-rgb), .54); background: var(--t0-panel); font-family: var(--t0-display); font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-flow small,
.nv-flow strong,
.nv-flow em { display: block; }
.nv-flow small { grid-column: 2; grid-row: 1; align-self: center; min-width: 0; max-width: 100%; font-size: var(--nv-meta-size); line-height: 1.35; white-space: normal; overflow-wrap: anywhere; color: var(--nova-text-accent); }
.nv-flow strong { grid-column: 1 / -1; margin: 18px 0 9px; font-size: 15px; line-height: 1.35; }
.nv-flow p { grid-column: 1 / -1; margin: 0; font-size: var(--nv-copy-size); line-height: 1.55; color: var(--t0-text-3); }
.nv-flow em { grid-column: 1 / -1; margin-top: 16px; font-size: var(--nv-meta-size); color: var(--t0-muted); }
.nv-flow__outcome { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 18px; margin-top: 14px; padding: 16px 18px; border-left: 2px solid var(--nv-teal) !important; }
.nv-flow__outcome small { font-size: var(--nv-meta-size); color: var(--nova-text-accent); }
.nv-flow__outcome strong { font-size: 14px; line-height: 1.45; font-weight: 520; }
.nv-visual--detection[data-nv-step="0"] [data-nv-flow-step="0"],
.nv-visual--detection[data-nv-step="1"] [data-nv-flow-step="1"],
.nv-visual--detection[data-nv-step="2"] [data-nv-flow-step="2"],
.nv-visual--hunt-validation[data-nv-step="0"] [data-nv-flow-step="0"],
.nv-visual--hunt-validation[data-nv-step="1"] [data-nv-flow-step="1"],
.nv-visual--hunt-validation[data-nv-step="2"] [data-nv-flow-step="2"],
.nv-visual--threat[data-nv-step="0"] [data-nv-flow-step="0"],
.nv-visual--threat[data-nv-step="1"] [data-nv-flow-step="1"],
.nv-visual--threat[data-nv-step="2"] [data-nv-flow-step="2"],
.nv-visual--code-security[data-nv-step="0"] [data-nv-flow-step="0"],
.nv-visual--code-security[data-nv-step="1"] [data-nv-flow-step="1"],
.nv-visual--code-security[data-nv-step="2"] [data-nv-flow-step="2"] { border-color: rgba(var(--t0-blue-rgb), .72) !important; background: linear-gradient(145deg, var(--nv-teal-soft), rgba(var(--t0-panel-rgb), .9)); box-shadow: 0 18px 48px -31px rgba(var(--t0-blue-rgb), .9); }

.nv-flow--hunt-validation article:nth-of-type(2) {
	border-color: rgba(138, 113, 231, .42) !important;
	background:
		radial-gradient(circle at 82% 14%, rgba(138, 113, 231, .12), transparent 45%),
		rgba(var(--t0-panel-rgb), .9);
}

.nv-flow--hunt-validation article:nth-of-type(2) > span {
	border-color: rgba(138, 113, 231, .76);
	box-shadow: 0 0 22px -9px rgba(138, 113, 231, .9);
}

[data-theme="light"] .nv-flow--hunt-validation article:nth-of-type(2) {
	border-color: #9281c7 !important;
	background: #faf8ff;
}

/* Light product scenes use deliberate surface hierarchy instead of a wireframe wash. */
[data-theme="light"] .nv-visual {
	border-color: #9fb2ae;
	border-radius: 4px;
	box-shadow: 0 30px 72px -42px rgba(7, 34, 29, .38), 0 8px 24px rgba(7, 21, 18, .07);
}

[data-theme="light"] .nv-visual__header {
	border-bottom-color: #cbd6d3;
	background: #ffffff;
	box-shadow: 0 12px 30px -28px rgba(7, 34, 29, .52);
}

[data-theme="light"] .nv-stages {
	border-color: #b8c7c4;
	background: #edf2f0;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

[data-theme="light"] .nv-stage {
	min-height: 44px;
	font-weight: 500;
}

[data-theme="light"] .nv-scene {
	background:
		radial-gradient(ellipse at 18% 14%, rgba(0, 127, 120, .07), transparent 34%),
		radial-gradient(ellipse at 82% 86%, rgba(7, 21, 18, .045), transparent 38%),
		linear-gradient(145deg, #fbfcfc 0%, #f3f6f5 56%, #edf2f0 100%);
	box-shadow: inset 0 1px 0 #ffffff, inset 0 0 0 1px rgba(7, 21, 18, .025);
}

[data-theme="light"] .nv-grid {
	display: none;
}

[data-theme="light"] :is(
	.nv-source,
	.nv-state,
	.nv-path-node,
	.nv-queue-card,
	.nv-assessment-card,
	.nv-leadership-card,
	.nv-compliance__summary > div,
	.nv-investigation__timeline > div,
	.nv-triage__signals > div,
	.nv-journey__rail article,
	.nv-flow article
) {
	border-color: #aebfbb !important;
	border-radius: 3px;
	background: #ffffff;
	box-shadow: inset 3px 0 0 rgba(var(--t0-blue-rgb), .15), 0 12px 30px -22px rgba(7, 34, 29, .38), 0 2px 6px rgba(7, 21, 18, .045);
}

[data-theme="light"] :is(
	.nv-source,
	.nv-state,
	.nv-path-node,
	.nv-queue-card,
	.nv-assessment-card,
	.nv-leadership-card,
	.nv-compliance__summary > div,
	.nv-investigation__timeline > div,
	.nv-triage__signals > div,
	.nv-journey__rail article,
	.nv-flow article
):is(:hover, :focus-within) {
	border-color: #5d8c86 !important;
	background: #ffffff;
	box-shadow: inset 3px 0 0 var(--nova-primary), 0 18px 38px -24px rgba(7, 45, 38, .46), 0 3px 10px rgba(7, 21, 18, .07);
}

[data-theme="light"] :is(
	.nv-source,
	.nv-state,
	.nv-path-node,
	.nv-queue-card,
	.nv-assessment-card,
	.nv-leadership-card,
	.nv-compliance__summary > div,
	.nv-investigation__timeline > div,
	.nv-triage__signals > div,
	.nv-journey__rail article,
	.nv-flow article
) strong {
	color: #071512;
	font-weight: 600;
}

[data-theme="light"] :is(.nv-hub, .nv-context-wheel) {
	border-color: #00635e !important;
	background: linear-gradient(145deg, #0c3833 0%, #006b65 100%);
	color: #ffffff;
	box-shadow: 0 24px 48px -28px rgba(0, 82, 76, .68), inset 0 1px 0 rgba(255, 255, 255, .12);
}

[data-theme="light"] :is(.nv-hub, .nv-context-wheel):is(:hover, :focus-within) {
	border-color: #004f4b !important;
	background: linear-gradient(145deg, #0a312d 0%, #005e59 100%);
	box-shadow: 0 28px 56px -28px rgba(0, 72, 67, .76), inset 0 1px 0 rgba(255, 255, 255, .14);
}

[data-theme="light"] .nv-hub :is(small, strong, em),
[data-theme="light"] .nv-context-wheel strong,
[data-theme="light"] .nv-context-wheel__facets span {
	color: #ffffff;
}

[data-theme="light"] .nv-hub__ring {
	border-color: rgba(255, 255, 255, .5);
	box-shadow: inset 0 0 24px rgba(0, 0, 0, .13), 0 0 24px rgba(0, 127, 120, .28);
}

[data-theme="light"] .nv-decision p {
	color: #ffffff;
}

[data-theme="light"] .nv-decision > div span {
	border-color: rgba(255, 255, 255, .46);
	background: rgba(0, 0, 0, .13);
}

[data-theme="light"] .nv-next-step,
[data-theme="light"] :is(.nv-journey__outcome, .nv-flow__outcome) {
	border-color: #16433e !important;
	border-radius: 3px;
	background: #0b2521;
	color: #ffffff;
	box-shadow: 0 20px 42px -28px rgba(7, 34, 29, .66);
}

[data-theme="light"] .nv-next-step:is(:hover, :focus-within),
[data-theme="light"] :is(.nv-journey__outcome, .nv-flow__outcome):is(:hover, :focus-within) {
	border-color: #006b65 !important;
	background: #0b2521;
	color: #ffffff;
}

[data-theme="light"] .nv-next-step :is(small, strong, span),
[data-theme="light"] :is(.nv-journey__outcome, .nv-flow__outcome) :is(small, strong) {
	color: #ffffff;
}

[data-theme="light"] .nv-next-step :is(small, span),
[data-theme="light"] :is(.nv-journey__outcome, .nv-flow__outcome) small {
	color: #77d1c9;
}

[data-theme="light"] .nv-evidence-dock span {
	border-color: #9fb4b0;
	border-radius: 2px;
	background: #ffffff;
	color: #29443f;
	box-shadow: 0 8px 18px -15px rgba(7, 34, 29, .5);
}

[data-theme="light"] .nv-compliance__matrix {
	border-color: #aebfbb;
	border-radius: 3px;
	background: #ffffff;
	box-shadow: 0 14px 30px -24px rgba(7, 34, 29, .46);
}

[data-theme="light"] .nv-matrix-row--head {
	background: #e8efed;
	color: #29443f;
}

[data-theme="light"] .nv-visual--triage[data-nv-step="2"] .nv-queue-card:not(.is-priority) {
	opacity: 1;
	border-color: #cad5d2 !important;
	background: #f2f5f4;
	box-shadow: none;
}

[data-theme="light"] .nv-visual--triage[data-nv-step="2"] .nv-queue-card.is-priority {
	border-color: #00635e !important;
	background: linear-gradient(145deg, #087e76 0%, #00635e 100%);
	box-shadow: 0 18px 38px -24px rgba(0, 82, 76, .68);
}

[data-theme="light"] .nv-visual--triage[data-nv-step="2"] .nv-queue-card.is-priority :is(small, strong, em) {
	color: #ffffff;
}

[data-theme="light"] .nv-visual--investigation .nv-scene {
	height: clamp(390px, 31cqi, 480px);
	min-height: 390px;
}

@keyframes nv-route-flow {
	from { stroke-dashoffset: 1; }
	to { stroke-dashoffset: 0; }
}

@keyframes nv-route-live {
	from { stroke-dashoffset: 0; }
	to { stroke-dashoffset: -.16; }
}

@keyframes nv-route-packet {
	0% { opacity: 0; stroke-dashoffset: 1; }
	10%, 78% { opacity: var(--nv-packet-opacity, .9); }
	96%, 100% { opacity: 0; stroke-dashoffset: 0; }
}

@keyframes nv-endpoint-pulse {
	0%, 100% { opacity: .58; transform: scale(.82); }
	45% { opacity: 1; transform: scale(1.3); }
	70% { opacity: .7; transform: scale(1); }
}

@keyframes nv-node-pulse {
	0%, 100% { box-shadow: 0 0 0 3px var(--t0-panel), 0 0 0 4px currentColor; }
	55% { box-shadow: 0 0 0 3px var(--t0-panel), 0 0 0 9px transparent; }
}

@keyframes nv-ring-pulse {
	0%, 100% { opacity: 0; transform: scale(.78); }
	28% { opacity: .68; }
	68% { opacity: 0; transform: scale(1.18); }
}

@keyframes nv-line-live-x {
	from { background-position: 120% 0; }
	to { background-position: -120% 0; }
}

@keyframes nv-line-live-y {
	from { background-position: 0 120%; }
	to { background-position: 0 -120%; }
}

.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-journey__rail::before,
.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-flow::before {
	animation: nv-line-live-x 3.8s linear infinite;
}

.nv-visual.is-enhanced.is-motion-safe.is-in-view .nv-investigation__timeline::before {
	animation: nv-line-live-y 3.5s linear infinite;
}

/* Hover or keyboard focus pauses every flow layer without resetting its position. */
.nv-visual.is-flow-paused *,
.nv-visual.is-flow-paused *::before,
.nv-visual.is-flow-paused *::after {
	animation-play-state: paused !important;
}

@keyframes nv-scan {
	0%, 24% { transform: translateX(-100%); }
	55%, 100% { transform: translateX(100%); }
}

/* Keep the compact investigation board in document flow before its cards can overlap. */
@container nova-visual (max-width: 900px) {
	.nv-visual--investigation .nv-scene {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		height: auto;
		min-height: 0;
		column-gap: 18px;
		row-gap: clamp(64px, 8cqi, 88px);
		padding: 20px;
	}

	[data-theme="light"] .nv-visual--investigation .nv-scene {
		height: auto;
		min-height: 0;
	}

	.nv-visual--investigation :is(.nv-investigation__timeline, .nv-investigation__assessment, .nv-next-step) {
		position: relative;
		inset: auto;
		width: auto;
	}

	.nv-visual--investigation .nv-investigation__timeline::before { display: none; }
	.nv-visual--investigation .nv-next-step {
		grid-column: 1 / -1;
		min-height: 86px;
		padding: 17px 18px;
	}
}

@container nova-visual (max-width: 760px) {
	.nv-visual__header {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 20px;
	}

	.nv-visual__intro {
		grid-template-columns: minmax(150px, 190px) minmax(0, 1fr);
		column-gap: 20px;
	}

	.nv-stages {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		width: 100%;
	}

	.nv-stage {
		justify-content: center;
		min-width: 0;
		white-space: normal;
		text-align: center;
	}

	.nv-flow { grid-template-columns: 1fr; }
	.nv-flow::before { display: none; }
	.nv-flow article { min-height: 0; }
	.nv-flow__outcome { grid-template-columns: 1fr; gap: 8px; }

	.nv-scene {
		display: grid;
		min-height: 0;
		aspect-ratio: auto;
		gap: 18px;
		padding: 20px;
	}

	.nv-coverage__sources,
	.nv-coverage__posture,
	.nv-triage__signals,
	.nv-triage__queue,
	.nv-investigation__timeline,
	.nv-investigation__assessment,
	.nv-next-step,
	.nv-compliance__summary,
	.nv-compliance__matrix,
	.nv-compliance__truth,
	.nv-evidence-dock,
	.nv-path-node,
	.nv-hub,
	.nv-context-wheel,
	.nv-decision {
		position: relative;
		inset: auto;
		left: auto;
		right: auto;
		top: auto;
		bottom: auto;
		width: auto;
		transform: none;
	}

	:is(.nv-hub, .nv-context-wheel, .nv-decision, .nv-path-node):not(.nv-route-port):hover {
		transform: translateY(-2px);
	}

	.nv-visual--coverage .nv-scene,
	.nv-visual--triage .nv-scene {
		grid-template-columns: minmax(0, 1fr) 132px minmax(0, 1fr);
		align-items: center;
	}

	.nv-hub,
	.nv-context-wheel {
		width: 132px;
		height: 132px;
		margin: auto;
	}

	.nv-hub { padding: 18px; }
	.nv-context-wheel { padding: 11px; }

	.nv-visual--attack-path .nv-scene {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* The second graph leg crosses the stacked resource card in compact embeds. */
	.nv-visual--attack-path :is(
		.nv-route--compact-optional,
		.nv-route-trace--compact-optional,
		.nv-route-packet--compact-optional,
		.nv-route-endpoint--compact-optional
	) {
		display: none;
	}

	.nv-path-node {
		min-height: 138px;
		padding: 16px;
	}

	.nv-path-node--resource,
	.nv-evidence-dock { grid-column: 1 / -1; }

	.nv-evidence-dock {
		display: flex;
		justify-content: flex-start;
		flex-wrap: wrap;
	}

	.nv-visual--investigation .nv-scene {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		height: auto;
		min-height: 0;
	}

	.nv-investigation__timeline::before { display: none; }

	.nv-next-step {
		grid-column: 1 / -1;
	}

	.nv-compliance__summary {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nv-compliance__matrix { overflow: hidden; }

	.nv-matrix-row {
		min-width: 0;
		grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, .9fr);
	}

	.nv-matrix-row > * {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	.nv-leadership__board {
		display: grid;
		grid-template-columns: 1fr;
		gap: 44px;
		min-height: 0;
		padding: 20px;
	}

	.nv-leadership__column {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
	}

	.nv-decision {
		grid-row: 2;
		width: 100%;
		margin: 0;
		padding: 24px;
	}

	.nv-visual--journey .nv-stages,
	.nv-journey__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nv-journey__rail::before { display: none; }
	.nv-journey__rail article { min-height: 150px; }
}

@container nova-visual (max-width: 500px) {
	.nv-visual__header,
	.nv-scene { padding: 16px; }

	.nv-visual__intro { display: block; }
	.nv-visual__eyebrow { margin: 0 0 10px; }
	.nv-visual__header h3 { margin-bottom: 6px; }

	.nv-stages,
	.nv-visual--coverage .nv-scene,
	.nv-visual--triage .nv-scene,
	.nv-visual--attack-path .nv-scene,
	.nv-visual--investigation .nv-scene,
	.nv-compliance__summary,
	.nv-leadership__column,
	.nv-visual--journey .nv-stages,
	.nv-journey__rail {
		grid-template-columns: 1fr;
	}

	.nv-routes { display: none; }

	.nv-stage {
		justify-content: flex-start;
		min-height: 42px;
		padding: 9px 10px;
		text-align: left;
	}

	.nv-path-node--resource,
	.nv-evidence-dock,
	.nv-next-step { grid-column: auto; }

	.nv-hub,
	.nv-context-wheel {
		width: 150px;
		height: 150px;
	}

	.nv-assessment-card {
		display: block;
		width: 100%;
		min-height: 72px;
		margin-right: 0;
	}

	.nv-next-step {
		display: grid;
		grid-template-columns: 1fr;
	}

	.nv-next-step span {
		grid-column: 1;
		grid-row: auto;
		margin-top: 6px;
	}

	.nv-compliance__truth {
		align-items: flex-start;
		flex-direction: column;
	}

	.nv-compliance__truth strong { text-align: left; }

	.nv-leadership__board { padding: 16px; }
	.nv-decision { padding: 20px; }
	.nv-decision strong { font-size: 20px; }
	.nv-journey__outcome { grid-template-columns: 1fr; gap: 8px; }

}

/* Keep diagram topology stable in Arabic while allowing every content card to read RTL. */
html[lang="ar"] :is(
	.nv-visual--coverage,
	.nv-visual--attack-path,
	.nv-visual--triage,
	.nv-visual--investigation,
	.nv-visual--compliance,
	.nv-visual--code-security,
	.nv-visual--detection,
	.nv-visual--hunt-validation,
	.nv-visual--threat,
	.nv-visual--journey,
	.nv-visual--leadership
) .nv-scene {
	direction: ltr;
}

html[lang="ar"] :is(
	.nv-visual--coverage,
	.nv-visual--attack-path,
	.nv-visual--triage,
	.nv-visual--investigation,
	.nv-visual--compliance,
	.nv-visual--code-security,
	.nv-visual--detection,
	.nv-visual--hunt-validation,
	.nv-visual--threat,
	.nv-visual--journey,
	.nv-visual--leadership
) :is(
	article,
	.nv-label,
	.nv-source,
	.nv-state,
	.nv-hub,
	.nv-context-wheel,
	.nv-queue-card,
	.nv-assessment-card,
	.nv-next-step,
	.nv-compliance__summary,
	.nv-compliance__matrix,
	.nv-compliance__truth,
	.nv-flow__outcome,
	.nv-journey__outcome,
	.nv-evidence-dock,
	.nv-decision
) {
	direction: rtl;
	text-align: start;
}

/* Viewport fallback for browsers without style-container query support. */
@media (max-width: 760px) {
	.nv-visual__header { grid-template-columns: 1fr; gap: 16px; }
	.nv-visual__intro { grid-template-columns: minmax(150px, 190px) minmax(0, 1fr); column-gap: 20px; }
	.nv-visual--attack-path :is(
		.nv-route--compact-optional,
		.nv-route-trace--compact-optional,
		.nv-route-packet--compact-optional,
		.nv-route-endpoint--compact-optional
	) { display: none; }
	.nv-leadership__board { grid-template-columns: 1fr; min-height: 0; }
	.nv-leadership__column { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
	.nv-decision { grid-row: 2; }
	.nv-visual--journey .nv-stages,
	.nv-journey__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nv-journey__rail::before { display: none; }
}

@media (max-width: 520px) {
	.nv-visual__intro { display: block; }
	.nv-visual__eyebrow { margin: 0 0 10px; }
	.nv-visual__header h3 { margin-bottom: 6px; }
	.nv-leadership__column,
	.nv-visual--journey .nv-stages,
	.nv-journey__rail { grid-template-columns: 1fr; }
	.nv-journey__outcome { grid-template-columns: 1fr; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.nv-visual *,
	.nv-visual *::before,
	.nv-visual *::after {
		scroll-behavior: auto !important;
		animation: none !important;
		transition: none !important;
	}

	.nv-scene::after,
	.nv-route-trace,
	.nv-route-packet { display: none !important; }
}
