/* Global Styles */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	scroll-behavior: smooth;
}

/*///////////////////////////////////////////////////////////////////////////////////////////////// Styling for text */
a {
	text-decoration: none;
	cursor: default;
}

body {
	background-color: #1C1C1C;
	margin: 0;
	padding: 0;
	font-family: 'Sen', sans-serif;
}

h1 {
	font-size: 100px;
	font-weight: 400;
	font-family: 'Sen', sans-serif;
	margin: 0%;
}

h2 {
	font-size: 35px;
	font-weight: 400;
	font-family: 'Sen', sans-serif;
	margin-bottom: 10px;
}

.large-body-text {
	font-size: 24px;
	font-weight: 400;
	font-family: 'Sen', sans-serif;
	margin: 10px 0;
}

body, p {
	font-size: 16px;
	font-weight: 400;
	font-family: 'Sen', sans-serif;
}

a {
	text-decoration: none;
	cursor: default;
}

body {
	background-color: #1C1C1C;
	color: #D9D9D9;
	font-family: 'Sen', sans-serif;
	margin: 0;
	padding: 0;
	overflow-x: hidden;
}

.aos-from-right {
	opacity: 0;
	filter: blur(5px);
	transform: translateX(100%);
	transition: all 2s var(--ease);
}

.aos-from-bottom {
	opacity: 0;
	filter: blur(10px);
	transform: translateY(100%);
	transition: all 2s var(--ease) !important;
}

.aos-from-bottom:nth-child(2) {
	transition-delay: 0.3s !important;
}

.aos-from-bottom:nth-child(3) {
	transition-delay: 0.6s !important;
}

.aos-from-left {
	opacity: 0;
	filter: blur(10px);
	transform: translateX(-100%);
	transition: all 2s var(--ease);
}

.in-view {
	opacity: 1;
	filter: none;
	transform: none;
}

/*//////////////////////////////////////////////////////////////* Navbar */
.navbar {
	display: flex;
	justify-content: space-between;
	padding: 10px;
	width: 100%;
	background-color: #1C1C1C;
	position: fixed;
	top: 0%;
	z-index: 100;
}

.navbar ul {
	list-style-type: none;
	display: flex;
}

.navbar li {
	margin-right: 40px;
}

.navbar a {
	color: #D9D9D9;
	text-decoration: none;
}

/*//////////////////////////////////////////////////////////////////////////////* Introduction Section */


.project-hero {
	text-align: justify;
	margin-top: 150px;
	margin-bottom: 200px;
}

.hero-container {
	position: relative;
	width: 100%;
	height: 600px;
	display: flex;
	align-items: center;
	margin-top: 100px;
	justify-content: space-evenly;
}

.hero-container img {
	transition: transform 0.3s ease;
}
  
.hero-container img:hover {
	transform: scale(1.1);
}

.hero-left {
	width: 650px;
}

.tag {
	opacity: 0;
	animation: fade-in-bottom 1.5s var(--ease) forwards;
}

.tag:nth-child(2) {
	animation-delay: 0.2s !important;
}

.tag:nth-child(3) {
	animation-delay: 0.4s !important;
}

.hero-right {
	width: 540px;
	animation: fade-in-right 1.5s ease-out forwards;
	opacity: 0;
}

.hero-img {
	position: relative;
	width: 100%;
}

@media only screen and (min-width: 2560px) {

	h1 {
		font-size: 140px;
	}
	
	h2 {
		font-size: 35px;
		margin-bottom: 15px;
	}
	
	.large-body-text {
		font-size: 34px;
	}
	
	body, p {
		font-size: 20px;
	}

	.intro-container {
		position: relative;
		width: 100%;
		height: 900px;
		margin-top: 100px;
	}

	.intro-left {
		width: 775px;
	}
	
	.intro-right {
		width: 700px;
	}

}

@media only screen and (max-width: 1200px) {

	body {
		background-color: rgb(26, 71, 86);
	}

}



/* Pop-up modal */
.popup {
	display: none; /* Hidden by default */
	position: fixed;
	z-index: 1000; /* Ensures it appears on top */
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7); /* Dark, semi-transparent background */
	display: flex;
	justify-content: center;
	align-items: center;
}

