/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── THEME VARIABLES ── */
:root{
  --bg:#f9f9f7;
  --surface:#ffffff;
  --text:#181816;
  --muted:#68685e;
  --faint:#e6e6e0;
  --accent:#1d4ed8;
  --accent-light:#eff3fd;
  --accent-mid:#4a72d4;
  --tag-bg:#f0f0ea;
  --tag-text:#4a4a42;
  --border:rgba(0,0,0,0.07);
  --green:#16a34a;
  --green-bg:#f0fdf4;
  --serif:'DM Serif Display',Georgia,serif;
  --sans:'DM Sans',sans-serif;
  --mono:'JetBrains Mono',monospace;
}

/* System dark preference (when user hasn't toggled yet) */
@media(prefers-color-scheme:dark){
  :root:not(.light){
    --bg:#111110;
    --surface:#1b1b19;
    --text:#e8e8e2;
    --muted:#96968c;
    --faint:#272725;
    --accent:#6b9de8;
    --accent-light:#1a2438;
    --accent-mid:#4a78c4;
    --tag-bg:#232320;
    --tag-text:#aaaa9e;
    --border:rgba(255,255,255,0.06);
    --green:#4ade80;
    --green-bg:#0a1f0f;
  }
}

/* Forced dark (user toggled on) */
:root.dark{
  --bg:#111110;
  --surface:#1b1b19;
  --text:#e8e8e2;
  --muted:#96968c;
  --faint:#272725;
  --accent:#6b9de8;
  --accent-light:#1a2438;
  --accent-mid:#4a78c4;
  --tag-bg:#232320;
  --tag-text:#aaaa9e;
  --border:rgba(255,255,255,0.06);
  --green:#4ade80;
  --green-bg:#0a1f0f;
}

/* Forced light (user toggled off) */
:root.light{
  --bg:#f9f9f7;
  --surface:#ffffff;
  --text:#181816;
  --muted:#68685e;
  --faint:#e6e6e0;
  --accent:#1d4ed8;
  --accent-light:#eff3fd;
  --accent-mid:#4a72d4;
  --tag-bg:#f0f0ea;
  --tag-text:#4a4a42;
  --border:rgba(0,0,0,0.07);
  --green:#16a34a;
  --green-bg:#f0fdf4;
}

/* ── BASE ── */
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:15px;line-height:1.7;font-weight:300;transition:background 0.2s,color 0.2s}
strong{font-weight:500}

/* ── HERO ── */
.hero{max-width:880px;margin:0 auto;padding:68px 32px 52px;display:grid;grid-template-columns:1fr auto;gap:48px;align-items:start;border-bottom:1px solid var(--border)}
.hero-eyebrow{font-size:11px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.hero-eyebrow::before{content:'';width:20px;height:1px;background:var(--accent)}
h1{font-family:var(--serif);font-size:clamp(2.4rem,5vw,3.4rem);font-weight:400;letter-spacing:-0.02em;line-height:1.08;color:var(--text);margin-bottom:14px}
.tagline{font-size:15px;color:var(--muted);max-width:460px;margin-bottom:28px;font-weight:300;line-height:1.75}
.hero-links{display:flex;flex-wrap:wrap;gap:7px}

/* Pills */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:5px 14px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--muted);text-decoration:none;transition:all 0.16s;letter-spacing:0.02em}
.pill:hover{color:var(--accent);border-color:var(--accent-mid);background:var(--accent-light)}
.pill.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.pill.primary:hover{opacity:0.88}

/* Avatar */
.avatar-wrap{position:relative;flex-shrink:0}
.avatar{width:152px;height:152px;border-radius:14px;background:var(--accent-light);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:3rem;color:var(--accent);overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;display:block;object-position:center top}
.badge-phd{position:absolute;bottom:-11px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;background:var(--surface);border:1px solid var(--border);color:var(--accent);padding:3px 10px;border-radius:20px;white-space:nowrap;transition:background 0.2s}

