/* dsc-design 0.2.0: the new home page ("the control room at night"). Loaded after design.css, only while the layer is
   active. EVERY rule is scoped under body.dsd and the page's own `dsdh-` classes, so nothing here can touch another page.
   The markup (dsc_home_v2.py) carries class names only; every colour, size and space below is a token from tokens.css.
   Selectors are prefixed `body.dsd #page-container` and use !important only where Divi's per-module CSS or design.css's
   own !important rules would win. Divi modules are matched by their stable classes (.et_pb_text_inner, .et_pb_button ...).
   Spec: docs/DSC-SITE-ART-DIRECTION.md. */

body.dsd {
	--dsdh-max: 1200px;
	--dsdh-gutter: 24px;
	--dsdh-pad: 96px;
}

/* The hero owns the grid wash (fading down); the sitewide fixed wash from design.css steps aside on this page. */
body.dsd-home::before {
	display: none;
}

/* One ground, edge to edge: the older chrome paints #0c1220 on body and the Divi wrappers, which showed as gutters. */
body.dsd-home,
body.dsd-home :is(#page-container, #et-boc, #et-main-area, #main-content, .et-l, .et_builder_inner_content, .et_pb_post_content, .et_pb_section_0_tb_body) {
	background: var(--dsc-bg) !important;
}

/* ---------- sections: open on the ground, 96 px rhythm ---------- */

body.dsd #page-container .dsdh-sec {
	position: relative;
	background: var(--dsc-bg) !important;
	padding: var(--dsdh-pad) 0 !important;
	margin: 0 !important;
	overflow-x: clip;
	color: var(--dsc-muted-long);
}
body.dsd #page-container .dsdh-story + .dsdh-sec::before {
	display: none;
}
/* Section break: the horizon. A hairline that fades out at both ends, carrying the day in miniature at its centre:
   a ruler of 24 hour ticks, the lamp's sunrise-to-dusk curve (night violet into day amber and back) with a soft glow
   under it, teal lights-on and lights-off marks, and the marker resting at midday. The decal keeps its own size (it is
   never stretched), so it reads the same at every width. */
