 * {
  margin: 0;              
  padding: 0;             
  box-sizing: border-box; 
 }
body {
  font-family: 'Lato', sans-serif; 
  background-color: #faf8f5;      
  color: #2c2c2c;                  
  line-height: 1.8;                
}
.teal {
  color: #7eb8a4;
}
  

 nav {
  background-color: #2c2c2c;       
  padding: 16px 40px;              
  display: flex;                   
  justify-content: space-between;  
  align-items: center;            
}

.nav-logo {
  color: #d4a853;                       
  font-family: 'Playfair Display', serif;
  font-size: 21px;                    
  text-decoration: none;
  letter-spacing: 3px;                   
}

.nav-links {
  list-style: none; 
  display: flex;    
  gap: 40px;       
}

.nav-links a {
    color: #aaaaaa;            
    text-decoration: none; 
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase; 
    transition: color 0.3s;   
}

.nav-links a:hover {
  color: #d4a853; 
}

#main {
  /* # means we are targeting the element with id="main" */
  background-color: #1a1a1a;   /* dark background */
  background-image:
    radial-gradient(ellipse 60% 60% at 75% 50%, rgba(212, 168, 83, 0.12),);
  

  min-height: 90vh;        
  display: flex;          
  align-items: center;     
  justify-content: center;
  text-align: center;     
  padding: 60px 24px;      
}


.main-content {
  max-width: 700px; 
  animation: zoomIn 1s ease both;
}




@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale(0.5); 
  }
  to {
    opacity: 1;
    transform: scale(1);   
  }
}

.main-label {
  animation: zoomIn 0.9s ease both;
}

/* Small gold label above the title */
.main-label {
  color: #d4a853;
  font-size: 0.75rem;
  letter-spacing: 5px;
  text-transform: uppercase;
  margin-bottom: 20px; 
}


.main-title {
  font-family: 'Playfair Display', serif;
  font-size: 4rem;    
  font-weight: 700;   
  color: #f0ece6;    
  line-height: 1.1;  
  margin-bottom: 24px;
}

/* The italic words inside .hero-title (<em> tags) */
.main-title em {
  font-style: italic;
  color: #d4a853; /* gold */
}

/* Subtitle paragraph */
.main-sub {
  color: #888888;
  font-size: 0.95rem;
  margin-bottom: 36px;
}

/* The gold button / link */
.main-btn {
  display: inline-block; 
  background-color: #d4a853;
  color: #1a1a1a;        
  text-decoration: none;
  padding: 14px 36px;    
  font-size: 0.8rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 700;
  transition: background-color 0.3s; 
}

.main-btn:hover {
  background-color:#7eb8a4;
}

.section {
  padding: 80px 40px; 
  max-width: 1100px; 
  margin: 0 auto;    
}

/* Full-width beige background wrapper for light sections */
.section-light-wrap {
  background-color: #f0ece6;
}

/* Small gold label shown above section titles */
.section-label {
  font-size: 0.7rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #d4a853;
  margin-bottom: 10px;
  display: flex;       
  align-items: center;
  gap: 12px;
}

/* The short horizontal line before the label text
   ::before = a fake element inserted before this element's content */
.section-label::before {
  content: '';          
  display: block;
  width: 30px;
  height: 1px;
  background-color: #d4a853; 
}

/* Section main heading (<h2>) */
.section-title {
  font-family: 'Playfair Display', serif;
  font-size: 2.8rem;
  font-weight: 400;  
  line-height: 1.15;
  margin-bottom: 16px;
  color: #1a1a1a;
}

/* Italic gold words inside section titles */
.section-title em {
  font-style: italic;
  color: #d4a853;
}

/* Section body paragraph text */
.section-text {
  color: #666666;
  font-size: 0.9rem;
  max-width: 500px;
  line-height: 1.9;
}


/* =====================================================
   ABOUT SECTION
====================================================== */

/* Two-column layout */
.about-grid {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 60px;           
  align-items: center; 
  margin-top: 48px;   
}

/* The circular avatar */
 
.avatar-image{
  width: 160px;
  height: 160px;
  border-radius: 50%;        
  border: 3px solid skyblue;
  margin: 0 auto;
  object-fit: cover;         
  display: block;          
}

/* The row of skill tags */
.tags {  
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}

.tag-label {
  display: block;
  width: 100%;
  font-size: 0.75rem;
  font-weight: 600;
  color: #888;
  letter-spacing: 0.05em;
  margin-top: 12px;
  margin-bottom: 4px;
}
/* Each individual skill tag */
.tag {
        
    border-radius: 20px;
    background-color: #f0ede6;
    padding: 5px 14px;
    font-size: 0.85rem;
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 1px;
  
  border: 1px solid #cccccc; 
  color: #888888;
  transition: border-color 0.3s, color 0.3s; 
}

.tag:hover {
  border-color:none;  
  color: #d4a853;;
}
/* =====================================================
   GALLERY SECTION  (Bicycle)
====================================================== */

/* Space below the gallery heading area */
.gallery-header {
  margin-bottom: 40px;
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* repeat(3, 1fr) = 3 equal columns
     Same as writing: 1fr 1fr 1fr */
  gap: 4px;
}
.gallery-item {
  position: relative;   
  overflow: hidden;    
  aspect-ratio: 4 / 3; 
  background-color: #e8e0d5;
  cursor: pointer;      
}
.gallery-emoji {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  background: linear-gradient(135deg, #e8e0d5, #d5cabb);
  transition: transform 0.5s ease, filter 0.4s;
  filter: brightness(0.8);
}

/* Zoom and brighten on hover */
.gallery-item:hover .gallery-emoji {
  transform: scale(1.1); 
  filter: brightness(1); 
}


/* Dark overlay that slides in on hover */
.gallery-overlay {
  position: absolute; 
  bottom: 0;         
  left: 0;
  right: 0;
  padding: 20px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75), transparent);
  opacity: 0;          
  transition: opacity 0.4s; 
}
/* Make overlay visible when hovering the parent .gallery-item */
.gallery-item:hover .gallery-overlay {
  opacity: 1;
}

