/* 3D TMT rod showcase — seamless white band */
.section--tmt-3d {
	background: #fff;
}

.section--tmt-3d__inner {
	max-width: 1220px;
	margin-inline: auto;
	padding-inline: clamp(1.5rem, 7.8vw, 120px);
}

.section--tmt-3d__heading {
	margin-bottom: 1rem;
}

.section--tmt-3d__lead {
	margin: 0 0 1.25rem;
	font-size: 1.125rem;
	line-height: 1.35;
	letter-spacing: -0.05em;
	color: #000;
	max-width: 52ch;
}

.tmt-3d-viewer {
	position: relative;
	width: 100%;
	margin-inline: 0;
	min-height: min(62vh, 480px);
	background: transparent;
}

.tmt-3d-viewer__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: min(62vh, 480px);
	padding: 2rem;
	text-align: center;
	background: transparent;
}

.tmt-3d-viewer__placeholder p {
	margin: 0;
	max-width: 36ch;
	font-size: 1.0625rem;
	line-height: 1.45;
	color: #444;
}

.tmt-3d-viewer__placeholder--error {
	background: #fff5f5;
}

.tmt-3d-viewer__placeholder--error p {
	max-width: 42ch;
	color: #8a1f1f;
}

.tmt-3d-viewer__load-error {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: min(62vh, 480px);
	padding: 2rem;
	text-align: center;
	background: #fff5f5;
}

.tmt-3d-viewer__load-error[hidden] {
	display: none;
}

.tmt-3d-viewer__load-error p {
	margin: 0;
	max-width: 42ch;
	font-size: 1.0625rem;
	line-height: 1.45;
	color: #8a1f1f;
}

.tmt-3d-viewer__model {
	display: block;
	width: 100%;
	height: min(62vh, 480px);
	--poster-color: transparent;
	background-color: transparent;
	outline: none;
	opacity: 0;
	transform: scale(0.88) translateY(24px);
	transform-origin: center center;
	transition:
		opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
		transform 1s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

.tmt-3d-viewer--entered .tmt-3d-viewer__model {
	opacity: 1;
	transform: scale(1) translateY(0);
}

.tmt-3d-viewer__model::part(default-progress-bar) {
	display: none;
}

.tmt-3d-hint {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	color: #000;
	z-index: 2;
	opacity: 0;
	transition: opacity 0.45s ease, visibility 0.45s ease;
}

.tmt-3d-viewer--entered .tmt-3d-hint:not(.is-dismissed) {
	opacity: 1;
}

.tmt-3d-hint.is-dismissed {
	opacity: 0;
	visibility: hidden;
}

.tmt-3d-hint__graphic {
	width: 44px;
	height: 44px;
}

.tmt-3d-hint.is-animating .tmt-3d-hint__arrow-group {
	animation: tmt3d-arrow-drag 1.3s ease-in-out 0.35s 3;
}

@keyframes tmt3d-arrow-drag {
	0%,
	100% {
		transform: translateX(0);
	}
	45% {
		transform: translateX(6px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.tmt-3d-viewer__model {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.tmt-3d-viewer--entered .tmt-3d-hint:not(.is-dismissed) {
		opacity: 1;
	}

	.tmt-3d-hint.is-animating .tmt-3d-hint__arrow-group {
		animation: none;
	}
}

@media (max-width: 768px) {
	.tmt-3d-viewer,
	.tmt-3d-viewer__model {
		min-height: min(50vh, 360px);
		height: min(50vh, 360px);
	}

	.tmt-3d-hint__graphic {
		width: 36px;
		height: 36px;
	}
}