body.dsd #page-container .dsdh-sec:not(.dsdh-hero):not(.dsdh-strip):not(.dsdh-story)::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: min(var(--dsdh-max), calc(100% - 2 * var(--dsdh-gutter)));
	height: calc(48px * var(--dsdh-k, 1) + 8px);
	transform: translateX(-50%);



	background:
		radial-gradient(circle, var(--dsc-bg) 0 1.8px, var(--dsc-warn) 2.2px 3.6px, rgba(255, 183, 77, 0.28) 4.2px, rgba(255, 183, 77, 0) 11px)
			calc(50% + var(--dsdh-mx, 0px) * var(--dsdh-k, 1)) calc(100% - (48px - var(--dsdh-my, 10px)) * var(--dsdh-k, 1) + 12px) / 24px 24px no-repeat,
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='736' height='48' viewBox='0 0 736 48'%3E%3Cdefs%3E%3ClinearGradient id='l' gradientUnits='userSpaceOnUse' x1='188.0' y1='0' x2='548.0' y2='0'%3E%3Cstop offset='0' stop-color='%23a78bfa'/%3E%3Cstop offset='.2' stop-color='%23ffb74d'/%3E%3Cstop offset='.8' stop-color='%23ffb74d'/%3E%3Cstop offset='1' stop-color='%23a78bfa'/%3E%3C/linearGradient%3E%3ClinearGradient id='f' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23ffb74d' stop-opacity='.2'/%3E%3Cstop offset='1' stop-color='%23ffb74d' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M38.5 44v3M68.5 44v3M98.5 44v3M128.5 44v3M158.5 44v3M218.5 44v3M248.5 44v3M278.5 44v3M308.5 44v3M338.5 44v3M398.5 44v3M428.5 44v3M458.5 44v3M488.5 44v3M518.5 44v3M578.5 44v3M608.5 44v3M638.5 44v3M668.5 44v3M698.5 44v3' stroke='%235a6a86' stroke-opacity='.55'/%3E%3Cpath d='M8.5 41v6M368.5 41v6M728.5 41v6' stroke='%235a6a86'/%3E%3Cpath d='M188.5 38v9M548.5 38v9' stroke='%2326c6da'/%3E%3Cpath d='M188.0 47.0 C189.2 46.9 193.0 46.7 195.5 46.2 C198.0 45.7 200.5 44.8 203.0 43.9 C205.5 42.9 208.0 41.7 210.5 40.4 C213.0 39.1 215.5 37.6 218.0 36.1 C220.5 34.6 223.0 32.9 225.5 31.3 C228.0 29.6 230.5 27.9 233.0 26.3 C235.5 24.7 238.0 23.0 240.5 21.6 C243.0 20.1 245.5 18.7 248.0 17.5 C250.5 16.3 253.0 15.3 255.5 14.6 C258.0 13.8 260.5 13.5 263.0 13.2 C265.5 12.9 268.0 12.9 270.5 12.8 C273.0 12.6 275.5 12.5 278.0 12.4 C280.5 12.3 283.0 12.1 285.5 12.0 C288.0 11.9 290.5 11.8 293.0 11.7 C295.5 11.6 298.0 11.5 300.5 11.4 C303.0 11.3 305.5 11.2 308.0 11.1 C310.5 11.0 313.0 10.9 315.5 10.8 C318.0 10.8 320.5 10.7 323.0 10.6 C325.5 10.6 328.0 10.5 330.5 10.4 C333.0 10.4 335.5 10.3 338.0 10.3 C340.5 10.2 343.0 10.2 345.5 10.2 C348.0 10.1 350.5 10.1 353.0 10.1 C355.5 10.0 358.0 10.0 360.5 10.0 C363.0 10.0 365.5 10.0 368.0 10.0 C370.5 10.0 373.0 10.0 375.5 10.0 C378.0 10.0 380.5 10.0 383.0 10.1 C385.5 10.1 388.0 10.1 390.5 10.2 C393.0 10.2 395.5 10.2 398.0 10.3 C400.5 10.3 403.0 10.4 405.5 10.4 C408.0 10.5 410.5 10.6 413.0 10.6 C415.5 10.7 418.0 10.8 420.5 10.8 C423.0 10.9 425.5 11.0 428.0 11.1 C430.5 11.2 433.0 11.3 435.5 11.4 C438.0 11.5 440.5 11.6 443.0 11.7 C445.5 11.8 448.0 11.9 450.5 12.0 C453.0 12.1 455.5 12.3 458.0 12.4 C460.5 12.5 463.0 12.6 465.5 12.8 C468.0 12.9 470.5 12.9 473.0 13.2 C475.5 13.5 478.0 13.8 480.5 14.6 C483.0 15.3 485.5 16.3 488.0 17.5 C490.5 18.7 493.0 20.1 495.5 21.6 C498.0 23.0 500.5 24.7 503.0 26.3 C505.5 27.9 508.0 29.6 510.5 31.3 C513.0 32.9 515.5 34.6 518.0 36.1 C520.5 37.6 523.0 39.1 525.5 40.4 C528.0 41.7 530.5 42.9 533.0 43.9 C535.5 44.8 538.0 45.7 540.5 46.2 C543.0 46.7 546.8 46.9 548.0 47.0 Z' fill='url(%23f)'/%3E%3Cpath d='M188.0 47.0 C189.2 46.9 193.0 46.7 195.5 46.2 C198.0 45.7 200.5 44.8 203.0 43.9 C205.5 42.9 208.0 41.7 210.5 40.4 C213.0 39.1 215.5 37.6 218.0 36.1 C220.5 34.6 223.0 32.9 225.5 31.3 C228.0 29.6 230.5 27.9 233.0 26.3 C235.5 24.7 238.0 23.0 240.5 21.6 C243.0 20.1 245.5 18.7 248.0 17.5 C250.5 16.3 253.0 15.3 255.5 14.6 C258.0 13.8 260.5 13.5 263.0 13.2 C265.5 12.9 268.0 12.9 270.5 12.8 C273.0 12.6 275.5 12.5 278.0 12.4 C280.5 12.3 283.0 12.1 285.5 12.0 C288.0 11.9 290.5 11.8 293.0 11.7 C295.5 11.6 298.0 11.5 300.5 11.4 C303.0 11.3 305.5 11.2 308.0 11.1 C310.5 11.0 313.0 10.9 315.5 10.8 C318.0 10.8 320.5 10.7 323.0 10.6 C325.5 10.6 328.0 10.5 330.5 10.4 C333.0 10.4 335.5 10.3 338.0 10.3 C340.5 10.2 343.0 10.2 345.5 10.2 C348.0 10.1 350.5 10.1 353.0 10.1 C355.5 10.0 358.0 10.0 360.5 10.0 C363.0 10.0 365.5 10.0 368.0 10.0 C370.5 10.0 373.0 10.0 375.5 10.0 C378.0 10.0 380.5 10.0 383.0 10.1 C385.5 10.1 388.0 10.1 390.5 10.2 C393.0 10.2 395.5 10.2 398.0 10.3 C400.5 10.3 403.0 10.4 405.5 10.4 C408.0 10.5 410.5 10.6 413.0 10.6 C415.5 10.7 418.0 10.8 420.5 10.8 C423.0 10.9 425.5 11.0 428.0 11.1 C430.5 11.2 433.0 11.3 435.5 11.4 C438.0 11.5 440.5 11.6 443.0 11.7 C445.5 11.8 448.0 11.9 450.5 12.0 C453.0 12.1 455.5 12.3 458.0 12.4 C460.5 12.5 463.0 12.6 465.5 12.8 C468.0 12.9 470.5 12.9 473.0 13.2 C475.5 13.5 478.0 13.8 480.5 14.6 C483.0 15.3 485.5 16.3 488.0 17.5 C490.5 18.7 493.0 20.1 495.5 21.6 C498.0 23.0 500.5 24.7 503.0 26.3 C505.5 27.9 508.0 29.6 510.5 31.3 C513.0 32.9 515.5 34.6 518.0 36.1 C520.5 37.6 523.0 39.1 525.5 40.4 C528.0 41.7 530.5 42.9 533.0 43.9 C535.5 44.8 538.0 45.7 540.5 46.2 C543.0 46.7 546.8 46.9 548.0 47.0' fill='none' stroke='url(%23l)' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center bottom / calc(736px * var(--dsdh-k, 1)) auto no-repeat,
		linear-gradient(90deg, transparent, var(--dsc-line) 14%, var(--dsc-line) 86%, transparent) center bottom / 100% 1px no-repeat;
	pointer-events: none;
}

/* The marker moves through the day as the page goes down: sunrise, morning, midday, afternoon, dusk, then round again.
   Points are on the decal's own curve (x from its centre, y from its top, in decal pixels). */
body.dsd #page-container .dsdh-sec:nth-of-type(5n + 1)::before { --dsdh-mx: -142.5px; --dsdh-my: 31.3px; }
body.dsd #page-container .dsdh-sec:nth-of-type(5n + 2)::before { --dsdh-mx: -90.0px; --dsdh-my: 12.4px; }
body.dsd #page-container .dsdh-sec:nth-of-type(5n + 3)::before { --dsdh-mx: 0.0px; --dsdh-my: 10.0px; }
body.dsd #page-container .dsdh-sec:nth-of-type(5n + 4)::before { --dsdh-mx: 90.0px; --dsdh-my: 12.4px; }
body.dsd #page-container .dsdh-sec:nth-of-type(5n)::before { --dsdh-mx: 142.5px; --dsdh-my: 31.3px; }
@media (max-width: 480px) {
	body.dsd #page-container .dsdh-sec::before { --dsdh-k: 0.43; }
}

