:root{--bg:#FBFBFD;--ink:#111111;--subtle:#3A3A3C;--hairline:rgba(0,0,0,0.08);--accent:#007AFF;--accent-ink:#005FCC;--radius:14px;--shadow:0 8px 20px rgba(0,0,0,0.06);--shadow-2:0 12px 28px rgba(0,0,0,0.08);--dur-fast:150ms;--dur:200ms}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,Helvetica Neue,Arial,system-ui,sans-serif;line-height:1.65;font-size:18px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-ink)}.container{max-width:1040px;padding:0 24px;margin:0 auto}header{position:-webkit-sticky;position:sticky;top:0;background:rgba(251,251,253,.85);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--hairline);z-index:50}.nav{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{font-weight:600;color:var(--ink)}.nav-links{display:flex;gap:10px;align-items:center}.nav-link{color:var(--ink);opacity:.92;padding:8px 12px;border-radius:999px;border:1px solid transparent;transition:background-color var(--dur-fast) ease,opacity var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease}.nav-link:hover{opacity:1;background:rgba(0,0,0,.05)}.nav-link:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,255,.28)}.nav-link.active{background:rgba(0,122,255,.1);color:var(--accent-ink);border-color:rgba(0,122,255,.22)}.nav-btn{padding:8px 14px;border-radius:999px;background:linear-gradient(180deg,#FFFFFF,#F8F9FB);border:1px solid var(--hairline);box-shadow:0 1px 2px rgba(0,0,0,.04);color:var(--ink);transition:transform var(--dur-fast) ease,box-shadow var(--dur-fast) ease,background-color var(--dur-fast) ease,border-color var(--dur-fast) ease}.nav-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 6px 14px rgba(0,0,0,.06)}.nav-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,255,.28);border-color:#B9D7FF}.hero{padding:64px 0 28px}.hero .name{margin:0 2px 8px 0;font-size:clamp(44px,7.5vw,56px);line-height:1.05;letter-spacing:-.02em;font-weight:750}.hero .tagline{margin:0 0 14px;font-size:clamp(18px,2.8vw,22px);color:var(--subtle)}.hero p{color:var(--subtle);max-width:820px}.hero-flex{display:flex;gap:20px;align-items:center}.avatar{width:120px;height:120px;border-radius:50%;border:1px solid var(--hairline);object-fit:cover;box-shadow:0 1px 2px rgba(0,0,0,.05)}@media (min-width:900px){.avatar{width:140px;height:140px}}.hero ul{margin:10px 0 0 16px;padding:0}.hero li{color:var(--subtle);margin:2px 0}section{padding:36px 0 24px}.section-title{font-size:28px;margin:0 0 18px}.hairline{border-top:1px solid var(--hairline);margin:24px 0}.grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:24px;gap:24px}.card{grid-column:span 12;background:#fff;border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;box-shadow:0 0 0 rgba(0,0,0,0);transition:transform var(--dur) ease,box-shadow var(--dur) ease}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}.card-media{width:100%;aspect-ratio:3/2;background:linear-gradient(135deg,#EEF1F7,#FFFFFF);display:block;object-fit:cover;border-bottom:1px solid var(--hairline);transition:transform .32s ease;will-change:transform}.card:hover .card-media{transform:scale(1.02)}.card-body{padding:18px 18px 20px}.card-body h3{margin:0 0 8px;font-size:22px}.muted{color:var(--subtle)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tag{font-size:14px;padding:4px 10px;border:1px solid var(--hairline);border-radius:999px;background:#fff;color:var(--subtle)}.links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:#fff;border:1px solid var(--hairline);transition:transform var(--dur-fast) ease,box-shadow var(--dur-fast) ease,border-color var(--dur-fast) ease,background-color var(--dur-fast) ease,color var(--dur-fast) ease}.btn:hover{border-color:rgba(0,0,0,.14);transform:translateY(-1px);box-shadow:0 6px 14px rgba(0,0,0,.06)}.btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,122,255,.28);border-color:#B9D7FF}a.btn[target=_blank]:after{content:"↗";opacity:0;transform:translateX(-4px);transition:transform var(--dur-fast) ease,opacity var(--dur-fast) ease}a.btn[target=_blank]:hover:after{opacity:1;transform:translateX(0)}.pub-list{display:grid;grid-gap:14px;gap:14px}.pub-card{padding:16px;background:#fff;border:1px solid var(--hairline);border-radius:12px;transition:transform var(--dur) ease,box-shadow var(--dur) ease,border-color var(--dur-fast) ease,background-color var(--dur-fast) ease}.pub-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:rgba(0,0,0,.12)}.pub-card:focus-within{box-shadow:var(--shadow-2),0 0 0 3px rgba(0,122,255,.18);border-color:#B9D7FF}.pub-card:hover .pub-title{text-decoration:none}.pub-title{margin:0 0 6px;font-size:18px}.pub-authors,.pub-meta{color:var(--subtle);font-size:15px}.pub-authors{margin-top:2px}.pub-authors strong{color:var(--ink);font-weight:600}.pub-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;align-items:center}.pub-actions .btn{border-radius:999px;padding:6px 12px;font-size:14px;background:linear-gradient(180deg,#FFFFFF,#F8F9FB);border-color:var(--hairline)}.pub-actions .btn:hover{background:#fff}.pub-actions a.btn[target=_blank]:after{content:none}.pub-actions .btn:first-child{background:rgba(0,122,255,.06);color:var(--accent-ink);border-color:rgba(0,122,255,.22)}.pub-actions .btn.toggle{background:#fff}.pub-expand{margin-top:10px;color:var(--ink);max-height:0;overflow:hidden;opacity:0;transition:max-height var(--dur) ease,opacity var(--dur-fast) ease;will-change:max-height}.pub-card[aria-expanded=true] .pub-expand{max-height:1200px;opacity:1}.btn.toggle:after{content:"▾";margin-left:6px;transition:transform var(--dur-fast) ease}.pub-card[aria-expanded=true] .btn.toggle:after{transform:rotate(180deg)}.small{font-size:14px;color:var(--subtle)}.links .btn{border-radius:999px;padding:6px 12px;font-size:14px;background:linear-gradient(180deg,#FFFFFF,#F8F9FB);border-color:var(--hairline)}.links .btn:hover{background:#fff}.links a.btn[target=_blank]:after{content:none}.links .btn:first-child{background:rgba(0,122,255,.06);color:var(--accent-ink);border-color:rgba(0,122,255,.22)}footer{padding:36px 0 48px;color:var(--subtle);border-top:1px solid var(--hairline);margin-top:40px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.timeline{position:relative;padding-left:40px;display:grid;grid-gap:14px;gap:14px}.timeline:before{content:"";position:absolute;left:20px;top:0;bottom:0;width:2px;background:var(--hairline)}.timeline-item{position:relative}.timeline-item:before{content:"";position:absolute;left:14px;top:18px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid rgba(0,122,255,.35);box-shadow:0 1px 2px rgba(0,0,0,.06);z-index:0}.timeline-card{background:#fff;border:1px solid var(--hairline);border-radius:12px;padding:12px 14px;box-shadow:0 0 0 rgba(0,0,0,0);transition:transform var(--dur) ease,box-shadow var(--dur) ease,border-color var(--dur-fast) ease}.timeline-item:hover .timeline-card{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:rgba(0,0,0,.12)}.timeline-card{position:relative;z-index:1}.timeline-header{display:flex;gap:12px;align-items:center}.timeline-logo{width:28px;height:28px;border-radius:6px;border:1px solid var(--hairline);object-fit:cover;background:#fff}.timeline-main{flex:1 1;min-width:0}.timeline-top{display:flex;gap:12px;align-items:baseline;justify-content:space-between}.timeline-org{font-weight:600;color:var(--ink)}.timeline-title{color:var(--subtle);margin-top:2px}.timeline-range{display:inline-block;margin-top:6px;font-size:13px;color:var(--accent-ink);background:rgba(0,122,255,.08);border:1px solid rgba(0,122,255,.2);padding:2px 8px;border-radius:999px}