@charset "UTF-8";
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
	background-color:#213448;
	max-width: 1500px;
	margin: auto;
	padding: 20px;
}

hr.custom-line {
  border: none; /* Remove default border */
  border-top: 10px solid #333; /* Add a new top border to act as the line */
  margin: 20px 0; /* Add some vertical spacing */
}

/*FONTS*/

.league-spartan-bold {
  font-family: "League Spartan", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}
.shrikhand-regular {
  font-family: "Shrikhand", serif;
  font-weight: 400;
  font-style: normal;
}

/*TOPNAV SECTION*/
topnav {
	max-width: 1500px;
	position: relative;
}

a.home {
	background-color: #547792;
}
a.home:hover {
	background-color: black;
	border-bottom: none;
}
a.code {
	background-color: #547792;

}
a.code:hover {
	color: black;
	border-bottom: none;

}
a.work {
	background-color: #547792;
}
a.work:hover {
	color: black;
		border-bottom: none;

}

/*DROPDOWN MENUS*/

li a {
	display:flex;
	width: 140px;
	padding-left: 10px;
  font-family: "League Spartan", sans-serif;
	font-size: .8em;
	text-transform: uppercase;
	line-height: 32px;
	background-color: #d1c8c4;
	color: white;
	border-bottom: 2px dotted #dcd2cd;
	border-radius: 40%;
	margin-left: 10px;
}
ul.submenu {
	position: center;
	height: 0;
	transition: height 1.5s ease-in-out;
	overflow: hidden;
	padding-left: 5px;

}

ul {
	float: left;
}

.topmenu li:hover ul.submenu {
	left: 0;
	height: 250px;
	
}
/*SUBMENU HOVER*/

ul.submenu li a:hover {
	background-color: #808D8E;
	border-bottom: 2px solid #AEA8A5;
}

/*TOP MENU ITEM SUSTAINED HOVER*/

li:hover a.home,
li:hover a.code,
li:hover a.work
{background-color: black;}

/*INTRO*/
intro {
	float: left;
	max-width: 1500px;
	display: flex;
	flex-wrap: wrap;
}

#hello{
	width: 1500px;
	background-color: #547792;
	padding: 2em 2em 2em 2em;
	margin: 2em 2em 2em 2em;
	border-radius: 1em;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#hello h1{
  overflow: hidden;
  border-right: .1em solid orange;
  white-space: nowrap;
  margin: 0;
  letter-spacing: .15em;
  color: #fffaf2;
  font-size: 4em;
  display: inline-block;
  text-align: center;
  font-family: "Shrikhand", serif;

}

.line1 {
  animation: 
    typing 2s steps(10, end),
    blink-caret .75s;
  animation-fill-mode: forwards;
}

.line2 {
  animation: 
    typing 2s steps(40, end) 2s,
    blink-caret .75s;
  opacity: 0;
  animation-fill-mode: forwards;
}

.line3 {
  animation: 
    typing 2s steps(40, end) 4s,
    blink-caret .75s;
  opacity: 0;
  animation-fill-mode: forwards;
}

/* The typing effect */
@keyframes typing {
  from { width: 0; opacity: 1; }
  to { width: 100%; opacity: 1; }
}

/* The typewriter cursor effect */
@keyframes blink-caret {
  from, to { border-color: transparent }
  50% { border-color: orange; }
}

#name{
	max-width: 291px;
	background-color: #547792;
	padding: 2em 2em 2em 2em;
	margin: auto;
	border-radius: 1em;
}

#name h1{
	font-size: 2em;
  color: #fffaf2;
	text-align: center;
  font-family: "League Spartan", sans-serif;

}

#headshot{
	float: left;
	max-width: 1500px;
	display: flex;
	align-items: flex-start;
}

#headshot img{
	width: 300px;
	height: 300px;
	float: left;
	margin-right: 20px;
}

#headshot p {
	float: left;
	max-width: 1180px;
	margin-top: 50px;
	font-size: 1.75em;
	color: #EAE0CF;
  font-family: "League Spartan", sans-serif;

}


/*EXPERIENCE*/
experience {
	float: left;
	max-width: 1500px;
	padding-top: 50px;
	padding-bottom: 50px;
}

#titleexperience {
	max-width: 291px;
	background-color: #547792;
	padding: 2em 2em 2em 2em;
	margin: auto;
	border-radius: 1em;
}

#titleexperience h1 {
	font-size: 2em;
  color: #fffaf2;
	text-align: center;
  font-family: "League Spartan", sans-serif;

}

/* The actual timeline (the vertical ruler) */
.timeline {
  position: relative;
  max-width: 1500px;
  margin: 0 auto;
}