body.dsd #page-container .dsdh-row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	align-items: start;
	width: min(var(--dsdh-max), calc(100% - 2 * var(--dsdh-gutter))) !important;
	max-width: none !important;
	margin: 0 auto !important;
	padding: 0 !important;
	position: relative;
}
/* Only the hero row sits above its grid wash. Any other stacking context here would isolate the logo blend. */
body.dsd #page-container .dsdh-hero .dsdh-row {
	z-index: 1;
}
body.dsd #page-container .dsdh-row > .et_pb_column {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	text-align: left !important;
}
/* design.css pads a lone text module in a multi-column row (24 px sides); the dsdh columns own their padding. */
body.dsd #page-container .dsdh-row.dsdh-row.dsdh-row.et_pb_row > .et_pb_column > .et_pb_text:only-child {
	padding: 0 !important;
}
body.dsd #page-container .dsdh-row > .et_pb_column > .et_pb_module,
body.dsd #page-container .dsdh-row > .et_pb_column > .et_pb_group {
	box-sizing: border-box;
	margin: 0 !important;
	width: 100%;
	max-width: 100%;
}
body.dsd #page-container .dsdh-row--head {
	margin-bottom: 48px !important;
}
body.dsd #page-container .dsdh-row--foot {
	margin-top: 40px !important;
}
body.dsd #page-container .dsdh-row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
body.dsd #page-container .dsdh-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }

/* dashboard frames: the first is the lead image and spans the row */
body.dsd #page-container .dsdh-row--frames { gap: 16px; }
body.dsd #page-container .dsdh-row--frames > .dsdh-frame:first-child { grid-column: 1 / -1; }
body.dsd #page-container .dsdh-row--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
body.dsd #page-container .dsdh-row--hero { grid-template-columns: minmax(0, 1fr) minmax(560px, 620px); gap: 48px; align-items: center; }
body.dsd #page-container .dsdh-row--split { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: center; }
body.dsd #page-container .dsdh-row--story { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 64px; align-items: center; }

/* ---------- type ---------- */

body.dsd #page-container .dsdh-sec :is(h1, h2, h3, h4) {
	font-family: var(--dsc-font) !important;
	color: var(--dsc-text) !important;
	font-weight: 600 !important;
	letter-spacing: -0.02em;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}
body.dsd #page-container .dsdh-h1 h1.et_pb_module_header {
	font-size: clamp(60px, 7vw, 100px) !important;
	line-height: 0.94 !important;
	letter-spacing: -0.04em !important;
	text-wrap: balance;
}
body.dsd #page-container .dsdh-h1 .dsdh-w {
	display: block;
}
body.dsd #page-container .dsdh-h1 .dsdh-accent {
	color: var(--dsc-accent);
}
body.dsd #page-container .dsdh-h2 h2.et_pb_module_header {
	font-size: clamp(30px, 3.8vw, 48px) !important;
	line-height: 1.06 !important;
	letter-spacing: -0.03em !important;
	max-width: 22ch;
	text-wrap: balance;
}
body.dsd #page-container .dsdh-h2--story h2.et_pb_module_header {
	max-width: none;
	font-size: clamp(28px, 3.2vw, 40px) !important;
}
body.dsd #page-container .dsdh-h2--story .dsdh-l {
	display: block;
}
body.dsd #page-container .dsdh-h2--story .dsdh-l + .dsdh-l {
	color: var(--dsc-muted-long);
}
body.dsd #page-container .dsdh-h3 h3.et_pb_module_header {
	font-size: 20px !important;
	line-height: 1.25 !important;
	letter-spacing: -0.01em !important;
}
body.dsd #page-container .dsdh-sec .et_pb_text_inner,
body.dsd #page-container .dsdh-sec .et_pb_text_inner p {
	font-family: var(--dsc-font);
	color: var(--dsc-muted-long);
	font-size: 16px;
	line-height: 1.6;
	text-align: left;
}
body.dsd #page-container .dsdh-sec .et_pb_text_inner p {
	margin: 0 0 12px;
	padding: 0;
}
body.dsd #page-container .dsdh-sec .et_pb_text_inner > :last-child {
	margin-bottom: 0;
}
body.dsd #page-container .dsdh-eyebrow .et_pb_text_inner p {
	font-family: var(--dsc-mono);
	font-size: 12px;
	line-height: 1.4;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--dsc-accent);
	margin: 0;
}
body.dsd #page-container .dsdh-lead .et_pb_text_inner p {
	font-size: clamp(17px, 1.5vw, 20px);
	line-height: 1.55;
	max-width: 60ch;
	text-wrap: pretty;
}
body.dsd #page-container .dsdh-fine .et_pb_text_inner p {
	font-family: var(--dsc-mono);
	font-size: 12px;
	line-height: 1.6;
	color: var(--dsc-muted);
	max-width: 70ch;
}
/* In-text links: the one blue. */
body.dsd #page-container .dsdh-sec .et_pb_text_inner a {
	color: var(--dsc-link);
	text-decoration: none;
	border-bottom: 1px solid rgba(79, 157, 255, 0.35);
}
body.dsd #page-container .dsdh-sec .et_pb_text_inner a:hover {
	color: var(--dsc-accent-hover);
	border-bottom-color: currentColor;
}
body.dsd #page-container .dsdh-sec code {
	font-family: var(--dsc-mono);
	font-size: 0.92em;
	color: var(--dsc-text);
}

/* ---------- buttons: one filled teal per view, every other one a hairline outline ---------- */

