html,
body {
	margin: 0;
	padding: 0;
	width: 100%;
	overflow-x: hidden;
	font-family: 'Courier New', Courier, monospace;
	background-color: #f8f8f8;
	color: #333333;
	position: absolute;
}

:root {
	font-size: xx-small;
}

@media screen and (min-width: 320px) {
	:root {
		font-size: x-small;
	}
}

@media screen and (min-width: 375px) {
	:root {
		font-size: small;
	}
}

@media screen and (min-width: 425px) {
	:root {
		font-size: medium;
	}
}

@media screen and (min-width: 768px) {
	:root {
		font-size: large;
	}
}

@media screen and (min-width: 1024px) {
	:root {
		font-size: x-large;
	}
}

@media screen and (min-width: 1440px) {
	:root {
		font-size: xx-large;
	}
}

@media screen and (min-width: 2560px) {
	:root {
		font-size: xxx-large;
	}
}

h4 {
	border-bottom: 2px dashed #333333;
	margin-bottom: 0em;
	width: fit-content;
}

/* #skills ul {
	margin-block-start: 0em;
	margin-block-end: 0em;
} */

p.smaller {
	font-size: smaller;
	margin-left: 1.5em;
}

header {
	color-scheme: only light;
	width: 100vw;
	height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	color: white;
	justify-content: center;
	text-align: center;
	z-index: 0;
	position: absolute;
}

header > .hero-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url('assets/hero.jpg');
	background-size: cover;
	background-position: center;
	z-index: -1;
}

header > .hero-container::after {
	background: #000;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 0;
	color: #000;
	opacity: 0.5;
	content: ' ';
	z-index: -1;
}

header hr {
	color: white;
	font-size: 2em;
	width: 20vw;
}

header .button-container {
	flex-direction: row;
	display: flex;
	justify-content: center;
	align-items: center;
	align-self: stretch;
}

header .button-container > a, a.button, button.button {
	border-radius: 14px;
	border-width: 1px;
	border-style: solid;
	background: transparent;
    border-color: white;
    font-size: 1em;
    font-family: unset;
	color: white;
	padding: 1em;
	font-weight: 500;
	letter-spacing: 0px;
	text-align: center;
	text-decoration: none;
	text-overflow: ellipsis;
	white-space: nowrap;
	user-select: none;
	vertical-align: -webkit-baseline-middle;
	font-kerning: none;
	margin: 2em;
}

header .button-container > a:hover, a.button:hover, button.button:hover {
	color: #111111;
	background-color: white;
}

section {
	padding-left: 1em;
	padding-right: 1em;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	text-align: justify;
}

header > h1 {
	align-self: center;
}

header > p {
	align-self: center;
}

.typing-effect {
	border-right: 4px solid #ffffff;
	color: #ffffff;
	animation: cursor 2s forwards step-end, typing 2s forwards steps(22);
	white-space: nowrap;
	overflow: hidden;
}

@keyframes typing {
	0% {
		width: 0ch;
	} /*Text is hidden*/
	100% {
		width: 22ch;
	} /*The enitre header will be typed out*/
}

@keyframes cursor {
	0%,
	50%,
	100% {
		border-color: transparent;
	}
	25%,
	75% {
		border-color: #ffffff;
	}
}

.typing-effect-sub {
	border-right: 4px solid #ffffff;
	color: #ffffff;
	animation: cursor-sub 5s forwards step-end, typing-sub 5s forwards steps(61);
	white-space: nowrap;
	overflow: hidden;
}

@keyframes typing-sub {
	0%,
	40% {
		width: 0ch;
	} /*Text is hidden*/
	100% {
		width: 61ch;
	} /*The enitre header will be typed out*/
}

@keyframes cursor-sub {
	0%,
	40%,
	60%,
	80%,
	100% {
		border-color: transparent;
	}
	50%,
	70% ,
	90% {
		border-color: #ffffff;
	}
}

.typing-effect-small {
	border-right: 4px solid #ffffff;
	color: #ffffff;
	animation: cursor-small 10s forwards step-end, typing-small 10s forwards steps(61);
	white-space: nowrap;
	overflow: hidden;
	margin-bottom: 0;
}