/* The actual timeline (the vertical ruler) */
.timeline::after {
  content: '';
  position: absolute;
  width: 6px;
  background-color: white;
  top: 96px;
  bottom: 0;
  left: 50%;
  margin-left: -3px;
}

/* Container around content */
.container {
  padding: 10px 40px;
  position: relative;
  width: 50%;
}

/* The circles on the timeline */
.container::after {
  content: '';
  position: absolute;
  width: 25px;
  height: 25px;
  right: -17px;
  background-color: white;
  border: 4px solid #FF9F55;
  top: 15px;
  border-radius: 50%;
  z-index: 1;
}

/* Place the container to the left */
.left {
  left: 0;
}

/* Place the container to the right */
.right {
  left: 50%;
}

/* Add arrows to the left container (pointing right) */
.left::before {
  content: " ";
  height: 0;
  position: absolute;
  top: 22px;
  width: 0;
  z-index: 1;
  right: 30px;
  border: medium solid white;
  border-width: 10px 0 10px 10px;
  border-color: transparent transparent transparent white;
}

/* Add arrows to the right container (pointing left) */
.right::before {
  content: " ";
  height: 0;
  position: absolute;
  top: 22px;
  width: 0;
  z-index: 1;
  left: 30px;
  border: medium solid white;
  border-width: 10px 10px 10px 0;
  border-color: transparent white transparent transparent;
}

/* Fix the circle for containers on the right side */
.right::after {
  left: -16px;
}

/* The actual content */
.content {
  padding: 20px 30px;
  background-color: #7c9c9a;
  position: relative;
  border-radius: 6px;
}

.content h1, .content h2, .content h3, .content p{
	  font-family: "League Spartan", sans-serif;
	  color: #fffaf2;


}

/*MOREPLS*/
morepls {
	display: flex;
	flex-direction: column;
	margin: auto;
	justify-content: center;
	align-items: center;
	width: 100%;
}

#titlemore {
	max-width: 291px;
	display:flex;
	margin-bottom: 20px;
}

#titlemore p {
	color: #EAE0CF;
	text-align: center;
	font-size: 1.5em;
  font-family: "League Spartan", sans-serif;

}

.morebutton {
  	background-color: #7c9c9a;
	border-radius: 5em;
	width: 100px;
	margin: 5px;
	padding: auto;
}

.morebutton p{
	color: #EAE0CF;
	text-align: center;
	padding: 1em;
  font-family: "League Spartan", sans-serif;

}

/*REFERENCES*/
references {
	max-width: 1500px;
	display: flex;
	flex-direction: column;
}
#reftitle {
	max-width: 750px;
	background-color: #547792;
	padding: 2em 2em 2em 2em;
	margin: 2em auto 2em auto;
	border-radius: 1em;
}

#reftitle h1{
	font-size: 2em;
  color: #fffaf2;
	text-align: center;
  font-family: "League Spartan", sans-serif;

}

.refs {
	max-width: 750px;
  background-color: #7c9c9a;
	padding: 2em 2em 2em 2em;
	margin: 1em auto 1em auto;
	border-radius: 1em;
}

.refs p{
	font-size: 1.25em;
  color: #fffaf2;
	text-align: center;
  font-family: "League Spartan", sans-serif;

}

/*FOOTER*/
footer {
	max-width: 1500px;
	display: flex;
	flex-container: column;
	align-items: center;
}
#findme {
    max-width: 291px;
    margin-top: 2em;
    margin-right: 10px;
    margin-left: auto;
    margin-bottom: 2em;
}

#findme h1 {
	color: #7c9c9a;
	font-size: 1em;
}

.icon {
	width: 50px;
	height: 50px;
	margin: 10px;
}

.icon-container {
	display: flex;
	flex-direction: row;
	gap: 10px;
	margin: 20px auto;
}