body.dsd #page-container .dsdh-actions {
	display: flex !important;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 0 !important;
	margin: 8px 0 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
}
body.dsd #page-container .dsdh-actions .et_pb_button_module_wrapper {
	margin: 0 !important;
	width: auto !important;
}
body.dsd #page-container :is(.dsdh-btn--primary.et_pb_button, .dsdh-btn--primary .et_pb_button),
body.dsd #page-container :is(.dsdh-btn--ghost.et_pb_button, .dsdh-btn--ghost .et_pb_button) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 48px;
	padding: 0 24px !important;
	font-family: var(--dsc-font) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.1 !important;
	letter-spacing: 0 !important;
	border-radius: var(--dsc-r-btn) !important;
	border-width: 1px !important;
	border-style: solid !important;
	white-space: nowrap;
	text-decoration: none;
}
body.dsd #page-container :is(.dsdh-btn--primary.et_pb_button, .dsdh-btn--primary .et_pb_button) {
	background: var(--dsc-accent) !important;
	border-color: var(--dsc-accent) !important;
	color: var(--dsc-on-accent) !important;
}
body.dsd #page-container :is(.dsdh-btn--primary.et_pb_button, .dsdh-btn--primary .et_pb_button):hover {
	background: var(--dsc-accent-hover) !important;
	border-color: var(--dsc-accent-hover) !important;
	color: var(--dsc-on-accent) !important;
}
body.dsd #page-container :is(.dsdh-btn--ghost.et_pb_button, .dsdh-btn--ghost .et_pb_button) {
	background: transparent !important;
	border-color: var(--dsc-line-strong) !important;
	color: var(--dsc-text) !important;
}
body.dsd #page-container :is(.dsdh-btn--ghost.et_pb_button, .dsdh-btn--ghost .et_pb_button):hover {
	background: transparent !important;
	border-color: var(--dsc-accent) !important;
	color: var(--dsc-accent) !important;
}
body.dsd #page-container :is(.dsdh-btn--primary, .dsdh-btn--ghost) .et_pb_button::after,
body.dsd #page-container :is(.dsdh-btn--primary, .dsdh-btn--ghost).et_pb_button::after {
	display: none !important;
}

/* ---------- 1. hero ---------- */

body.dsd #page-container .dsdh-hero {
	padding-top: 72px !important;
	padding-bottom: var(--dsdh-pad) !important;
}
/* Grid wash: the app's 32 px grid at 3 % teal, fading out down the hero. Static. */
body.dsd #page-container .dsdh-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		linear-gradient(var(--dsc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--dsc-grid-line) 1px, transparent 1px);
	background-size: var(--dsc-grid-size) var(--dsc-grid-size);
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0.55) 45%, transparent 100%);
	mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0.55) 45%, transparent 100%);
}
body.dsd #page-container .dsdh-col--hero {
	gap: 24px !important;
}
body.dsd #page-container .dsdh-stamp .et_pb_text_inner p {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 8px 14px;
	border: 1px solid var(--dsc-line);
	border-radius: 999px;
	font-family: var(--dsc-mono);
	font-size: 12px;
	line-height: 1.4;
	color: var(--dsc-text);
	max-width: 100%;
}
/* The quiet instrument line: mirrors the console's current moment in words. */
body.dsd #page-container .dsdh-now .et_pb_text_inner p {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	margin: 0;
	padding-top: 14px;
	border-top: 1px solid var(--dsc-line);
	font-family: var(--dsc-mono);
	font-size: 13px;
	line-height: 1.5;
	color: var(--dsc-text);
}
body.dsd #page-container .dsdh-now__k {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--dsc-accent);
}
body.dsd #page-container .dsdh-stamp {
	width: auto !important;
}
body.dsd #page-container .dsdh-dot {
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--dsc-ok);
	box-shadow: 0 0 8px var(--dsc-ok);
}

/* ---------- the console: "Scrub the night" ---------- */