/* ── NAV ── */
nav{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--border);padding:0 32px;transition:background 0.2s}
.nav-inner{max-width:880px;margin:0 auto;display:flex;overflow-x:auto;scrollbar-width:none;align-items:center}
.nav-inner::-webkit-scrollbar{display:none}
nav a{display:block;font-size:11.5px;font-weight:500;letter-spacing:0.09em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:13px 15px;border-bottom:2px solid transparent;white-space:nowrap;transition:all 0.14s;flex-shrink:0}
nav a:hover,nav a.active{color:var(--text);border-bottom-color:var(--accent)}

/* Toggle */
.theme-toggle{display:flex;align-items:center;gap:7px;margin-left:auto;padding:0 0 0 16px;border:none;background:none;cursor:pointer;flex-shrink:0}
.toggle-track{width:36px;height:20px;border-radius:20px;background:var(--faint);border:1px solid var(--border);position:relative;transition:background 0.2s;flex-shrink:0}
.toggle-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);position:absolute;top:2px;left:2px;transition:transform 0.22s}
.dark .toggle-thumb{transform:translateX(16px)}
.toggle-label{font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}

/* ── MAIN ── */
main{max-width:880px;margin:0 auto;padding:0 32px 80px}
section{padding:56px 0 0}
.section-label{font-size:11px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);margin-bottom:24px;display:flex;align-items:center;gap:10px}
.section-label::after{content:'';flex:1;height:1px;background:var(--faint)}

/* ── ABOUT ── */
.about-grid{display:grid;grid-template-columns:1fr 280px;gap:48px;align-items:start}
.about-text{font-size:15px;color:var(--text);line-height:1.82;font-weight:300}
.about-text p+p{margin-top:12px}
.info-list{list-style:none}
.info-list li{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--faint);font-size:13.5px}
.info-list li:last-child{border-bottom:none}
.info-key{font-size:10.5px;font-weight:500;letter-spacing:0.09em;text-transform:uppercase;color:var(--muted);min-width:72px;padding-top:2px;flex-shrink:0}
.info-val{color:var(--text);font-weight:300}
.info-val a{color:var(--accent);text-decoration:none}
.info-val a:hover{text-decoration:underline}
.info-val.green{color:var(--green)}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.tag{font-size:12px;padding:4px 11px;background:var(--tag-bg);color:var(--tag-text);border-radius:4px;font-weight:400}
.tag.a{background:var(--accent-light);color:var(--accent)}

/* ── TIMELINE ── */
.timeline{list-style:none}
.tl-item{display:grid;grid-template-columns:112px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--faint)}
.tl-item:last-child{border-bottom:none}
.tl-date{font-size:11.5px;color:var(--muted);font-family:var(--mono);padding-top:3px;line-height:1.5}
.tl-content h3{font-size:15px;font-weight:500;color:var(--text);margin-bottom:2px;line-height:1.4}
.tl-sub{font-size:13px;color:var(--accent);margin-bottom:5px;font-weight:400}
.tl-desc{font-size:13px;color:var(--muted);font-weight:300;line-height:1.65}
.tl-desc li{margin-left:14px;margin-top:3px}
.now-badge{display:inline-block;font-size:10px;font-weight:500;letter-spacing:0.07em;text-transform:uppercase;padding:2px 7px;border-radius:3px;margin-left:7px;background:var(--green-bg);color:var(--green);vertical-align:middle}

/* ── PUBLICATIONS ── */
.pub-list{list-style:none}
.pub-item{padding:20px 0;border-bottom:1px solid var(--faint)}
.pub-item:last-child{border-bottom:none}
.pub-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.pub-type{font-size:10px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;padding:2px 8px;border-radius:3px;background:var(--accent-light);color:var(--accent)}
.pub-year{font-size:12px;color:var(--muted);font-family:var(--mono)}
.pub-item h3{font-size:14px;font-weight:500;color:var(--text);margin-bottom:4px;line-height:1.5}
.pub-item h3 a{color:inherit;text-decoration:none}
.pub-item h3 a:hover{color:var(--accent)}
.pub-authors{font-size:13px;color:var(--muted);font-weight:300;margin-bottom:3px}
.pub-authors strong{color:var(--text);font-weight:500}
.pub-venue{font-size:12px;color:var(--muted);font-style:italic}
.pub-links{margin-top:8px;display:flex;gap:12px}
.pub-link{font-size:12px;color:var(--accent);text-decoration:none;font-weight:500}
.pub-link:hover{text-decoration:underline}

