
:root{--ink:#1c2534;--soft:#51607a;--line:#e4eaf3;--brand:#0b5394;--brand2:#1273c4;--bg:#f7fafd;--card:#fff}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Segoe UI","Microsoft YaHei",system-ui,sans-serif;font-size:15px;color:var(--ink);background:var(--bg);line-height:1.8}
a{text-decoration:none;color:inherit;transition:color .15s}
.wrap{max-width:1020px;margin:0 auto;padding:0 22px}
header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:56px}
.logo{font-weight:700;color:var(--brand);font-size:16px}
.nav-right{display:flex;align-items:center;gap:20px;font-size:13.5px}
.nav-right a{color:var(--soft)} .nav-right a:hover{color:var(--brand)}
.lang a{margin-left:8px;padding:4px 11px;border-radius:16px;border:1px solid var(--line);color:var(--soft);font-size:12.5px}
.lang a.on{background:var(--brand);border-color:var(--brand);color:#fff}
.hero{position:relative;color:#fff;padding:88px 0 74px;background:#0b3954}
.hero .bg{position:absolute;inset:0;background:url('/images/hero.jpg') center/cover no-repeat;opacity:.42}
.hero .wrap{position:relative}
.kicker{font-size:12.5px;letter-spacing:2.5px;text-transform:uppercase;opacity:.85;margin-bottom:12px}
h1{font-size:27px;line-height:1.45;margin-bottom:12px;font-weight:700}
.sub{font-size:15px;opacity:.92;max-width:680px}
.meta{margin-top:16px;font-size:13px;opacity:.85}
.stats{display:flex;gap:30px;margin-top:28px;flex-wrap:wrap}
.stat b{display:block;font-size:21px}.stat span{font-size:12px;opacity:.82}
main{padding:46px 0 26px}
.sec-head{text-align:center;margin-bottom:34px}
.sec-head h2{font-size:21px;color:var(--ink)}
.sec-head p{color:var(--soft);font-size:13.5px;margin-top:6px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.tcard{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 8px rgba(16,42,80,.05);transition:transform .18s,box-shadow .18s}
.tcard:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(16,42,80,.12)}
.tcard img{width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;display:block;background:#eef3f9}
.tbody{padding:17px 19px 19px;display:flex;flex-direction:column;flex:1}
.tnum{font-size:11.5px;font-weight:700;color:var(--brand2);letter-spacing:1.5px}
.tcard h3{font-size:16.5px;margin:5px 0 7px;color:var(--ink)}
.tcard p{color:var(--soft);font-size:13.5px;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.more{margin-top:12px;font-size:13px;color:var(--brand2);font-weight:600}
.crumbs{font-size:12.5px;color:var(--soft);padding:16px 0 0}
.crumbs a{color:var(--brand2)}
.dhead h1{font-size:24px;margin:10px 0 6px}
.dhead .lead{color:var(--soft);font-size:14.5px;max-width:720px}
.tags{margin:10px 0 18px}
.tag{display:inline-block;font-size:11.5px;color:var(--brand2);background:#e8f2fc;border:1px solid #cfe4f7;border-radius:16px;padding:2px 11px;margin:2px 6px 2px 0}
.dimg{width:100%;border-radius:12px;margin:4px 0 22px;box-shadow:0 6px 20px rgba(16,42,80,.12)}
h2.sect{font-size:17px;color:var(--brand);margin:26px 0 10px;padding-left:11px;border-left:4px solid var(--brand)}
.dpage p.body{color:#3b4963;text-align:justify;margin-bottom:10px}
.klist{display:grid;gap:13px;margin-top:6px}
.kitem{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 17px}
.kitem b{font-size:14px;color:var(--ink)}
.kitem p{color:var(--soft);font-size:13.5px;margin-top:4px}
.pager{display:flex;justify-content:space-between;gap:14px;margin:38px 0 8px}
.pager a{flex:1;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;font-size:13px;color:var(--soft)}
.pager a:hover{border-color:var(--brand2);color:var(--brand2)}
.pager .dir{font-size:11px;letter-spacing:1px;opacity:.7}
.pager .nx{text-align:right}
.back-all{text-align:center;margin-top:22px}
.back-all a{color:var(--brand2);font-size:13.5px;font-weight:600}
/* faculty profile */
.profile{display:flex;gap:38px;align-items:flex-start;margin:30px 0 8px}
.profile .pphoto{flex:none;width:250px;border-radius:6px;box-shadow:0 4px 16px rgba(16,42,80,.15)}
.profile .pinfo h1{font-size:24px;color:var(--ink);margin-bottom:2px}
.profile .ptitle{color:var(--brand);font-size:15px;font-weight:600;margin-bottom:14px}
.profile .pmeta{font-size:13.5px;color:var(--soft);line-height:2.05}
.profile .pmeta b{color:var(--ink);font-weight:600;display:inline-block;min-width:64px}
.profile .pmeta a{color:var(--brand2)}
.rlist{margin:8px 0 0;padding:0;list-style:none}
.rlist li{padding:5px 0;border-bottom:1px dashed var(--line);font-size:14px;color:#3b4963}
.rlist li a{color:var(--brand2)}
.rlist li:last-child{border-bottom:none}
.svc{font-size:14px;color:#3b4963}
.svc p{margin:6px 0}
/* publications / patents / service */
.yhead{font-size:16px;font-weight:700;color:var(--brand);margin:24px 0 10px;padding-left:11px;border-left:4px solid var(--brand)}
.pitem{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin-bottom:8px}
.pitem .pt{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.55}
.pitem .pm{font-size:12.5px;color:var(--soft);margin-top:4px;line-height:1.6}
.pitem .pm i{color:#3b4963}
.cbadge{display:inline-block;font-size:11px;background:#e8f2fc;border:1px solid #cfe4f7;border-radius:12px;padding:0 8px;margin-left:8px;color:var(--brand2);font-weight:600;vertical-align:1px;white-space:nowrap}
.starbadge{display:inline-block;font-size:11px;background:#fff4e0;border:1px solid #f3ddb0;border-radius:12px;padding:0 8px;margin-left:6px;color:#b0720a;font-weight:600;vertical-align:1px;white-space:nowrap}
.plain-note{font-size:12.5px;color:var(--soft);margin-top:18px;line-height:1.7}
.ptable{width:100%;border-collapse:collapse;font-size:13.5px;background:transparent}
.ptable td,.ptable th{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.ptable th{color:var(--brand);font-size:12.5px;letter-spacing:.5px;border-bottom:2px solid var(--line)}
.knum{font-family:Consolas,Menlo,monospace;font-size:12.5px;color:#3b4963;white-space:nowrap}
.kindchip{display:inline-block;font-size:11px;border-radius:12px;padding:0 9px;border:1px solid var(--line);color:var(--soft);white-space:nowrap}
footer{background:#10243c;color:#c9d8e8;margin-top:44px;padding:28px 0;font-size:13px}
footer .cols{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
footer a{color:#8ec4ef}
@media(max-width:640px){h1{font-size:22px}.hero{padding:60px 0 52px}}