body.dsd .dsdh-console {
	margin: 0;
	background: var(--dsc-surface);
	border: 1px solid var(--dsc-line);
	border-radius: var(--dsc-r-card);
	overflow: hidden;
	color: var(--dsc-muted-long);
	font-family: var(--dsc-font);
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
}
body.dsd .dsdh-console__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 20px;
	font-family: var(--dsc-mono);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--dsc-muted);
}
body.dsd .dsdh-console__sim::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 10px;
	border-radius: 50%;
	border: 1px solid var(--dsc-accent);
	vertical-align: 0;
}
body.dsd .dsdh-console__clock {
	font-size: 18px;
	letter-spacing: 0.06em;
	color: var(--dsc-text);
}
/* The lit status bar: a thin teal line that fills as the day advances. */
body.dsd .dsdh-console__lit {
	position: relative;
	height: 2px;
	background: var(--dsc-line);
}
body.dsd .dsdh-console__lit::after {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: var(--p, 0%);
	background: var(--dsc-accent);
}
body.dsd .dsdh-console__read {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-bottom: 1px solid var(--dsc-line);
}
body.dsd .dsdh-rd {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 20px;
	min-width: 0;
}
body.dsd .dsdh-rd + .dsdh-rd {
	border-left: 1px solid var(--dsc-line);
}
body.dsd .dsdh-rd__k {
	font-family: var(--dsc-mono);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--dsc-muted);
}
body.dsd .dsdh-rd__v {
	font-family: var(--dsc-mono);
	font-size: clamp(22px, 2.4vw, 30px);
	line-height: 1.1;
	color: var(--dsc-warn);
	white-space: nowrap;
}
body.dsd .dsdh-rd__v small {
	margin-left: 4px;
	font-size: 12px;
	color: var(--dsc-muted);
}
body.dsd .dsdh-console__steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--dsc-line);
}
body.dsd .dsdh-console__steps li {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	padding: 14px 20px 14px;
	min-width: 0;
}
body.dsd .dsdh-console__steps li + li {
	border-left: 1px solid var(--dsc-line);
}
body.dsd .dsdh-console__steps li::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 2px;
	background: transparent;
	transition: background-color var(--dsc-dur-2) var(--dsc-ease);
}
body.dsd .dsdh-console__steps li.is-on::before {
	background: var(--dsc-accent);
}
body.dsd .dsdh-console__steps b {
	font-size: 16px;
	font-weight: 600;
	color: var(--dsc-muted);
	transition: color var(--dsc-dur-2) var(--dsc-ease);
}
body.dsd .dsdh-console__steps li.is-on b {
	color: var(--dsc-text);
}
body.dsd .dsdh-console__steps small {
	font-size: 12px;
	line-height: 1.4;
	color: var(--dsc-muted);
}
body.dsd .dsdh-console__log {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 6px;
	min-height: 138px;
	padding: 16px 20px;
	font-family: var(--dsc-mono);
	font-size: 13px;
	line-height: 1.45;
	color: var(--dsc-muted-long);
	border-bottom: 1px solid var(--dsc-line);
}
body.dsd .dsdh-l {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 10px;
}
body.dsd .dsdh-l b {
	font-weight: 400;
	color: var(--dsc-muted);
}
body.dsd .dsdh-l:last-child span {
	color: var(--dsc-text);
}
/* The rail: the day curve itself. Amber rises from the baseline, holds, then fades to violet. */
body.dsd .dsdh-rail {
	position: relative;
	height: 132px;
	margin: 16px 20px 0;
	touch-action: pan-y;
	cursor: ew-resize;
	user-select: none;
}
body.dsd .dsdh-curve {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}
body.dsd .dsdh-curve path {
	vector-effect: non-scaling-stroke;
}
body.dsd .dsdh-curve__base {
	fill: none;
	stroke: var(--dsc-line);
	stroke-width: 1;
}
body.dsd .dsdh-curve__area {
	fill: url(#dsdh-fg);
	stroke: none;
}
body.dsd .dsdh-f0 { stop-color: var(--dsc-warn); stop-opacity: 0.34; }
body.dsd .dsdh-f1 { stop-color: var(--dsc-warn); stop-opacity: 0; }
body.dsd .dsdh-curve__line {
	fill: none;
	stroke: url(#dsdh-lg);
	stroke-width: 2.25;
	stroke-linejoin: round;
	stroke-linecap: round;
	filter: drop-shadow(0 0 4px rgba(255, 183, 77, 0.35));
}
body.dsd .dsdh-curve__line.is-armed {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
}
body.dsd .dsdh-curve__line.is-armed.is-drawn {
	stroke-dashoffset: 0;
	transition: stroke-dashoffset 600ms var(--dsc-ease);
}
body.dsd .dsdh-s-n { stop-color: var(--dsc-line-strong); }
body.dsd .dsdh-s-a { stop-color: var(--dsc-warn); }
body.dsd .dsdh-s-v { stop-color: var(--dsc-violet); }
body.dsd .dsdh-rail__ticks {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
/* faint hour lines every 3 h */
body.dsd .dsdh-hr {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--x);
	width: 1px;
	background: var(--dsc-text);
	opacity: 0.07;
}
/* labelled ticks at the scripted moments */
body.dsd .dsdh-mt {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--x);
	padding: 1px 0 0 5px;
	border-left: 1px solid rgba(38, 198, 218, 0.55);
	font-family: var(--dsc-mono);
	font-size: 12px;
	line-height: 14px;
	letter-spacing: 0.02em;
	color: var(--dsc-accent);
	white-space: nowrap;
}
body.dsd .dsdh-mt--b { top: 17px; }
body.dsd .dsdh-mt--d { padding: 1px 5px 0 0; border-left: 0; border-right: 1px solid rgba(38, 198, 218, 0.55); transform: translateX(-100%); text-align: right; }
body.dsd .dsdh-rail__m {
	position: absolute;
	top: -6px;
	bottom: 0;
	left: 0;
	width: 44px;
	margin-left: -22px;
	cursor: ew-resize;
	outline: none;
}
body.dsd .dsdh-rail__m::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 1px;
	background: var(--dsc-text);
	opacity: 0.7;
	box-shadow: 0 0 8px rgba(38, 198, 218, 0.7);
}
body.dsd .dsdh-rail__m::after {
	content: "";
	position: absolute;
	left: 50%;
	top: var(--y, 100%);
	width: 14px;
	height: 14px;
	margin: -7px 0 0 -7px;
	border-radius: 50%;
	background: var(--dsc-bg);
	border: 2px solid var(--dsc-accent);
	box-shadow: 0 0 0 4px rgba(38, 198, 218, 0.18), 0 0 14px 2px rgba(38, 198, 218, 0.55);
}
body.dsd .dsdh-rail__m:focus-visible::after {
	box-shadow: 0 0 0 3px var(--dsc-bg), 0 0 0 5px var(--dsc-accent);
}
body.dsd .dsdh-rail__labels {
	position: relative;
	height: 18px;
	margin: 8px 20px 0;
	font-family: var(--dsc-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	color: var(--dsc-muted);
}
body.dsd .dsdh-rail__labels span {
	position: absolute;
	top: 0;
	left: var(--x);
	transform: translateX(-50%);
}
body.dsd .dsdh-rail__labels span:first-child { transform: none; }
body.dsd .dsdh-rail__labels span:last-child { transform: translateX(-100%); }
body.dsd .dsdh-console__cap {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 20px 20px;
}
body.dsd .dsdh-console__cap b {
	font-size: 18px;
	font-weight: 600;
	color: var(--dsc-text);
	letter-spacing: -0.01em;
}
body.dsd .dsdh-console__cap span {
	font-size: 14px;
	line-height: 1.5;
	color: var(--dsc-muted-long);
}
body.dsd .dsdh-console-module .et_pb_code_inner {
	width: 100%;
}

/* ---------- 2. instrument strip: one framed surface, column rules ---------- */

body.dsd #page-container .dsdh-strip {
	padding: 0 0 var(--dsdh-pad) !important;
}
body.dsd #page-container .dsdh-row--frame {
	background: var(--dsc-surface);
	border: 1px solid var(--dsc-line);
	border-radius: var(--dsc-r-card);
	overflow: hidden;
}
body.dsd #page-container .dsdh-row--frame > .et_pb_column {
	padding: 28px 24px !important;
	gap: 8px;
}
body.dsd #page-container .dsdh-row--frame > .et_pb_column + .et_pb_column {
	border-left: 1px solid var(--dsc-line);
}
body.dsd #page-container .dsdh-reading .et_pb_text_inner p {
	margin: 0;
}
body.dsd #page-container .dsdh-reading .et_pb_text_inner .dsdh-reading__n {
	font-family: var(--dsc-mono);
	font-size: clamp(36px, 4vw, 52px);
	line-height: 1;
	color: var(--dsc-warn);
	margin-bottom: 10px;
}
body.dsd #page-container .dsdh-reading .et_pb_text_inner .dsdh-reading__n--stamp {
	font-size: 13px;
	line-height: 1.5;
	color: var(--dsc-text);
	margin-bottom: 14px;
	overflow-wrap: anywhere;
}
body.dsd #page-container .dsdh-reading .et_pb_text_inner .dsdh-reading__cap {
	font-family: var(--dsc-mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	line-height: 1.5;
	color: var(--dsc-muted);
}

