[hidden]{display:none!important}.skip-link{position:fixed;top:-80px;left:16px;z-index:9999;background:white;color:#111;padding:12px}.skip-link:focus{top:12px}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #0d9488;outline-offset:4px}button,summary{cursor:pointer}body[data-lang=zh] .switchable-en,body[data-lang=en] .switchable-zh{display:none!important}.hero-agent-frame{border:0}.assistant-fallback{padding:12px 20px;font-size:13px}.section-footer{text-align:center;margin-top:32px}.archive{padding:140px 0 80px;min-height:65vh}.archive-search{width:100%;padding:15px;border:1px solid #bbb;border-radius:8px;background:transparent;color:inherit;margin:10px 0;font:inherit}.search-label{display:block}.citation{font-size:14px;max-width:100%}.citation pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:440px;background:#f1f5f9;color:#172033;padding:16px;border-radius:8px}.pub-actions{flex-wrap:wrap}.pi-card+.pi-card{margin-top:24px}#notice:not(:empty){position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#12322f;color:white;padding:12px 24px;border-radius:8px;z-index:9999}.logo-icon{flex-shrink:0}.footer-contact a{color:inherit}.hero-stats .stat-label{display:block}.video-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}html{scroll-padding-top:100px}.publication-item{min-width:0}.pub-title,.pi-bio{overflow-wrap:anywhere}@media(max-width:900px){.header-actions .nav{display:none}.mobile-menu-btn{display:block}.header-actions .nav.is-open{display:block;position:absolute;top:100%;left:0;right:0;background:var(--color-bg,#fff);padding:20px;border-bottom:1px solid #ddd}.nav.is-open .nav-list{display:flex;flex-direction:column;gap:16px}.header{position:fixed;top:0;left:0;right:0}.pub-actions{align-items:flex-start}.publication-item{flex-wrap:wrap}.citation pre{max-width:80vw}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep platform and recruitment cards readable at every viewport width. */
.portal-card,
.position-card {
  min-width: 0;
  overflow-wrap: anywhere;
}
.position-card {
  display: flex;
  flex-direction: column;
}
.position-meta {
  margin-top: auto;
}
.position-requirements li:last-child {
  margin-bottom: 0;
}
@media (min-width: 1200px) {
  .positions-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .portal-card,
  .position-card {
    padding: var(--space-5);
  }
}

.scholar-summary { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; margin-top: 24px; color: var(--color-text-secondary); font-size: var(--text-sm); }
.pub-citations { color: var(--color-text-secondary); font-size: var(--text-sm); white-space: nowrap; }
.pub-actions { max-width: 100%; }
.pub-type { font-size: var(--text-sm); font-weight: var(--font-semibold); line-height: var(--leading-normal); }

/* Keep the group name on one line within the available hero column. */
.hero-content { min-width: 0; container-type: inline-size; }
.hero-title .title-cn { white-space: nowrap; font-size: clamp(1.25rem, 3.6vw, 4rem); font-size: clamp(1.25rem, 10cqi, 4rem); }
.logo-subtitle, .group-name { white-space: nowrap; }
.hero-shell { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1100px) {
  .hero-shell:has(.hero-agent-card:not([hidden])) { grid-template-columns: minmax(0, 1.15fr) minmax(420px, 520px); }
}

.video-card, .video-content { display: flex; flex-direction: column; }
.video-content { flex: 1; }
.video-thumbnail { flex-shrink: 0; }
.video-description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; white-space: pre-line; }
.video-meta { margin-top: auto; }

/* CMS brand images retain their proportions within the navigation and footer. */
.brand-logo-image { display: block; width: 40px; height: 40px; object-fit: contain; flex-shrink: 0; }

.portal-actions { display: flex; flex-wrap: wrap; gap: 16px 24px; margin-top: auto; padding-top: 20px; }
.portal-actions a { text-decoration: none; }
.portal-actions a:hover { text-decoration: underline; }
.portals-grid:has(> :only-child) { grid-template-columns: minmax(0, 720px); justify-content: center; }

/* Display the entire member portrait at its original aspect ratio. */
.pi-avatar { max-width: 100%; height: auto; }
.pi-avatar img { display: block; height: auto; object-fit: contain; }
.team-group + .team-group { margin-top: 48px; }
.team-group-title { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 24px; padding-bottom: 14px; border-bottom: 1px solid var(--color-border-light); color: var(--color-text-primary); font-size: var(--text-xl); }
.team-group-count { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 14px; background: var(--color-bg-secondary); color: var(--color-text-secondary); font-size: var(--text-sm); font-weight: 500; }
@media (max-width: 640px) {
  .pi-avatar { justify-self: center; }
}

/* English names wrap naturally; the Chinese group name stays on one line. */
body[data-lang=en] .group-name { white-space: normal; }
body[data-lang=en] .hero-title .title-en { margin-top: 0; font-size: clamp(1.6rem, 6.8cqi, 3.2rem); line-height: 1.25; }

.footer-icp a { color: var(--color-neutral-400); text-decoration: none; }
.footer-icp a:hover, .footer-icp a:focus-visible { color: var(--color-text-inverse); text-decoration: underline; }
