/*
=================================================
NOTE:
Remember to change the phone element section when you change something else. (Learned Experience)

CSS PROPERTY ORDER

Position
	position
	top/right/bottom/left
	z-index

Display
	display
	flex-*
	grid-*
	justify-*
	align-*
	gap

Size
	width, max-width, min-width
	height, max-height, min-height
	object-fit

Spacing
	margin
	padding

Border
	border
	border-radius

Background
	background
	background-color
	background-image

Text
	color
	font-family
	font-size
	font-weight
	line-height
	text-align
	text-decoration
	text-shadow

Effects
	opacity
	overflow
	box-shadow
	cursor

Animation
	transition
	transform
	animation
=================================================
*/

/* Requireds */
* {
	box-sizing: border-box;
}


/* ========== ========== */
/*  Main Configurations  */
/* ========== ========== */


html {
	height: 100%;
}

body {
	/* Spacing */
	margin: 0;
	min-height: 100dvh;

	/* Background */
	background: #070a14;

	/* Text */
	color: #e6edf3;
	font-family: Arial, Helvetica, sans-serif;
}

#z1-site-wrapper {
	/* Position */
	position: relative;
	z-index: 1;

	/* Display */
	display: flex;
	flex-direction: column;

	/* Size */
	min-height: 100dvh; /* Fixes the problem with vh and mobile address bars */

	/* Spacing */
	padding: 0px 10px;
}

main {
	/* Display */
	flex: 1;

	/* Size */
	max-width: 1200px;

	/* Spacing */
	margin: auto;
}

a {
	/* Text */
	color: #e6edf3;
	text-decoration: none;
}

a:hover {
	/* Text */
	text-decoration: underline;
}

p, h1, h2, h3, h4 {
	/* Spacing */
	margin: 0px;
}

hr {
	/* Spacing */
	margin: 4px;
}


/* ========== ========== */
/*  Header               */
/* ========== ========== */


.header {
	/* Position */
	position: relative;

	/* Display */
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;

	/* Spacing */
	padding: 15px;
}

.hamburger {
	/* Position */
	position: absolute;
	left: 20px;
	z-index: 1000;

	/* Display */
	display: grid;
	gap: 8px;
	place-content: center;

	/* Size */
	width: 50px;
	height: 50px;

	/* Effects */
	cursor: pointer;

	/* Animation */
	transition: all 0.3s ease;
}

.hamburger span {
	/* Size */
	width: 30px;
	height: 3px;

	/* Background */
	background: white;

	/* Animation */
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.hamburger-menu {
	/* Position */
	position: fixed;
	top: 0;
	left: 0;

	/* Size */
	width: 250px;
	height: 100vh;

	/* Spacing */
	padding-top: 80px;

	/* Animation */
	transform: translateX(-120%);
	transition: 0.3s;
}

.hamburger-menu a {
	/* Display */
	display: block;

	/* Spacing */
	padding: 15px;

	/* Text */
	font-size: 1.2rem;
}

.hamburger-menu.open {
	/* Animation */
	transform: translateX(0);
}

.hamburger.active span:nth-child(2) {
	/* Effects */
	opacity: 0;
}

.hamburger.active span:nth-child(1) {
	/* Animation */
	transform: translateY(11px) rotate(45deg);
}

.hamburger.active span:nth-child(3) {
	/* Animation */
	transform: translateY(-11px) rotate(-45deg);
}

.header-container {
	/* Display */
	display: grid;
	grid-template-columns: auto auto auto;
	align-items: center;
	justify-content: center;

	/* Spacing */
	padding: 5px 10px;
	gap: 12px;

	/* Border */
	border-radius: 20px;
}

.header-container a {
	/* Border */
	border-radius: 50px;

	/* Background */
	background: rgba(255, 255, 255, 0.5);

	/* Effects */
	box-shadow: 0 0 10px rgba(255, 255, 255, 0.050);
}

.header-container p {
	grid-column: 1 / -1;
	margin: 0;
}

.glass-effect,
.hamburger,
.hamburger-menu,
.header-container,
.box-container div,
.center-box-container,
footer {
	/* Border */
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 10px;

	/* Background */
	background: rgba(255, 255, 255, 0.05);

	/* Effects */
	box-shadow: 0 0 10px rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(1.5px);
	-webkit-backdrop-filter: blur(1.5px);
}

.barred {
	display: block;
	border-radius: 2px;
	border-left: 4px solid #757575;
	padding-left: 10px;
	margin-bottom: 10px;
}

#quote {
	opacity: 1;
	transition: opacity 0.5s ease;
	text-align: center;
	font-style: italic;
}