/* ---------- 3. works with: the monochrome logo band ---------- */

body.dsd .dsdh-band {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 20px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.dsd .dsdh-band li {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	margin: 0;
	padding: 0;
	min-width: 0;
}
body.dsd .dsdh-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: none;
	border: 0;
}
/* No chip: the SVG filter #dsd-ink maps luminance to alpha and paints the mark light, so the tile's white ground becomes
   fully transparent on any ground. No blend mode, so Divi's stacking contexts cannot bring the chip back. */
body.dsd .dsdh-svgdef {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}
body.dsd .dsdh-logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 100%;
	object-fit: contain;
	background: none;
	border: 0;
	filter: url(#dsd-ink);
	opacity: 0.85;
	transition: opacity var(--dsc-dur-2) var(--dsc-ease);
}
body.dsd .dsdh-band li:hover .dsdh-logo img {
	opacity: 1;
}
/* Text fallback: a mark that will not load, or does not survive the filter, shows the maker name in mono. */
body.dsd .dsdh-logo em {
	display: none;
	font-style: normal;
	font-family: var(--dsc-mono);
	font-size: 13px;
	line-height: 1.3;
	text-align: center;
	color: var(--dsc-muted-long);
}
body.dsd .dsdh-logo.is-broken img {
	display: none;
}
body.dsd .dsdh-logo.is-broken em {
	display: block;
}

/* ---------- 4. the 3:07 AM story: the quiet band ---------- */

body.dsd #page-container .dsdh-story {
	background: var(--dsc-surface) !important;
	border-top: 1px solid var(--dsc-line);
	border-bottom: 1px solid var(--dsc-line);
	padding: 120px 0 !important;
}
body.dsd #page-container .dsdh-time-module .et_pb_text_inner p.dsdh-time {
	margin: 0;
	font-family: var(--dsc-mono);
	font-size: clamp(76px, 13vw, 180px);
	font-weight: 400;
	line-height: 0.9;
	letter-spacing: -0.05em;
	color: var(--dsc-text);
	white-space: nowrap;
}
body.dsd #page-container .dsdh-time span {
	font-size: 0.24em;
	letter-spacing: 0.1em;
	color: var(--dsc-warn);
}

/* ---------- 5. area cards: 3 x 2, surface + hairline, no shadow ---------- */

body.dsd #page-container .dsdh-row > .et_pb_column.dsdh-card {
	background: var(--dsc-surface) !important;
	border: 1px solid var(--dsc-line) !important;
	border-radius: var(--dsc-r-card) !important;
	padding: 24px !important;
	gap: 12px !important;
	box-shadow: none !important;
	transition: border-color var(--dsc-dur-2) var(--dsc-ease);
}
body.dsd #page-container .dsdh-row > .et_pb_column.dsdh-card:hover {
	border-color: rgba(38, 198, 218, 0.4) !important;
}
body.dsd #page-container .dsdh-card__count .et_pb_text_inner p {
	margin: 0;
	font-family: var(--dsc-mono);
	font-size: clamp(34px, 3.4vw, 44px);
	line-height: 1;
	color: var(--dsc-warn);
}
body.dsd #page-container .dsdh-card__count .et_pb_text_inner span {
	margin-left: 6px;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--dsc-muted);
}
body.dsd #page-container .dsdh-card__body .et_pb_text_inner p {
	font-size: 15px;
	line-height: 1.55;
}
body.dsd #page-container .dsdh-row > .et_pb_column.dsdh-card > .dsdh-link:last-child {
	margin-top: auto !important;
}
body.dsd #page-container .dsdh-row--3 { align-items: stretch; }
body.dsd #page-container .dsdh-link .et_pb_text_inner p {
	font-size: 15px;
	margin: 0;
}
/* 44 px targets for text links that stand alone on a line */
body.dsd #page-container :is(.dsdh-link, .dsdh-links) .et_pb_text_inner a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	border-bottom: 0;
	box-shadow: inset 0 -1px 0 rgba(79, 157, 255, 0.35);
}

/* ---------- 7. the dashboard: framed screenshots, two per row ---------- */

body.dsd #page-container .dsdh-row > .et_pb_column.dsdh-frame {
	background: var(--dsc-surface) !important;
	border: 1px solid var(--dsc-line) !important;
	border-radius: var(--dsc-r-card) !important;
	overflow: hidden;
	gap: 0 !important;
	align-items: stretch !important;
}
body.dsd #page-container .dsdh-frame__bar {
	display: flex !important;
	align-items: center;
	gap: 6px !important;
	margin: 0 !important;
	padding: 12px 16px !important;
	border-bottom: 1px solid var(--dsc-line);
	font-family: var(--dsc-mono) !important;
	font-size: 12px !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--dsc-muted) !important;
}
body.dsd #page-container .dsdh-frame__bar i {
	width: 9px;
	height: 9px;
	border: 1px solid var(--dsc-line-strong);
	border-radius: 50%;
}
body.dsd #page-container .dsdh-frame__bar span {
	margin-left: 8px;
}
body.dsd #page-container .dsdh-frame__img,
body.dsd #page-container .dsdh-frame__img .et_pb_image_wrap {
	display: block;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}
body.dsd #page-container .dsdh-frame__img img {
	display: block;
	width: 100% !important;
	height: auto;
	aspect-ratio: 1440 / 900;
	object-fit: cover;
	filter: brightness(1.08) contrast(1.06);
}
body.dsd #page-container .dsdh-frame__cap {
	padding: 16px 20px 20px !important;
}
body.dsd #page-container .dsdh-frame__cap .et_pb_text_inner p {
	font-size: 14px;
	line-height: 1.55;
}

/* ---------- 8. why: three plain statements, numbered ---------- */

