.font-dancing {
	font-family: "Dancing Script", cursive;
}
.font-poppins {
	font-family: "Poppins", sans-serif;
}

.timeline-container {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
}

.timeline-line {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 4px;
	height: 100%;
	background: linear-gradient(to bottom, #d4a574, #c4956c, #b8860b);
	border-radius: 2px;
	z-index: 1;
}

.timeline-item {
	position: relative;
	margin-bottom: 4rem;
	z-index: 2;
}

.timeline-item:nth-child(odd) .timeline-content {
	margin-left: 0;
	margin-right: 55%;
	text-align: right;
}

.timeline-item:nth-child(even) .timeline-content {
	margin-left: 55%;
	margin-right: 0;
	text-align: left;
}

.timeline-content {
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(10px);
	border-radius: 20px;
	padding: 2rem;
	box-shadow: 0 10px 30px rgba(212, 165, 116, 0.15);
	border: 2px solid rgba(212, 165, 116, 0.2);
	transition: all 0.3s ease;
}

.timeline-content:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 40px rgba(212, 165, 116, 0.25);
	border-color: #d4a574;
}

.timeline-dot {
	position: absolute;
	left: 50%;
	top: 2rem;
	transform: translateX(-50%);
	width: 60px;
	height: 60px;
	background: linear-gradient(135deg, #d4a574, #c4956c);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-size: 1.5rem;
	font-weight: bold;
	box-shadow: 0 4px 15px rgba(212, 165, 116, 0.4);
	z-index: 3;
}

.photo-story {
	background: linear-gradient(135deg, #f6f2ea, #e1c8b8);
	border: 2px dashed #d4a574;
	border-radius: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #8c7b6b;
	font-size: 0.9rem;
	text-align: center;
	cursor: pointer;
	transition: all 0.3s ease;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	margin: 1rem 0;
	overflow: hidden;
}

.photo-story:hover {
	background-color: #e1c8b8;
	border-color: #c4956c;
	transform: scale(1.02);
}

.photo-story.has-image {
	border: none;
	color: transparent;
}

.special-message {
	background: linear-gradient(135deg, #e8f5e8, #d4e6d4);
	border-left: 4px solid #8c9a82;
	padding: 1.5rem;
	border-radius: 10px;
	font-style: italic;
	text-align: center;
}

.final-card {
	background: linear-gradient(135deg, #fff8e7, #f5e6d3);
	border: 3px solid #d4a574;
}

.timeline-item:last-child .timeline-dot {
	background: linear-gradient(135deg, #b8860b, #a67c00);
	width: 80px;
	height: 80px;
	font-size: 2rem;
}

@media (max-width: 768px) {
	.timeline-line {
		left: 20px;
		width: 3px;
	}

	.timeline-dot {
		left: 20px;
		width: 40px;
		height: 40px;
		font-size: 1.25rem;
	}

	.timeline-item:nth-child(odd) .timeline-content,
	.timeline-item:nth-child(even) .timeline-content {
		margin-left: 60px;
		margin-right: 0;
		text-align: left;
	}

	.timeline-item:last-child .timeline-dot {
		width: 50px;
		height: 50px;
		font-size: 1.5rem;
	}
}

.floating-hearts {
	position: absolute;
	width: 100%;
	height: 100%;
	overflow: hidden;
	pointer-events: none;
	z-index: 1;
}

.heart {
	position: absolute;
	animation: floatHeart 15s ease-in-out infinite;
	opacity: 0.1;
	font-size: 1.5rem;
}

@keyframes floatHeart {
	0%,
	100% {
		transform: translateY(0px) rotate(0deg);
		opacity: 0.1;
	}
	25% {
		transform: translateY(-30px) rotate(90deg);
		opacity: 0.3;
	}
	50% {
		transform: translateY(-60px) rotate(180deg);
		opacity: 0.2;
	}
	75% {
		transform: translateY(-30px) rotate(270deg);
		opacity: 0.3;
	}
}

.language-btn {
	background: transparent;
	color: #4c4c44;
}

.language-btn.active {
	background: linear-gradient(135deg, #8c9a82, #a9b39b);
	color: white;
}

.language-btn:hover {
	background: rgba(140, 154, 130, 0.1);
}

.language-btn.active:hover {
	background: linear-gradient(135deg, #7a8a72, #9aa38b);
}

/* From Uiverse.io by Fernando-sv */
span.loader {
	border: 4px solid rgba(0, 0, 0, 0.1);
	border-left-color: transparent;
	border-radius: 50%;
	width: 24px;
	height: 24px;
	animation: spin89345 1s linear infinite;
}

@keyframes spin89345 {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}
