/* S09 Chinese systems-integration owner. The accepted HPC foundation is
 * loaded separately; every presentation rule below is scoped to this page. */
.s09-integration-cn {
	--s09-bg: #03050a;
	--s09-bg-soft: #060a14;
	--s09-panel: #0a1322;
	--s09-panel-hi: #0d1828;
	--s09-surface: #0c1626;
	--s09-text: #e9eff7;
	--s09-muted: #a3b6ca;
	--s09-faint: #647a90;
	--s09-accent: #5fd3e6;
	--s09-accent-soft: rgba(95, 211, 230, .11);
	--s09-line: rgba(132, 164, 200, .17);
	--s09-line-strong: rgba(140, 190, 204, .43);
	--s09-wide: 1360px;
	--s09-main: 1240px;
	--s09-read: 640px;
	width: 100%;
	min-width: 0;
	background: var(--s09-bg);
	color: var(--s09-text);
	font-family: "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.7;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.s09-integration-cn *,
.s09-integration-cn *::before,
.s09-integration-cn *::after {
	box-sizing: border-box;
}
.s09-integration-cn h1,
.s09-integration-cn h2,
.s09-integration-cn h3,
.s09-integration-cn p,
.s09-integration-cn figure,
.s09-integration-cn ol,
.s09-integration-cn ul {
	margin: 0;
}
.s09-integration-cn ol,
.s09-integration-cn ul {
	padding: 0;
}
.s09-integration-cn img {
	display: block;
	max-width: 100%;
}
.s09-integration-cn a {
	color: inherit;
}
.s09-integration-cn a:focus-visible,
.s09-integration-cn button:focus-visible {
	outline: 2px solid #b7f0f5;
	outline-offset: 4px;
	border-radius: 3px;
}
.s09-integration-cn [id] {
	scroll-margin-top: 88px;
}

.s09-wrap {
	width: min(var(--s09-wide), calc(100% - 80px));
	margin-inline: auto;
}
.s09-main-wrap {
	width: min(var(--s09-main), calc(100% - 80px));
	margin-inline: auto;
}
.s09-integration-cn .s09-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 31px;
	color: var(--s09-accent);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	line-height: 1.4;
}
.s09-eyebrow > span:first-child:not(.s09-eyebrow-no) {
	width: 7px;
	height: 7px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--s09-accent);
	box-shadow: 0 0 0 5px rgba(95, 211, 230, .12);
}
.s09-eyebrow-no {
	color: var(--s09-accent);
}
.s09-section-head {
	max-width: 760px;
}
.s09-section-head--wide {
	max-width: 820px;
}
.s09-section-head--split {
	display: grid;
	grid-template-columns: minmax(0, 1.14fr) minmax(280px, .86fr);
	gap: 64px;
	max-width: none;
	align-items: end;
}
.s09-section-head h2,
.s09-results h2,
.s09-start h2 {
	color: var(--s09-text);
	font-size: clamp(32px, 3.1vw, 42px);
	font-weight: 600;
	letter-spacing: -.035em;
	line-height: 1.22;
}
.s09-section-head > p:last-child,
.s09-section-head--split > p,
.s09-results-copy > p:not(.s09-eyebrow),
.s09-start-grid > div:first-child > p:not(.s09-eyebrow) {
	margin-top: 24px;
	color: var(--s09-muted);
	font-size: 17px;
	line-height: 1.82;
}
.s09-section-head--split > p {
	margin-top: 0;
}

