@import url('https://fonts.googleapis.com/css2?family=Lato&family=Montserrat&display=swap');

/* CSS Variable */
:root {
	--bg: #dcdde1;
	--color-icon: #535c68;
	--social-icon1: #e4405f;
	--social-icon2: #000;
	--social-icon3: #0077b5;
}

/* CSS Reset */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	font-family: 'Montserrat', sans-serif;
	color: #121212;
	scroll-behavior: smooth;
}

li {
	list-style: none;
}

a {
	text-decoration: none;
	color: #121212;
}

button {
	font-family: 'Montserrat', sans-serif;
}

body.active {
	overflow: hidden;
}

/* Header */
.header {
	border-bottom: 1px solid #d7d7d7;
	text-transform: uppercase;
	color: #121212;
}

.navbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 10rem;
}

.hamburger {
	display: none;
}

.bar {
	display: block;
	width: 25px;
	height: 3px;
	border-radius: 4px;
	margin: 5px auto;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	background-color: #121212;
}

.nav-menu {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.nav-item {
	margin-left: 3rem;
}

.nav-link:hover {
	color: #482ff7;
}

button.nav-link {
	display: inline-block;
	text-transform: uppercase;
	background: #121212;
	color: #fff;
	cursor: pointer;
	padding: 1rem;
	border: 0;
	transition: all 0.3s;
	border-radius: 0.5rem;
	position: relative;
}

button.nav-link:hover {
	background: #000;
	transition: all 0.3s;
	color: #fff;
}

/* Hero Section */
.hero {
	display: flex;
	justify-content: space-between;
	flex-flow: row wrap-reverse;
	align-items: center;
	padding: 1rem 10rem;
	height: 400px;
	margin-bottom: 6rem;
}

.hero > * {
	flex: 1 1 160px;
}

.about {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.about-name h1 {
	font-size: 3rem;
}

.about-link {
	display: flex;
	gap: 1rem;
}

/* Social Link */
.icon-list {
	display: flex;
	gap: 1rem;
}

.icon-item {
	list-style: none;
}

.icon-link {
	display: inline-flex;
	font-size: 2rem;
	text-decoration: none;
	color: var(--color-icon);
	width: 3rem;
	height: 3rem;
	transition: 0.5s linear;
	position: relative;
	z-index: 1;
	margin: auto;
}

.icon-link:hover {
	color: #fff;
}

.icon-link i {
	margin: auto;
}

.icon-link::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 3rem;
	height: 3rem;
	background: #000;
	border-radius: 50%;
	z-index: -1;
	transform: scale(0);
	transition: 0.3s cubic-bezier(0.95, 0.32, 0.37, 1.21);
}

.icon-link:hover::before {
	transform: scale(1);
}

.icon-item:nth-child(1) a:hover:before {
	background: var(--social-icon1);
}

.icon-item:nth-child(2) a:hover:before {
	background: var(--social-icon2);
}

.icon-item:nth-child(3) a:hover:before {
	background: var(--social-icon3);
}

.social-logo {
	background-color: #d7d7d7;
	padding: 0.5rem;
	border-radius: 1rem;
}

img.hero-img {
	max-width: 400px;
	border-radius: 1rem;
}

/* Education Section */
.education {
	padding: 3rem 10rem;
	background-color: #d7d7d7;
	height: fit-content;
	border-radius: 3rem;
	margin-bottom: 3rem;
}

.section-title {
	text-align: center;
	text-transform: uppercase;
	margin-bottom: 4rem;
}

.education-container {
	display: flex;
	justify-content: space-between;
	flex-flow: row wrap;
	align-items: center;
	gap: 1rem;
}

.education-container > * {
	flex: 1 1 160px;
}

.education-logo {
	display: flex;
	justify-content: center;
}

/* Vertical Timeline */
.container {
	display: flex;
	justify-content: center;
	width: 400px;
	height: 550px;
	margin: 0 auto;
	position: relative;
	margin-top: 2rem;
	/* box-shadow: 2px 5px 20px rgba(119, 119, 119, 0.5); */
	/* border-radius: 2rem; */
}

.rightbox {
	width: 100%;
}

.rb-container {
	width: 60%;
	margin: auto;
	display: block;
	position: relative;
}

.rb-container ul.rb {
	margin: 2.5em 0;
	padding: 0;
	display: inline-block;
}

.rb-container ul.rb li {
	list-style: none;
	margin: auto;
	min-height: 50px;
	border-left: 1px dashed #fff;
	padding: 0 0 50px 30px;
	position: relative;
}

.rb-container ul.rb li:last-child {
	border-left: 0;
}

.rb-container ul.rb li::before {
	position: absolute;
	left: -18px;
	top: -5px;
	content: ' ';
	border: 8px solid rgba(255, 255, 255, 1);
	border-radius: 500%;
	background: #50d890;
	height: 20px;
	width: 20px;
	transition: all 500ms ease-in-out;
}

.rb-container ul.rb li:hover::before {
	border-color: #232931;
	transition: all 1000ms ease-in-out;
}

ul.rb li .timestamp {
	color: #21bd02;
	position: relative;
	width: 100px;
	font-size: 12px;
}

.item-title {
	color: #121212;
	font-size: 0.8rem;
}

/* Skill Section */
.skill {
	padding: 1rem 10rem;
	margin-bottom: 5rem;
}

.skill-list {
	display: flex;
	justify-content: center;
	flex-flow: row wrap;
	gap: 2rem;
}

.skill-item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	height: 200px;
	width: 150px;
	background-color: #d7d7d7;
	border-radius: 1rem;
	transition: all 0.3s;
}

