html {
	scroll-behavior: smooth;
}

body {
	font-family: calibri;
}

.header {
	background-color: #050505;
	min-height: 100vh;
	clip-path: polygon(0 0, 100% 0, 100% 87%, 52% 100%, 30% 91%, 0% 100%);
}

.header-nav-custom {
	font-size: 18px !important;
	font-weight: bold !important;
}

.navbar {
	transition: 1s !important;
}

.nav-container-initial .show .nav-item {
	background-color: black !important;
}

.header-nav-custom .overlay {
	top: 0;
	bottom: 0;
	left: 0;
	width: 0%;
	transition: 0.5s;
}

.header-nav-custom:hover .overlay,
.header-nav-custom.active .overlay {
	width: 70%;
	border-bottom: 2px solid white;

}

/* .header .slider .bubbles {
	width: 60%;
	right: 0;
	top: 0;
	bottom: 0;
	animation: bounchingball 0.3s ease-in-out;
	transition: 0.9s;
}

@keyframes bounchingball {
	from {
		top: 0;
	}

	to {
		top: 5%;
	}
} */

.header .slider .bubbles .bubble {
	background: rgb(106, 146, 206);
	background: linear-gradient(335deg, rgba(106, 146, 206, 1) 35%, rgba(255, 255, 255, 1) 100%);
	box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.18);
}

.header .slider .bubbles .bubble:nth-child(1) {
	width: 250px;
	height: 250px;
	position: absolute;
	top: -5%;
	left: -30%;
}

.header .slider .bubbles .bubble:nth-child(2) {
	width: 90px;
	height: 90px;
	position: absolute;
	z-index: 20;
	top: 90%;
	margin-left: -50px;
}

.header .slider .bubbles .bubble:nth-child(3) {
	width: 100px;
	height: 100px;
	position: absolute;
	top: 80%;
	right: 0;
}

.header-img-custom {
	width: 55%;
	background: rgba(255, 255, 255, 0.25);
	box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
	backdrop-filter: blur(4px);
	border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	transition: filter .5s;
	left: auto;
	right: auto;
	bottom: 0%;
	z-index: 5;
	filter: grayscale(0.8) drop-shadow(0px 3px 10px rgba(119, 138, 191, 0)) !important;
}

.header-img-custom:hover {
	filter: grayscale(0) drop-shadow(0px 3px 10px rgba(119, 138, 191, 1)) !important;
}

.bg-btn {
	background-color: #00ADEB;
	color: white;
}

.about-bg-custom {
	background-color: #191919;
}

.moving-animation {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	animation: moving 5s 1s infinite alternate forwards;
}

.service-bg-custom {
	background-color: #222121;
}

.button-bg-custom {
	background-color: #373737;
}

.button-border-custom {
	border-color: #373737;
}

.card-bg-custom {
	background-color: #252421;
}

.card-icon,
.card-icon i {
	transition: 2s;
}

.service-card {
	box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2);
}

.service-card:hover .card-icon {
	background-color: #0093E1 !important;
}

.service-card:hover .card-icon i {
	color: #fff !important;
}

.more-service {
	color: #fff;
	transition: 1s;
}

.more-service:hover {
	text-decoration: none;
}

.more-service i {
	transition: 0.2s !important;
}

.more-service:hover i {
	margin-right: 5px !important;
}

.mywork-bg-custom {
	background-color: #1F1B1A;
}

.myworkcard-bg-custom {
	background-color: #282828;
}

.work-card {
	transition: 0.5s;
}

.work-card:hover {
	border: 0.5px solid gray !important;
	border-radius: 10px;
}

.testimonial-bg-custom {
	background-color: #2C2C2C;
}