/* Hero: one full-bleed engineering photograph, with the thesis at lower left. */
.s09-hero {
	position: relative;
	min-height: calc(100svh - var(--f-header-height, 72px));
	display: flex;
	isolation: isolate;
	background: var(--s09-bg);
	overflow: hidden;
}
.s09-hero-media,
.s09-hero-scrim {
	position: absolute;
	inset: 0;
}
.s09-hero-media {
	z-index: -2;
}
.s09-hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 56% center;
	filter: brightness(.78) contrast(1.06) saturate(.86);
}
.s09-hero-scrim {
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(3, 5, 10, .98) 2%, rgba(3, 5, 10, .89) 28%, rgba(3, 5, 10, .48) 61%, rgba(3, 5, 10, .14) 100%),
		linear-gradient(0deg, rgba(3, 5, 10, .94), transparent 68%);
}
.s09-hero-inner {
	min-height: inherit;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 64px;
	padding: 160px 0 60px;
}
.s09-hero-content {
	max-width: 760px;
}
.s09-hero h1 {
	max-width: 780px;
	color: #f4f8fc;
	font-size: clamp(58px, 6.4vw, 92px);
	font-weight: 700;
	font-style: normal !important;
	letter-spacing: -.03em;
	line-height: 1.06;
	text-shadow: 0 2px 40px rgba(0, 0, 0, .52);
}
.s09-hero-lead {
	max-width: 660px;
	margin-top: 28px;
	color: #c4d2df;
	font-size: 20px;
	line-height: 1.86;
}
.s09-actions,
.s09-start-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 36px;
}
.s09-button {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 13px 21px;
	border: 1px solid transparent;
	border-radius: 7px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.s09-button:hover {
	transform: translateY(-2px);
}
.s09-button--primary {
	background: #69c2cf;
	color: #09232d !important;
	box-shadow: 0 8px 28px rgba(105, 194, 207, .18);
}
.s09-button--primary:hover {
	background: #a5e1e7;
	color: #09232d !important;
}
.s09-button--quiet {
	border-color: rgba(233, 239, 247, .43);
	background: rgba(3, 5, 10, .14);
	color: var(--s09-text);
}
.s09-button--quiet:hover {
	border-color: var(--s09-accent);
	background: rgba(95, 211, 230, .1);
}
.s09-integration-cn .s09-hero-meta {
	margin-top: 20px;
	color: var(--s09-faint);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 11px;
	letter-spacing: .12em;
}
.s09-hero-caption {
	width: min(300px, 100%);
	padding-top: 14px;
	border-top: 1px solid var(--s09-line-strong);
	text-align: right;
}
.s09-hero-caption figcaption {
	color: #9aafc2;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	line-height: 1.8;
}

/* Purpose */
.s09-section {
	padding: 80px 0;
}
.s09-purpose {
	background: var(--s09-bg-soft);
}
.s09-purpose-grid {
	display: grid;
	grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
	gap: 78px;
	align-items: start;
}
.s09-purpose-body {
	padding-top: 4px;
}
.s09-purpose-lead {
	color: #d9e3ee;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.78;
}
.s09-purpose-list {
	margin-top: 36px !important;
	border-top: 1px solid var(--s09-line);
	list-style: none;
}
.s09-purpose-list li {
	display: grid;
	grid-template-columns: 148px minmax(0, 1fr);
	gap: 22px;
	padding: 19px 4px;
	border-bottom: 1px solid var(--s09-line);
}
.s09-purpose-list strong {
	font-size: 17px;
	font-weight: 600;
}
.s09-purpose-list span {
	color: var(--s09-muted);
	font-size: 15px;
	line-height: 1.7;
}

/* Signature interaction: five parallel inputs fan into one checked delivery. */
.s09-relationship {
	background: var(--s09-bg);
}
.s09-flow {
	position: relative;
	margin-top: 44px;
	padding: 20px;
	border: 1px solid var(--s09-line);
	border-radius: 8px;
	background: #07101d;
}
.s09-flow-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--s09-line);
}
.s09-flow-toolbar p {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--s09-muted);
	font-size: 13px;
	line-height: 1.5;
}
.s09-flow-toolbar p span {
	width: 8px;
	height: 8px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--s09-accent);
	box-shadow: 0 0 0 5px rgba(95, 211, 230, .12);
}
.s09-flow-toolbar button {
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid rgba(95, 211, 230, .48);
	border-radius: 5px;
	background: transparent;
	color: var(--s09-text);
	font: inherit;
	font-size: 13px;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease;
}
.s09-flow-toolbar button:hover {
	border-color: var(--s09-accent);
	background: var(--s09-accent-soft);
}
.s09-flow-controls { display: flex; flex-wrap: wrap; gap: 8px; }
.s09-flow-graphic {
	position: relative;
	min-height: 500px;
	padding: 30px 18px 36px;
}
.s09-flow-lines {
	position: absolute;
	inset: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
}
.s09-flow-lines path {
	fill: none;
	stroke-linecap: round;
	vector-effect: non-scaling-stroke;
}
.s09-flow-lines marker path { fill: var(--s09-accent); stroke: none; }
.s09-flow-lines .s09-flow__base-path { stroke: rgba(95, 211, 230, .42); stroke-width: 1.35; }
.s09-flow-lines .s09-flow__motion-path { stroke: var(--s09-accent); stroke-width: 3; opacity: .18; }
.s09-flow-nodes {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, .96fr) minmax(0, .7fr);
	grid-template-rows: repeat(5, minmax(66px, 1fr));
	gap: 12px 34px;
	min-height: 434px;
	list-style: none;
}
.s09-flow-node {
	position: relative;
	min-height: 66px;
	padding: 13px 16px;
	border: 1px solid rgba(140, 190, 204, .34);
	border-top: 2px solid rgba(95, 211, 230, .48);
	background: rgba(7, 19, 32, .94);
	box-shadow: 0 14px 30px rgba(0, 0, 0, .12);
}
.s09-flow-node[data-s09-node="network"] { grid-column: 1; grid-row: 1; }
.s09-flow-node[data-s09-node="server"] { grid-column: 1; grid-row: 2; }
.s09-flow-node[data-s09-node="storage"] { grid-column: 1; grid-row: 3; }
.s09-flow-node[data-s09-node="security"] { grid-column: 1; grid-row: 4; }
.s09-flow-node[data-s09-node="application"] { grid-column: 1; grid-row: 5; }
.s09-flow-node--platform { grid-column: 2; grid-row: 2 / span 3; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.s09-flow-node--delivery { grid-column: 3; grid-row: 3; align-self: center; }
.s09-flow-node--platform {
	border-color: rgba(95, 211, 230, .72);
	background: #0d1d30;
	box-shadow: 0 0 34px rgba(95, 211, 230, .12);
}
.s09-flow-node__index,
.s09-service-no,
.s09-result > span {
	display: block;
	color: var(--s09-accent);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
}
.s09-flow-node strong {
	display: block;
	margin-top: 8px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
}
.s09-flow-node small {
	display: block;
	margin-top: 4px;
	color: var(--s09-muted);
	font-size: 13px;
	line-height: 1.58;
}
.s09-flow-note {
	max-width: 850px;
	margin-top: 0;
	padding-top: 16px;
	color: var(--s09-muted);
	font-size: 14px;
	line-height: 1.75;
}

/* Yuqi scope: six concrete delivery responsibilities. */
.s09-services {
	background: var(--s09-bg-soft);
}
.s09-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 48px;
}
.s09-service {
	min-height: 214px;
	padding: 24px 23px 27px;
	border: 1px solid var(--s09-line);
	border-top: 2px solid rgba(95, 211, 230, .45);
	background: linear-gradient(145deg, rgba(13, 26, 43, .74), rgba(3, 5, 10, .16) 74%);
	transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.s09-service:hover {
	border-color: rgba(95, 211, 230, .5);
	background: linear-gradient(145deg, rgba(18, 46, 61, .8), rgba(3, 5, 10, .18) 74%);
	transform: translateY(-2px);
}
.s09-service h3 {
	margin-top: 36px;
	color: var(--s09-text);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
}
.s09-service p {
	margin-top: 10px;
	color: var(--s09-muted);
	font-size: 15px;
	line-height: 1.72;
}

/* Outcomes and handover artifacts. */
.s09-results {
	background: var(--s09-panel-hi);
}
.s09-results-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.06fr) minmax(340px, .94fr);
	gap: 82px;
	align-items: start;
}
.s09-delivery-pack {
	margin-top: 34px;
	padding: 20px 22px 21px;
	border-left: 2px solid var(--s09-accent);
	background: rgba(3, 5, 10, .24);
}
.s09-delivery-pack strong {
	font-size: 17px;
	font-weight: 600;
}
.s09-delivery-pack ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 20px;
	margin-top: 16px !important;
	list-style: none;
}
.s09-delivery-pack li {
	color: #d1deea;
	font-size: 14px;
	line-height: 1.55;
}
.s09-delivery-pack li::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 9px 1px 0;
	border-radius: 50%;
	background: var(--s09-accent);
}
.s09-delivery-pack p {
	margin-top: 16px;
	color: var(--s09-faint);
	font-size: 13px;
	line-height: 1.65;
}
.s09-result-list {
	border-top: 1px solid var(--s09-line);
}
.s09-result {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	gap: 16px;
	padding: 21px 4px;
	border-bottom: 1px solid var(--s09-line);
}
.s09-result h3 {
	color: var(--s09-text);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
}
.s09-result p {
	margin-top: 7px;
	color: var(--s09-muted);
	font-size: 15px;
	line-height: 1.7;
}