body.dsd #page-container .dsdh-row > .et_pb_column.dsdh-why__item {
	gap: 12px !important;
	padding-top: 20px !important;
	border-top: 1px solid var(--dsc-line);
}
body.dsd #page-container .dsdh-num .et_pb_text_inner p,
body.dsd #page-container .dsdh-num-module .et_pb_text_inner p {
	margin: 0;
	font-family: var(--dsc-mono);
	font-size: 14px;
	letter-spacing: 0.12em;
	color: var(--dsc-warn);
}

/* ---------- 9. what runs today and what is coming ---------- */

body.dsd #page-container .dsdh-row.dsdh-row--rule > .et_pb_column {
	padding-top: 20px !important;
	border-top: 1px solid var(--dsc-line);
}
body.dsd #page-container .dsdh-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.dsd #page-container .dsdh-list li {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 14px;
	align-items: baseline;
	margin: 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.55;
}
body.dsd #page-container .dsdh-list.dsdh-list--plain li { grid-template-columns: minmax(0, 1fr); }
body.dsd .dsdh-tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--dsc-mono);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
}
body.dsd .dsdh-tag--live { color: var(--dsc-ok); }
body.dsd .dsdh-tag--live::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--dsc-ok);
}
body.dsd .dsdh-tag--test { color: var(--dsc-violet); }
body.dsd .dsdh-tag--plan { color: var(--dsc-muted); }

/* ---------- 10. join the alpha: one framed surface, the page's second and last teal button ---------- */

body.dsd #page-container .dsdh-row--panel {
	padding: 56px !important;
	background: var(--dsc-surface);
	border: 1px solid var(--dsc-line);
	border-radius: var(--dsc-r-card);
	gap: 64px;
	width: min(var(--dsdh-max), calc(100% - 2 * var(--dsdh-gutter))) !important;
	box-sizing: border-box;
}
body.dsd #page-container .dsdh-body--alpha h3 {
	font-size: 18px !important;
	margin: 0 0 8px !important;
}
body.dsd #page-container .dsdh-body--alpha p + h3 {
	margin-top: 24px !important;
}
body.dsd #page-container .dsdh-links .et_pb_text_inner p {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	margin: 0;
	font-size: 15px;
}

/* ---------- responsive ---------- */

@media (max-width: 1100px) {
	body.dsd #page-container .dsdh-row--hero,
	body.dsd #page-container .dsdh-row--split,
	body.dsd #page-container .dsdh-row--story {
		grid-template-columns: minmax(0, 1fr);
		gap: 48px;
	}
	body.dsd #page-container .dsdh-row--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.dsd #page-container .dsdh-row--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.dsd #page-container .dsdh-row--frame > .et_pb_column:nth-child(3) { border-left: 0; }
	body.dsd #page-container .dsdh-row--frame > .et_pb_column:nth-child(n + 3) { border-top: 1px solid var(--dsc-line); }
	body.dsd .dsdh-band { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	body.dsd #page-container .dsdh-row--panel { gap: 40px; padding: 40px !important; }
}
@media (max-width: 767px) {
	body.dsd { --dsdh-pad: 56px; --dsdh-gutter: 16px; }
	body.dsd #page-container .dsdh-hero { padding-top: 40px !important; }
	body.dsd #page-container .dsdh-story { padding: 72px 0 !important; }
	body.dsd #page-container .dsdh-row--2,
	body.dsd #page-container .dsdh-row--3 { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	body.dsd #page-container .dsdh-row--3 { gap: 16px; }
	body.dsd #page-container .dsdh-row--head { margin-bottom: 32px !important; }
	body.dsd #page-container .dsdh-row--panel { padding: 24px !important; gap: 32px; }
	body.dsd #page-container .dsdh-row--frame > .et_pb_column { padding: 20px 16px !important; }
	body.dsd .dsdh-band { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 12px; }
	body.dsd .dsdh-frame__cap { padding: 14px 16px 18px !important; }
	body.dsd .dsdh-console__steps small { display: none; }
	body.dsd .dsdh-console__steps li,
	body.dsd .dsdh-rd { padding-left: 12px; padding-right: 12px; }
	body.dsd .dsdh-console__bar,
	body.dsd .dsdh-console__log,
	body.dsd .dsdh-console__cap { padding-left: 14px; padding-right: 14px; }
	body.dsd .dsdh-rail,
	body.dsd .dsdh-rail__labels { margin-left: 14px; margin-right: 14px; }
	body.dsd .dsdh-console__bar { letter-spacing: 0.06em; }
	body.dsd #page-container .dsdh-list li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
	/* full-width, 48 px actions on a phone */
	body.dsd #page-container .dsdh-actions { flex-direction: column; align-items: stretch; }
	body.dsd #page-container .dsdh-actions .et_pb_button_module_wrapper { width: 100% !important; }
	body.dsd #page-container :is(.dsdh-btn--primary.et_pb_button, .dsdh-btn--primary .et_pb_button),
	body.dsd #page-container :is(.dsdh-btn--ghost.et_pb_button, .dsdh-btn--ghost .et_pb_button) {
		width: 100% !important;
		max-width: none !important;
		white-space: normal;
		text-align: center;
		min-height: 48px;
		padding: 12px 20px !important;
	}
}
@media (max-width: 600px) {
	/* short labels so "lights on" and "lights off" never meet on a narrow rail */
	body.dsd .dsdh-mt--c,
	body.dsd .dsdh-mt--d { font-size: 0; }
	body.dsd .dsdh-mt--c::after { content: "on"; font-size: 12px; }
	body.dsd .dsdh-mt--d::after { content: "off"; font-size: 12px; }
}
@media (max-width: 420px) {
	body.dsd #page-container .dsdh-row--4 { grid-template-columns: minmax(0, 1fr); }
	body.dsd #page-container .dsdh-row--frame > .et_pb_column + .et_pb_column { border-left: 0; border-top: 1px solid var(--dsc-line); }
	body.dsd .dsdh-rd__v { font-size: 20px; }
	body.dsd .dsdh-console__read { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.dsd .dsdh-rd:nth-child(3) { border-left: 0; }
	body.dsd .dsdh-rd:nth-child(n + 3) { border-top: 1px solid var(--dsc-line); }
}

/* ---------- motion: only the console replay and the 600 ms curve draw-in; both stand still when asked ---------- */

@media (prefers-reduced-motion: reduce) {
	body.dsd .dsdh-curve__line.is-armed,
	body.dsd .dsdh-curve__line.is-armed.is-drawn {
		stroke-dasharray: none;
		stroke-dashoffset: 0;
		transition: none;
	}
	body.dsd .dsdh-console__steps li::before,
	body.dsd .dsdh-console__steps b,
	body.dsd .dsdh-logo img,
	body.dsd #page-container .dsdh-card {
		transition: none;
	}
}

