
:root{
  --navy:#0d335f;--navy2:#174f82;--blue:#2477bd;--cyan:#50b6e7;
  --ink:#172331;--muted:#657587;--line:#dce5ee;--surface:#fff;
  --alt:#f4f7fa;--shadow:0 18px 45px rgba(13,51,95,.11);
  --radius:20px;--container:1160px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{
  margin:0;color:var(--ink);background:#fff;line-height:1.7;
  font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased
}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}
.container{width:min(calc(100% - 38px),var(--container));margin-inline:auto}
.skip-link{position:fixed;left:12px;top:-55px;z-index:100;padding:9px 14px;background:#fff;border-radius:8px}
.skip-link:focus{top:12px}
.hero{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(125deg,#082847 0%,#0d416f 58%,#176897 100%)
}
.hero__pattern{position:absolute;inset:0;opacity:.18;background-image:
  linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px);
  background-size:46px 46px;mask-image:linear-gradient(to bottom,#000,transparent 95%)}
.hero::before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;
  right:-150px;top:-220px;background:radial-gradient(circle,#70d4ff,transparent 68%);opacity:.42}
.hero__layout{position:relative;z-index:2;min-height:650px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);align-items:center;gap:64px;padding:72px 0}
.eyebrow{margin-bottom:15px;font-size:13px;letter-spacing:.28em;opacity:.72}
h1,h2,h3,h4,p{margin-top:0}.hero h1{margin-bottom:8px;font-size:clamp(58px,7vw,92px);line-height:1.05;letter-spacing:.05em}
.hero__role{margin:0 0 18px;font-size:clamp(19px,2.5vw,27px);font-weight:750}
.hero__summary{max-width:720px;margin-bottom:20px;color:rgba(255,255,255,.84);font-size:16px}
.project-tag{display:inline-flex;margin-bottom:28px;padding:7px 14px;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:rgba(255,255,255,.08);color:#dff4ff;font-size:14px}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:47px;padding:0 22px;border:1px solid transparent;border-radius:999px;font-weight:750;transition:.22s ease}
.button:hover{transform:translateY(-2px)}.button--primary{color:var(--navy);background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.15)}
.button--ghost{color:#fff;border-color:rgba(255,255,255,.43);background:rgba(255,255,255,.06)}
.button--light{color:var(--navy);background:#fff;white-space:nowrap}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,180px));gap:18px;margin:44px 0 0}
.stats div{padding-left:15px;border-left:2px solid rgba(255,255,255,.34)}.stats dt{font-size:24px;font-weight:850;line-height:1.2}
.stats dd{margin:3px 0 0;color:rgba(255,255,255,.66);font-size:13px}
.portrait-wrap{display:flex;justify-content:center}.portrait-card{width:min(100%,350px);padding:11px;border:1px solid rgba(255,255,255,.28);border-radius:30px;background:rgba(255,255,255,.1);box-shadow:0 30px 60px rgba(0,0,0,.22);backdrop-filter:blur(12px)}
.portrait-card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:22px;background:#fff}
.portrait-card__caption{display:flex;flex-direction:column;padding:13px 9px 7px}.portrait-card__caption strong{font-size:18px}.portrait-card__caption span{color:rgba(255,255,255,.64);font-size:11px;letter-spacing:.05em}
.section-nav{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(13,51,95,.12);background:rgba(255,255,255,.92);backdrop-filter:blur(15px)}
.section-nav__inner{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.section-nav__inner::-webkit-scrollbar{display:none}
.section-nav a{flex:0 0 auto;padding:16px 15px;color:#405a71;font-size:14px;font-weight:750}.section-nav a:hover{color:var(--blue)}
.section{padding:84px 0;scroll-margin-top:60px}.section--muted{background:var(--alt)}.section--dark{color:#fff;background:var(--navy)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.section-heading>div{display:flex;align-items:baseline;gap:14px}
.section-heading h2{margin:0;font-size:clamp(29px,4vw,41px);line-height:1.2}.section-heading p{max-width:550px;margin:0;color:var(--muted)}
.section-index{color:var(--blue);font-size:13px;font-weight:900;letter-spacing:.18em}.section-index--light{color:#9edaff}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.filter{padding:9px 17px;color:#4e6072;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;font:inherit;font-size:14px;font-weight:750}
.filter.is-active{color:#fff;border-color:var(--navy);background:var(--navy)}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.certificate-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 8px 28px rgba(13,51,95,.06);transition:.24s ease}
.certificate-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.image-button{position:relative;display:block;width:100%;padding:0;border:0;background:#edf2f7;cursor:zoom-in;overflow:hidden}
.certificate-card .image-button{aspect-ratio:4/3}.image-button img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.certificate-card:hover .image-button img{transform:scale(1.025)}
.badge{position:absolute;left:14px;top:14px;padding:5px 10px;color:#fff;border-radius:999px;background:rgba(13,51,95,.9);font-size:12px;font-weight:800}
.certificate-card__body{padding:18px 18px 20px}.certificate-card__meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;color:var(--blue);font-size:13px;font-weight:800}
.certificate-card h3{margin-bottom:8px;font-size:17px;line-height:1.45}.certificate-card p{margin:0;color:var(--muted);font-size:14px}
.research-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:24px}.subsection{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,.8)}
.subsection__title{margin-bottom:18px;color:var(--navy);font-size:20px}.paper-card{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);overflow:hidden;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 10px 30px rgba(13,51,95,.07)}
.paper-card .image-button{min-height:360px}.paper-card .image-button img{object-fit:contain;background:#edf1f6}.paper-card__body{padding:28px}
.paper-card__label{display:inline-flex;margin-bottom:15px;padding:5px 10px;color:#fff;border-radius:999px;background:var(--blue);font-size:12px;font-weight:800}
.paper-card h3{margin-bottom:12px;font-size:22px;line-height:1.42}.paper-card__citation{margin-bottom:12px;color:var(--blue);font-weight:800}.paper-card__meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.paper-card__meta span{padding:5px 9px;border-radius:7px;background:#edf4fa;color:#35536d;font-size:12px;font-weight:750}.paper-card p{margin:0;color:var(--muted);font-size:14px}
.result-list{display:grid;gap:14px}.result-card{padding:17px;border:1px solid var(--line);border-radius:14px;background:#fff}.result-card__meta{margin-bottom:8px;color:var(--blue);font-size:13px;font-weight:800}
.result-card h4{margin:0 0 7px;font-size:17px;line-height:1.5}.result-card p{margin:0;color:var(--muted);font-size:14px}
.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.media-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 8px 28px rgba(13,51,95,.06);transition:.24s ease}
.media-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.media-card .image-button{aspect-ratio:16/10}.media-card .image-button img{object-fit:contain;background:#f2f5f8}
.media-card__body{padding:18px}.media-card__source{display:flex;justify-content:space-between;gap:10px;color:var(--blue);font-size:12px;font-weight:800}
.media-card h3{margin:8px 0 8px;font-size:17px;line-height:1.48}.media-card p{margin:0;color:var(--muted);font-size:13px}
.empty-state{padding:50px 24px;text-align:center;border:1px dashed #bfd0e1;border-radius:var(--radius);background:rgba(255,255,255,.72)}.empty-state--compact{padding:34px 18px}
.empty-state__icon{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 14px;color:#fff;border-radius:50%;background:linear-gradient(135deg,var(--navy2),var(--blue));font-size:18px;font-weight:800}.empty-state p{margin:0;color:var(--muted)}
.empty-state[hidden]{display:none}.resume-panel{display:flex;justify-content:space-between;align-items:center;gap:30px}.resume-panel h2{margin:8px 0;font-size:clamp(30px,4vw,42px)}
.resume-panel p{color:rgba(255,255,255,.72)}.contact-line{display:flex;flex-wrap:wrap;gap:12px 24px;color:rgba(255,255,255,.78)}
.footer{padding:24px 0;color:rgba(255,255,255,.64);background:#071e38;font-size:13px}.footer__inner{display:flex;justify-content:space-between;gap:20px}.footer a{color:#fff}
.lightbox{width:min(94vw,1180px);max-height:92vh;padding:0;border:0;border-radius:18px;background:#08121f;box-shadow:0 30px 85px rgba(0,0,0,.48)}
.lightbox::backdrop{background:rgba(3,10,18,.84);backdrop-filter:blur(5px)}.lightbox figure{margin:0}.lightbox img{width:100%;max-height:83vh;object-fit:contain;background:#fff}
.lightbox figcaption{padding:14px 55px 16px 18px;color:rgba(255,255,255,.84);font-size:14px}.lightbox__close{position:absolute;z-index:2;right:12px;top:10px;width:39px;height:39px;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(0,0,0,.55);font-size:27px;line-height:1;cursor:pointer}
.patent-card { overflow: hidden;border: 1px solid var(--line);border-radius: 16px;background: #ffffff;box-shadow: 0 8px 24px rgba(13, 51, 95, 0.06);transition: transform 0.24s ease, box-shadow 0.24s ease;}
.patent-card:hover {transform: translateY(-4px);box-shadow: var(--shadow);}
.patent-card__image { width: 100%;aspect-ratio: 4 / 3;background: #f2f5f8;}
.patent-card__image img {width: 100%;height: 100%;object-fit: contain;background: #f2f5f8;}
.patent-card__body {padding: 18px;}
.patent-card__body h4 {margin: 0 0 10px;font-size: 17px;line-height: 1.5;}
.patent-card__body p {margin: 6px 0 0;color: var(--muted);font-size: 14px;}
.patent-card__number {color: #40566d;}
@media(max-width:980px){.hero__layout{grid-template-columns:1fr .52fr;gap:35px}.card-grid,.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.research-layout{grid-template-columns:1fr}.paper-card{grid-template-columns:minmax(250px,.8fr) 1.2fr}}
@media(max-width:720px){.hero__layout{grid-template-columns:1fr;padding:62px 0 56px}.portrait-wrap{order:-1;justify-content:flex-start}.portrait-card{width:175px;padding:7px;border-radius:22px}.portrait-card img{border-radius:16px}.portrait-card__caption{display:none}.hero h1{font-size:55px}.stats{grid-template-columns:repeat(3,1fr);gap:8px}.stats div{padding-left:9px}.stats dt{font-size:20px}.stats dd{font-size:11px;line-height:1.35}
.section{padding:60px 0}.section-heading{align-items:flex-start;flex-direction:column;gap:9px}.card-grid,.media-grid{grid-template-columns:1fr}.paper-card{grid-template-columns:1fr}.paper-card .image-button{min-height:auto;aspect-ratio:4/3}.paper-card__body{padding:21px}.resume-panel{align-items:stretch;flex-direction:column}.button--light{width:100%}.footer__inner{flex-direction:column;gap:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
