/* Additive language controls; Chinese content typography remains unchanged. */
.site-header .nav-wrap { gap:16px; }
.site-header .site-nav { margin-left:auto; }
.site-header .language-switch { display:flex; flex:0 0 auto; align-items:center; gap:8px; }
.language-switch .language-bubble {
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; min-height:44px; border:1px solid rgba(145,161,174,.3); border-radius:50%;
  background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(217,229,236,.28));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset -5px -5px 14px rgba(191,207,217,.13);
  backdrop-filter:blur(12px); color:#52616d;
  font:400 14px/1.2 "Times New Roman","PingFang SC",serif; letter-spacing:0; text-decoration:none;
}
.language-switch .language-bubble[aria-current="true"] { border:2px solid #8e9faa; box-shadow:inset 0 0 0 2px rgba(255,255,255,.94); }
.language-switch .language-bubble:hover,.intro-splash .language-orb:hover { border-color:#758b9b; background-color:rgba(201,214,223,.36); }
.language-switch .language-bubble:focus-visible,.intro-splash :is(a,button):focus-visible { outline:2px solid #5f7e94; outline-offset:4px; }
.language-switch .language-bubble:active,.intro-splash .language-orb:active { box-shadow:inset 0 0 0 3px rgba(161,110,124,.24); }
dialog.intro-splash { width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:24px; border:0; color:var(--ink); }
dialog.intro-splash:not([open]) { display:none; }
.intro-splash::backdrop { background:rgba(244,248,249,.8); }
.intro-splash .intro-orbs { pointer-events:none; }
.intro-splash .intro-choice { position:relative; z-index:3; display:flex; flex-direction:column; align-items:center; text-align:center; max-width:100%; }
.intro-splash .intro-greeting { font:400 56px/1.2 var(--font-en); color:#596a76; margin:0 0 28px; }
.intro-splash .intro-language-options { display:flex; gap:28px; }
.intro-splash .language-orb {
  width:112px; height:112px; flex:0 0 112px; animation:none; transform:none;
  color:#42515c; font:400 23px/1.2 var(--font-mixed); letter-spacing:0;
  border-color:rgba(145,161,174,.5); background-color:rgba(201,214,223,.2); cursor:pointer;
}
.intro-splash .language-orb[lang="en-GB"] { background-color:rgba(234,216,222,.3); }
.intro-splash #language-prompt { margin:0 0 28px; font:400 14px/1.6 var(--font-mixed); color:#667580; outline:none; }
.document-language { display:block; margin:8px 0 0; color:#697581; font-size:13px; font-weight:400; line-height:1.6; }
.dissertation-feature .research-actions .research-document-language { flex-basis:100%; margin:0; }
.degree-status { display:block; margin-top:8px; font-size:14px; color:#697581; }
/* Navigation remains usable if the interaction script is disabled or fails to load. */
html:not(.has-site-interactions) .site-header .nav-toggle { display:none; }
html:not(.has-site-interactions) .site-header .nav-wrap { flex-wrap:wrap; }
html:not(.has-site-interactions) .site-header .site-nav { display:flex; position:static; order:4; flex-basis:100%; box-shadow:none; margin:0; }
/* English overrides never change the Chinese font stack or body layout. */
html[lang="en-GB"] {
  --font-cn:"Times New Roman",Times,serif;
  --font-mixed:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-title:"Times New Roman",Times,serif;
  --font-display:"Times New Roman",Times,serif;
  --font-serif:"Times New Roman",Times,serif;
}
html[lang="en-GB"] .page-shell { overflow:visible; }
html[lang="en-GB"] .page-shell::before { right:0; }
html[lang="en-GB"] .page-shell::after { left:0; }
html[lang="en-GB"] :is(.hero-copy,.project-content,.about-card-meta,.capability-card,.glance-column,.nav-wrap > *) { min-width:0; }
html[lang="en-GB"] :is(p,li,dt,dd,.hero-pill,.project-tags,.capability-tags,.research-tags,.site-nav a) { font-family:var(--font-sans); font-weight:400; letter-spacing:0; }
html[lang="en-GB"] :is(.hero-hook,.hero-supporting) { font-size:18px; line-height:1.7; font-weight:400; color:#4f5660; }
html[lang="en-GB"] .hero-copy h1 { font-size:clamp(36px,4.1vw,58px); line-height:1.12; letter-spacing:0; }
html[lang="en-GB"] .hero-divider { margin-bottom:32px; }
html[lang="en-GB"] .hero-photo-stack .stack-front { margin-inline:0; }
html[lang="en-GB"] .hero-photo-stack .stack-front:hover { transform:translateX(-50%) translateY(-4px); }
html[lang="en-GB"] .hero-pill { padding:14px 16px; font-size:15px; line-height:1.5; }
html[lang="en-GB"] .brand { font-size:18px; line-height:1.2; letter-spacing:0; max-width:200px; }
html[lang="en-GB"] .about-banner h2 { white-space:normal; font-size:clamp(28px,2.45vw,40px); line-height:1.25; }
html[lang="en-GB"] .about-banner-text { line-height:1.7; }
html[lang="en-GB"] :is(.about-card-body p,.project-summary,.project-detail-grid p,.project-detail-grid li,.capability-body,.capability-subtitle) { font-size:17px; line-height:1.7; }
html[lang="en-GB"] :is(.project-content h3,.capability-card h3,.feature-title,.research-title) { letter-spacing:0; line-height:1.25; }
html[lang="en-GB"] :is(.projects-heading > p:not(.projects-kicker),.capability-heading > p:not(.capability-kicker)) { font-size:18px; line-height:1.7; }
html[lang="en-GB"] :is(.project-type,.projects-kicker,.capability-kicker,.about-banner-eyebrow) { letter-spacing:.14em; }
html[lang="en-GB"] .project-subtitle { font-size:20px; line-height:1.5; }
html[lang="en-GB"] .project-cover-title h3 { font-size:26px; line-height:1.25; }
html[lang="en-GB"] .project-tags span,html[lang="en-GB"] .capability-tags span { max-width:100%; white-space:normal; }
html[lang="en-GB"] .capability-statement { font-size:19px; line-height:1.7; }
html[lang="en-GB"] .glance-column h4 { font-size:16px; line-height:1.5; }
html[lang="en-GB"] .glance-support { font-size:15px; line-height:1.7; }
html[lang="en-GB"] .glance-education .glance-support + .glance-support { margin-top:16px; }
html[lang="en-GB"] .glance-education .glance-ielts { font-weight:500; }
html[lang="en-GB"] :is(.dissertation-feature,.research-detail) { font-family:var(--font-sans); line-height:1.75; }
html[lang="en-GB"] .research-title { max-width:840px; }
html[lang="en-GB"] .research-original-title { font-family:var(--font-en); line-height:1.55; }
html[lang="en-GB"] .research-section h3 { font-family:var(--font-en); font-weight:400; font-size:23px; line-height:1.4; }
html[lang="en-GB"] .research-result-summary { flex-wrap:wrap; }
html[lang="en-GB"] .research-result-label { line-height:1.5; }
html[lang="en-GB"] .research-chart-source { letter-spacing:0; }
html[lang="en-GB"] .contact-list a { overflow-wrap:anywhere; }
html[lang="en-GB"] .contact-list .contact-secondary { color:#697581; font-size:14px; }
html[lang="en-GB"] .contact-list p > span:first-child { width:76px; flex:0 0 76px; }
@media(max-width:1100px) {
  .about-banner h2 { white-space:normal; }
  .site-header .nav-wrap { flex-wrap:wrap; padding-block:12px; }
  .site-header .brand { margin-right:auto; flex:1 1 0; min-width:0; }
  .site-header .language-switch { order:2; }
  .site-header .nav-toggle { order:3; }
  .site-header .site-nav { order:4; margin-left:0; }
  html[lang="en-GB"] .about-card-top { grid-template-columns:72px minmax(0,1fr); gap:16px; }
  html[lang="en-GB"] .about-card-meta h4 { font-size:21px; }
}
@media(min-width:901px) and (max-width:1100px) {
  .site-header .site-nav { flex-basis:100%; justify-content:center; }
  html { scroll-padding-top:140px; }
}
@media(max-width:640px) {
  .contact-list a { overflow-wrap:anywhere; }
  .about-banner { grid-template-columns:minmax(0,1fr); }
  .about-banner-copy { min-width:0; }
  .about-banner h2 { white-space:normal; }
  .site-header .nav-wrap { gap:10px; }
  .site-header .nav-toggle { flex:0 0 44px; width:44px; height:44px; }
  .intro-splash .language-orb { width:96px; height:96px; flex-basis:96px; font-size:21px; }
  .intro-splash .intro-language-options { gap:24px; }
  html[lang="en-GB"] .brand { max-width:130px; font-size:16px; }
  html[lang="en-GB"] .hero .container { width:calc(100% - 40px); }
  html[lang="en-GB"] .hero-copy h1 { font-size:36px; }
  html[lang="en-GB"] :is(.hero-hook,.hero-supporting) { font-size:17px; }
  html[lang="en-GB"] .about-card-top { grid-template-columns:1fr; }
  html[lang="en-GB"] .about-card-meta h4 { font-size:24px; }
  html[lang="en-GB"] .research-button { font-size:16px; padding:12px 16px; max-width:100%; white-space:normal; }
  html[lang="en-GB"] .contact-list p { gap:12px; }
  html[lang="en-GB"] .contact-list p > span:first-child { width:60px; flex-basis:60px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .intro-splash *, .intro-splash *::before, .intro-splash *::after { animation:none!important; transition:none!important; }
  .language-switch a { transition:none; }
}
@supports not (backdrop-filter:blur(1px)) {
  .intro-splash .language-orb,.language-switch .language-bubble { background-color:#f1f5f7; }
  .intro-splash .language-orb[lang="en-GB"] { background-color:#f6eef0; }
}