/* ---------- performance: below-the-fold rows skip style and layout until they scroll near (0.4.0) ---------- */

/* On the rows, not the sections: the section's ::before hairline sits half above its box and paint containment would clip it.
   Only the tall rows, each with an intrinsic size close to its real height (auto remembers the real one once rendered). */
body.dsd-home .dsdh-row--cards,
body.dsd-home .dsdh-row--frames,
body.dsd-home .dsdh-row--panel,
body.dsd-home .dsdh-sec:not(.dsdh-hero):not(.dsdh-strip) > .dsdh-row--3:not(.dsdh-row--cards),
body.dsd-home .dsdh-row--rule,
body.dsd-home .dsdh-row--split {
	content-visibility: auto;
	contain-intrinsic-size: auto 480px;
}
body.dsd-home .dsdh-row--cards { contain-intrinsic-size: auto 640px; }
body.dsd-home .dsdh-row--frames { contain-intrinsic-size: auto 1100px; }
body.dsd-home .dsdh-row--panel { contain-intrinsic-size: auto 720px; }
/* Placeholder heights measured per breakpoint (0.5.6). The one size above is right for nothing on a phone (the card stack is
   1,609 px at 412 wide against 640): while a row was skipped its content overflowed it and sat on top of the next row, which is
   what the tap-target audit saw (the last card's link under the "All 175 features" button) and what made the scrollbar jump as
   rows rendered. Each value is a little over the measured height, never under, so skipped content cannot overlap. */
body.dsd-home .dsdh-row--split { contain-intrinsic-size: auto 450px; }
body.dsd-home .dsdh-row--canna-split { contain-intrinsic-size: auto 600px; }
body.dsd-home .dsdh-row--cards { contain-intrinsic-size: auto 560px; }
body.dsd-home .dsdh-row--frames { contain-intrinsic-size: auto 1860px; }
body.dsd-home .dsdh-row--panel { contain-intrinsic-size: auto 375px; }
body.dsd-home .dsdh-sec:not(.dsdh-hero):not(.dsdh-strip) > .dsdh-row--3:not(.dsdh-row--cards) { contain-intrinsic-size: auto 225px; }
body.dsd-home .dsdh-row--rule { contain-intrinsic-size: auto 245px; }
@media (max-width: 1100px) {
	body.dsd-home .dsdh-row--split { contain-intrinsic-size: auto 595px; }
	body.dsd-home .dsdh-row--canna-split { contain-intrinsic-size: auto 675px; }
	body.dsd-home .dsdh-row--cards { contain-intrinsic-size: auto 845px; }
	body.dsd-home .dsdh-row--frames { contain-intrinsic-size: auto 1345px; }
	body.dsd-home .dsdh-row--panel { contain-intrinsic-size: auto 470px; }
	body.dsd-home .dsdh-sec:not(.dsdh-hero):not(.dsdh-strip) > .dsdh-row--3:not(.dsdh-row--cards) { contain-intrinsic-size: auto 460px; }
	body.dsd-home .dsdh-row--rule { contain-intrinsic-size: auto 395px; }
}
@media (max-width: 600px) {
	body.dsd-home .dsdh-row--split { contain-intrinsic-size: auto 830px; }
	body.dsd-home .dsdh-row--canna-split { contain-intrinsic-size: auto 840px; }
	body.dsd-home .dsdh-row--cards { contain-intrinsic-size: auto 1640px; }
	body.dsd-home .dsdh-row--frames { contain-intrinsic-size: auto 1650px; }
	body.dsd-home .dsdh-row--panel { contain-intrinsic-size: auto 760px; }
	body.dsd-home .dsdh-sec:not(.dsdh-hero):not(.dsdh-strip) > .dsdh-row--3:not(.dsdh-row--cards) { contain-intrinsic-size: auto 625px; }
	body.dsd-home .dsdh-row--rule { contain-intrinsic-size: auto 665px; }
}
/* The console updates only text nodes and classes; it need not invalidate anything around it. */
body.dsd-home .dsdh-console {
	contain: layout style;
}

/* ---------- CannaLib: the knowledge twin of the gear section ---------- */

body.dsd #page-container .dsdh-row--canna-split {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 56px;
	align-items: center;
}
body.dsd #page-container .dsdh-col--numbers {
	gap: 16px !important;
}
body.dsd #page-container .dsdh-eyebrow--muted .et_pb_text_inner p {
	color: var(--dsc-muted);
	letter-spacing: 0.08em;
	text-transform: none;
}
/* Big counts (7,358,743) need a smaller numeral than the strip's 3-digit readings so nine glyphs fit a quarter cell. */
body.dsd #page-container .dsdh-row--canna .dsdh-reading .et_pb_text_inner .dsdh-reading__n {
	font-size: clamp(22px, 2.5vw, 34px);
	overflow-wrap: anywhere;
}
body.dsd #page-container .dsdh-row.dsdh-row--canna { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100% !important; }
body.dsd #page-container .dsdh-row--canna > .et_pb_column:nth-child(3) { border-left: 0; }
body.dsd #page-container .dsdh-row--canna > .et_pb_column:nth-child(n + 3) { border-top: 1px solid var(--dsc-line); }
@media (max-width: 1100px) {
	body.dsd #page-container .dsdh-row--canna-split { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 420px) {
	body.dsd #page-container .dsdh-row--canna { grid-template-columns: minmax(0, 1fr); }
	body.dsd #page-container .dsdh-row--canna > .et_pb_column:nth-child(n + 2) { border-left: 0; border-top: 1px solid var(--dsc-line); }
}
