/* ------------------GENERAL -------------------*/
* {
  margin:0;
  padding:0;
}
html {
  scroll-behavior: smooth;
}

body {
	background-color:#FEFCEA;
  font-family:"Poppins", sans-serif;
}

h1{
  font-family:"Poppins", sans-serif;
	color: #03045E;
  margin: 0;
}

h2 {
  font-family:"Poppins", sans-serif;
  color: #FFCC00;
  margin: 0;
  text-align: left;
  font-size: 50px;
}

/* ----------------------DESKTOP NAV------------------------- */
nav, .nav-links {
  display:flex;
}
nav {
  justify-content: space-evenly;
  align-items: center;
  height: 17vh;

}
.nav-links {
  gap:2rem;
  list-style: none;
  font-size: 1.5rem;
}

nav a {
  color: black;
  text-decoration: none;
  text-decoration-color:white;
}

nav a:hover {
  color: #FFCC00;
  text-decoration: underline;
  text-underline-offset:1rem;
}

.logo {
  font-size:2rem;
}

.logo a:hover{
  font-size:2rem;
  text-decoration: none;
}


/* ----------------------HAMBURGER NAV----------------------*/
#hamburger-nav {
  display: none;
}

.hamburger-menu {
  position: relative;
  display: inline-block;
}
.hamburger-icon {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 24px;
  width: 30px;
  cursor: pointer;
}

.hamburger-icon span {
  height: 2px;
  width: 100%;
  background-color: #03045E;
  transition: all 0.3s ease-in-out;
}
.menu-links {
  position: absolute;
  top: 100%;
  right: 0;
  background-color: white;
  width: fit-content;
  max-height: 0;
  overflow: hidden;
  transition: all 0.3s ease-in-out;
}
.menu-links a {
  display: block;
  padding: 10px;
  text-align: center;
  font-size: 1.5rem;
  color:black;
  text-decoration: none;
  transition: all 0.3s ease-in-out;
}
.menu-links li {
  list-style: none;
}

.menu-links.open {
  max-height: 300px;
}

.hamburger-icon.open span:first-child {
  transform: rotate(45deg) translate(10px, 5px);
}

.hamburger-icon.open span:nth-child(2) {
  opacity: 0;
}

.hamburger-icon.open span:last-child {
  transform: rotate(-45deg) translate(10px,-5px);
}

.hamburger-icon span:first-child {
  transform: none;
}

.hamburger-icon span:first-child {
   opacity: 1;
}

.hamburger-icon span:first-child {
  transform: none;
}

/*---------------------- SECTIONS ---------------------- */

section {
  padding-top: 4vh;
  height: 96vh;
  margin: 0 10rem;
  box-sizing: border-box;
  min-height: fit-content;
}

.section-container {
  display: flex;
}

/* ------------------------HERO------------------------*/

#hero {
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5rem;
  height: auto;
  min-height: 80vh;
}
.hero-container {
  display:0 0 flex;
  width: 400px;
  max-width: 100%;
  margin: auto 0;
}
.hero-text {
  text-align: center;
}
#hero h1 {
  font-size: 90px;
  text-align: center;
  color:#03045E;
  font-weight: 800;
}
#hero h2{
  text-align: left;
  font-size: 1.75rem;
  color:#03045E;
   font-weight: 500;
}

#hero h3{
  margin-bottom: 1rem;
  font-family:"Poppins", sans-serif;
  font-weight: 400;
  font-style: normal;
  color:#03045E;
}

.hero-socials {
  display: flex;
  justify-content: center;
  margin-top: 1rem;
  gap: 1rem;
}

.hero-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  object-fit: cover;  
  overflow: hidden;    
}

/* ----------------ICONS-------------------- */
.icon {
  cursor: pointer;
  height: 2rem;
}

/* ----------------BUTTONS-------------------- */
.hero-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
}
.btn {
  font-weight: 600;
  transition: all 300ms ease;
  padding: 1rem;
  width: 8rem;
  border-radius: 2rem;
  text-decoration: none;
  color: black;
  text-align:center;
}

.cv-button,
.contact-button {
  border:black 2px solid;
}

.cv-button:hover,
.contact-button:hover {
  cursor: pointer;
}
.cv-button:hover {
  background-color: #FFCC00;
  color: white;
}

