:root{
  --bg:#0f1724;
  --card:#0b1220;
  --muted:#9aa4b2;
  --accent:#6ee7b7;
  --glass: rgba(255,255,255,0.03);
  --radius:12px;
  --max-width:1100px;
  --gap:18px;
  --ff-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--ff-sans);
  background:
    radial-gradient(1200px 600px at 10% 10%, rgba(110,231,183,0.06), transparent 8%),
    radial-gradient(900px 500px at 90% 90%, rgba(99,102,241,0.04), transparent 6%),
    var(--bg);
  color:#e6eef6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.45;
  padding:32px 20px;
  display:flex;
  justify-content:center;
  align-items:flex-start;
}

.wrap{
  width:100%;
  max-width:var(--max-width);
  display:grid;
  grid-template-columns: 320px 1fr;
  gap:var(--gap);
  align-items:start;
}

/* Sidebar */
.sidebar{
  background:linear-gradient(180deg,var(--card), rgba(255,255,255,0.02));
  border-radius:var(--radius);
  padding:22px;
  position:sticky;
  top:32px;
  height:fit-content;
  box-shadow:0 6px 30px rgba(2,6,23,0.6);
}
.avatar{
  width:100%;
  display:flex;
  gap:14px;
  align-items:center;
}
.avatar svg{width:72px;height:72px;border-radius:14px;background:linear-gradient(135deg,#0ea5a4,#7c3aed);padding:10px;box-shadow:0 6px 18px rgba(0,0,0,0.4)}
.name{
  font-size:1.15rem;
  font-weight:700;
  margin:0;
}
.role{color:var(--muted);font-size:0.9rem;margin-top:4px}
.bio{color:var(--muted);font-size:0.92rem;margin-top:14px}
.contact{
  margin-top:18px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.pill{
  background:var(--glass);
  padding:8px 10px;
  border-radius:999px;
  color:var(--muted);
  font-size:0.88rem;
  display:inline-flex;
  gap:8px;
  align-items:center;
}

/* Divider */
.divider{border:none;height:1px;background:rgba(255,255,255,0.03);margin:16px 0;border-radius:2px}

/* Main content */
.main{
  display:flex;
  flex-direction:column;
  gap:var(--gap);
}
.card{
  background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border-radius:var(--radius);
  padding:20px;
  box-shadow:0 6px 30px rgba(2,6,23,0.45);
}

.hero{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
}
.hero-left h1{margin:0;font-size:1.6rem}
.hero-left p{margin:8px 0 0;color:var(--muted)}
.cta{
  display:flex;
  gap:10px;
  align-items:center;
}
.btn{
  background:linear-gradient(90deg,var(--accent),#60a5fa);
  color:#042027;
  padding:10px 14px;
  border-radius:10px;
  font-weight:700;
  text-decoration:none;
  box-shadow:0 6px 18px rgba(99,102,241,0.12);
}
.btn.ghost{
  background:transparent;
  border:1px solid rgba(255,255,255,0.06);
  color:var(--muted);
  font-weight:600;
}

/* Projects grid */
.projects-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:14px;
  margin-top:8px;
}
.project{
  background:linear-gradient(180deg, rgba(255,255,255,0.015), rgba(255,255,255,0.01));
  padding:14px;
  border-radius:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:140px;
  transition:transform .18s ease, box-shadow .18s ease;
  cursor:pointer;
}
.project:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(2,6,23,0.6)}
.project h3{margin:0;font-size:1rem}
.project p{margin:0;color:var(--muted);font-size:0.9rem}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.tag{background:rgba(255,255,255,0.03);padding:6px 8px;border-radius:8px;font-size:0.78rem;color:var(--muted)}

/* Skills */
.skills{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.skill{
  background:linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  padding:8px 10px;border-radius:10px;color:var(--muted);font-weight:600;font-size:0.88rem
}

/* Contact form (client-side only) */
form{display:grid;gap:10px}
input,textarea{
  background:transparent;border:1px solid rgba(255,255,255,0.06);padding:10px;border-radius:8px;color:inherit;
  outline:none;font-size:0.95rem;
}
textarea{min-height:110px;resize:vertical}
.muted{color:var(--muted);font-size:0.9rem}

/* Footer */
footer{display:flex;justify-content:space-between;align-items:center;padding-top:6px;color:var(--muted);font-size:0.9rem}

/* Modal styles */
.modal-root{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:20px;z-index:60}
.modal-backdrop{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,6,23,0.6),rgba(2,6,23,0.85));backdrop-filter:blur(4px)}
.modal-outer{position:relative;max-width:820px;width:100%;z-index:70}
#modalCard{padding:20px}
.modal-close{position:absolute;right:18px;top:18px;background:transparent;border:none;color:var(--muted);font-weight:700;cursor:pointer}
.modal-tags{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}

/* Responsive */
@media (max-width:980px){
  .wrap{grid-template-columns:1fr; padding-bottom:40px}
  .sidebar{position:relative;top:0}
  .hero{flex-direction:column;align-items:flex-start}
}
