.dna-timeline {
	--marker-animation-speed: 1.8s;
	--marker-color: #d8c5ab;
	--marker-fill-color: #d8c5ab;
	--mobile-content-gap: 20px;
	--mobile-dot-y-offset: 42px;
	--mobile-line-end-offset: 0px;
	--mobile-line-start-offset: 42px;
	--mobile-rail-offset: 18px;
	--timeline-column-gap: 80px;
	--timeline-line-thickness: 2px;
	--timeline-items: 3;
	box-sizing: border-box;
	margin-inline: auto;
	width: 100%;
}

.dna-timeline *,
.dna-timeline *::before,
.dna-timeline *::after {
	box-sizing: inherit;
}

.dna-timeline__items {
	display: grid;
	grid-template-columns: repeat(var(--timeline-items), minmax(0, 1fr));
	position: relative;
	width: 100%;
}

.dna-timeline__track {
	background: #d8c5ab;
	height: var(--timeline-line-thickness);
	inset-block-start: 0;
	inset-inline: calc(100% / var(--timeline-items) / 2);
	position: absolute;
	transform: translateY(-50%);
	z-index: 0;
}

.dna-timeline__item {
	min-width: 0;
	padding-inline: calc(var(--timeline-column-gap) / 2);
	padding-top: 42px;
	position: relative;
	text-align: center;
	z-index: 1;
}

.dna-timeline__marker {
	align-items: center;
	background: #fff;
	border: 2px solid var(--marker-color);
	border-radius: 999px;
	display: inline-flex;
	height: 13px;
	inset-block-start: 0;
	inset-inline-start: 50%;
	justify-content: center;
	position: absolute;
	transform: translate(-50%, -50%);
	width: 13px;
	z-index: 2;
}

.dna-timeline__marker::before {
	border: 2px solid var(--marker-color);
	border-radius: inherit;
	content: "";
	inset: -2px;
	opacity: 0;
	position: absolute;
	transform: scale(1);
	z-index: -1;
}

.dna-timeline[dir="rtl"] .dna-timeline__marker {
	transform: translate(50%, -50%);
}

.dna-timeline__marker::after {
	background: var(--marker-fill-color);
	border-radius: inherit;
	content: "";
	display: block;
	height: 38%;
	width: 38%;
}

.dna-timeline--marker-pulse .dna-timeline__marker::before {
	animation: dna-timeline-marker-pulse var(--marker-animation-speed) ease-out infinite;
}

.dna-timeline--marker-ping .dna-timeline__marker::before {
	animation: dna-timeline-marker-ping var(--marker-animation-speed) cubic-bezier(0, 0, 0.2, 1) infinite;
}

.dna-timeline--marker-glow .dna-timeline__marker {
	animation: dna-timeline-marker-glow var(--marker-animation-speed) ease-in-out infinite;
}

@keyframes dna-timeline-marker-pulse {
	0% {
		opacity: 0.55;
		transform: scale(1);
	}

	100% {
		opacity: 0;
		transform: scale(2.2);
	}
}

@keyframes dna-timeline-marker-ping {
	0% {
		opacity: 0.8;
		transform: scale(0.9);
	}

	75%,
	100% {
		opacity: 0;
		transform: scale(2.8);
	}
}

@keyframes dna-timeline-marker-glow {
	0%,
	100% {
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--marker-color) 30%, transparent);
	}

	50% {
		box-shadow: 0 0 0 8px color-mix(in srgb, var(--marker-color) 18%, transparent);
	}
}

@media (prefers-reduced-motion: reduce) {
	.dna-timeline__marker,
	.dna-timeline__marker::before {
		animation: none !important;
	}
}

.dna-timeline__year {
	color: #222;
	font-size: 27px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 12px;
}

.dna-timeline__title {
	color: #222;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.55;
	margin: 0 auto 22px;
	max-width: 260px;
}

.dna-timeline__description {
	color: #666;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.85;
	margin: 0 auto;
	max-width: 300px;
}

@media (max-width: 767px) {
	.dna-timeline__items {
		display: block;
	}

	.dna-timeline__track {
		height: auto !important;
		inset: var(--mobile-line-start-offset) var(--mobile-rail-offset) var(--mobile-line-end-offset) auto;
		transform: none;
		width: var(--timeline-line-thickness);
	}

	.dna-timeline__item {
		margin-bottom: 52px;
		min-height: 1px;
		padding: 0 calc(var(--mobile-rail-offset) + var(--mobile-content-gap)) 0 0;
		text-align: right !important;
	}

	.dna-timeline__item:last-child {
		margin-bottom: 0;
	}

	.dna-timeline__marker {
		inset-block-start: var(--mobile-dot-y-offset);
		inset-inline-start: auto;
		right: var(--mobile-rail-offset);
	}

	.dna-timeline[dir="ltr"] .dna-timeline__track {
		inset: var(--mobile-line-start-offset) auto var(--mobile-line-end-offset) var(--mobile-rail-offset);
	}

	.dna-timeline[dir="ltr"] .dna-timeline__item {
		padding: 0 0 0 calc(var(--mobile-rail-offset) + var(--mobile-content-gap));
		text-align: left !important;
	}

	.dna-timeline[dir="ltr"] .dna-timeline__marker {
		left: var(--mobile-rail-offset);
		right: auto;
	}

	.dna-timeline__year {
		font-size: 24px;
	}

	.dna-timeline__title,
	.dna-timeline__description {
		max-width: 26rem;
	}

	.dna-timeline[dir="rtl"] .dna-timeline__title,
	.dna-timeline[dir="rtl"] .dna-timeline__description {
		margin-left: auto !important;
		margin-right: 0 !important;
	}

	.dna-timeline[dir="ltr"] .dna-timeline__title,
	.dna-timeline[dir="ltr"] .dna-timeline__description {
		margin-left: 0 !important;
		margin-right: auto !important;
	}

	.dna-timeline[dir="rtl"] .dna-timeline__year {
		margin-left: auto !important;
		margin-right: 0 !important;
	}

	.dna-timeline[dir="ltr"] .dna-timeline__year {
		margin-left: 0 !important;
		margin-right: auto !important;
	}
}
