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;
	}
}

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 2.5s forwards step-end, typing 2.5s 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-small {
	border-right: 4px solid #ffffff;
	color: #ffffff;
	animation: cursor-small 10s forwards step-end, typing-small 10s forwards steps(64);
	white-space: nowrap;
	overflow: hidden;
}

@keyframes typing-small {
	0%,
	25% {
		width: 0ch;
	} /*Text is hidden*/
	100% {
		width: 64ch;
	} /*The enitre paragraph will be typed out*/
}

@keyframes cursor-small {
	0%,
	25%,
	50%,
	75%,
	100% {
		border-color: transparent;
	}
	37.5%,
	62.5%,
	87.5% {
		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)}
	} 

	.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;
	}
}

	/* .envelope {
		display: inline-block;
		filter: grayscale() contrast(0.7) brightness(0.7);
		transform: translateY(-0.2rem);
	} */

/* 
.gear-container {
	width: 100px;
	height: 100px;
	display: inline-block;
	animation: rotate-gear 2s linear infinite;
  }
  
  .gear {
	position: relative;
	width: 100%;
	height: 100%;
	border: 4px solid #333;
	border-radius: 50%;
	background-color: transparent;
	overflow: hidden;
  }
  
  .gear:before,
  .gear:after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 20px;
	background-color: #333;
	transform-origin: 50% 100%;
  }
  
  .gear:before {
	transform: rotate(22.5deg);
  }
  .gear:after {
	transform: rotate(67.5deg);
  }
  
  /* Add more pseudo-elements for additional teeth */
  /* Each tooth should be 45 degrees apart */
  
  /* @keyframes rotate-gear {
	from {
	  transform: rotate(0deg);
	}
	to {
	  transform: rotate(360deg);
	}
  } 
   */
  

/* header h1 {
	font-size: larger;
} */

/* section#contact-me {
	padding-top: 1rem;
	padding-bottom: 1rem;
	background: #111111;
	color: white;
}




.button-container > a, .button {
	border-radius: 14px;
	border-width: 1px;
	border-style: solid;
	background: transparent;
	color: white;
	padding: 1em;
	font-size: 16px;
	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: 0 3em;
}

section#contact-me .button {
	font-size: 2rem;
}

section#contact-me .button > img {
	height: 2rem;
}

.button-container > a:hover, .button-container > a:focus, .button-container > a:active, .button:hover, .button:focus, .button:active {
	background: white;
	color: #333333;
}

  
  #hexagonal-canvas {
	width: 100%;
	height: 100%;
	display: block;
  }
  
  
  section {
    text-align: justify;
  }

  section#career-highlights > ul > li, section#education-training > ul > li {
    margin-bottom: 0.5rem;
  }

  section#contact-me > div  a.email {
	color: white;
  }

  div.column {
	display: flex;
	flex-direction: column;
  }

  @media screen and (min-width: 320px) {
	section {
		padding-left: 1vh;
		padding-right: 1vh;
	}

	header > h1 {
		font-size: large;
	}

	section > h2 {
		font-size: medium;
	}

	header > p, header > .button-container > a, section > p, section#career-highlights > ul > li, section#education-training > ul > li,  section#contact-me > div {
	  font-size: x-small;
	}

	ul.tag-cloud > li {
		font-size: calc(var(--size) * 0.15rem );
	}

	ul.tag-cloud {
		line-height: 1.5rem;
	}

	section#contact-me > div {
		display: flex;
		flex-direction: column;
	}
  }
  
  @media screen and (min-width: 375px) {
	section {
		padding-left: 1vh;
		padding-right: 1vh;
	}
	header > h1 {
		font-size: x-large;
	}

	section > h2 {
		font-size: large;
	}

	header > p, header > .button-container > a, section > p, section#career-highlights > ul > li, section#education-training > ul > li,  section#contact-me > div {
	  font-size: smaller;
	}
  }
  
  
  @media screen and (min-width: 425px) {
	header > h1 {
		font-size: x-large;
	}

	section > h2 {
		font-size: large;
	}

	header > p, header > .button-container > a, section > p, section#career-highlights > ul > li, section#education-training > ul > li,  section#contact-me > div {
	  font-size: smaller;
	}

	ul.tag-cloud > li {
		font-size: calc(var(--size) * 0.25rem );
	}

	ul.tag-cloud {
		line-height: 2.5rem;
	}
  }
  
  @media screen and (min-width: 768px) {
	section {
		padding-left: 5vh;
		padding-right: 5vh;
	}

	header > h1 {
		font-size: xxx-large;
	}

	section > h2 {
		font-size: x-large;
	}

	header > p, header > .button-container > a, section > p, section#career-highlights > ul > li, section#education-training > ul > li,  section#contact-me > div {
	  font-size: small;
	}

	section#contact-me > div {
		display: flex;
		flex-direction: row;
	}
  }
  
  @media screen and (min-width: 1024px) {
	section {
		padding-left: 10vh;
		padding-right: 10vh;
	}

	header > h1 {
		font-size: 4rem;
	}

	section > h2 {
		font-size: xxx-large;
	}

	header > p, header > .button-container > a, section > p, section#career-highlights > ul > li, section#education-training > ul > li,  section#contact-me > div {
	  font-size: medium;
	}

	ul.tag-cloud > li {
		font-size: calc(var(--size) * 0.25rem + 0.5rem);
	}

	ul.tag-cloud {
		line-height: 2.5rem;
	}
  }
  
  @media screen and (min-width: 1440px) {
	header > h1 {
		font-size: 5.5rem;
	}

	section > h2 {
		font-size: 4rem;
	}

	header > p, header > .button-container > a, section > p, section#career-highlights > ul > li, section#education-training > ul > li,  section#contact-me > div {
	  font-size: large;
	}
  }
  
  @media screen and (min-width: 2560px) {
	  header > h1 {
		  font-size: 10rem;
	  }

	  section > h2 {
		  font-size: 5.5rem;
	  }

	  header > p, header > .button-container > a, section > p, section#career-highlights > ul > li, section#education-training > ul > li,  section#contact-me > div {
		font-size: 2rem;
	  }

	  ul.tag-cloud > li {
		  font-size: calc(var(--size) * 0.25rem + 1.5rem);
	  }
  
	  ul.tag-cloud {
		  line-height: 3.5rem;
	  }
	} */