@keyframes typing-small {
	0%,
	50% {
		width: 0ch;
	} /*Text is hidden*/
	100% {
		width: 61ch;
	} /*The enitre paragraph will be typed out*/
}

@keyframes cursor-small {
	0%,
	50%,
	70%,
	90%,
	100% {
		border-color: transparent;
	}
	60%,
	80%,
	99% {
		border-color: #ffffff;
	} /*Text is hidden*/
}

.typing-effect-small-2 {
	border-right: 4px solid #ffffff;
	color: #ffffff;
	animation: cursor-small-2 15s forwards step-end, typing-small-2 15s forwards steps(65);
	white-space: nowrap;
	overflow: hidden;
	margin-top: 0;
}

@keyframes typing-small-2{
	0%,
	66% {
		width: 0ch;
	} /*Text is hidden*/
	100% {
		width: 65ch;
	} /*The enitre paragraph will be typed out*/
}

@keyframes cursor-small-2 {
	0%,
	66%,
	82%,
	100% {
		border-color: transparent;
	}
	74%,
	80%,
	90% {
		border-color: #ffffff;
	} /*Text is hidden*/
}

ul.tag-cloud {
	list-style: none;
	padding-left: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}

ul.tag-cloud > li[data-weight='1'] {
	--size: 1;
}

ul.tag-cloud > li[data-weight='2'] {
	--size: 2;
}

ul.tag-cloud > li[data-weight='3'] {
	--size: 3;
}

ul.tag-cloud > li[data-weight='4'] {
	--size: 4;
}

ul.tag-cloud > li[data-weight='5'] {
	--size: 5;
}

ul.tag-cloud > li[data-weight='6'] {
	--size: 6;
}

ul.tag-cloud > li[data-weight='7'] {
	--size: 7;
}

ul.tag-cloud > li[data-weight='8'] {
	--size: 8;
}

ul.tag-cloud > li[data-weight='9'] {
	--size: 9;
}

ul.tag-cloud > li[data-weight='10'] {
	--size: 10;
}

ul.tag-cloud > li {
	color: #111111;
	display: block;
	padding: 0.125em 0.25em;
	text-decoration: none;
	position: relative;
	--size: 1;
    letter-spacing: -3px;
}

ul.tag-cloud > li:nth-child(2n + 1) {
	color: #666666;
}

ul.tag-cloud > li:nth-child(3n + 1) {
	color: #333333;
}

ul.tag-cloud > li:nth-child(4n + 1) {
	color: #999999;
}

ul.tag-cloud > li {
	font-size: calc(var(--size) * 0.15em + 0.3em)
}

ul.tag-cloud {
	line-height: 1.2em;
}

.gear {
	display: inline-block;
	animation: rotate-gear 5s linear infinite;
    transform-origin: 50% 53%;
}

