:root{
  --bg:#0f1317;
  --ink:#e9eef6;
  --muted:#a9b3c3;
  --ring:#222931;
  --accent:#f0f0f0;
  --brand:#e2e8f0;
  --radius: 28px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, ui-sans-serif, system-ui, Segoe UI, Roboto, Helvetica, Arial;
  color:var(--ink);
  background:var(--bg);
}

/* HERO */
.hero{
  position:relative;
  min-height:100vh;
  display:grid;
  place-items:center;
  overflow:hidden;
}

/* RINGS */
.rings{position:absolute; inset:-10% -20% auto -20%; height:140vh; pointer-events:none; opacity:.55}
.ring{position:absolute; inset:0; border-radius:50%; border:1px solid var(--ring); transform:translate(-50%,-50%)}
.r1{width:140vmin; height:140vmin; left:50%; top:50%}
.r2{width:110vmin; height:110vmin; left:50%; top:50%}
.r3{width:84vmin; height:84vmin; left:50%; top:50%}
.r4{width:60vmin; height:60vmin; left:50%; top:50%}

/* TOP BAR */
.top{
  position:absolute;
  inset:0 0 auto 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:24px 32px;
}
.socials{display:flex; gap:18px}
.icon{width:28px; height:28px; color:var(--ink); opacity:.9}
a{color:inherit; text-decoration:none}

.logo-link img{
  height:75px;
  width:auto;
  display:block;
}

/* CENTER */
.center{display:grid; place-items:center; gap:16px; text-align:center}
.avatar{
  width:350px;
  height:360px;
  border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.12);
  box-shadow:0 10px 40px rgba(0,0,0,.45);
}
.avatar img{width:100%; height:100%; object-fit:cover}
.subtitle{letter-spacing:.45em; color:var(--muted); font-size:14px}
h1{margin:0; font-size:clamp(38px, 7.5vw, 84px); letter-spacing:.02em}

/* NAV TABS */
.tabs{
  position:absolute;
  bottom:28px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:28px;
  color:var(--muted);
}
.tab{font-size:12px; letter-spacing:.3em; text-transform:uppercase}
.tab:hover{color:var(--ink)}

/* DOT NAV */
.dots{
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:14px;
}
.dot{
  width:10px;
  height:10px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.65);
  background:transparent;
  opacity:.85;
}
.dot[aria-current="true"]{background:var(--accent)}

/* CTA */
.cta{
  margin-top:8px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:transparent;
  color:var(--brand);
}
.cta:hover{border-color:#fff}

/* EXPERIENCE TIMELINE */
.timeline{padding:40px 32px 80px}
.timeline h2{margin:0 0 8px}
.muted{color:var(--muted)}

.tl{
  list-style:none;
  margin:28px 0 0;
  padding:0;
  position:relative;
}
.tl::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:2px;
  background:var(--ring);
}

/* more space between experiences */
.tl-item{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto;
  gap:28px;

  margin:84px 0;
  align-items:start;
}

/* IMPORTANT: keep everything on the same grid row so they line up */
.tl-item > .tl-card{ grid-row:1; align-self:start; }
.tl-item > .meta{ grid-row:1; align-self:start; }

/* timeline node spans both columns so it never creates an extra row */
.tl-item > .dot{
  grid-column:1 / -1;
  grid-row:1;

  position:absolute;
  left:50%;
  top:12px;
  transform:translate(-50%,-50%);
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--bg);
  border:3px solid #8bd3ff;
  box-shadow:0 0 0 4px rgba(139,211,255,.14);
}

.tl-card{
  background:#10161d;
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  padding:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.tl-card h3{margin:6px 0 10px; font-size:16px}

.thumb{
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
}
.thumb img{
  display:block;
  width:100%;
  height:180px;
  object-fit:cover;
}

/* meta box: date top, description centered, bigger font */
.meta{
  background:#0d1218;
  border:1px solid rgba(255,255,255,.07);
  border-radius:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.32);
  padding:16px 18px;

  display:grid;
  grid-template-rows:auto 1fr;
  gap:14px;

  text-align:left;
  min-height:230px;
}

.meta .date{
  color:var(--ink);
  font-weight:650;
  font-size:14px;
  line-height:1.2;
}

.meta .summary{
  margin:0;
  align-self:center;
  font-size:20px;
  line-height:1.7;
  letter-spacing:0;
  color:var(--muted);
}

/* alternating columns */
.tl-item:nth-child(odd) .tl-card{grid-column:1}
.tl-item:nth-child(odd) .meta{grid-column:2}

.tl-item:nth-child(even) .tl-card{grid-column:2}
.tl-item:nth-child(even) .meta{grid-column:1}

/* responsive */
@media (max-width:900px){
  .tl::before{left:24px}
  .tl-item{
    grid-template-columns:1fr;
    gap:14px;
    padding-left:40px;
    margin:56px 0;
  }
  .tl-item > .dot{left:24px}
  .tl-item > .meta{order:-1}
}

@media (max-width:700px){
  .top{padding:18px}
  .tabs{gap:16px; bottom:22px}
  .dots{right:12px}
}