/* ── PROJECTS ── */
.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.proj-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px 22px;transition:border-color 0.15s}
.proj-card:hover{border-color:var(--accent-mid)}
.proj-card h3{font-size:14px;font-weight:500;margin-bottom:6px;color:var(--text);line-height:1.4}
.proj-card h3 a{color:inherit;text-decoration:none}
.proj-card h3 a:hover{color:var(--accent)}
.proj-card p{font-size:13px;color:var(--muted);font-weight:300;line-height:1.65;margin-bottom:12px}
.proj-type{font-size:10px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;padding:2px 7px;border-radius:3px;display:inline-block;margin-bottom:8px}
.proj-type.phd{background:var(--green-bg);color:var(--green)}
.proj-type.ml{background:var(--accent-light);color:var(--accent)}
.proj-type.open{background:var(--tag-bg);color:var(--tag-text)}

/* ── SKILLS ── */
.skills-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px}
.skill-group h4{font-size:10.5px;font-weight:500;letter-spacing:0.11em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.skill-list{list-style:none}
.skill-list li{font-size:13px;color:var(--text);padding:5px 0;border-bottom:1px solid var(--faint);font-weight:300;display:flex;justify-content:space-between;align-items:center}
.skill-list li:last-child{border-bottom:none}
.dots{display:flex;gap:3px}
.dot{width:6px;height:6px;border-radius:50%;background:var(--faint)}
.dot.on{background:var(--accent)}

/* ── TEACHING ── */
.course-list{list-style:none}
.course-item{display:grid;grid-template-columns:100px 1fr auto;gap:20px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--faint)}
.course-item:last-child{border-bottom:none}
.course-date{font-size:11.5px;color:var(--muted);font-family:var(--mono)}
.course-name{font-size:14px;font-weight:400;color:var(--text)}
.level-badge{font-size:10.5px;padding:2px 8px;border-radius:3px;background:var(--tag-bg);color:var(--tag-text);font-weight:500;white-space:nowrap}
.teaching-note{font-size:13px;color:var(--muted);margin-top:16px;font-weight:300}
.teaching-note strong{color:var(--text)}

/* ── CONTACT ── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.contact-text{font-size:15px;color:var(--muted);font-weight:300;line-height:1.8;max-width:340px}
.contact-links{list-style:none}
.c-link-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--faint)}
.c-link-item:last-child{border-bottom:none}
.c-link-item a{font-size:14px;color:var(--text);text-decoration:none;font-weight:400;transition:color 0.14s}
.c-link-item a:hover{color:var(--accent)}
.c-icon{width:30px;height:30px;border-radius:6px;background:var(--tag-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px}
.location-text{font-size:14px;color:var(--text)}

/* ── FOOTER ── */
footer{border-top:1px solid var(--border);padding:22px 32px;text-align:center;font-size:12px;color:var(--muted);font-weight:300}

/* ── RESPONSIVE ── */
@media(max-width:660px){
  .hero{grid-template-columns:1fr;gap:28px;padding:48px 20px 40px}
  .avatar{width:100px;height:100px;font-size:2.2rem}
  main,footer{padding-left:20px;padding-right:20px}
  nav{padding:0 20px}
  .about-grid,.contact-grid{grid-template-columns:1fr}
  .projects-grid{grid-template-columns:1fr}
  .skills-grid{grid-template-columns:1fr 1fr}
  .tl-item{grid-template-columns:80px 1fr;gap:14px}
  .course-item{grid-template-columns:80px 1fr;gap:12px}
  .level-badge{display:none}
  .toggle-label{display:none}
}