.skill-item:hover {
	background-color: #a1a1a1;
	box-shadow: 1.7px 1.7px 5.3px rgba(0, 0, 0, 0.044),
		5.6px 5.6px 17.9px rgba(0, 0, 0, 0.066), 25px 25px 80px rgba(0, 0, 0, 0.11);
	transform: scale(1.1);
}

figcaption {
	font-weight: bold;
}

.skill-item i {
	font-size: 4rem;
}

.card-wrapper {
	display: flex;
	justify-content: center;
	align-items: flex-start;
}

.portfolio-card {
	background-color: #d7d7d7;
	box-shadow: 1.7px 1.7px 5.3px rgba(0, 0, 0, 0.044),
		5.6px 5.6px 17.9px rgba(0, 0, 0, 0.066), 25px 25px 80px rgba(0, 0, 0, 0.11);

	width: 60vw;
	display: flex;
	justify-content: space-between;
	border-radius: 1rem;
}

.portfolio-img {
	display: flex;
	flex: 0 1 calc(50%);
	max-width: 400px;
}

.portfolio-desc {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.5rem 0;
	align-items: center;
	flex: 0 1 calc(50%);
}

.portfolio-img img {
	max-width: 100%;
	border-radius: 1rem 0 0 1rem;
}

.tech-icon {
	margin: 0 0.5rem;
}

.tech-icon i {
	font-size: 2rem;
}

.tech-icon img {
	width: 2rem;
}

.tech-stack ul {
	display: flex;
}

.portfolio {
	padding: 3rem 0;
	background-color: #d7d7d7;
	border-radius: 2rem 2rem 0 0;
}

footer {
	text-align: center;
	padding: 2rem 0;
	background-color: #d7d7d7;
}

/* responsiveness section */
/* mobile */
@media only screen and (max-width: 768px) {
	.navbar {
		padding: 1rem 3rem;
	}

	.nav-menu {
		position: fixed;
		right: -100%;
		top: 0;
		height: 100%;
		z-index: 3;
		flex-direction: column;
		justify-content: center;
		gap: 1rem;
		background-color: #d7d7d7;
		width: 100%;
		border-radius: 1rem;
		text-align: center;
		transition: all 0.3s;
		box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05);
	}

	.nav-menu.active {
		right: 0;
	}

	.nav-item {
		margin: 2.5rem 0;
	}

	button.nav-link {
		background: none;
		border: none;
		color: #121212;
		padding: 0;
		font-size: 1rem;
	}

	button.nav-link:hover {
		background: none;
		transition: all 0.3s;
		color: #121212;
	}

	.hamburger {
		display: block;
		cursor: pointer;
		z-index: 3;
	}

	.hamburger.active .bar:nth-child(2) {
		opacity: 0;
	}

	.hamburger.active .bar:nth-child(1) {
		position: fixed;
		transform: translateY(7px) rotate(45deg);
	}

	.hamburger.active .bar:nth-child(3) {
		position: fixed;
		transform: translateY(-6px) rotate(-45deg);
	}

	.hero {
		padding: 1rem 3rem;
		text-align: center;
		height: 600px;
	}

	img.hero-img {
		width: 60vw;
	}

	.about {
		align-items: center;
	}

	.education {
		padding: 1rem 3rem;
	}

	.education-container {
		gap: 3rem;
	}

	.container {
		width: 75vw;
		height: fit-content;
	}

	.skill {
		padding: 1rem 3rem;
	}

	.portfolio-card {
		flex-direction: column;
	}

	.portfolio-img img {
		max-width: 100%;
		border-radius: 1rem 1rem 0 0;
	}

	.portfolio-desc > * {
		margin: 0.5rem 0;
	}

	.portfolio-desc a > button.nav-link {
		display: inline-block;
		text-transform: uppercase;
		background: #121212;
		color: #fff;
		cursor: pointer;
		padding: 1rem;
		border: 0;
		transition: all 0.3s;
		border-radius: 0.5rem;
		position: relative;
	}
}