/* Pop-up content */
.popup-content {
	background-color: #fff;
	padding: 30px;
	border-radius: 15px; /* Smooth rounded corners */
	width: 500px; /* Slightly wider pop-up */
	max-width: 90%; /* Ensures it doesn't get too wide on small screens */
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); /* Soft shadow for depth */
	text-align: center;
	position: relative; /* So the close button can be positioned absolutely */
	animation: slide-down 0.4s ease; /* Slide down effect */
	font-family: 'Arial', sans-serif;
}



/* /////////////////////////////////////////////////////////////////////////Problem Statement Section */


.problem-statement {
	position: relative;
	height: 500px;
	margin-top: 250px;
	margin-bottom: 150px;
}

.problem-overlay {
	position: relative;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #1c1c1c75;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	padding-right: 10vw;
}

.problem-text-container {
	color: white;
	text-align: center;
	max-width: 500px;
	z-index: 2;
}

@media only screen and (min-width: 2560px) {
	.problem-text-container {
		max-width: 600px;
	}

	.problem-overlay {
		padding-right: 16vw;
	}
}

/*//////////////////////////////////////////////////////////////////////// Goals, Aims, Objectives Section */
.goals-section {
	background-color: #1C1C1C;
	padding: 100px 0;
	text-align: center;
	margin-bottom: 150px;
}

.goals-container {
	display: flex;
	justify-content: space-around;
	max-width: 1200px;
	margin: 0 auto;
}

.goals-container div {
	padding: 50px;
}

@media only screen and (min-width: 2560px) {
	.goals-container {
		max-width: 1600px;
	}

	.goals-section {
		background-color: #1C1C1C;
		padding: 200px 0;
	}

	.goals-container div {
		padding: 100px;
	}
}

/* ///////////////////////////////////////////////////////////////////////Intended Audience Section */


.intended-audience-section {
	position: relative;
	height: 500px;
	margin-bottom: 150px;
}

.audience-overlay {
	position: relative;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #1c1c1c75;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding-left:  10vw;
}

.audience-text-container {
	text-align: center;
	max-width: 500px;
	z-index: 2;
}

@media only screen and (min-width: 2560px) {
	.audience-text-container {
		max-width: 600px;
	}

	.audience-overlay {
		padding-left: 16vw;
	}
}

/* ///////////////////////////////////////////////////////////////////////Intended Audience Section */

.solution-section{
	position: relative;
	height: 500px;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 150px;
}

.solution-text-container{
	text-align: center;
	max-width: 600px;
	z-index: 2;
}

/* ///////////////////////////////////////////////////////////////////////planning Section */
/* /////////////////////////////////////////////////////////////////////////////////////// */
/* /////////////////////////////////////////////////////////////////////////////////////// */


.parallax-sketch {
	position: relative;
	background-image: url("/assets/img/02productDesign/sketch.png");
	min-height: 1200px;
	background-attachment: fixed;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	/* Flexbox to center the heading */
	display: flex;
	justify-content: center;  /* Horizontally center */

}

.parallax-heading {
	text-align: center;
	width: 300px;
	height: 50px;
	border-radius: 0 0 30px 30px;
	background: #1C1C1C;
	line-height: 40px; 
}

@media only screen and (max-width: 1440px) {
	.parallax-sketch {
		min-height: 900px;
	}
}

/* ///////////////////////////////////////////////////////////////////////3D Spline */

.three-d-model {
	background-color: #1c1c1c;
	padding: 50px 0;
	text-align: center;
	margin-top: 250px;
	margin-bottom: 150px;
}

.three-d-model-container {
	display: flex;
	height: auto;
}

.three-d-left {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
}

.spline-container {
	position: relative;
	width: 750px;
	height: 750px;
	margin-right: -200px;
	z-index: 0;
}

spline-viewer {
	width: 750px;
	height: 750px;
}

.three-d-right{
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 100px;
}

.three-d-model-label {
	display: grid;
	gap: 50px; 
	justify-items: center;
	align-items: start;
}

.label {
	text-align: center;;
	max-width: 420px;
}

@media only screen and (max-width: 1440px) {
	.spline-container {
		margin-right: 0px;
	}
}

