/* Added Doto font style and JetBrains Mono font style */

:root {
  --Bright_Text_color: #ffffff;
	--Text_color: #e8e8e881;
	--Main_Background: lab(2.74243% -.0000149012 0);
  --Secondary_Background: #1f1f1f;
	--container-width: 40%;
	--spacing: 20px;

	/* Font families */
	--font-doto: "Doto", monospace;
	--font-jetbrains: "JetBrains Mono", monospace;
	--font-fallback: Verdana, Arial, sans-serif;

	/* Colors */
	--color-violet: violet;
	--color-green: green;
	--color-blue: blue;
	--color-white: white;
	--color-rating-green: #1e7d22;
	--color-rating-text: #fff;
	--color-transparent: transparent;

	/* Spacing and sizing */
	--min-height-ascii: 150px;
	--height-ascii: 15vh;
	--min-height-details: 200px;
	--height-details: 15vh;
	--min-height-projects: 300px;
	--height-projects: 40vh;
	--min-height-footer: 80px;
	--height-footer: 10vh;
	--max-width-container: 1200px;

	/* Padding and margins */
	--padding-clamp: clamp(15px, 3vw, 30px);
	--padding-myname-bottom: 15px;
	--margin-detail-left: 20px;
	--padding-stars: 2px;
	--padding-stars-bottom: 5px;
	--margin-stars-right: 2px;

	/* Font sizes */
	--font-size-myname: clamp(16px, 5vw, 35px);
	--font-size-stars: 23px;

	/* Font weights */
	--font-weight-myname: 560;

	/* Line heights */
	--line-height-detail: 1.6;

	/* Border styles */
	--border-detail: 0.5px solid transparent;

	/* Stars dimensions */
	--stars-width: 20px;
	--stars-height: 17px;

	/* Animation properties */
	--opacity-start: 0;
	--opacity-end: 1;
}

a {
	box-sizing: border-box;
	text-decoration: none;
	color: var(--Text_color);
}

body {
	background-color: var(--Main_Background);
	color: var(--Text_color);
	display: flex;
	justify-content: center;
	margin: 0;
	padding: 0;
	height: 100vh;
	min-height: 100vh;
}

.container {
	width: var(--container-width);
	max-width: var(--max-width-container);
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0 var(--spacing);
	box-sizing: border-box;
}

.ascii_animation,
.details,
.projects,
.footer {
	width: 100%;
	margin-top: var(--spacing);
	padding: var(--padding-clamp);
	box-sizing: border-box;
}

.ascii_animation {
  padding: 0px;
  margin-top: var(--spacing);
	min-height: var(--min-height-ascii);
	height: var(--height-ascii);
	background-color: var(--Main_Background);
  border: 1px solid var(--Text_color);
	opacity: 0;
	transform: translateY(-20px);
	animation: fadeInDown 0.3s ease-out 0.05s forwards;
}
.details {
	min-height: var(--min-height-details);
	height: var(--height-details);
	position: relative;
	opacity: 0;
	transform: translateY(-20px);
	animation: fadeInDown 0.3s ease-out 0.15s forwards;
}

.details .myname {
  color: var(--Bright_Text_color);
	font-size: var(--font-size-myname);
	font-family: var(--font-doto);
	font-weight: var(--font-weight-myname);
	padding-bottom: var(--padding-myname-bottom);
	opacity: 0;
	transform: translateY(-20px);
	animation: fadeInDown 0.3s ease-out 0.25s forwards;
}

.details .detail {
	line-height: var(--line-height-detail);
	margin-left: var(--margin-detail-left);
	border-left: var(--border-detail);
	font-family: var(--font-jetbrains);
	opacity: 0;
	transform: translateY(-20px);
}

.details .detail:nth-child(2) {
	animation: fadeInDown 0.3s ease-out 0.35s forwards;
}

.details .detail:nth-child(3) {
	animation: fadeInDown 0.3s ease-out 0.45s forwards;
}

.details .detail:nth-child(4) {
	animation: fadeInDown 0.3s ease-out 0.55s forwards;
}

.details .detail:nth-child(5) {
	animation: fadeInDown 0.3s ease-out 0.65s forwards;
}

.details .detail .rating {
	color: var(--color-green);
	font-family: var(--font-fallback);
}

.details .detail .stars {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-rating-green);
	color: var(--color-rating-text);
	padding: var(--padding-stars);
  padding-bottom: var(--padding-stars-bottom);
	margin-right: var(--margin-stars-right);
	font-size: var(--font-size-stars);
	width: var(--stars-width);
	height: var(--stars-height);
	vertical-align: middle;
}

.sprite_animation {
	position: fixed;
	width: 180px;
	height: 115px;
	border: 1px solid var(--Text_color);
	background-color: var(--Main_Background);
	z-index: 9999;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.projects {
	width: 100%;
	min-height: var(--min-height-projects);
	margin-top: var(--spacing);
	padding: var(--padding-clamp);
	box-sizing: border-box;
	opacity: 0;
	transform: translateY(-60px);
	animation: fadeInDown 0.3s ease-out 0.75s forwards;
}

.projects .project-title{
  font-family: var(--font-jetbrains);
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.projects .projcount {
  opacity: 0.6;
}

.projects .linebreak{
  width: 100%;
  letter-spacing: 2px;
  overflow: hidden;
  margin-top: 5px;
}

.projects .projlist {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 20px;
}

.projects .projitem {
  width: 100%;
  padding: 6px 0;
}

.projects .projitem:last-child {
  border-bottom: none;
}

.projects .projitem .title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-doto);
  font-size: 1.15em;
  color: var(--Bright_Text_color);
}

.projects .projitem .title .name {
  font-weight: 600;
}

.projects .projitem .title .techstk {
  font-size: 0.85em;
  opacity: 0.7;
}

.projects .projitem .desc {
  font-family: var(--font-jetbrains);
  font-size: 0.75em;
  line-height: 1.3;
}

.projects .projitem .btns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.projects .projitem .btns a,
.projects .projitem .btns button {
  font-family: var(--font-jetbrains);
  background: transparent;
  color: var(--Bright_Text_color);
  border: none;
  padding: 2px 6px;
  cursor: pointer;
  text-decoration: none;
  font-size: 0.75em;
  transition: color 0.2s ease;
}


.footer {
	opacity: 0;
  font-family: var(--font-jetbrains);
	animation: fadeInDown 0.3s ease-out 0.85s forwards;
  margin-top: auto;
}

/* Tablet */
@media (max-width: 768px) {
	:root {
		--container-width: 85%;
		--spacing: 15px;
		--padding-clamp: clamp(10px, 2.5vw, 20px);
	}

	.sprite_animation {
		width: 220px;
		height: 140px;
	}
}

/* Mobile */
@media (max-width: 480px) {
	:root {
		--container-width: 95%;
		--spacing: 10px;
		--padding-clamp: clamp(8px, 2vw, 15px);
		--min-height-ascii: 120px;
		--min-height-details: 180px;
		--min-height-projects: 250px;
		--min-height-footer: 60px;
		--height-ascii: auto;
		--height-details: auto;
		--height-projects: auto;
		--height-footer: auto;
	}

	.sprite_animation {
		width: 150px;
		height: 100px;
	}
}


/* Key Frame animations */

@keyframes borderGrow {
	from {
		border-left-color: var(--color-transparent);
	}
	to {
		border-left-color: var(--color-white);
	}
}

@keyframes fadein {
	from {
		opacity: var(--opacity-start);
	}
	to {
		opacity: var(--opacity-end);
	}
}

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