/* Platform landing modules */

/* Module atlas */
.l-platform-modules {
	position: relative;
	padding: clamp(96px, 8vw, 136px) 0;
	background: var(--l-bg);
	border: 1px solid var(--l-line);
	border-radius: var(--l-radius-lg);
	overflow: hidden;
}
.l-platform-modules__header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.68fr);
	align-items: end;
	gap: 64px;
	margin-bottom: 44px;
}
.l-platform-modules__heading {
	min-width: 0;
}
.l-platform-modules__heading h2 {
	max-width: 760px;
	margin: 0;
	color: var(--l-text);
	font-size: clamp(38px, 5vw, 70px);
	line-height: 0.98;
}
.l-platform-modules__intro {
	max-width: 420px;
	margin: 0;
	color: var(--l-text-soft);
	font-size: 14px;
	line-height: 1.65;
}
.l-platform-modules__controls {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--l-line);
}
.l-platform-modules__controls-label {
	flex: 0 0 auto;
	color: var(--l-gold);
	font-family: var(--shd-font-mono, ui-monospace, SFMono-Regular, Consolas, monospace);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.l-platform-modules__filters {
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 7px;
}
.l-platform-modules__filter {
	min-height: 32px;
	padding: 7px 11px;
	color: var(--l-text-muted);
	background: transparent;
	border: 1px solid var(--l-line);
	border-radius: 2px;
	cursor: pointer;
	font: inherit;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.l-platform-modules__filter:hover,
.l-platform-modules__filter.is-active {
	color: var(--l-bg);
	background: var(--l-gold);
	border-color: var(--l-gold);
}
.l-platform-modules__board {
	display: grid;
	grid-template-columns: minmax(290px, 0.78fr) minmax(0, 1.22fr);
	align-items: stretch;
	gap: 16px;
	min-width: 0;
}
.l-platform-modules__catalog {
	display: grid;
	align-content: start;
	gap: 7px;
	min-width: 0;
}
.l-platform-modules__item {
	position: relative;
	width: 100%;
	min-width: 0;
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr) 16px;
	align-items: center;
	gap: 12px;
	padding: 15px 16px;
	color: var(--l-text-soft);
	background: rgba(var(--l-surface-soft-rgb), 0.3);
	border: 1px solid var(--l-line);
	border-radius: 3px;
	cursor: pointer;
	font: inherit;
	text-align: left;
	transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.l-platform-modules__item[hidden] {
	display: none;
}
.l-platform-modules__item::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: 2px;
	content: '';
	background: transparent;
	transition: background 0.2s ease;
}
.l-platform-modules__item:hover,
.l-platform-modules__item.is-active {
	color: var(--l-text);
	background: linear-gradient(100deg, rgba(var(--l-gold-rgb), 0.12), rgba(var(--l-surface-soft-rgb), 0.5));
	border-color: rgba(var(--l-gold-rgb), 0.58);
	transform: translateX(4px);
}
.l-platform-modules__item.is-active::before {
	background: var(--l-accent);
}
.l-platform-modules__item-code {
	color: var(--l-gold);
	font-family: var(--shd-font-mono, ui-monospace, SFMono-Regular, Consolas, monospace);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
}
.l-platform-modules__item-copy {
	min-width: 0;
	display: grid;
	gap: 5px;
}
.l-platform-modules__item-copy strong,
.l-platform-modules__item-copy small {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
.l-platform-modules__item-copy strong {
	color: inherit;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.25;
}
.l-platform-modules__item-copy small {
	color: var(--l-text-muted);
	font-size: 9px;
	letter-spacing: 0.04em;
	line-height: 1.2;
}
.l-platform-modules__item-arrow {
	color: var(--l-accent);
}
.l-platform-modules__detail {
	position: relative;
	min-width: 0;
	min-height: 600px;
	display: flex;
	flex-direction: column;
	padding: clamp(24px, 3vw, 38px);
	overflow: hidden;
	background:
		linear-gradient(145deg, rgba(var(--l-surface-soft-rgb), 0.92), rgba(var(--l-platform-visual-rgb), 0.82)),
		var(--l-platform-visual-bg);
	border: 1px solid var(--l-line);
	border-top: 2px solid var(--l-gold);
	border-radius: 3px;
	box-shadow: var(--l-shadow-soft), inset 0 1px 0 rgba(var(--l-text-rgb), 0.08);
}
.l-platform-modules__detail::before {
	position: absolute;
	inset: 0;
	content: '';
	background:
		linear-gradient(rgba(var(--l-gold-rgb), 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(var(--l-gold-rgb), 0.05) 1px, transparent 1px);
	background-size: 30px 30px;
	mask-image: linear-gradient(135deg, rgba(0, 0, 0, 0.8), transparent 80%);
	pointer-events: none;
}
.l-platform-modules__detail > * {
	position: relative;
	z-index: 1;
}
.l-platform-modules__detail-header,
.l-platform-modules__detail-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.l-platform-modules__detail-code,
.l-platform-modules__detail-status,
.l-platform-modules__detail-footer > span {
	color: var(--l-gold);
	font-family: var(--shd-font-mono, ui-monospace, SFMono-Regular, Consolas, monospace);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.l-platform-modules__detail-status {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--l-text-muted);
	letter-spacing: 0.04em;
}
.l-platform-modules__detail-status strong {
	color: var(--l-text-soft);
}
.l-platform-modules__detail-status i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--l-accent);
	box-shadow: 0 0 12px rgba(var(--l-accent-rgb), 0.72);
}
.l-platform-modules__detail-main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(210px, 0.72fr);
	align-items: stretch;
	gap: 28px;
	flex: 1;
	margin-top: 52px;
}
.l-platform-modules__detail-copy {
	min-width: 0;
}
.l-platform-modules__detail-copy .l-kicker {
	margin-bottom: 13px;
}
.l-platform-modules__detail-copy h3 {
	max-width: 520px;
	margin: 0;
	color: var(--l-text);
	font-size: clamp(30px, 3.7vw, 56px);
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 0.98;
	text-transform: uppercase;
}
.l-platform-modules__detail-task {
	max-width: 460px;
	margin: 22px 0 0;
	color: var(--l-gold);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
}
.l-platform-modules__detail-description {
	max-width: 460px;
	margin: 14px 0 0;
	color: var(--l-text-soft);
	font-size: 13px;
	line-height: 1.6;
}
.l-platform-modules__facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px;
	margin: 30px 0 0;
}
.l-platform-modules__facts div {
	min-width: 0;
	padding: 13px;
	background: rgba(var(--l-bg-rgb), 0.38);
	border: 1px solid var(--l-line);
	border-radius: 2px;
}
.l-platform-modules__facts dt {
	color: var(--l-text-muted);
	font-size: 9px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.l-platform-modules__facts dd {
	margin: 9px 0 0;
	color: var(--l-text-soft);
	font-size: 11px;
	line-height: 1.45;
}
.l-platform-modules__visual {
	position: relative;
	min-height: 220px;
	align-self: end;
	overflow: hidden;
	background: rgba(var(--l-bg-rgb), 0.42);
	border: 1px solid var(--l-line);
	border-radius: 2px;
}
.l-platform-modules__visual-grid {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(rgba(var(--l-gold-rgb), 0.08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(var(--l-gold-rgb), 0.08) 1px, transparent 1px);
	background-size: 28px 28px;
}
.l-platform-modules__visual-grid i {
	position: absolute;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(var(--l-accent-rgb), 0.72);
	border-radius: 50%;
	box-shadow: 0 0 0 5px rgba(var(--l-accent-rgb), 0.05);
}
.l-platform-modules__visual-grid i:nth-child(1) { top: 17%; left: 16%; }
.l-platform-modules__visual-grid i:nth-child(2) { right: 15%; bottom: 17%; }
.l-platform-modules__visual-grid i:nth-child(3) { top: 18%; right: 23%; border-color: rgba(var(--l-gold-rgb), 0.72); }
.l-platform-modules__visual-grid i:nth-child(4) { left: 25%; bottom: 22%; width: 12px; height: 12px; background: var(--l-accent); border-color: var(--l-accent); }
.l-platform-modules__visual-node {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
}
.l-platform-modules__visual-node span {
	width: 82px;
	height: 82px;
	display: grid;
	place-items: center;
	color: var(--l-gold);
	background: rgba(var(--l-surface-soft-rgb), 0.94);
	border: 1px solid rgba(var(--l-gold-rgb), 0.7);
	border-radius: 50%;
	box-shadow: 0 0 0 9px rgba(var(--l-gold-rgb), 0.05), 0 0 30px rgba(var(--l-gold-rgb), 0.16);
	font-family: var(--shd-font-mono, ui-monospace, SFMono-Regular, Consolas, monospace);
	font-size: 11px;
	font-weight: 700;
}
.l-platform-modules__detail-footer {
	margin-top: 28px;
	padding-top: 16px;
	border-top: 1px solid var(--l-line);
}
.l-platform-modules__detail-footer .l-text-link {
	margin-top: 0;
}
.l-platform-modules.is-observing > .l-container > * {
	opacity: 0;
	filter: blur(3px);
	transform: translate3d(0, 26px, 0);
}
.l-platform-modules.is-visible > .l-container > * {
	animation: l-platform-modules-enter 0.78s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.l-platform-modules.is-visible .l-platform-modules__controls {
	animation-delay: 0.08s;
}
.l-platform-modules.is-visible .l-platform-modules__board {
	animation-delay: 0.16s;
}
.l-platform-modules.is-visible .l-platform-modules__item {
	animation: l-platform-modules-item-enter 0.58s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(2) { animation-delay: 0.05s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(3) { animation-delay: 0.1s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(4) { animation-delay: 0.15s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(5) { animation-delay: 0.2s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(6) { animation-delay: 0.25s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(7) { animation-delay: 0.3s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(8) { animation-delay: 0.35s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(9) { animation-delay: 0.4s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(10) { animation-delay: 0.45s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(11) { animation-delay: 0.5s; }
.l-platform-modules.is-visible .l-platform-modules__item:nth-child(12) { animation-delay: 0.55s; }
@keyframes l-platform-modules-enter {
	from { opacity: 0; filter: blur(3px); transform: translate3d(0, 26px, 0); }
	to { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0); }
}
@keyframes l-platform-modules-item-enter {
	from { opacity: 0; transform: translate3d(-12px, 0, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.l-platform-workflow {
	padding: clamp(92px, 8vw, 132px) 0;
	background: var(--l-bg);
}
.l-platform-flow__layout {
	display: grid;
	grid-template-columns: minmax(260px, 0.62fr) minmax(0, 1.38fr);
	align-items: stretch;
	gap: 18px;
}
.l-platform-flow__steps {
	display: grid;
	align-content: start;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.l-platform-flow__steps li {
	margin: 0;
}
.l-platform-flow__step {
	width: 100%;
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	min-height: 58px;
	padding: 11px 13px;
	color: var(--l-text-soft);
	background: rgba(var(--l-surface-soft-rgb), 0.42);
	border: 1px solid var(--l-line);
	border-radius: var(--l-radius-sm);
	cursor: pointer;
	font: inherit;
	text-align: left;
	transition: color 0.22s ease, background 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}
.l-platform-flow__step:hover,
.l-platform-flow__step.is-active {
	color: var(--l-text);
	background: linear-gradient(110deg, rgba(var(--l-gold-rgb), 0.13), rgba(var(--l-surface-soft-rgb), 0.7));
	border-color: rgba(var(--l-gold-rgb), 0.64);
	transform: translateX(3px);
}
.l-platform-flow__step-number {
	color: var(--l-gold);
	font-family: var(--shd-font-mono, ui-monospace, SFMono-Regular, Consolas, monospace);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
}
.l-platform-flow__step-title {
	min-width: 0;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.25;
}
.l-platform-flow__step-arrow {
	color: var(--l-accent);
}
.l-platform-flow__preview {
	position: relative;
	min-height: 360px;
	display: flex;
	flex-direction: column;
	padding: 28px;
	overflow: hidden;
	background: linear-gradient(145deg, rgba(var(--l-surface-soft-rgb), 0.9), rgba(var(--l-surface-rgb), 0.58));
	border: 1px solid var(--l-line);
	border-top: 2px solid var(--l-gold);
	border-radius: var(--l-radius-xl);
	box-shadow: var(--l-shadow-soft), inset 0 1px 0 rgba(var(--l-text-rgb), 0.08);
}
.l-platform-flow__preview::before {
	position: absolute;
	inset: 0;
	content: '';
	background:
		linear-gradient(90deg, transparent 49.8%, rgba(var(--l-gold-rgb), 0.12) 50%, transparent 50.2%),
		linear-gradient(rgba(var(--l-gold-rgb), 0.055) 1px, transparent 1px);
	background-size: 100% 100%, 100% 28px;
	pointer-events: none;
}
.l-platform-flow__preview > * {
	position: relative;
	z-index: 1;
}
.l-platform-flow__preview-topline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	color: var(--l-gold);
	font-family: var(--shd-font-mono, ui-monospace, SFMono-Regular, Consolas, monospace);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.l-platform-flow__preview-modules {
	max-width: 70%;
	overflow: hidden;
	color: var(--l-text-muted);
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.l-platform-flow__preview h3 {
	max-width: 660px;
	margin: 42px 0 0;
	color: var(--l-text);
	font-size: clamp(30px, 4vw, 58px);
	font-weight: 600;
	letter-spacing: 0.015em;
	line-height: 0.96;
	text-transform: uppercase;
}
.l-platform-flow__preview-description {
	max-width: 580px;
	margin: 18px 0 0;
	color: var(--l-text-soft);
	font-size: 13px;
	line-height: 1.6;
}
.l-platform-flow__preview-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: auto;
	padding-top: 32px;
}
.l-platform-flow__preview-grid div {
	min-width: 0;
	padding: 13px;
	background: rgba(var(--l-bg-rgb), 0.36);
	border: 1px solid var(--l-line);
	border-radius: var(--l-radius-sm);
}
.l-platform-flow__preview-grid span,
.l-platform-flow__preview-label {
	display: block;
	color: var(--l-text-muted);
	font-size: 9px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.l-platform-flow__preview-grid strong {
	display: block;
	margin-top: 8px;
	color: var(--l-gold);
	font-size: 12px;
	line-height: 1.35;
}
.l-platform-flow__preview-line {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
	margin: 24px 0 14px;
}
.l-platform-flow__preview-line i {
	height: 2px;
	background: linear-gradient(90deg, var(--l-accent), rgba(var(--l-gold-rgb), 0.24));
}
.l-platform-flow__preview-line i:nth-child(2) {
	opacity: 0.72;
}
.l-platform-flow__preview-line i:nth-child(3) {
	opacity: 0.46;
}
.l-platform-flow__preview-line i:nth-child(4) {
	opacity: 0.22;
}

html.l-motion-ready [data-reveal].is-visible .l-platform-flow__step {
	animation: l-card-in 0.82s cubic-bezier(0.22, 1, 0.36, 1) both;
	animation-delay: var(--l-stagger-delay, 0s);
}

@media (prefers-reduced-motion: reduce) {
	.l-platform-modules.is-observing > .l-container > *,
	.l-platform-modules.is-visible > .l-container > *,
	.l-platform-modules.is-visible .l-platform-modules__item {
		opacity: 1;
		filter: none;
		transform: none;
		animation: none;
	}
}

@media (max-width: 1100px) {
	.l-platform-modules__board,
	.l-platform-flow__layout {
		grid-template-columns: minmax(220px, 0.58fr) minmax(0, 1.42fr);
		gap: 14px;
	}
	.l-platform-modules__detail {
		min-height: 560px;
		padding: 22px;
	}
	.l-platform-modules__detail-copy h3 {
		font-size: clamp(27px, 3.6vw, 42px);
	}
	.l-platform-flow__preview {
		padding: 24px;
	}
}

@media (max-width: 680px) {
	.l-platform-modules__header {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-bottom: 32px;
	}
	.l-platform-modules__controls {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}
	.l-platform-modules__filters {
		flex-wrap: nowrap;
		justify-content: flex-start;
		width: 100%;
		padding-bottom: 4px;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.l-platform-modules__filters::-webkit-scrollbar {
		display: none;
	}
	.l-platform-modules__board,
	.l-platform-flow__layout {
		grid-template-columns: 1fr;
	}
	.l-platform-modules__catalog {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.l-platform-modules__item {
		grid-template-columns: 1fr auto;
		gap: 8px;
		padding: 12px;
	}
	.l-platform-modules__item-code {
		grid-column: 1 / -1;
	}
	.l-platform-modules__item-copy strong {
		white-space: normal;
	}
	.l-platform-modules__detail {
		min-height: auto;
		padding: 20px;
	}
	.l-platform-modules__detail-main {
		grid-template-columns: 1fr;
		gap: 24px;
		margin-top: 34px;
	}
	.l-platform-modules__detail-copy h3 {
		font-size: clamp(26px, 9vw, 42px);
	}
	.l-platform-modules__facts {
		grid-template-columns: 1fr;
	}
	.l-platform-modules__visual {
		min-height: 200px;
	}
	.l-platform-flow__steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.l-platform-flow__step {
		grid-template-columns: 30px minmax(0, 1fr);
		min-height: 68px;
	}
	.l-platform-flow__step-arrow {
		display: none;
	}
	.l-platform-flow__preview {
		min-height: 420px;
		padding: 22px 20px;
	}
	.l-platform-flow__preview h3 {
		margin-top: 32px;
		font-size: clamp(29px, 9vw, 48px);
	}
	.l-platform-flow__preview-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 440px) {
	.l-platform-modules__catalog,
	.l-platform-flow__steps {
		grid-template-columns: 1fr;
	}
}