.testimonial .testimonial-shape {
	background-image: linear-gradient(to bottom, #161615 80%, transparent);
	width: 40%;
	height: 100%;
	clip-path: polygon(0 0, 100% 0%, 52% 100%, 0% 100%);
	top: -10%;
}

.testimonial .container {
	z-index: 20;
}

.test-img::before {
	content: "";
	position: absolute;
	width: 300px;
	height: 300px;
	border: 1px solid rgb(114, 111, 111);
	border-radius: 50%;
	top: -41px;
	left: -41px;
	right: 0;
}

.test-img::after {
	content: "";
	position: absolute;
	width: 370px;
	height: 370px;
	border: 1px solid rgb(72, 70, 70);
	border-radius: 50%;
	top: -77px;
	left: -74px;
	right: 0;
}

.test-icon {
	width: 50px;
	height: 50px;
	line-height: 50px;
	border: 1px solid gray;
	transition: 0.5s;
}

.test-icon:hover {
	background-color: #009EE3;
}

.prising-bg-custom {
	background-color: #1B1B19;
}

.bg-custom {
	background-color: #00A3E7;
	color: #fff;
	width: 100px;
	height: 35px;
	line-height: 35px;
	border-radius: 0px 0px 10px 10px;
	margin-top: -20px;
}

.border-color-custom {
	border-color: #0993E0;
}

.work-button {
	width: 60%;
	color: #0993E0;
	font-size: 20px;
	transition: 0.5s;
}

.work-button:hover {
	background-color: #0993E0 !important;
	color: #fff;
}

.left-shape {
	width: 400px;
	background-color: #FF4155;
	position: absolute;
	top: 0;
	bottom: 0;
	left: -400px;
	z-index: 1;
}

.left-shape::before {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	content: "";
	background: url(../images/shape.png) no-repeat center center;
	background-size: cover;
	z-index: -1;
}

.contact-items {
	position: relative;
	min-height: 300px;
	background-color: #FF4155;
	z-index: 1;
}

.contact-items::before {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	content: "";
	background: url(../images/shape.png) no-repeat center center;
	background-size: cover;
	z-index: -1;
}

.contacts-bg-cutom {
	background-color: #2C2C2C;
}

.contacts-left-bg-cutom {
	background-color: #282828;
}

.contacts-bg-icon {
	background-color: #DFF3FC;
	color: #00B4FF;
}

.contacts-icon {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: 1s;
}

.contacts-items:hover .contacts-icon {
	background-color: #00B4FF;
	color: white;
}

.footer {
	transition: 0.5s !important;
	z-index: 100;
}

@keyframes moving {
	0% {
		left: 0;
		right: 0;
	}

	25% {
		left: 20px;
	}

	50% {
		left: 20px;
		right: -20px;
		top: -20px;
		bottom: 20px;
	}

	75% {
		left: -20px;
		right: 20px;
		top: -20px;
		bottom: 20px;
	}

	100% {
		top: 0px;
		bottom: 0;
	}
}

/* bounching animation */
:root {
	--ball-1-color: #ff007b;
	--shadow-color1: rgba(255, 0, 123, 0.7);
	--ball-2-color: #00d4ff;
	--shadow-color2: rgba(0, 213, 255, 0.7);
	--speed: 0.6s;
	--travel-speed: 4.8s;	/* 0.6s * 8 = 4 bounces per crossing */
}

/* --- Animation Setup --- */
.animation-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 105%;
	height: 90%;
	z-index: 1;
}

.ball,
.shadows {
	position: absolute;
	bottom: 20px;
	transform-origin: bottom;
}

.ball {
	width: 60px;
	height: 60px;
	border-radius: 50%;
}

.shadows {
	width: 60px;
	height: 15px;
	background: rgba(0,0,0,0.5);
	border-radius: 50%;
	bottom: 10px;
	filter: blur(5px);
	z-index: 1;
	box-shadow: unset;
}