/* ///////////////////////////////////////////////////////////////////////logo*/


.logo-section {
	position: relative;
	background: url('/assets/img/02productDesign/paperbg.png') no-repeat center center;
	min-height: 400px;
	background-attachment: fixed;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin-bottom: 250px;
}

.logo-section-container{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(1, 1fr);
	gap: 0;
	width: 50%;
	margin: 0 auto;
	margin-bottom: 100px;
}

.logo-grid-item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	position: relative;
	overflow: hidden;
	text-align: center;
	color: #1C1C1C;
}



.logo-picture {
	height: 100%;
	aspect-ratio: 1 / 1;
	width: 100%;

}

.logo-picture img {
	width: 60%;
	height: 60%;
	object-fit: cover;

} 


/* ///////////////////////////////////////////////////////////////////////colour-typography*/


.colour-typography {
	display: flex;
	height: 500px;
	margin-bottom: 150px;
}

.colour-typography-text {
	text-align: center;
	max-width: 600px;
	z-index: 2;
}

.colour-typography-left {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding-left: 100px;
	text-align: center;
}


.colour-typography-right {
	flex: 1;
	display: flex;
	flex-direction: column; 
	align-items: center; 
	justify-content: center; 
	padding-right: 100px;
}

.colour-box {
	width: 150px;
	height: 100px;
	margin: 0px;
	position: relative;
	overflow-x: hidden;
	transition: all 0.3s ease;
	cursor: pointer;
}

.colour-box:hover {
	width: 300px;
	z-index: 90;
}

.hex-code {
	position: absolute;
	bottom: 20px;
	left: 20px;
	font-size: 14px;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.colour-box:hover .hex-code {
	opacity: 1; /* Show hex code on hover */
	z-index: 99;
}

@media only screen and (max-width: 1440px) {
	.colour-box {
		width: 150px; 
		height: 100px;
	}

	.colour-box:hover {
		width: 250px;
	}

	.colour-typography-text {
		max-width: 500px;
	}
}

/* /////////////////////////////////////////////////////////////////////////////////////// materials */

.materials-section {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(3, 1fr);
	width: 90%;
	margin: 0 auto;
	margin-bottom: 100px;
}



.materials-grid-item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	position: relative;
	text-align: center;
}

.materials-picture {
	height: 100%;
	aspect-ratio: 1 / 1;
	width: 100%;
}

.materials-picture img {
	width: 50%;
	height: 50%;
	object-fit: cover;
}


/* ///////////////////////////////////////////////////////////////////////screens*/

.screens {
	display: flex;
	height: 1200px;
	margin-bottom: 350px;
}

.screens-video {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.square-video {
	width: 1500px;
	height: 560px;
	object-fit: cover;
	margin-top: 0;
	border-radius: 30px;
	margin-top: 50px;
}

.air-quality-text{
	text-align: center;
	max-width: 600px;
	z-index: 2;
}

@media only screen and (max-width: 1440px) {

	.square-video {
		width: 1200px; 
		height: 600px; 
	}

}

/* ///////////////////////////////////////////////////////////////////////////////////////gallery */


.parallax-gallery {
	position: relative;
	background: url('/assets/img/02productDesign/paperbg.png') no-repeat center center;
	min-height: 800px;
	background-attachment: fixed;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin-bottom: 100px;
}

@media only screen and (max-width: 1440px) {
	.parallax-gallery {
		min-height: 500px;
	}
}

.parallax-gallery-container {
	display: flex;
	height: 800px;
}

.parallax-gallery-left {
	flex: 0.6;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	background: #1C1C1C;
	margin: 50px;
	border-radius: 30px ;
}

.parallax-gallery-right {
	flex: 1.4;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin: 50px;
	
}

.gallery-button {
	margin-top: 50px;
	padding: 10px 20px;
	background-color: #1C1C1C;
	color: #CDF514;
	text-decoration: none;
	border-color: #CDF514;
	border-style: solid;
	border-width: 2px;
	border-radius: 25px;
	cursor: pointer;
	font-size: 1rem;
	transition: background-color 0.3s;
	display: inline-block;
	z-index: 90;
}

.gallery-button:hover {
	background-color: #CDF514;
	color: #1C1C1C;
}


@media only screen and (max-width: 1440px) {

	.parallax-gallery-left {
		flex: 1;
	}

	.parallax-gallery-right {
		flex: 1;
	}

	.parallax-gallery-container {
		height: 500px;
	}

	.parallax-gallery {
		min-height: 500px;
	}
}

.image-slideshow {
	position: relative;
	width: 100%;
	height: 100%;
	border-radius: 30px;
}

.image-slideshow img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover; 
	opacity: 0;
	animation: fade-in-out 36s infinite ease-in-out;
	border-radius: 30px;
}