.contact-button:hover {
  background-color: #03045E;
  color: white;
}

/* ------------------- ABOUT -----------------------------*/

.purpose-section {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 1rem;
}
.about-text {
   flex: 1;
}

#about {
  text-align: center;
  height: auto;              /* global section rule sets 96vh */
  padding-bottom: 4rem;
}
#about h2{
  color:#FFCC00;
  font-weight:800;
}

#about p {
  font-weight:400;
  text-align: left;
  line-height: 1.7;
  margin-top: 0;
  margin-bottom: 1.25rem;
}

#about h3 {
  font-size: 1.5rem;
  color:#03045E;
  font-weight:500;
  margin-bottom: 1rem;
  text-align: left;
  flex-direction: column;
  align-items: center;
}

.about-img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 10px;
}

.purpose-section {
  display: flex;
  align-items: flex-start;
  gap: 4rem;
  margin-top: 2rem;
}

.about-side {
  flex: 0 0 35%;
  max-width: 400px;
  position: sticky;          /* stays in view while the bio scrolls */
  top: 2rem;
}

.philosophy {
  margin-top: 80px;
  padding-left: 1rem;
  border-left: 4px solid #FFCC00;   /* accent line using your yellow */
}

/* ------------------- CONTACT -----------------------------*/

#contact {
  height: auto;             /* global section rule sets 96vh */
  padding-bottom: 4rem;
}

#contact a {
  display: flex;
  flex-direction: row;    /* side by side */
  align-items: center;    /* vertically centers icon and text */
  gap: 0.75rem;           /* space between icon and label */
  text-decoration: none;
  color: black;
  margin: 40px 40px;
}


/* ------------------------PROJECTS CARDS------------------------*/
#projects {
  height: auto;          /* global section rule sets 96vh, which would crop or stretch this */
  padding-bottom: 4rem;
}

.project-cards-container {
  display: flex;
  flex-wrap: wrap;       /* cards drop to the next row when there's no room */
  gap: 2rem;
  margin-top: 2rem;
}

.project-card {
  flex: 1 1 280px;       
  max-width: 350px;      
  display: flex;
  flex-direction: column;
  background-color: white;
  border-radius: 10px;
  overflow: hidden;     
  transition: transform 300ms ease;
}

.project-card:hover {
  transform: translateY(-6px);
  text-decoration: none; 
  color: inherit;        
}

.project-card img {
  width: 100%;
  aspect-ratio: 4 / 3;   /* keeps all thumbnails the same shape */
  object-fit: cover;     /* crops instead of squishing */
  display: block;
}

.yellow-button {
  font-weight: 600;
  transition: all 300ms ease;
  padding: 10px;
  border-radius: 2rem;
  border:black 2px solid;
  margin-top: 1rem;
  background-color:#FFCC00;
  text-decoration: none; 
  color: black; 
  text-align: center;
  
}

.project-video {
  width: 100%;
  border-radius: 10px;
}
#projects h4 {
  margin: 20px;
}

#projects p {
  margin-left: 20px;
}

#playground h4 {
  margin: 20px;
}

#playground p {
  margin-left: 20px;
}

/* ------------------------PROJECTS PAGE------------------------*/

#project-overview {
  text-align: left;
  height: auto;          /* let the section grow with the long text */
  min-height: 96vh;
  padding-bottom: 4rem;
}

.project-layout {
  display: flex;
  align-items: flex-start;       /* image sits at the top */
  justify-content: flex-start;   /* everything starts on the left */
  gap: 3rem;
  margin-top: 2rem;
}

.mainprojectimage {
  flex: 0 0 40%;                 /* image takes 40% of the width */
  max-width: 450px;
  position: sticky;              /* stays in view while the text scrolls */
  top: 2rem;

  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.project-image {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
}

.project-text {
  flex: 1;
  text-align: left;
}

#project-overview h3 {
  margin-bottom: 1rem;
  font-weight: 800;
  color: #03045E;
}

#project-overview p {
  margin-bottom: 1rem;
  white-space: pre-line;         /* keeps your line breaks from the HTML */
  line-height: 1.6;
}

#project-overview .hero-buttons,
#project-overview .hero-socials {
  justify-content: flex-start;   /* align buttons/icons left with the text */
}


