/* ======================
   Theme Variables
====================== */
:root {
  --bg: #f7f9fc;
  --text: #1a1a1a;
  --primary: #007bff;
  --accent: #ff6b6b;
  --card-bg: #ffffff;
  --border: #e0e0e0;

  --about-bg: #fef6e4;
  --skills-bg: #e0f7fa;
  --projects-bg: #f3e5f5;
  --gallery-bg: #fff3e0;
  --contact-bg: #e8f5e9;
}

body.dark {
  --bg: #121212;
  --text: #f1f1f1;
  --primary: #00c6ff;
  --accent: #ff8c42;
  --card-bg: #1f1f1f;
  --border: #333;

  --about-bg: #2e2a25;
  --skills-bg: #1c313a;
  --projects-bg: #311b3f;
  --gallery-bg: #3e2723;
  --contact-bg: #1b5e20;
}

/* ======================
   Global Reset
====================== */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Segoe UI',sans-serif;
  line-height:1.5;
}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
video{display:block;max-width:100%;}

/* ======================
   Welcome Popup
====================== */
#welcome-popup{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.85);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  z-index:9999;
  animation:fadeOut 3s ease forwards;
  animation-delay:1s;
}
@keyframes fadeOut{to{opacity:0;visibility:hidden;}}
.confetti{
  position:absolute;
  width:10px;height:10px;
  background:gold;
  animation:fall 3s linear infinite;
}
@keyframes fall{
  0%{transform:translateY(-100px) rotate(0);}
  100%{transform:translateY(100vh) rotate(360deg);}
}

/* ======================
   Header
====================== */
header{
  background:var(--card-bg);
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:100;
  width:100%;
}
.header-inner{
  max-width:1200px;
  margin-inline:auto;
  padding:15px 20px;
  display:flex;
  align-items:center;
  gap:15px;
}
.logo{
  font-size:1.8rem;
  font-weight:bold;
  line-height:1.1;
  color:var(--primary);
  text-align:left;
}

/* Dark mode button always visible */
.mode-btn{
  background:var(--accent);
  color:#fff;
  padding:6px 12px;
  border:none;
  border-radius:6px;
  font-size:1.2rem;
  cursor:pointer;
  margin-left:auto; /* pushes nav + toggle to right */
}

/* Hamburger */
.nav-toggle{
  background:none;
  border:2px solid var(--primary);
  color:var(--primary);
  padding:2px 10px 4px;
  border-radius:4px;
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
  display:none; /* shown in mobile */
}

/* Desktop nav */
.main-nav{
  display:flex;
  align-items:center;
  gap:20px;
  margin-left:20px;
}
.main-nav a{
  font-weight:500;
  color:var(--text);
  padding:4px 0;
  transition:color .25s;
}
.main-nav a:hover{color:var(--accent);}

/* Mobile nav open state */
.main-nav.show{
  position:absolute;
  top:100%;
  right:0;
  left:0;
  background:var(--card-bg);
  border-bottom:1px solid var(--border);
  padding:15px 0;
  flex-direction:column;
  gap:15px;
  display:flex;
}