@media (min-width: 0px) and (max-width: 320px){
/* Body adjustments */
  body {
    padding: 10px;
  }

 /* Navigation */
  li a {
    width: 100px;
    font-size: 0.7em;
    padding-left: 5px;
    margin-left: 5px;
  }

  /* Intro Section */
intro {
		float: none;
	display: flex;
	flex-direction: column;
	width: 100%;
	}
	
#hello {
    padding: 1em;
    margin: 1em 0.5em;
	width: auto;
	max-width: 100%;
	order: 1
  }

  #hello h1 {
    font-size: 1em;
    letter-spacing: 0.05em;
  }

  #name {
    max-width: 100%;
    padding: 1em;
    margin: 1em 0.5em;
	order: 2;
  }

  #name h1 {
    font-size: 1.5em;
  }
	
 #headshot {
    flex-direction: column;
    align-items: center;
	 float: none;
	 width: 100%;
	 order: 3;
  }

  #headshot img {
    width: 150px;
    height: 150px;
    margin-right: 0;
    margin-bottom: 15px;
		 float: none;

  }

  #headshot p {
    margin-top: 0;
    font-size: 1em;
    text-align: center;
    max-width: 100%;
		 float: none;

  }

  /* Experience Section */
  experience {
    padding-top: 20px;
    padding-bottom: 20px;
  }

  #titleexperience {
    max-width: 100%;
    padding: 1em;
    margin: 1em 0.5em;
  }

  #titleexperience h1 {
    font-size: 1.5em;
  }

  /* Timeline adjustments */
  .timeline::after {
    left: 31px;
  }

  /* Full-width containers */
  .container {
    width: 100%;
    padding-left: 70px;
    padding-right: 15px;
  }

  /* Make sure that all arrows are pointing leftwards */
  .container::before {
    left: 60px;
    border: medium solid white;
    border-width: 10px 10px 10px 0;
    border-color: transparent white transparent transparent;
  }

  /* Make sure all circles are at the same spot */
  .left::after, .right::after {
    left: 15px;
  }

  /* Make all right containers behave like the left ones */
  .right {
    left: 0%;
  }

  /* Content boxes */
  .content {
    padding: 15px 20px;
  }

  .content h1 {
    font-size: 1.2em;
  }

  .content h2 {
    font-size: 1em;
  }

  .content h3 {
    font-size: 0.9em;
  }

  .content p {
    font-size: 0.85em;
  }

  /* More Section */
  #titlemore {
    max-width: 100%;
    padding: 0 10px;
  }

  #titlemore p {
    font-size: 1.2em;
  }

  .morebutton {
    width: 80px;
  }

  .morebutton p {
    font-size: 0.9em;
    padding: 0.8em;
  }

  /* References Section */
  #reftitle {
    max-width: 100%;
    padding: 1em;
    margin: 1em 0.5em;
  }

  #reftitle h1 {
    font-size: 1.5em;
  }

  .refs {
    max-width: 100%;
    padding: 1em;
    margin: 0.5em;
  }

  .refs p {
    font-size: 1em;
  }

  /* Footer */
  #findme {
    max-width: 100%;
    margin: auto;
  }

  .icon {
    width: 40px;
    height: 40px;
    margin: 5px;
  }

  .icon-container {
    gap: 5px;
    margin: 10px auto;
    justify-content: center;
  }

  /* Custom line */
  hr.custom-line {
    border-top: 5px solid #333;
    margin: 10px 0;
  }
	
}	
	