/* ========== ========== */
/*  Info Boxes           */
/* ========== ========== */


.box-container {
	/* Display */
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.box-container div {
	/* Size */
	min-width: 250px;

	/* Spacing */
	padding: 15px;
}


/* ========== ========== */
/*  Image Boxes          */
/* ========== ========== */


#image-slider {
	/* Size */
	width: 100%;
	height: 300px;

	/* Background */
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;

	margin: auto;
	overflow: hidden;
	position: relative;
}

#image-slider-title {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	background: rgba(0, 0, 0, 0.6);
	color: white;
	padding: 12px;
	text-transform: capitalize;
	box-sizing: border-box;
}


/* ========== ========== */
/*  Footer               */
/* ========== ========== */


footer {
	/* Size */
	width: max-content;

	/* Spacing */
	margin: 5px auto 5px auto;
	padding: 10px;

	/* Text */
	font-size: 0.9rem;
	text-align: center;
}


/* ========== ========== */
/*  Extra Effects        */
/* ========== ========== */


.dot {
	/* Display */
	display: inline-block;

	/* Size */
	width: 10px;
	height: 10px;

	/* Spacing */
	margin-right: 5px;

	/* Border */
	border-radius: 50%;
}

.green {
	/* Background */
	background: #00ff66;

	/* Effects */
	box-shadow: 0 0 10px #00ff66;

	/* Animation */
	animation: dot-glow-key 3s infinite;
}

.yellow {
	/* Background */
	background: #ffcc00;

	/* Effects */
	box-shadow: 0 0 10px #ffcc00;
}

.red {
	/* Background */
	background: #ff3333;

	/* Effects */
	box-shadow: 0 0 10px #ff3333;
}

.blue {
	/* Background */
	background: #3333ff;

	/* Effects */
	box-shadow: 0 0 10px #3333ff;
}

.gray {
	/* Background */
	background: #aaaaaa;

	/* Effects */
	box-shadow: 0 0 10px #aaaaaa;
}


/* ========== ========== */
/*  Stars                */
/* ========== ========== */


#z0-background-stars {
	/* Position */
	position: fixed;
	inset: 0;
	z-index: 0;

	/* Effects */
	pointer-events: none;
}

.twinkling-star,
.shooting-star {
	/* Position */
	position: absolute;

	/* Size */
	width: 2px;
	height: 2px;

	/* Border */
	border-radius: 50%;

	/* Background */
	background: var(--star-color);

	/* Effects */
	box-shadow: 0 0 10px var(--star-color);
}

.twinkling-star {
	/* Animation */
	animation: star-twinkle-key 5s ease-in-out;
}

.shooting-star {
	/* Animation */
	animation: star-shooting-key 1.2s linear;
}

.shooting-star::after {
	/* Position */
	position: absolute;
	right: 1px;
	top: 1px;

	/* Size */
	width: 40px;
	height: 1px;

	/* Background */
	background: linear-gradient(to left, white, transparent);

	/* Animation */
	transform: rotate(45deg);
	transform-origin: right center;

	content: "";
}


/* ========== ========== */
/*  Animation Keyframes  */
/* ========== ========== */


@keyframes dot-glow-key {
	50% {
		/* Effects */
		opacity: 0.6;
		box-shadow: 0 0 5px #00ff33;
	}
}

@keyframes star-twinkle-key {
	0% {
		/* Effects */
		opacity: 0;
	}

	40% {
		/* Effects */
		opacity: 0.8;
	}

	70% {
		/* Effects */
		opacity: 0.8;
	}

	100% {
		/* Effects */
		opacity: 0;
	}
}

@keyframes star-shooting-key {
	0% {
		/* Effects */
		opacity: 0;

		/* Animation */
		transform: translate(0, 0);
	}

	20% {
		/* Effects */
		opacity: 1;
	}

	80% {
		/* Effects */
		opacity: 1;
	}

	100% {
		/* Effects */
		opacity: 0;

		/* Animation */
		transform: translate(var(--shooting-star-distance), var(--shooting-star-distance));
	}
}


/* ========== ========== */
/*  Phone                */
/* ========== ========== */


@media (max-width: 768px) {
	.box-container {
		grid-template-columns: 1fr;
	}
}