@keyframes rotate-gear {
	from {
	  transform: rotate(0deg);
	}
	to {
	  transform: rotate(360deg);
	}
  } 

  .wheel {
	  display: inline-block;
	  animation: rotate-wheel 7s ease-in-out infinite;
	  transform-origin: 50% 53%;
  }
  
  @keyframes rotate-wheel {
	0%, 10%, 100% {transform: rotate(30deg)}
	50%, 60% {transform: rotate(120deg)}
	} 

	.scale {
		display: inline-block;
		position: relative;
	}

	.scale::before {
		content: "\1F4C8";
    	filter: grayscale(1) brightness(1);
	}

	.trophy {
		display: inline-block;
		position: relative;
	}

	.trophy::before {
		content: "\1F3C6";
		filter: grayscale() contrast(0) brightness(0.15);
	}

	.trophy::after {
		content: "\2734";
		position: absolute;
		left: 45%;
		font-size: 0.5em;
		top: 0%;
		color: yellow;
		animation: shine 6s linear infinite;
	}

	@keyframes shine {
		0%, 45%, 55%, 100% { transform: scale(0);}
		50% { transform: scale(1);}
		
	}

	.cap {
		display: inline-block;
		filter: grayscale();
	}

	@keyframes rotate-cap {
		0%, 49.9% { transform: rotateY(0)}
		50%, 100% { transform: rotateY(180deg)}
		
	}

	.training {
		display: inline-block;
		position: relative;
	}

	.training::before {
		content: "\1F4DC";
		filter: grayscale() brightness(0.8);
	}

	.training::after {
		content: "\270E";
		position: absolute;
		left: calc(50% - 0.32em);
		font-size: 1em;
		top: -0.5em;
		transform: rotateY(180deg) translate(0px, 0px);
		animation: writing 8s linear infinite;
	}

	@keyframes writing {
		0% {
			transform: rotateY(180deg) translate(0px, 0px)
		}
		28.57% {
			transform: rotateY(180deg) translate(-0.47em, 0px)
		} /* EOL */
		28.58% {
			transform: rotateY(180deg) translate(0px, 0.1em)
		}
		57.14% {
			transform: rotateY(180deg) translate(-0.47em, 0.1em)
		} /* EOL */
		57.15% {
			transform: rotateY(180deg) translate(0px, 0.2em)
		}
		85.71% {
			transform: rotateY(180deg) translate(-0.47em, 0.2em)
		}/* EOL */
		85.72% {
			transform: rotateY(180deg) translate(0px, 0.3em)
		}
		97%, 100% {
			transform: rotateY(180deg) translate(-0.235em, 0.3em)
		}
	}

	div.column, form.column {
		display: flex;
		flex-direction: column;
		flex: 1;
		justify-content: flex-start;
	  }
	  div.row {
		display: flex;
		flex-direction: column;
	  }

	  div.row hr {
		width: 15em;
		margin: 3em auto;
		border-style: solid;
	  }

section#contact-me {
	/* padding-top: 1rem; */
	color-scheme: only light;
	padding-bottom: 1em;
	background: #333333;
	color: #f8f8f8;
}

a.button, button.button {
    margin-top: 0;
    margin-bottom: 1em;
}

/* Reset default input styles */
input {
	border: none;
	outline: none;
    color: white;
    background: transparent;
	font-size: 1em;
	font-family: 'Courier New', Courier, monospace;
    width: 100%;
  }

textarea {
	border: none;
	outline: none;
    color: white;
    background: transparent;
	font-size: 1em;
	font-family: 'Courier New', Courier, monospace;
    width: 100%;
}
  
  /* Container styling */
  .input-container {
	position: relative;
    border-radius: 14px;
    border-width: 1px;
    border-style: solid;
    background: transparent;
    color: white;
    padding: 1em;
    margin: 0 2em;
    margin-bottom: 2em;
  }
  
  /* Label styling */
  label {
    position: absolute;
    top: -0.5em;
    left: 1em;
    background-color: #333333;
    padding: 0 5px;
    color: white;
  }
  
  section#history-achievements > ul > li::after {
	content: "\1F4CD";
    position: absolute;
    left: -1em;
    top: 0.5em;
    transform-origin: bottom left;
    transform: skew(45deg, -45deg) scale(0.7);
    z-index: 1;
  }
  
  section#history-achievements > ul > li::marker {
    content: "\1F4CD ";
    z-index: 0;
    color: transparent;
    text-shadow: 5px 5px 5px rgba(0,0,0,0.5);
  }
  section#history-achievements > ul > li {
  position: relative;
}

section#history-achievements > ul > li::before {
	content: "";
    position: absolute;
    top: 1.3em;
    left: -0.65em;
    width: 2px;
    height: calc(100% + 0.9em);
    background-color: red;
    box-shadow: 2px -3px 5px;
    filter: blur(1px);
  }
  
  section#history-achievements > ul > li:last-child::before {
	display: none; /* Hide the line before the first list item */
  }

  section#history-achievements > ul > li > ul {
	padding-inline-start: 1em;
    margin-block-start: 1em;
    margin-block-end: 1em;
  }

  @media screen and (min-width: 768px) {
	div.row {
		flex-direction: row;
	  }

	div.row hr {
		width: 0px;
		margin: 0;
	}
	
	section {
		padding-left: 4em;
		padding-right: 4em;
	}
}

@media screen and (min-width: 1440px) {
	section {
		font-size: large;
	}
}