/* Global Styles */
:root {
	--main-bg-color: #141c54;
	--main-color: #fefefe;
	--dark-blue: #4949a233;
}
body {
	overflow-x: hidden;
	background-color: var(--main-bg-color);
}

/* ===================== Reusable Classes ===================== */
/* Colors */
.main-color {
	color: var(--main-color);
}
.dark-blue-bg {
	background-color: var(--dark-blue);
}
/* Spaces */
.gap-5rem {
	gap: 5rem;
}
.p-25rem {
	padding: 2.5rem;
}
/* Fonts */
.fs-55rem {
	font-size: 5.5rem;
}
.fs-4rem {
	font-size: 4rem;
}

/* Text */
.uppercase {
	text-transform: uppercase;
}
/* Width */
.max-w-900 {
	max-width: 900px;
}
/*  */
.blur-bg-main {
	backdrop-filter: blur(1.5rem);
}

/* ====================== Header ====================== */
header .logo {
	display: block;
	width: 50px;
	animation: fadeInLeft 1s ease-out;
}

header p {
	animation: fadeInDown 1s ease-out 0.3s both;
}

/* ===================== Countdown Timer ===================== */
main {
	backdrop-filter: blur(0.5rem);
	min-height: calc(100vh);
	position: relative;
}

#countdown-timer {
	width: 95%;
	position: relative;
	z-index: 2;
	animation: scaleIn 1.2s ease-out 0.5s both;
}

#countdown-timer > span {
	transform: translateY(-30px);
}

.shapes {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}

.shapes div {
	position: absolute;
	width: 200px;
	height: 200px;
}

.shapes div.right-circle {
	background-color: turquoise;
	border-radius: 50%;
	bottom: 25%;
	right: 15%;
	animation: fadeInRight 1.5s ease-out 0.8s both,
		float 3s ease-in-out 2s infinite;
}

.shapes div.left-square {
	background-color: rgb(206, 35, 206);
	border-radius: 6px;
	top: 25%;
	left: 15%;
	animation: fadeInLeft 1.5s ease-out 0.8s both,
		float 3s ease-in-out 2.5s infinite;
}

/* Countdown numbers animation */
.hours,
.minutes,
.seconds {
	animation: fadeInUp 1s ease-out 1s both;
}

.hours {
	animation-delay: 1s;
}

.minutes {
	animation-delay: 1.2s;
}

.seconds {
	animation-delay: 1.4s;
}

.countdown-finished-modal #target-time {
	color: var(--main-bg-color);
	background-color: rgba(255, 107, 107, 0.1);
	padding: 0.25rem 0.5rem;
	font-weight: 500;
	border-radius: 4px;
	border: 1px solid rgba(255, 107, 107, 0.3);
}
.countdown-finished-modal .modal-title {
	color: var(--main-bg-color);
	padding: 0.25rem 0.5rem;
	font-weight: 500;
	font-size: 1.2rem;
}
[data-bs-target="#staticBackdrop"] {
	display: none;
}

/* ===================== Footer ===================== */
footer {
	border-top: 2px solid rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(1.5rem);
	animation: fadeInUp 1s ease-out 1.8s both;
}

footer p {
	font-size: 0.9rem;
	letter-spacing: 0.5px;
}

footer a {
	transition: all 0.3s ease;
	position: relative;
}

footer a:hover {
	color: #ff6b6b !important;
	transform: translateY(-1px);
}

footer a::after {
	content: "";
	position: absolute;
	width: 0;
	height: 2px;
	bottom: -2px;
	left: 0;
	background-color: #ff6b6b;
	transition: width 0.3s ease;
}

footer a:hover::after {
	width: 100%;
}

/* ===================== Media Queries ===================== */
@media (max-width: 991px) {
	.fs-55rem {
		font-size: 3.5rem;
	}
	.fs-4rem {
		font-size: 2.5rem;
	}
	.gap-5rem {
		gap: 2.5rem;
	}
}
@media screen and (max-width: 768px) {
	/* Reusable Classes */
	.fs-55rem {
		font-size: 2rem;
	}
	.fs-4rem {
		font-size: 1.5rem;
	}
	.gap-5rem {
		gap: 1rem;
	}
	#countdown-timer > span {
		transform: translateY(-25px);
	}
}

/* ===================== Animations ===================== */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeInDown {
	from {
		opacity: 0;
		transform: translateY(-30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeInLeft {
	from {
		opacity: 0;
		transform: translateX(-30px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes fadeInRight {
	from {
		opacity: 0;
		transform: translateX(30px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes scaleIn {
	from {
		opacity: 0;
		transform: scale(0.8);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes float {
	0%,
	100% {
		transform: translateY(0px);
	}
	50% {
		transform: translateY(-10px);
	}
}