/* ======================
   Hero
====================== */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  padding:0 20px;
}
.hero-bg-video{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  opacity:.75;
  z-index:0;
}
.hero-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.35);
  z-index:1;
}
.hero-content{
  position:relative;
  z-index:2;
  max-width:700px;
  color:#fff;
  text-shadow:0 0 10px rgba(0,0,0,.6);
}
.hero-content h1{
  font-size:clamp(2.2rem,5vw,3.5rem);
  margin-bottom:1rem;
}
.hero-content span{color:var(--accent);}
.hero-content p{
  font-size:1.15rem;
  margin-bottom:1.25rem;
}
.hero-buttons{
  display:flex;
  justify-content:center;
  gap:15px;
  flex-wrap:wrap;
  margin-bottom:1rem;
}
.btn{
  padding:12px 28px;
  border-radius:25px;
  font-weight:bold;
  transition:.25s;
  display:inline-block;
}
.btn-transparent{
  background:transparent;
  border:2px solid #fff;
  color:#fff;
}
.btn-transparent:hover{background:#fff;color:#000;}
.btn-outline{
  background:transparent;
  border:2px solid var(--primary);
  color:var(--primary);
}
.btn-outline:hover{background:var(--primary);color:#fff;}
.sound-btn{
  margin-top:.5rem;
  padding:8px 18px;
  font-size:1rem;
  border-radius:8px;
  border:none;
  cursor:pointer;
  background:var(--accent);
  color:#fff;
  font-weight:bold;
}

/* ======================
   Section Global
====================== */
.section{
  padding:60px 20px;
  text-align:center;
}
.section h2{
  font-size:2rem;
  margin-bottom:25px;
  color:var(--primary);
  position:relative;
}
.section h2::after{
  content:"";
  display:block;
  width:60px;
  height:4px;
  margin:10px auto 0;
  background:var(--accent);
  border-radius:2px;
}
.section-about{background:var(--about-bg);}
.section-skills{background:var(--skills-bg);}
.section-projects{background:var(--projects-bg);}
.section-gallery{background:var(--gallery-bg);}
.section-contact{background:var(--contact-bg);}

/* ======================
   About
====================== */
.about-wrapper{
  max-width:1000px;
  margin-inline:auto;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:2rem;
  flex-wrap:wrap;
  text-align:left;
}
.profile-pic{
  width:220px;
  height:220px;
  object-fit:cover;
  border-radius:12px;
  border:4px solid var(--accent);
  flex-shrink:0;
}
.about-text{
  flex:1;
  max-width:650px;
  font-size:1.05rem;
  line-height:1.6;
}
.about-text p + p{margin-top:1rem;}

/* ======================
   Skills
====================== */
.skills-grid{
  max-width:900px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:25px;
}
.skill-card{
  background:linear-gradient(45deg,var(--primary),var(--accent));
  color:#fff;
  padding:20px;
  border-radius:15px;
  font-weight:bold;
  text-align:center;
}

/* ======================
   Projects
====================== */
.project-grid{
  max-width:1000px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:25px;
}
.project-card{
  background:var(--card-bg);
  padding:20px;
  border-left:5px solid var(--accent);
  border-radius:10px;
  box-shadow:0 5px 10px rgba(0,0,0,.08);
  text-align:left;
}
.project-card h3{margin-bottom:.5rem;color:var(--accent);}

/* ======================
   Gallery (KEEP original ratio)
====================== */
.gallery-grid{
  max-width:1200px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:20px;
}
.gallery-grid img,
.gallery-grid video{
  width:100%;
  aspect-ratio:16/9;
  border-radius:10px;
  object-fit:cover;
  box-shadow:0 5px 15px rgba(0,0,0,.1);
}

/* ======================
   Contact
====================== */
.contact-line{text-align:center;margin-bottom:.5rem;}
.socials{
  text-align:center;
  margin-top:20px;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:15px;
}
.socials a{
  color:var(--primary);
  font-weight:bold;
}
.socials a:hover{color:var(--accent);}

/* ======================
   Footer
====================== */
footer{
  text-align:center;
  padding:25px;
  background:var(--card-bg);
  border-top:1px solid var(--border);
  font-size:.95rem;
}

/* ======================
   Responsive
====================== */
@media (max-width:768px){
  .mode-btn{margin-left:0;order:2;}
  .nav-toggle{display:block;order:3;}
  .main-nav{
    display:none;
  }
  .main-nav.show{
    display:flex;
  }

  .hero-content p{font-size:1rem;}
  .hero-buttons{
    flex-direction:column;
  }
  .btn,.btn-outline,.btn-transparent{
    width:80%;
    max-width:300px;
    text-align:center;
  }

  .about-wrapper{
    flex-direction:column;
    text-align:center;
  }
  .about-text{text-align:center;max-width:100%;}
  .profile-pic{margin:0 auto;}
}