/* Small subtitle below the caption */
.gallery-sub {
  font-size: 0.65rem;
  color: #bbbbbb;
  margin-top: 4px;
  letter-spacing: 1px;
}

/* =====================================================
   FOOD SECTION
====================================================== */

/* 2-column grid for food cards */
.food-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); 
  gap: 24px;
  margin-top: 48px;
}

/* Each food card */
.food-card {
  background-color: #faf8f5;
  border: 1px solid #e0d8ce; 
  overflow: hidden;
  transition: transform 0.3s, box-shadow 0.3s; 
}

/* Lift the card up on hover */
.food-card:hover {
  transform: translateY(-6px);              
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1); 
}
/* AFTER */
.food-photo {
  aspect-ratio: 4 / 3;
  overflow: hidden;    /* hide parts of image outside the box */
  transition: filter 0.3s;
}

/* ADD this new rule for the img tag inside .food-photo */
.food-photo img {
  width: 100%;   
  height: 100%;      
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}


/* zoom in slightly on hover — looks nice! */
.food-card:hover .food-photo img {
  transform: scale(1.07);}
/* Emoji inside the photo area */
.food-photo span {
  font-size: 2.5rem;
}

/* "Photo Coming Soon" text */
.food-photo p {
  font-size: 0.6rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #aaaaaa;
}

/* Slightly brighter photo area on hover */
.food-card:hover .food-photo {
  filter: brightness(1.05);
}

/* Text area below the photo */
.food-body {
  padding: 20px 22px; 
}
/* Date text */
.food-date {
  font-size: 0.65rem;
  letter-spacing: 2px;
  color: #7eb8a4; /* teal */
  margin-bottom: 6px;
}

/* Recipe name */
.food-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.2rem;
  color: #1a1a1a;
  margin-bottom: 8px;
}


/* Description paragraph */
.food-desc {
  font-size: 0.78rem;
  color: #888888;
  line-height: 1.8;
}

/* Row of small tags at the bottom of the card */
.food-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 14px;
}

/* Each small food tag */
.ftag {
  font-size: 0.58rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 3px 10px;
  border: 1px solid #dddddd;
  color: #aaaaaa;
}
/* =====================================================
   TECH STRIP  ("Built with" row)
====================================================== */
.tech-strip {
  padding: 48px 40px;
  border-top: 1px solid #e0d8ce; 
  text-align: center;
}

/* "Built with" label */
.tech-strip-label {
  font-size: 0.65rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #bbbbbb;
  margin-bottom: 24px;
}

/* Row of badges */
.tech-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

/* Each badge */
.tech-badge {
  padding: 12px 24px;
  border: 1px solid #e0d8ce;
  margin: -1px; 
  font-size: 0.7rem;
  letter-spacing: 1px;
  color: #999999;
  transition: background-color 0.3s, color 0.3s;
}

.tech-badge:hover {
  background-color: #f0ece6;
  color: #d4a853; /* gold */
}

/* =====================================================
   CONTACT SECTION
====================================================== */
.contact-wrap {
  padding: 80px 24px;
  text-align: center;
  background-color: #1a1a1a; 
}
/* Large italic heading */
.contact-title {
  font-family: 'Playfair Display', serif;
  font-size: 3.5rem;
  font-style: italic;
  font-weight: 400;
  color: #f0ece6;  /* off-white */
  line-height: 1;
  margin-bottom: 16px;
}step by step

/* Gold "Connect" word inside the title */
.contact-title em {
  color: #d4a853;
}

/* Subtitle */
.contact-sub {
  color: #888888;
  font-size: 0.85rem;
  margin-bottom: 36px;
}

/* Contact button */
.contact-btn {
  display: inline-block;
  background-color: #d4a853;
  color: #1a1a1a;
  text-decoration: none;
  padding: 14px 40px;
  font-size: 0.8rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 700;
  transition: background-color 0.3s;
}

.contact-btn:hover {
  background-color: #7eb8a4; 
}

/* =====================================================
   FOOTER
====================================================== */
footer {
  background-color: #111111;
  padding: 20px 40px;
  display: flex;
  justify-content: space-between; 
  align-items: center;
  font-size: 0.62rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color:whitesmoke;
}

/* =====================================================
   RESPONSIVE STYLES
   @media = "apply these rules only when..."
   max-width: 768px = "...the screen is 768px wide or narrower"
   768px is a common breakpoint for tablets / phones
====================================================== */
@media (max-width: 768px) {

  nav {
    padding: 14px 20px;
  }

  /* Hide the nav links on small screens (no space for them) */
  .nav-links {
    display: none;
  }

  /* Smaller hero title on phone */
  .hero-title {
    font-size: 2.6rem;
  }

  /* Less padding on small screens */
  .section {
    padding: 60px 20px;
  }

  /* Stack about columns vertically on phone */
  .about-grid {
    grid-template-columns: 1fr; 
    gap: 32px;
  }

  /* Gallery: 3 columns → 2 columns on phone */
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Food: 2 columns → 1 column on phone */
  .food-grid {
    grid-template-columns: 1fr;
  }

  /* Stack footer items vertically */
  footer {
    flex-direction: column;
    gap: 6px;
    text-align: center;
  }

}




    