:root{--bg: #f6f7fb;--panel: #ffffff;--panel2: #fbfbfe;--text: #111827;--muted: #4b5563;--line: rgba(17,24,39,.12);--accent: #2563eb;--accent2: #7c3aed;--radius: 18px;--shadow: 0 10px 30px rgba(17,24,39,.10);--max: 1100px;--font: Roboto}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:radial-gradient(900px 500px at 10% 10%, rgba(37,99,235,0.1), transparent 55%),radial-gradient(800px 500px at 90% 0%, rgba(124,58,237,0.1), transparent 55%),linear-gradient(180deg, #fff 0%, var(--bg) 45%, #fff 100%)}a{color:inherit}.muted{color:var(--muted)}.shell{max-width:var(--max);margin:0 auto;padding:18px;display:grid;grid-template-columns:320px 1fr;gap:14px}@media (max-width: 960px){.shell{grid-template-columns:1fr}}.topbar{max-width:var(--max);margin:14px auto 0;padding:12px 16px;display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,0.85);backdrop-filter:blur(12px);box-shadow:var(--shadow);position:sticky;top:10px;z-index:1000}.topbar .brand{text-decoration:none;font-weight:900;letter-spacing:.2px}.topbar .nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.topbar .nav__link{text-decoration:none;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,0.85);font-size:14px}.topbar .nav__link:hover{background:rgba(37,99,235,0.08);border-color:rgba(37,99,235,0.25)}.topbar .nav__link.active{border-color:rgba(37,99,235,0.35);background:linear-gradient(135deg, rgba(37,99,235,0.12), rgba(124,58,237,0.1))}.sidebar,.content{border:1px solid var(--line);background:rgba(255,255,255,0.92);backdrop-filter:blur(10px);border-radius:var(--radius);box-shadow:var(--shadow)}.sidebar{padding:16px}.content{padding:18px}.page-title{margin:0 0 10px;font-size:28px;letter-spacing:-.4px}.profile__photo{width:70%;aspect-ratio:1 / 1;object-fit:cover;border-radius:20px;border:4px solid #fff;box-shadow:0 6px 18px rgba(17,24,39,0.12);display:block;margin:0 auto 14px auto}@media (max-width: 640px){.profile__photo{width:120px;max-width:120px;margin:0 auto 12px auto;border-radius:999px}}.profile__name{margin-top:12px;font-size:22px;font-weight:900}.profile__tagline{margin-top:4px;color:var(--muted);line-height:1.4}.profile__meta{margin-top:10px;color:var(--muted);font-size:14px}.profile-contact{margin-top:14px;display:flex;flex-direction:column;gap:8px}.contact-item{display:flex;align-items:center;gap:10px}.contact-item a{text-decoration:none;color:var(--text);font-weight:600}.contact-item a:hover{text-decoration:underline}.contact-item .contact-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:var(--text);opacity:.85}.btn{display:inline-block;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--text);font-size:14px;font-weight:700}.btn:hover{background:rgba(37,99,235,0.08);border-color:rgba(37,99,235,0.25)}.content p,.content li{color:var(--muted);line-height:1.75}.content h2{margin:18px 0 8px}.content a{color:var(--accent);text-decoration:none}.content a:hover{text-decoration:underline}.cv-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;margin:10px 0 12px}.cv-toolbar__left{display:flex;flex-direction:column;gap:2px}.cv-toolbar__title{font-weight:800;color:var(--text)}.cv-toolbar__hint{font-size:13px;color:var(--muted)}.pdf-wrap{border:1px solid rgba(17,24,39,0.12);border-radius:14px;overflow:hidden;background:#fff}@media (max-width: 800px){.pdf-wrap{overflow:auto;-webkit-overflow-scrolling:touch}}.cv-frame{width:100%;height:80vh;border:0}@media (max-width: 800px){.cv-frame{height:75vh}}.pubs-grid{display:grid;grid-template-columns:360px 1fr;gap:14px;align-items:start}@media (max-width: 960px){.pubs-grid{grid-template-columns:1fr}}.panel{border:1px solid var(--line);background:#fff;border-radius:16px;box-shadow:0 8px 24px rgba(17,24,39,0.08);overflow:hidden}.panel__hd{padding:12px 14px;border-bottom:1px solid var(--line)}.panel__title{margin:0;font-weight:900;font-size:18px;color:var(--text)}.panel__sub{margin:4px 0 0;font-size:13px;color:var(--muted)}.panel__bd{padding:12px 14px}.pubs-scroll{max-height:75vh;overflow:auto;padding:10px 12px}.pubs-scroll::-webkit-scrollbar{width:10px}.pubs-scroll::-webkit-scrollbar-thumb{background:rgba(17,24,39,0.15);border-radius:999px}.pubs-scroll::-webkit-scrollbar-track{background:transparent}.pub-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px;margin:10px 0}.pub-card .pub-title{font-weight:900;margin:0 0 6px}.pub-card .pub-meta{margin:0;color:var(--muted)}.pub-card .pub-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.pub-card .pub-btn{display:inline-block;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--text);font-size:13px;font-weight:700}.pub-card .pub-btn:hover{background:rgba(37,99,235,0.08);border-color:rgba(37,99,235,0.25)}.scholar-chart{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.scholar-chart__top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.scholar-chart__title{font-weight:900}.scholar-chart__meta{color:var(--muted);font-size:13px;font-weight:700}.scholar-chart .scholar-bars{position:relative;height:230px;display:flex;align-items:flex-end;gap:6px;padding:10px 8px 46px;border-radius:12px;background:linear-gradient(180deg, rgba(17,24,39,0.03), transparent 70%);border:1px solid rgba(17,24,39,0.08);overflow:hidden}.scholar-chart .scholar-bars::after{content:"";position:absolute;left:0;right:0;bottom:46px;height:1px;background:rgba(17,24,39,0.18)}.scholar-chart .scholar-bar{flex:1 1 0;min-width:14px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;position:relative}.scholar-chart .scholar-bar__count{font-size:11px;font-weight:900;color:var(--muted);line-height:1;margin-bottom:2px}.scholar-chart .scholar-bar__col{width:100%;height:var(--h);max-height:170px;border-radius:5px 5px 2px 2px;background:rgba(17,24,39,0.25);border:1px solid rgba(17,24,39,0.1)}.scholar-chart .scholar-bar__year{position:absolute;bottom:6px;font-size:11px;color:var(--muted);font-weight:800;transform:rotate(-90deg);transform-origin:center;white-space:nowrap}.quickcards{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:14px;margin-top:14px}@media (max-width: 960px){.quickcards{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (max-width: 640px){.quickcards{grid-template-columns:1fr}}.qcard{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,0.92);box-shadow:0 10px 30px rgba(17,24,39,0.1);text-decoration:none;color:var(--text);transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;overflow:hidden}.qcard:hover{transform:translateY(-2px);border-color:rgba(37,99,235,0.25);background:rgba(255,255,255,0.98);box-shadow:0 14px 36px rgba(17,24,39,0.14)}.qcard__thumb{position:relative;overflow:hidden;border-radius:12px}.qcard__thumb--icon{display:flex;align-items:center;justify-content:center;padding:22px;background:linear-gradient(135deg, rgba(37,99,235,0.1), rgba(124,58,237,0.08))}.qcard__thumb--icon img{width:74px;height:74px;object-fit:contain;display:block;opacity:.95}.qcard__thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.12));pointer-events:none;border-radius:12px}.qcard__title{font-size:17px;font-weight:900;margin:0}.qcard__text{margin:0;color:var(--muted);line-height:1.6;font-size:14px}.qcard__cta{margin-top:auto;display:inline-flex;gap:8px;font-weight:800;font-size:14px;color:var(--accent)}.data-section{margin:28px 0}.section-title{margin:0 0 8px;font-size:20px;font-weight:900}.subsection-title{margin:12px 0 8px;font-size:16px;font-weight:800;color:var(--muted)}.cards-scroll{max-height:70vh;overflow:auto;padding-right:6px;margin-top:8px}.cards-scroll::-webkit-scrollbar{width:10px}.cards-scroll::-webkit-scrollbar-thumb{background:rgba(17,24,39,0.15);border-radius:999px}.cards-scroll::-webkit-scrollbar-track{background:transparent}.page-scroll{max-height:75vh;overflow:auto;padding-right:6px;margin-top:10px}.page-scroll::-webkit-scrollbar{width:10px}.page-scroll::-webkit-scrollbar-thumb{background:rgba(17,24,39,0.15);border-radius:999px}.page-scroll::-webkit-scrollbar-track{background:transparent}.cards-grid{display:grid;grid-template-columns:1fr;gap:12px}.meta-link{text-decoration:none;font-weight:900;font-size:12.5px;color:var(--text);border:1px solid rgba(17,24,39,0.12);background:#fff;padding:6px 10px;border-radius:999px}.meta-link:hover{background:rgba(37,99,235,0.08);border-color:rgba(37,99,235,0.25)}.meta-pill{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid rgba(17,24,39,0.12);background:rgba(17,24,39,0.06);color:var(--text);font-weight:900;font-size:12.5px;line-height:1;white-space:nowrap}.pill-ico,.meta-ico{display:inline-flex;align-items:center;justify-content:center;margin-right:6px;opacity:.9}.info-card{border:1px solid rgba(17,24,39,0.1);background:#fff;border-radius:14px;box-shadow:0 8px 22px rgba(17,24,39,0.05);padding:14px 16px;transition:transform .12s ease, box-shadow .12s ease}.info-card:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(17,24,39,0.08)}.info-card__title{margin:0;font-size:16px;font-weight:900;color:var(--text)}.info-card__desc{margin:6px 0 0;font-size:14px;color:var(--muted);line-height:1.55}.info-card__desc a{color:var(--accent);font-weight:800;text-decoration:none}.info-card__desc a:hover{text-decoration:underline}.info-card--teach{display:flex;flex-direction:column;gap:8px}.info-card--teach .teach-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.info-card--teach .teach-codeyear{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.info-card--teach .teach-code{font-weight:900;color:var(--accent);font-size:14px}.info-card--teach .teach-role{padding:5px 10px;border-radius:999px;border:1px solid rgba(17,24,39,0.12);background:rgba(37,99,235,0.08);color:var(--text);font-weight:900;font-size:14px;line-height:1;white-space:nowrap}.info-card--simple{display:flex;flex-direction:column;gap:8px}.info-card--simple .mentor-line{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;color:var(--muted);font-size:13.5px}.info-card--simple .mentor-role{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid rgba(17,24,39,0.12);background:rgba(37,99,235,0.08);color:var(--text);font-weight:900;font-size:12.5px;line-height:1;white-space:nowrap}.info-card--simple .mentor-name{font-weight:800}.info-card--cert{display:flex;flex-direction:column;gap:8px}.info-card--cert .cert-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.info-card--cert .cert-issuer{align-items:center;gap:10px;color:var(--muted);font-weight:800}.info-card--cert .cert-issuer-text a{color:var(--accent);font-weight:900;text-decoration:none}.info-card--cert .cert-issuer-text a:hover{text-decoration:underline}.info-card--portfolio{display:flex;flex-direction:column;gap:8px}.info-card--portfolio .portfolio-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.info-card--portfolio .portfolio-title{min-width:0;margin:0}.info-card--portfolio .portfolio-head__right{display:inline-flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.info-card--portfolio .portfolio-issuer{font-weight:900;color:var(--muted);font-size:13px}.info-card--portfolio .meta-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.info-card--portfolio .meta-text{display:inline-flex;align-items:center;font-weight:900;color:var(--muted);font-size:12.5px;line-height:1}.meta-pill--year{background:rgba(17,24,39,0.06)}.meta-pill--issuer{background:rgba(17,24,39,0.06)}.meta-pill--status{background:rgba(124,58,237,0.1)}.meta-pill--collab{background:rgba(37,99,235,0.1)}.meta-pill--fundbody{background:rgba(37,99,235,0.1)}.meta-pill--role{background:rgba(37,99,235,0.08)}.meta-pill--kw{background:rgba(17,24,39,0.06)}.footer{max-width:var(--max);margin:0 auto;padding:10px 18px 28px;display:flex;gap:10px;justify-content:space-between;color:var(--muted);font-size:14px}.cards-search{margin:0 0 14px;display:flex;flex-direction:column;gap:6px}.cards-search__input{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,0.92);box-shadow:0 8px 22px rgba(17,24,39,0.05);font-size:14px;font-weight:700;color:var(--text);outline:none}.cards-search__input:focus{border-color:rgba(37,99,235,0.35);box-shadow:0 10px 26px rgba(37,99,235,0.1)}.cards-search__meta{font-size:13px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}.page-head .page-title{margin:0}.page-head .cards-search{margin:0;flex:0 0 auto;align-items:flex-end}.page-head .cards-search__input{width:min(420px, 55vw)}.page-head .cards-search__meta{display:none}@media (max-width: 640px){.page-head{flex-direction:column;align-items:stretch}.page-head .cards-search__input{width:100%}}
