* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: poppins, sans-serif;
}

body {
  overflow-x: hidden;
}

html {
  scroll-behavior: smooth;
}

.header {
  position: fixed;
  top: 0;
  width: 100%;
  background: #3292ff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 25px;
  z-index: 1000;
}

.logo img {
  height: 35px;
}

.header nav a {
  margin-left: 20px;
  text-decoration: none;
  color: black;
  font-weight: bold;
  position: relative;
}

.header nav a::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 2px;
  background: black;
  transition: 0.3s;
}

.header nav a:hover::after {
  width: 100%;
}

.NavToggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  z-index: 1100;
}

.NavToggle span {
  display: block;
  width: 20px;
  height: 2px;
  background: black;
  border-radius: 3px;
  transition: 0.3s ease;
}

.NavToggle.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.NavToggle.active span:nth-child(2) {
  opacity: 0;
}

.NavToggle.active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 90px 80px;
  padding-top: 80px;
  background-color: #3292ff;
}

.HeroText {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.HeroText h1 {
  font-size: 70px;
}

.HeroText p {
  font-size: 26px;
}

.HeroPhoto {
  width: min(550px, 45vw);
  height: min(550px, 45vw);
  clip-path: polygon(35% 0%, 100% 0%, 65% 100%, 0% 100%);
  overflow: hidden;
  flex-shrink: 0;
}

.HeroPhoto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.section {
  padding: 60px;
}

.SectionTitle {
  display: inline-block;
  background: #3292ff;
  box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.85);
  padding: 6px 14px;
  margin-bottom: 20px;
}

.hero-buttons {
  display: flex;
  gap: 12px;
  margin-top: 20px;
  justify-content: center;
}

.btn {
  padding: 12px 28px;
  text-decoration: none;
  font-weight: 500;
  border-radius: 12px;
  transition: 0.2s ease;
  font-family: sans-serif;
}

.btn-linkedin {
  background: #3292ff;
  color: white;
  font-weight: bold;
}

.btn-cv {
  background: white;
  color: #3292ff;
  border: 2px solid #3292ff;
  font-weight: bold;
}

.btn:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.AboutText p {
  font-size: 24px;
  padding: 10px 0;
}

.TableWrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.Table {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
}

.Table th,
.Table td {
  border: 1px solid black;
  padding: 12px;
  text-align: center;
}

.ProjectItem {
  max-width: 800px;
  margin: 0 auto 48px;
  background-color: #f2f2f2;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  transition: all 0.25s ease;
  cursor: pointer;
}

.ProjectItem:hover {
  transform: translateY(-8px) scale(1.01);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.15);
}

.ProjectTitle {
  text-align: center;
  margin-bottom: 16px;
  cursor: pointer;
}

.ProjectImage {
  display: block;
  margin: 0 auto 20px;
  max-width: 100%;
  height: auto;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.ProjectItem:hover .ProjectImage {
  transform: scale(1.03);
}

.ProjectImageMini {
  display: block;
  margin: 0 auto 20px;
  max-width: 300px;
  width: 100%;
}

.ProjectDescription {
  max-width: 900px;
  margin: 10px auto 0;
  line-height: 1.7;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-10px);
  transition: all 0.4s ease;
}

.ProjectDescription p {
  margin-bottom: 16px;
}

.ProjectDescription ul {
  margin-left: 20px;
  margin-bottom: 20px;
}

.ProjectDescription li {
  margin-bottom: 8px;
}

.ProjectLink a {
  color: black;
  text-decoration: underline;
}

.ProjectItem.active .ProjectDescription {
  max-height: 2000px;
  opacity: 1;
  transform: translateY(0);
}

.CertificationItem {
  max-width: 800px;
  margin: 0 auto 20px;
  text-align: left;
}

.CertificationTitle {
  margin: 20px 0 12px;
  padding: 6px 14px;
  text-align: center;
}

.CertificationLink {
  color: black;
  text-decoration: underline;
  display: inline-block;
  margin-top: 10px;
}

.CertificateDescription {
  margin-bottom: 12px;
  line-height: 1.7;
}

.contact {
  background: #3292ff;
  padding: 20px 40px;
  text-align: center;
}

.ContactTitle {
  font-size: 28px;
  margin-bottom: 20px;
}

.contact p {
  margin-bottom: 12px;
}

.contact a {
  color: black;
  text-decoration: underline;
  font-size: 18px;
}

.FooterText {
  margin-top: 20px;
  font-size: 18px;
  color: black;
}

@media (max-width: 900px) {

  .hero {
    padding: 80px 40px 60px;
    gap: 30px;
  }

  .HeroText h1 {
    font-size: 48px;
  }

  .HeroText p {
    font-size: 20px;
  }

  .HeroPhoto {
    width: min(380px, 42vw);
    height: min(380px, 42vw);
  }

  .section {
    padding: 24px 14px;
  }

  .Table th,
  .Table td {
    padding: 8px;
    font-size: 14px;
  }

}

@media (max-width: 600px) {

  .header {
    padding: 6px 16px;
  }

  .logo img {
    height: clamp(24px, 5vw, 32px);
  }

  .NavToggle {
    display: flex;
  }

  #NavMenu {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(6px);
    padding: 12px 0;
    z-index: 999;
  }

  #NavMenu.open {
    display: flex;
  }

  #NavMenu a {
    margin-left: 0;
    padding: 10px 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    text-align: center;
    font-size: clamp(14px, 4.2vw, 18px);
    color: white;
  }

  #NavMenu a::after {
    display: none;
  }

  .hero {
    flex-direction: row;
    padding: 70px 16px 30px;
    gap: 12px;
  }

  .HeroText h1 {
    font-size: clamp(16px, 5.5vw, 32px);
  }

  .HeroText p {
    font-size: clamp(10px, 3.2vw, 16px);
  }

  .HeroPhoto {
    width: min(140px, 38vw);
    height: min(140px, 38vw);
  }

  .btn {
    padding: 8px 18px;
    font-size: clamp(11px, 3.2vw, 14px);
    border-radius: 8px;
  }

  .SectionTitle {
    font-size: clamp(14px, 4vw, 18px);
  }

  .AboutText p {
    font-size: clamp(12px, 3.5vw, 15px);
  }

  .ProjectTitle {
    font-size: clamp(12px, 3.8vw, 15px);
  }

  .ProjectDescription {
    font-size: clamp(11px, 3.2vw, 13px);
  }

  .CertificationTitle {
    font-size: clamp(12px, 3.8vw, 15px);
  }

  .CertificateDescription {
    font-size: clamp(11px, 3.2vw, 13px);
  }

  .ContactTitle {
    font-size: clamp(12px, 3.8vw, 15px);
  }

  .contact a {
    font-size: clamp(12px, 3.4vw, 15px);
  }

  .FooterText {
    font-size: clamp(12px, 3.4vw, 15px);
  }

}