/* ==========
   BASE / RESET
   ========== */
:root{
  --bg: #0b0d10;
  --bg-soft: #11151a;
  --text: #e9eef5;
  --muted: #a9b2bd;
  --accent: #7c5cff;
  --accent-2: #00e5ff;
  --card: #0f141b;
  --border: #1c2230;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}

:root.light{
  --bg: #fbfbfc;
  --bg-soft: #f1f3f7;
  --text: #0f1216;
  --muted: #4a5663;
  --accent: #5b3df5;
  --accent-2: #00c6d9;
  --card: #ffffff;
  --border: #e6e9ee;
  --shadow: 0 8px 24px rgba(13,18,22,.08);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji";
  background: var(--bg);
  color: var(--text);
  line-height:1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Containers */
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.section{padding:72px 0}
.section-title{
  font-size: clamp(1.6rem, 1.2rem + 2vw, 2.2rem);
  margin:0 0 24px;
}
.section-subtitle{
  font-size: clamp(1.2rem, 1rem + 1vw, 1.5rem);
  margin:32px 0 16px;
  color: var(--muted);
}

/* Progress bar */
.progress{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:90}
.progress .bar{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));}

/* Nav */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(10,12,16,.6);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:.6rem 1rem;
}
.nav .brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text);font-weight:700}
.nav .links{display:flex;align-items:center;gap:.8rem}
.nav a{color:var(--text);text-decoration:none;padding:.45rem .7rem;border-radius:10px}
.nav a:hover{background:var(--bg-soft)}
.btn{border:1px solid var(--border);background:var(--card);color:var(--text);padding:.6rem 1rem;border-radius:12px;box-shadow:var(--shadow);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:.2s}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;color:white}
.btn.ghost{background:transparent}
.btn.small{padding:.4rem .7rem;border-radius:10px}

/* Hamburger (mobile) */
.hamburger{display:none;background:transparent;border:0;cursor:pointer}
.hamburger span{display:block;width:24px;height:2px;background:var(--text);margin:5px 0;transition:.2s}
.mobileMenu{display:none;position:absolute;top:56px;right:16px;left:auto;min-width:220px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:.5rem}
.mobileMenu a{display:block;padding:.8rem 1rem;border-radius:8px}
.mobileMenu a:hover{background:var(--bg-soft)}

@media (max-width: 820px){
  .nav .links{display:none}
  .hamburger{display:block}
  .mobileMenu{right:5vw;left:5vw;top:62px}
}

/* Hero */
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center;padding:56px 0}
.hero .lead{color:var(--muted);max-width:60ch}
.hero .cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:12px}
.hero .stats{list-style:none;padding:0;margin:18px 0 0;display:flex;gap:18px;flex-wrap:wrap}
.hero .stats li{background:var(--card);border:1px solid var(--border);padding:12px 16px;border-radius:14px;text-align:center;box-shadow:var(--shadow)}
.hero .stats strong{display:block;font-size:1.25rem}
.hero-visual{position:relative;min-height:260px}
.orb{position:absolute;inset:-30px -10px auto auto;width:220px;height:220px;
  background:radial-gradient( circle at 30% 30%, var(--accent-2), transparent 60%),
             radial-gradient( circle at 70% 60%, var(--accent), transparent 55%);
  filter: blur(30px);opacity:.6;animation:float 6s ease-in-out infinite alternate;
}
@keyframes float{to{transform:translateY(-14px) scale(1.02)}}

.card{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;transform-style:preserve-3d}
.card-head{display:flex;gap:6px;padding:10px;border-bottom:1px solid var(--border);background:var(--bg-soft)}
.card-head .dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2))}
.card-body{padding:18px}
.accent{background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* Projects */
.grid.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:18px
}
.project-card{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.project-card img{
  display:block;width:100%;
  aspect-ratio:16 / 9;
  height:auto;
  object-fit:cover;
  background:var(--bg-soft)
}
.project-content{padding:14px;display:flex;flex-direction:column;gap:10px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags span{border:1px solid var(--border);background:var(--bg-soft);padding:.2rem .45rem;border-radius:999px;font-size:.85rem;color:var(--muted)}
.actions{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}

/* Skills */
.skills{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px,1fr));
  gap:18px
}
.skill{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:14px;box-shadow:var(--shadow)}
.skill h3{margin:6px 0 8px}

/* Timeline */
.timeline{list-style:none;padding:0;margin:0;border-left:2px dashed var(--border)}
.timeline li{padding:0 0 10px 18px;position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2))}

/* Contact */
.contact{display:grid;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.field{display:flex;flex-direction:column;gap:6px}
input, textarea{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem;color:var(--text);font:inherit}
input:focus, textarea:focus{outline:2px solid var(--accent);outline-offset:2px}

/* Footer */
.footer{border-top:1px solid var(--border);margin-top:36px}
.footer .container{display:flex;justify-content:space-between;align-items:center;padding:20px 0;gap:12px;flex-wrap:wrap}
.footer .social{display:flex;gap:10px}
.footer .social a{color:var(--muted)}
.footer .social a:hover{color:var(--text)}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(10px);transition:opacity .6s ease, transform .6s ease}
.reveal.in{opacity:1;transform:none}

/* Tilt effect */
.tilt{transition: transform .12s ease; will-change: transform}

/* Responsive tweaks */
@media (max-width: 980px){
  .hero{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .hero{padding:36px 0}
  .hero-visual{min-height:200px}
  /* --- Mobile safe gutters (avoid content stuck to screen edges) --- */
  body{
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
  .container{ padding-left: 0; padding-right: 0; }
}