/* Animation */
@keyframes fade-in-out {
	0% { opacity: 0; }
	10% { opacity: 1; }
	30% { opacity: 1; }
	40% { opacity: 0; }
	100% { opacity: 0; }
}

@keyframes fade-in-bottom {
	0% {
		opacity: 0;
		transform: translateY(200px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Delay each image in the slideshow */
.image-slideshow img:nth-child(1) {
	animation-delay: 0s;
}

.image-slideshow img:nth-child(2) {
	animation-delay: 6s;
}

.image-slideshow img:nth-child(3) {
	animation-delay: 12s;
}

.image-slideshow img:nth-child(4) {
	animation-delay: 18s;
}

.image-slideshow img:nth-child(5) {
	animation-delay: 24s;
}

.image-slideshow img:nth-child(6) {
	animation-delay: 30s;
}


/* Pop-up Gallery Styles */
.popup-gallery {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.8);
	z-index: 100;
	align-items: center;
	justify-content: center;
}

.popup-gallery-content {
	border-radius: 20px;
	padding: 20px;
	position: relative;
	display: flex; 
	align-items: center;
	justify-content: center;
	min-width: 1400px; 
	max-width: 90%;
}

.popup-gallery-content img {
	min-width: 1200px; 
	width: auto; 
	max-width: 90%; 
	max-height: 80vh; 
	border-radius: 30px;
}

.popup-gallery-close {
	position: absolute;
	top: -50px;
	right: 50px;
	font-size: 60px;
	color: #CDF514;
	cursor: pointer;
}

/* Navigation Buttons */
.nav-button {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	font-size: 60px;
	color: #CDF514;
	cursor: pointer;
	padding: 0 15px;
	user-select: none;
	transition: all 0.3s;
}

.nav-button.left {
	left: 10px;
}

.nav-button.right {
	right: 10px;
}

.nav-button.left:hover {
	transform: translate(-15%, -50%);
	color: #fff;
}

.nav-button.right:hover {
	transform: translate(15%, -50%);
	color: #fff;
}

/* /////////////////////////////////////////////////////////////////////////////////////// video */


.rendered-video {
	display: flex;
	height: 1400px;
	margin-bottom: 0px;
}

.rendered-video-text{
	text-align: center;
	max-width: 600px;
	z-index: 2;
}

.container-rendered-video {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.square-rendered-video {
	width: 1000px;
	height: auto;
	object-fit: cover;
	margin-top: 0;
	border-radius: 30px;
	margin-top: 50px;
}

@media only screen and (max-width: 1440px) {

	.square-rendered-video {
		width: 1200px;
		height: 600px;
	}

}

/*//////////////////////////////////////////////////////////// Page navigation buttons */

.navigation-buttons {
	display: flex;
	justify-content: space-around;
	align-items: center;
	position: fixed;
	bottom: 65px;
	right: 80px;
	border: solid #CDF514 3px;
	border-radius: 15px;
	background-color: #1C1C1C;
	width: auto;
	height: 4rem;
	text-align: center;
	overflow: hidden;
	z-index: 100;
}

.divider {
	height: 60%;
	border-left: solid #555 1px;
}

.previous-page {
	font-size: 1.4rem;
	padding: 15px;
	padding-right: 10px;
	height: 100%;
	transition: all 500ms;
}

.previous-page:hover {
	background-color: #CDF514;
	color: #1C1C1C;
}

.next-page {
	font-size: 1.4rem;
	padding: 15px;
	padding-left: 10px;
	height: 100%;
	transition: all 500ms;
}

.next-page:hover {
	background-color: #CDF514;
	color: #1C1C1C;
}