/* Compact preparation / FAQ endpoint. */
.s09-start {
	background: var(--s09-bg);
}
.s09-start-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, .86fr);
	gap: 80px;
	align-items: start;
}
.s09-start-actions {
	align-items: center;
	margin-top: 32px;
}
.s09-text-link {
	color: var(--s09-muted);
	font-size: 14px;
	text-decoration: none;
}
.s09-text-link:hover {
	color: var(--s09-text);
}
.s09-faq {
	border-top: 1px solid var(--s09-line);
}
.s09-faq details {
	border-bottom: 1px solid var(--s09-line);
}
.s09-faq summary {
	position: relative;
	padding: 18px 32px 18px 2px;
	color: var(--s09-text);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
	cursor: pointer;
	list-style: none;
}
.s09-faq summary::-webkit-details-marker {
	display: none;
}
.s09-faq summary::after {
	content: "+";
	position: absolute;
	top: 15px;
	right: 3px;
	color: var(--s09-accent);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 18px;
	font-weight: 400;
}
.s09-faq details[open] summary::after {
	content: "−";
}
.s09-faq details p {
	padding: 0 30px 19px 2px;
	color: var(--s09-muted);
	font-size: 14px;
	line-height: 1.75;
}
.s09-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Progressive enhancement: no-JS keeps all page copy and graph labels visible. */
.s09-motion-ready [data-s09-reveal] {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .7s ease, transform .7s ease;
}
.s09-motion-ready [data-s09-reveal].is-visible {
	opacity: 1;
	transform: none;
}
.s09-motion-ready .s09-flow-lines .s09-flow__motion-path { stroke-dasharray: 10 90; stroke-dashoffset: 100; opacity: 0; animation: none; }
.s09-motion-ready .s09-flow.is-playing .s09-flow__motion-path[data-s09-active="true"] { opacity: .96; animation: s09-flow-packet 1.8s linear infinite; animation-delay: var(--s09-flow-delay, 0s); }
.s09-motion-ready .s09-flow.is-paused .s09-flow__motion-path[data-s09-active="true"] { animation-play-state: paused; opacity: .34; }
.s09-flow-node[data-s09-state="active"] { border-color: var(--s09-accent); box-shadow: 0 0 0 1px rgba(95, 211, 230, .2), 0 0 26px rgba(95, 211, 230, .1); }
@keyframes s09-flow-packet { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }

