:root{
  --ink:#252521;
  --muted:#77736d;
  --line:#e7e1d8;
  --line-soft:#f0ece6;
  --accent:#4f716b;
  --accent-deep:#34534f;
  --accent-soft:#edf3f0;
  --rose:#b9867d;
  --rose-soft:#f5ece8;
  --paper:#fbfaf7;
  --paper-2:#f7f4ee;
  --max:1180px;
  --serif:Georgia,"Times New Roman",serif;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.66;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 77% 9%,rgba(79,113,107,.055),transparent 27%),radial-gradient(circle at 12% 78%,rgba(185,134,125,.04),transparent 24%);z-index:-2}
#pond-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:.82}
a{color:var(--accent-deep);text-decoration:none;text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{text-decoration:underline;text-decoration-color:rgba(52,83,79,.45)}
.site-shell{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:280px minmax(0,1fr);gap:70px;padding:58px 32px 84px}
.profile{position:sticky;top:38px;align-self:start;padding-right:8px}
.avatar-wrap{position:relative;width:190px;margin-bottom:26px}
.avatar{width:180px;height:215px;border-radius:92px 92px 12px 12px;overflow:hidden;background:#eceae3;box-shadow:0 10px 30px rgba(36,37,33,.06)}
.avatar img{width:100%;height:100%;object-fit:cover;object-position:27% 45%;filter:saturate(.94) contrast(.98)}
.avatar-wrap:after{content:"";position:absolute;left:12px;top:8px;width:180px;height:215px;border:1px solid rgba(79,113,107,.38);border-radius:92px 92px 12px 12px;transform:rotate(2deg);pointer-events:none}
.profile-collab{position:absolute;width:116px;height:78px;left:119px;top:166px;overflow:visible;pointer-events:none;opacity:.70;filter:drop-shadow(0 2px 7px rgba(52,83,79,.05))}
.profile h1{font-family:var(--serif);font-size:32px;line-height:1.07;margin:0 0 13px;font-weight:500;letter-spacing:-.015em}
.profile .title{font-weight:620;margin:0 0 5px;font-size:14.5px}.institution,.contact{font-size:13.5px;color:var(--muted);margin:4px 0}.profile-links{display:flex;gap:8px 13px;flex-wrap:wrap;margin-top:18px;font-size:12.5px}.profile-links a:before{content:"[";color:#aaa29a}.profile-links a:after{content:"]";color:#aaa29a}.profile-links a:hover{text-decoration:none;color:var(--rose)}
.content-wrap{min-width:0}.topnav{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:49px;font-family:var(--serif);font-size:15px;min-height:70px}.navlinks{display:flex;gap:25px;flex-wrap:wrap;align-items:flex-end;padding-bottom:5px}.topnav a{color:#67645f}.topnav a.active,.topnav a:hover{color:var(--ink);text-decoration:none}.topnav a.active{font-style:italic;position:relative}.topnav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:2px;background:var(--rose);border-radius:99px;transform:rotate(-1deg)}.header-collab{width:110px;height:70px;flex:0 0 110px;opacity:.48;transform:translateY(5px);pointer-events:none}.header-collab-svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 8px rgba(52,83,79,.035))}
main{max-width:785px}section{margin:0 0 58px}h2{font-family:var(--serif);font-size:29px;font-weight:500;margin:0 0 18px;line-height:1.18;letter-spacing:-.012em}h3{font-family:var(--serif);font-size:20px;font-weight:500;line-height:1.34;margin:0 0 6px}.hero{position:relative;padding:5px 0 3px}.hero h2{font-size:40px;margin-bottom:19px}.hero p,.lede{font-size:16.5px;max-width:735px}.hero p{margin:0 0 17px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10.5px!important;font-weight:700;color:var(--accent);margin-bottom:12px}.pub,.course{padding:0 0 28px;margin:0 0 28px;border-bottom:1px solid var(--line-soft)}.pub:last-child,.course:last-child{border-bottom:0}.pub-title-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.paper-links{display:inline-flex;gap:8px;font-size:11.5px;white-space:nowrap}.paper-links a{color:var(--accent);font-family:var(--sans)}.paper-links a:before{content:"[";color:#b1aaa2}.paper-links a:after{content:"]";color:#b1aaa2}.paper-links a:hover{color:var(--rose);text-decoration:none}.authors,.venue{margin:4px 0;font-size:13.6px}.venue{color:var(--muted)}.pub>p:last-of-type{margin-bottom:8px}.awards-inline{margin:9px 0 0;padding-left:17px;color:var(--muted);font-size:12.7px}.awards-inline li{margin:3px 0}.clean-list{list-style:none;padding:0;margin:0}.clean-list li{display:grid;grid-template-columns:88px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.year,time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12.5px}.timeline>div{display:grid;grid-template-columns:93px 1fr;gap:17px;padding:8px 0}.timeline p{margin:0}.timeline.full>div{padding:13px 0;border-bottom:1px solid var(--line-soft)}
.callout{background:rgba(237,243,240,.72);padding:29px 31px;border-radius:18px 18px 18px 5px;border:1px solid rgba(79,113,107,.10);position:relative}.callout:after{content:"";position:absolute;right:20px;bottom:13px;width:60px;height:22px;border-bottom:1px solid rgba(185,134,125,.35);border-radius:50%;transform:rotate(-4deg)}.callout h2{margin-bottom:8px}blockquote{margin:18px 0;padding:2px 0 2px 20px;border-left:2px solid var(--rose);font-family:var(--serif);font-size:18px;font-style:italic;color:#4a4641}.muted{color:var(--muted);font-size:13px}.button{display:inline-block;background:var(--accent-deep);color:white;padding:10px 16px;border-radius:99px;font-weight:650;font-size:13px;box-shadow:0 5px 16px rgba(52,83,79,.12)}.button:hover{text-decoration:none;filter:brightness(.97)}.more{font-family:var(--serif);font-style:italic}.cv-frame{width:100%;height:900px;border:1px solid var(--line);background:white}footer{border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:11.5px;margin-top:64px}
.abstract{margin:15px 0 8px;padding:0 0 0 16px;border-left:1px solid #d7d1c8}.abstract summary{cursor:pointer;color:var(--accent-deep);font-family:var(--serif);font-size:14px;font-style:italic;list-style-position:outside}.abstract summary:hover{color:var(--rose)}.abstract p{margin:10px 0 0;font-size:14.1px;line-height:1.72;color:#413e39}.section-note{margin-top:-8px;color:var(--muted);font-size:13px}.progress p:last-child{margin-bottom:0}.progress .progress-summary{font-size:14.1px;line-height:1.72;color:#413e39;max-width:735px}
.teaching-group{margin-top:5px}.course{display:grid;grid-template-columns:minmax(190px, .8fr) minmax(0,1.6fr);gap:28px;padding:15px 0 22px}.course h3{font-size:18px}.course-body p,.course>p{margin:1px 0 11px;font-size:14px;color:#494640}.featured-course{padding-top:18px}.course-highlights{margin:13px 0 0;padding-left:18px;font-size:13.7px;color:#494640}.course-highlights li{margin:7px 0}.institution-heading{font-size:23px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.heading-note{font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:700;margin-left:7px;white-space:nowrap}.personal-note{font-family:var(--serif);font-style:italic;color:#5e5953}
@media(max-width:800px){#pond-canvas{display:none}.site-shell{display:block;padding:26px 22px 58px}.profile{position:static;display:grid;grid-template-columns:108px 1fr;column-gap:19px;margin-bottom:31px;padding-right:0}.avatar-wrap{grid-row:1/7;width:108px;margin:0}.avatar{width:103px;height:126px;border-radius:54px 54px 8px 8px}.avatar-wrap:after{width:103px;height:126px;left:7px;top:5px;border-radius:54px 54px 8px 8px}.profile-collab{display:none}.profile h1{font-size:27px}.profile .title,.institution,.contact{font-size:12.8px}.profile-links{margin-top:7px}.topnav{gap:14px;margin-bottom:38px;min-height:58px}.navlinks{gap:16px 20px;padding-bottom:3px}.header-collab{width:82px;height:54px;flex-basis:82px;opacity:.4}.hero h2{font-size:34px}.clean-list li,.timeline>div{grid-template-columns:75px 1fr}.course{grid-template-columns:1fr;gap:5px}.cv-frame{height:650px}}
@media(max-width:480px){.profile{display:block}.avatar-wrap{width:118px;margin-bottom:16px}.avatar{width:112px;height:137px}.avatar-wrap:after{width:112px;height:137px}.clean-list li,.timeline>div{display:block}.year,time{display:block;margin-bottom:2px}.topnav{gap:10px;font-size:14px;align-items:center}.navlinks{gap:12px 15px}.header-collab{width:64px;height:44px;flex-basis:64px;opacity:.34}.hero h2{font-size:31px}.paper-links{display:flex;width:100%;margin-top:1px}}


/* Human–AI illustration in the header */
.collab-svg .collab-human{color:var(--rose)}
.collab-svg .collab-robot{color:var(--accent)}
.collab-svg .collab-handshake{color:#8c7568}
.collab-svg .tiny-chart{color:var(--accent)}
.collab-svg .collab-eye{transform-box:fill-box;transform-origin:center;transition:transform .14s ease-out}
.collab-svg .signal-dot{animation:signalDrift 4.6s ease-in-out infinite}
.collab-svg .collab-signal{animation:signalDash 8s linear infinite}
@keyframes signalDrift{0%,100%{transform:translateX(-15px);opacity:.12}50%{transform:translateX(15px);opacity:.65}}
@keyframes signalDash{to{stroke-dashoffset:-30}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#pond-canvas{display:none}.collab-svg .signal-dot,.collab-svg .collab-signal{animation:none!important}}