/* --- Ball 1 (Left to Right) --- */
.ball-1 {
	background: radial-gradient(circle at 30% 30%, var(--ball-1-color), #4b0024);
	box-shadow: 0 0 30px rgba(255, 0, 123, 0.5);
	animation: 
		bounce var(--speed) infinite alternate ease-in,
		travel var(--travel-speed) infinite alternate ease-in-out;
}

.shadow-1 {
	animation: 
		shadow-glow1 var(--speed) infinite alternate ease-in,
		travel var(--travel-speed) infinite alternate ease-in-out;
}

/* --- Ball 2 (Right to Left) --- */
.ball-2 {
	background: radial-gradient(circle at 30% 30%, var(--ball-2-color), #00364b);
	box-shadow: 0 0 30px rgba(0, 212, 255, 0.5);
	animation: 
		bounce var(--speed) infinite alternate ease-in,
		travel-reverse var(--travel-speed) infinite alternate ease-in-out;
	/* Staggering the bounce slightly for a more natural look */
	animation-delay: 0.1s, 0s; 
}

.shadow-2 {
	animation: 
		shadow-glow2 var(--speed) infinite alternate ease-in,
		travel-reverse var(--travel-speed) infinite alternate ease-in-out;
	animation-delay: 0.1s, 0s;
}

/* --- Keyframes --- */

@keyframes bounce {
	0% { bottom: 75%; transform: scale(1, 1); }
	93% { bottom: 20px; transform: scale(1, 1); }
	100% { bottom: 20px; transform: scale(1.3, 0.7); }
}

@keyframes travel {
	0% { left: 5%; }
	100% { left: 90%; }
}

@keyframes travel-reverse {
	0% { left: 90%; }
	100% { left: 5%; }
}

@keyframes shadow-glow1 {
	0% { transform: scale(0.3); opacity: 0.2; box-shadow: 0 0 0px var(--shadow-color1) !important; }
	100% { transform: scale(1.4); opacity: 0.7; box-shadow: 0 0 50px 15px var(--shadow-color1) !important; }
}
@keyframes shadow-glow2 {
	0% { transform: scale(0.3); opacity: 0.2; box-shadow: 0 0 0px var(--shadow-color2) !important; }
	100% { transform: scale(1.4); opacity: 0.7; box-shadow: 0 0 50px 15px var(--shadow-color2) !important; }
}
	

/* scroll animation css */
.nav-container-initial.navbar-fixed-active .nav-item {
	background-color: rgba(255, 255, 255, 0) !important;
}

.nav-container-initial.navbar-fixed-active {
	background-color: #1a1a1a !important;
	position: fixed !important;
	animation: navAnimation 1s ease;
}

@keyframes navAnimation {
	0% {
		top: -10%;
	}

	100% {
		top: 0;
	}
}

.Scl-left {
	position: relative;
	left: -100%;
	opacity: 0;
	transition: 1.5s !important;
}

.Scl-left.active {
	left: 0%;
	opacity: 1;
}

.Scl-right {
	position: relative;
	right: -100%;
	opacity: 0;
	transition: 1.5s !important;
}

.Scl-right.active {
	right: 0%;
	opacity: 1;
}

.Scl-opacity {
	opacity: 0;
	transition: 1.9s !important;
}

.Scl-opacity.active {
	opacity: 1;
}

.Scl-top {
	opacity: 0;
	margin-top: -20%;
	transition: 1.5s !important;
}

.Scl-top.active {
	opacity: 1;
	margin-top: initial;
}


/* responsive css */
@media only screen and (max-width: 991px) {
	.card {
		width: auto !important;
	}
}

@media only screen and (max-width: 767px) {
	.header {
		clip-path: polygon(0 0, 100% 0, 100% 95%, 70% 100%, 30% 97%, 0% 100%);
		padding-bottom: 100px;
	}

	.header .header-img-custom {
		width: 50% !important;
	}

	.header .navbar-brand {
		width: 25% !important;
	}

	.card {
		width: auto !important;
	}

	#header .slider .col-12:first-child {
		order: 2;
	}

	#header .slider .col-12:last-child {
		order: 1;
	}

	.header .slider .bubbles .bubble:nth-child(1) {
		top: -2%;
		left: -50%;
	}

	.header .slider .bubbles .bubble:nth-child(2) {
		top: 95%;
		margin-left: -120px;
	}

	.header .slider .bubbles .bubble:nth-child(3) {
		width: 100px;
		height: 100px;
		position: absolute;
		top: 80%;
		right: 0;
	}

	#header .slider .col-12:last-child .header-img-custom {
		width: 80%;
		position: relative !important;
		bottom: auto;
		height: 60vh;
		object-fit: cover;
		object-position: top;
	}

	.testimonial .testimonial-shape {
		width: 70%;
	}

	/* animation css */
	.animation-container {
		width: 90%;
		height: 100%;
	}
}

@media only screen and (max-width: 575px) {
	#header .slider .col-12:last-child .header-img-custom {
		height: 46vh;
	}
	/* animation css */
	.animation-container {
		width: 90vw;
		
	}
}