@media (max-width: 800px) {
	.s09-wrap,
	.s09-main-wrap {
		width: min(100% - 40px, var(--s09-wide));
	}
	.s09-main-wrap {
		max-width: var(--s09-main);
	}
	.s09-hero {
		min-height: 0;
	}
	.s09-hero-media img {
		object-position: 60% center;
	}
	.s09-hero-scrim {
		background:
			linear-gradient(0deg, rgba(3, 5, 10, .98), rgba(3, 5, 10, .52) 82%),
			linear-gradient(90deg, rgba(3, 5, 10, .6), transparent 75%);
	}
	.s09-hero-inner {
		display: block;
		padding: 116px 0 56px;
	}
	.s09-hero h1 {
		max-width: 100%;
		font-size: clamp(48px, 13vw, 64px);
		line-height: 1.08;
	}
	.s09-hero-lead {
		max-width: 100%;
		font-size: 18px;
		line-height: 1.8;
	}
	.s09-actions,
	.s09-start-actions {
		flex-direction: column;
		gap: 10px;
		margin-top: 28px;
	}
	.s09-button {
		width: 100%;
		min-height: 50px;
	}
	.s09-integration-cn .s09-hero-meta {
		margin-top: 20px;
		font-size: 10px;
		line-height: 1.8;
	}
	.s09-hero-caption {
		width: 100%;
		margin-top: 48px;
		text-align: left;
	}
	.s09-section {
		padding: 48px 0;
	}
	.s09-section-head h2,
	.s09-results h2,
	.s09-start h2 {
		font-size: 32px;
		line-height: 1.25;
	}
	.s09-section-head > p:last-child,
	.s09-section-head--split > p,
	.s09-results-copy > p:not(.s09-eyebrow),
	.s09-start-grid > div:first-child > p:not(.s09-eyebrow) {
		font-size: 16px;
		line-height: 1.78;
	}
	.s09-purpose-grid,
	.s09-section-head--split,
	.s09-results-grid,
	.s09-start-grid {
		grid-template-columns: 1fr;
		gap: 34px;
	}
	.s09-purpose-lead {
		font-size: 20px;
		line-height: 1.75;
	}
	.s09-purpose-list {
		margin-top: 30px !important;
	}
	.s09-purpose-list li {
		display: block;
		padding: 17px 0;
	}
	.s09-purpose-list span {
		display: block;
		margin-top: 6px;
	}
	.s09-flow {
		margin-top: 32px;
		padding: 14px;
	}
	.s09-flow-toolbar {
		align-items: flex-start;
	}
	.s09-flow-toolbar p {
		max-width: 220px;
		font-size: 12px;
		line-height: 1.65;
	}
	.s09-flow-graphic {
		min-height: 650px;
		padding: 22px 6px 30px;
	}
	.s09-flow-nodes {
		display: grid;
		grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
		grid-template-rows: repeat(5, minmax(84px, 1fr));
		gap: 12px 18px;
		min-height: 590px;
		padding: 16px 0 18px;
	}
	.s09-flow-node {
		min-height: 84px;
		padding: 14px 12px;
	}
	.s09-flow-node strong {
		margin-top: 7px;
		font-size: 16px;
	}
	.s09-flow-node small {
		max-width: 190px;
		font-size: 12px;
	}
	.s09-flow-node--platform { grid-column: 2; grid-row: 2 / span 3; }
	.s09-flow-node--delivery { grid-column: 2; grid-row: 5; align-self: stretch; }
	.s09-flow-note {
		font-size: 14px;
	}
	.s09-service-grid {
		grid-template-columns: 1fr;
		margin-top: 34px;
	}
	.s09-service {
		min-height: 0;
		padding: 22px 20px 24px;
	}
	.s09-service h3 {
		margin-top: 26px;
		font-size: 20px;
	}
	.s09-delivery-pack {
		padding: 19px 18px 20px;
	}
	.s09-delivery-pack ul {
		grid-template-columns: 1fr;
		gap: 9px;
	}
	.s09-result-list {
		margin-top: 0;
	}
	.s09-result {
		padding: 19px 2px;
	}
	.s09-start-actions {
		align-items: stretch;
	}
	.s09-text-link {
		padding: 6px 0;
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.s09-integration-cn *,
	.s09-integration-cn *::before,
	.s09-integration-cn *::after {
		animation: none !important;
		transition: none !important;
	}
	.s09-motion-ready [data-s09-reveal] { opacity: 1; transform: none; }
	.s09-motion-ready .s09-flow-lines .s09-flow__motion-path { stroke-dasharray: none; stroke-dashoffset: 0; opacity: 0; }
	.s09-motion-ready .s09-flow-lines .s09-flow__motion-path[data-s09-active="true"] { opacity: .96; }
}
.flow-batch-diagram[data-flow-diagram] {
	width: 100%;
	margin: 32px 0 0;
	border-radius: 16px;
	overflow: hidden;
}

.flow-batch-diagram__link {
	display: block;
	border-radius: inherit;
}

.flow-batch-diagram img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	border-radius: inherit;
}