@media (min-width: 320px) and (max-width: 768px){
/* Body adjustments */
  body {
    padding: 10px;
    max-width: 100%;
  }

  /* Navigation adjustments */
  li a {
    width: 100%;
    font-size: 0.9em;
    margin-left: 0;
    margin-bottom: 5px;
  }

  ul {
    float: none;
    width: 100%;
  }

  ul.submenu {
    padding-left: 0;
  }

  .topmenu li:hover ul.submenu {
    height: auto;
  }

  /* Intro section */
  intro {
    width: 100%;
  }

  #hello {
    width: 100%;
    margin: 1em 0;
    padding: 1.5em 1em;
  }

  #hello h1 {
    font-size: 2.5em;
    white-space: normal;
    border-right: none;
    letter-spacing: 0.1em;
    animation: none !important;
    opacity: 1 !important;
    width: auto !important;
  }

  .line1, .line2, .line3 {
    animation: none;
    opacity: 1;
    width: auto;
    border-right: none;
  }

  #name {
    width: 100%;
    padding: 1.5em 1em;
    margin: auto;
  }

  #name h1 {
    font-size: 1.5em;
  }

  /* Headshot section */
  #headshot {
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  #headshot img {
    width: 200px;
    height: 200px;
    margin-right: 0;
    margin-bottom: 20px;
  }

  #headshot p {
    max-width: 100%;
    margin-top: 0;
    font-size: 1.2em;
    text-align: center;
  }

  /* Experience section */
  experience {
    width: 100%;
    padding-top: 30px;
    padding-bottom: 30px;
  }

  #titleexperience {
    width: 100%;
    padding: 1.5em 1em;
  }

  #titleexperience h1 {
    font-size: 1.5em;
  }

  /* Timeline adjustments */
  .timeline::after {
    left: 31px;
    top: 50px;
  }

  .container {
    width: 100%;
    padding-left: 70px;
    padding-right: 25px;
  }

  .container::before {
    left: 60px;
    border: medium solid white;
    border-width: 10px 10px 10px 0;
    border-color: transparent white transparent transparent;
  }

  .container::after {
    left: 15px;
  }

  .right {
    left: 0;
  }

  .content {
    padding: 15px 20px;
  }

  .content h1 {
    font-size: 1.3em;
  }

  .content h2 {
    font-size: 1.1em;
  }

  .content h3 {
    font-size: 1em;
  }

  .content p {
    font-size: 0.9em;
  }

  /* More section */
  morepls {
    width: 100%;
    padding: 0 10px;
  }

  #titlemore {
    width: 100%;
    margin-bottom: 15px;
  }

  #titlemore p {
    font-size: 1.2em;
  }

  .morebutton {
    width: 120px;
    margin: 10px;
  }

  /* References section */
  references {
    width: 100%;
  }

  #reftitle {
    width: 100%;
    padding: 1.5em 1em;
    margin: 1.5em 0;
  }

  #reftitle h1 {
    font-size: 1.5em;
  }

  .refs {
    width: 100%;
    padding: 1.5em 1em;
    margin: 1em 0;
  }

  .refs p {
    font-size: 1em;
  }

  /* Footer */
  footer {
    width: 100%;
    flex-direction: column;
  }

  #findme {
    width: 100%;
    margin: 1.5em auto;
  }

  .icon-container {
    justify-content: center;
    flex-wrap: wrap;
  }

  .icon {
    width: 45px;
    height: 45px;
    margin: 8px;
  }
}
	
	
@media (min-width: 768px) and (max-width: 1280px){
	
body {
    padding: 15px;
    max-width: 1280px;
  }

  /* Navigation */
  li a {
    width: 130px;
    font-size: 0.75em;
    padding-left: 8px;
    margin-left: 8px;
  }

  ul.submenu {
    padding-left: 5px;
  }

  .topmenu li:hover ul.submenu {
    height: 250px;
  }

  /* Intro Section */
  intro {
    width: 100%;
    max-width: 1280px;
  }

  #hello {
    width: 100%;
    max-width: 1280px;
    padding: 2em;
    margin: 2em 1em;
  }

  #hello h1 {
    font-size: 3em;
    letter-spacing: 0.12em;
  }

  #name {
    max-width: 280px;
    padding: 1.8em;
    margin: auto;
  }

  #name h1 {
    font-size: 1.8em;
  }

  /* Headshot Section */
  #headshot {
    width: 100%;
    max-width: 1280px;
    display: flex;
    align-items: flex-start;
  }

  #headshot img {
    width: 280px;
    height: 280px;
    margin-right: 20px;
  }

  #headshot p {
    max-width: 960px;
    margin-top: 40px;
    font-size: 1.5em;
  }

  /* Experience Section */
  experience {
    width: 100%;
    max-width: 1280px;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  #titleexperience {
    max-width: 280px;
    padding: 1.8em;
  }

  #titleexperience h1 {
    font-size: 1.8em;
  }

  /* Timeline */
  .timeline {
    max-width: 1280px;
  }

  .timeline::after {
    left: 50%;
    top: 96px;
  }

  .container {
    width: 50%;
    padding: 10px 35px;
  }

  /* Keep desktop timeline behavior */
  .left {
    left: 0;
  }

  .right {
    left: 50%;
  }

  .container::after {
    width: 22px;
    height: 22px;
  }

  .right::after {
    left: -15px;
  }

  .left::after {
    right: -15px;
  }

  .content {
    padding: 18px 25px;
  }

  .content h1 {
    font-size: 1.4em;
  }

  .content h2 {
    font-size: 1.3em;
  }

  .content h3 {
    font-size: 1em;
  }

  .content p {
    font-size: 1em;
  }

  /* More Section */
  morepls {
    width: 100%;
  }

  #titlemore {
    max-width: 100%;
  }

  #titlemore p {
    font-size: 1.4em;
  }

  .morebutton {
    width: 95px;
    margin: 5px;
  }

  .morebutton p {
    padding: 0.9em;
  }

  /* References Section */
  references {
    max-width: 1280px;
  }

  #reftitle {
    max-width: 700px;
    padding: 1.8em;
    margin: 1.8em auto;
  }

  #reftitle h1 {
    font-size: 1.8em;
  }

  .refs {
    max-width: 700px;
    padding: 1.8em;
    margin: 1em auto;
  }

  .refs p {
    font-size: 1.30em;
  }

  /* Footer */
  footer {
    max-width: 1280px;
  }

  #findme {
    max-width: 280px;
    margin-top: 1.8em;
  }

  .icon {
    width: 48px;
    height: 48px;
    margin: 10px;
  }

  .icon-container {
    gap: 10px;
    margin: 18px auto;
  }

  /* Custom line */
  hr.custom-line {
    border-top: 8px solid #333;
    margin: 18px 0;
  }
}

