*,*:before,*:after{box-sizing:border-box}html{font-size:62.5%}body{font-size:16px;font-size:1.6rem;font-family:helvetica neue,arial,sans-serif;color:#313a3d;width:100%;margin:0 auto;padding:0 16px;line-height:1.6}header#banner{margin:25px 0}header#banner a{color:#313a3d;text-decoration:none}header#banner a:hover{text-decoration:underline}header#banner h2{display:inline;font-size:21px;font-size:2.1rem;margin:0 8px 0 0}header#banner nav{display:inline-block}header#banner nav ul{list-style-type:none;font-size:1.05em;text-transform:lowercase;margin:0;padding:0}header#banner nav ul li{display:inline;margin:0 3px}header#banner nav ul li a{color:#454545}main#content a{color:#007dfa;text-decoration:none}main#content a:hover{text-decoration:underline}main#content h1,main#content h2,main#content h3,main#content h4,main#content h5,main#content h6{margin-bottom:0;line-height:1.15}main#content h3{font-size:19px;font-size:1.9rem}main#content h1+p,main#content h2+p,main#content h3+p,main#content h4+p,main#content h5+p,main#content h6+p{margin-top:5px}main#content p{color:#394548;margin:16px 0}main#content hr{height:1px;border:0;background:#d8d8d8}main#content ul#posts{list-style-type:none;font-size:16px;font-size:1.6rem;margin-top:0;padding:0}main#content ul#posts li{margin:5px 0;padding:0}main#content ul#posts small{font-size:.8em;color:#767676;margin-left:10px}main#content ul#posts li a{text-decoration:none}main#content ul#posts li a:hover{color:#369aff}main#content ul#posts li a:hover small{color:inherit}main#content header#post-header h1{display:block;font-size:23px;font-size:2.3rem;line-height:1.15}main#content header#post-header div{display:block;font-size:.85em;color:#767676}main#content #toc{border:1px solid #b1b1b1;border-radius:1px;line-height:26px;margin:16px 0;padding:9px 14px}main#content #toc h4{font-size:1.06em;color:#3d3d3d;margin:0}main#content #toc nav#TableOfContents{margin-top:4px}main#content #toc nav#TableOfContents>ul,main#content #toc nav#TableOfContents>ol{margin-left:-40px}main#content #toc ul,main#content #toc ol{font-size:.98em;margin:0;padding:0 0 0 40px}main#content #toc ul{list-style-type:none}main#content #toc ol{counter-reset:item}main#content #toc ol li{display:block}main#content #toc ol li:before{content:counters(item,".")". ";counter-increment:item}main#content img{max-width:100%;margin:0 auto}main#content figure{margin:16px 0}main#content figure img{display:block;max-width:100%;margin:0 auto}main#content figure figcaption{font-size:.92em;font-style:italic;line-height:22px;text-align:center;margin-top:6px;padding:0 10px}main#content figure figcaption h4{font-style:normal;display:inline;margin:0}main#content figure figcaption p{display:inline;margin:0;padding-left:8px}main#content blockquote{font-style:italic;margin-top:10px;margin-bottom:10px;margin-left:50px;padding-left:15px;border-left:3px solid #ccc}main#content code,main#content pre{font-family:menlo,monospace}main#content code{font-size:.96em;padding:0 5px}main#content pre{display:block;overflow-x:auto;font-size:14px;font-size:1.4rem;white-space:pre;margin:20px 0;padding:1.5rem;line-height:1.4}main#content pre code{padding:0}main#content section.footnotes{font-size:.9em}footer#footer{font-size:14px;font-size:1.4rem;font-weight:300;color:#949494;margin:40px 0}@media(min-width:770px){body{width:600px;line-height:1.5}main#content hr{width:108%;margin-left:-3.8%}header#banner h2{font-size:25px;font-size:2.5rem}main#content h3{font-size:20px;font-size:2rem}main#content ul#posts{font-size:18px;font-size:1.8rem}main#content header#post-header h1{font-size:26px;font-size:2.6rem}main#content img{max-width:108%;margin-left:-3.8%}main#content figure{margin-left:-3.8%}main#content figure img{max-width:108%}main#content pre{width:108%;margin-left:-3.8%;padding:1.5rem 2.2rem}}@media(prefers-color-scheme:dark){html{scrollbar-color:#6c6c6c #2e2e2e}body{color:#ebebeb;background:#121212}header#banner a{color:#e0e0e0;text-decoration:none}header#banner nav ul li a{color:#ccc}main#content a{color:#00b1ed}main#content p{color:#f5f5f5}main#content hr{background:#5c5c5c}main#content #toc h4{color:#d4d4d4}main#content ul#posts small{color:#a7a7a7}main#content ul#posts li a:hover{color:#21c7ff}main#content header#post-header div{color:#a7a7a7}}


/* ===== Profile layout matching the supplied reference ===== */
body{max-width:100%;width:100%;padding:0 24px;line-height:1.5}
header#banner{max-width:960px;margin:18px auto 48px}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px}
header#banner h2{margin:0;font-size:2.1rem;font-weight:300}
header#banner nav ul{display:flex;align-items:center;gap:28px;margin:0;padding:0;list-style:none;font-size:1.25rem}
header#banner nav ul li{margin:0}
header#banner nav ul li a{color:#999;text-decoration:none;transition:color .2s ease}
header#banner nav ul li a:hover,header#banner nav ul li a.active{color:#3458d4}
.page-layout{display:grid;grid-template-columns:128px minmax(0,1fr);gap:24px;align-items:start;max-width:960px;margin:0 auto}
.profile-sidebar{position:sticky;top:24px;width:128px}
.profile-photo{display:block;width:128px;height:128px;object-fit:cover;object-position:center;margin:0!important;border-radius:14px;background:#f0f1f4}
.social-links{display:flex;justify-content:center;align-items:center;gap:5px;margin-top:12px}
.social-links a{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;background:#aaa;color:#fff!important;transition:background .2s ease,transform .2s ease}
.social-links a:hover{background:#4562cc;transform:translateY(-2px);text-decoration:none!important}
.social-links svg{display:block;width:13px;height:13px;fill:currentColor}
main#content{width:100%;min-width:0}
main#content p{margin:0 0 13px}
main#content hr{width:100%;margin:28px 0}
main#content img{max-width:100%;margin:0}
main#content figure{margin:16px 0}
main#content figure img{max-width:100%}
main#content pre{width:100%;margin-left:0}
main#content ol,main#content ul{padding-left:24px}
main#content li{margin-bottom:5px}
@media(max-width:700px){
 body{padding:0 18px}
 header#banner{margin:18px auto 30px}
 .site-header{align-items:flex-start;flex-direction:column;gap:12px}
 header#banner nav ul{gap:22px}
 .page-layout{grid-template-columns:1fr;gap:22px}
 .profile-sidebar{position:static;display:flex;align-items:center;gap:14px;width:100%}
 .profile-photo{width:96px;height:96px;flex:0 0 96px;border-radius:12px}
 .social-links{justify-content:flex-start;margin-top:0}
}


/* ===== Requested refinements: IBM Plex Sans, clean header, responsive 960px layout ===== */
:root {
  font-family: "IBM Plex Sans", sans-serif;
}
html {
  font-family: "IBM Plex Sans", sans-serif;
}
body {
  width: 100%;
  max-width: 100%;
  padding: 0 24px;
  font-family: "IBM Plex Sans", sans-serif;
  line-height: 1.55;
}
.page-layout {
  width: 100%;
  max-width: 960px;
  margin: 34px auto 0;
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 24px;
}
.profile-sidebar {
  width: 128px;
}
.social-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
}
.social-links a {
  flex: 0 0 20px;
}
main#content {
  min-width: 0;
  overflow-wrap: break-word;
}
main#content img,
main#content figure img {
  max-width: 100%;
  height: auto;
}
main#content pre {
  max-width: 100%;
  overflow-x: auto;
}
@media (max-width: 700px) {
  body {
    padding: 0 18px;
  }
  .page-layout {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-top: 24px;
  }
  .profile-sidebar {
    position: static;
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
  }
  .profile-photo {
    width: 96px;
    height: 96px;
    flex: 0 0 96px;
  }
  .social-links {
    justify-content: flex-start;
    margin-top: 0;
    max-width: 180px;
  }
  .social-links a {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
  }
  main#content p {
    margin-bottom: 14px;
  }
}
@media (max-width: 380px) {
  body {
    padding: 0 14px;
  }
  .profile-photo {
    width: 82px;
    height: 82px;
    flex-basis: 82px;
  }
  .profile-sidebar {
    gap: 12px;
  }
  .social-links {
    max-width: 150px;
  }
}


/* ===== Header and typography refinements ===== */
body {
  font-family: "IBM Plex Sans", sans-serif;
}
header#banner.site-header {
  display: block;
  width: 100%;
  max-width: 960px;
  margin: 28px auto 30px;
  padding: 0;
}
header#banner.site-header h2 {
  display: block;
  margin: 0;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 400;
}
header#banner.site-header h2 a {
  color: #313a3d;
  text-decoration: none;
  font-weight: 400;
}
header#banner.site-header h2 strong {
  font-weight: 700;
}
main#content {
  font-size: 18px;
  line-height: 1.6;
}
main#content p,
main#content li {
  font-size: 18px;
}
main#content h3 {
  font-size: 24px;
  line-height: 1.25;
}
@media (max-width: 700px) {
  header#banner.site-header {
    margin: 22px auto 24px;
  }
  header#banner.site-header h2 {
    font-size: 24px;
  }
  main#content,
  main#content p,
  main#content li {
    font-size: 18px;
  }
  main#content h3 {
    font-size: 24px;
  }
}


/* ===== Profile sizing, spacing, and mobile alignment (V4) ===== */

/* Give the page header and main content a clearer vertical separation. */
header#banner.site-header {
  margin-bottom: 58px;
}

/* Profile photo and social icons. */
.profile-photo {
  width: 180px;
  height: 180px;
  display: block;
  object-fit: cover;
}
.social-links {
  gap: 7px;
}
.social-links a {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
}
.social-links svg {
  width: 24px;
  height: 24px;
}

/* Mobile: centered header, centered photo, icons directly underneath. */
@media (max-width: 700px) {
  body {
    padding: 0 20px;
  }
  header#banner.site-header {
    text-align: center;
    margin-top: 22px;
    margin-bottom: 42px;
  }
  .page-layout {
    padding-left: 0;
    padding-right: 0;
    margin-top: 0;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .profile-sidebar {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    width: 100%;
    text-align: center;
  }
  .profile-photo {
    width: 180px;
    height: 180px;
    flex: 0 0 180px;
    margin: 0 auto;
  }
  .social-links {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 auto;
    width: 100%;
    max-width: none;
  }
  .social-links a,
  .social-links svg {
    width: 24px;
    height: 24px;
  }
}


/* ===== V5: natural-flow profile, safe content column, proportional social icons ===== */

/* Keep the profile in normal document flow; it must not stick while scrolling. */
.profile-sidebar {
  position: static !important;
  top: auto !important;
  align-self: start;
  width: 180px;
  min-width: 0;
}

/* Reserve a full 180px column for the photo, plus a clear gutter before content. */
.page-layout {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  column-gap: 40px;
  align-items: start;
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
main#content {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
main#content img,
main#content figure,
main#content figure img,
main#content pre,
main#content hr {
  max-width: 100%;
}
main#content img,
main#content figure img {
  width: auto;
  height: auto;
  margin-left: 0;
}

/* Social icon buttons have comfortable circular targets; glyphs remain inset. */
.social-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}
.social-links a {
  display: inline-flex;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
.social-links svg {
  display: block;
  width: 16px;
  height: 16px;
}

/* Keep the established centered mobile arrangement and avoid horizontal overflow. */
@media (max-width: 700px) {
  .page-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    column-gap: 0;
    row-gap: 24px;
    width: 100%;
  }
  .profile-sidebar {
    position: static !important;
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
  }
  main#content {
    width: 100%;
    min-width: 0;
  }
  .social-links {
    justify-content: center;
  }
}


/* Multi-page navigation */
header#banner.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px;
}
header#banner.site-header h2 { margin: 0; flex: 0 1 auto; }
header#banner.site-header nav.top-nav { display: block; margin-left: auto; }
header#banner.site-header nav.top-nav ul {
  display: flex; align-items: center; justify-content: flex-end;
  flex-wrap: wrap; gap: 20px; list-style: none; margin: 0; padding: 0;
  font-size: 16px; text-transform: none;
}
header#banner.site-header nav.top-nav ul li { display: block; margin: 0; }
header#banner.site-header nav.top-nav a {
  color: #454545; text-decoration: none; white-space: nowrap;
}
header#banner.site-header nav.top-nav a:hover,
header#banner.site-header nav.top-nav a.active { color: #007dfa; }
header#banner.site-header nav.top-nav a.active { font-weight: 600; }
@media (max-width: 700px) {
  header#banner.site-header {
    flex-direction: column; justify-content: center; align-items: center;
    gap: 16px; text-align: center;
  }
  header#banner.site-header nav.top-nav { margin: 0 auto; width: 100%; }
  header#banner.site-header nav.top-nav ul { justify-content: center; gap: 12px 18px; }
}


/* ===== Alignment fix: first section heading and ordered-list markers ===== */
/* Remove the browser's default top margin from the first heading so it starts
   level with the top of the profile photo. Later section headings keep spacing. */
main#content > h3:first-child {
  margin-top: 0;
}

/* Keep ordered-list markers aligned with the left edge of section headings. */
main#content ol {
  margin-left: 0;
  padding-left: 2.5em;
}


/* ===== Speakings & Travels: 960px content area without profile sidebar ===== */
.wide-content-page .page-layout,
body.wide-content-page .page-layout {
  display: block;
  width: 100%;
  max-width: 960px;
  margin: 34px auto 0;
}
.wide-content-page main#content,
body.wide-content-page main#content {
  display: block;
  width: 100%;
  max-width: 960px;
  min-width: 0;
  margin-left: auto;
  margin-right: auto;
}

/* Travels: four country columns on desktop, two on mobile. */
body.travels-page main#content ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(12, auto);
  grid-auto-flow: column;
  column-gap: 28px;
  row-gap: 5px;
  padding-left: 1.8em;
}
body.travels-page main#content ol li {
  break-inside: avoid;
  min-width: 0;
}

@media (max-width: 700px) {
  .wide-content-page .page-layout,
  body.wide-content-page .page-layout {
    margin-top: 24px;
  }
  body.travels-page main#content ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(24, auto);
    grid-auto-flow: column;
    column-gap: 20px;
    row-gap: 5px;
  }
}


/* ===== Publications responsive mega menu ===== */
header#banner.site-header nav.top-nav { position: relative; }
header#banner.site-header nav.top-nav > ul { overflow: visible; }
header#banner.site-header nav.top-nav .nav-dropdown { position: static; display: flex; align-items: center; gap: 4px; }
header#banner.site-header nav.top-nav .dropdown-toggle {
  display:inline-flex; align-items:center; justify-content:center; width:25px; height:25px; padding:0;
  border:0; border-radius:6px; background:transparent; color:currentColor; font:inherit; cursor:pointer;
  transition:background .2s ease, transform .25s ease;
}
header#banner.site-header nav.top-nav .dropdown-toggle:hover { background:rgba(0,125,250,.09); }
header#banner.site-header nav.top-nav .dropdown-toggle span { display:block; font-size:19px; line-height:1; transition:transform .25s ease; }
header#banner.site-header nav.top-nav .nav-dropdown.is-open .dropdown-toggle span { transform:rotate(180deg); }
header#banner.site-header nav.top-nav ul.publications-submenu {
  position:absolute; z-index:1000; top:calc(100% + 14px); left:50%; right:auto;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px;
  width:min(960px,calc(100vw - 40px)); max-width:none; max-height:min(70vh,620px); overflow-y:auto;
  margin:0; padding:25px 28px; list-style:none; border:1px solid rgba(120,130,145,.2);
  border-radius:13px; background:#fff; box-shadow:0 16px 42px rgba(25,35,55,.17);
  opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,-9px) scale(.985);
  transform-origin:top center; transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
}
header#banner.site-header nav.top-nav ul.publications-submenu > li.mega-menu-column { display:block; min-width:0; margin:0; }
header#banner.site-header nav.top-nav ul.publications-submenu h3 {
  margin:0 0 12px; padding:0 0 9px; border-bottom:1px solid rgba(120,130,145,.22);
  color:#263746; font-size:14px; font-weight:700; line-height:1.4; letter-spacing:.02em;
}
header#banner.site-header nav.top-nav ul.publications-submenu ul { display:grid; grid-template-columns:minmax(0,1fr); gap:3px; margin:0; padding:0; list-style:none; }
header#banner.site-header nav.top-nav ul.publications-submenu li li { display:block; margin:0; }
header#banner.site-header nav.top-nav ul.publications-submenu a {
  display:block; padding:8px 10px; border-radius:7px; color:#394548; font-size:13px; line-height:1.4;
  white-space:normal; text-decoration:none; transition:color .18s ease,background .18s ease,padding-left .18s ease;
}
header#banner.site-header nav.top-nav ul.publications-submenu a:hover,
header#banner.site-header nav.top-nav ul.publications-submenu a:focus-visible {
  padding-left:14px; color:#007dfa; background:rgba(0,125,250,.08); text-decoration:none;
}
header#banner.site-header nav.top-nav .nav-dropdown:hover > ul.publications-submenu,
header#banner.site-header nav.top-nav .nav-dropdown:focus-within > ul.publications-submenu,
header#banner.site-header nav.top-nav .nav-dropdown.is-open > ul.publications-submenu {
  opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0) scale(1);
}
html { scroll-behavior:smooth; scroll-padding-top:28px; }
main#content h3[id] { scroll-margin-top:28px; }
@media (max-width:900px) {
  header#banner.site-header nav.top-nav ul.publications-submenu { gap:16px; padding:20px; }
  header#banner.site-header nav.top-nav ul.publications-submenu a { font-size:12.5px; }
}
@media (max-width:700px) {
  header#banner.site-header nav.top-nav { position:relative; }
  header#banner.site-header nav.top-nav > ul { flex-wrap:wrap; }
  header#banner.site-header nav.top-nav .nav-dropdown { position:static; }
  header#banner.site-header nav.top-nav ul.publications-submenu {
    top:calc(100% + 8px); left:50%; width:min(520px,calc(100vw - 28px));
    grid-template-columns:minmax(0,1fr); gap:16px; max-height:65vh; overflow-y:auto;
    padding:18px; transform:translate(-50%,-8px) scale(.985); text-align:left;
  }
  header#banner.site-header nav.top-nav .nav-dropdown:hover > ul.publications-submenu,
  header#banner.site-header nav.top-nav .nav-dropdown:focus-within > ul.publications-submenu,
  header#banner.site-header nav.top-nav .nav-dropdown.is-open > ul.publications-submenu {
    transform:translate(-50%,0) scale(1);
  }
  header#banner.site-header nav.top-nav ul.publications-submenu h3 { margin-bottom:7px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  header#banner.site-header nav.top-nav ul.publications-submenu,
  header#banner.site-header nav.top-nav .dropdown-toggle,
  header#banner.site-header nav.top-nav .dropdown-toggle span,
  header#banner.site-header nav.top-nav ul.publications-submenu a {
    transition: none;
  }
}



/* ===== Publications mega menu refinements ===== */
@media (min-width: 701px) {
  header#banner.site-header nav.top-nav { position: relative; }
  header#banner.site-header nav.top-nav .nav-dropdown {
    display: flex; align-items: center; gap: 5px; position: static;
  }
  header#banner.site-header nav.top-nav .nav-dropdown > a,
  header#banner.site-header nav.top-nav .dropdown-toggle {
    display: inline-flex; align-items: center; min-height: 34px; line-height: 1.2;
  }
  header#banner.site-header nav.top-nav .dropdown-toggle {
    width: 24px; height: 34px; min-height: 34px; margin: 0; padding: 0;
    vertical-align: middle; transform: none;
  }
  header#banner.site-header nav.top-nav .dropdown-toggle span {
    display: block; line-height: 1; font-size: 18px;
  }
  header#banner.site-header nav.top-nav ul.publications-submenu {
    top: 100%; left: auto; right: 0;
    width: min(960px, calc(100vw - 48px)); max-width: calc(100vw - 48px);
    grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start;
    gap: 30px; padding: 28px 32px; margin: 0;
    transform: translateY(10px) scale(.99); transform-origin: top right;
  }
  /* Hover bridge prevents the menu closing while the pointer travels into it. */
  header#banner.site-header nav.top-nav ul.publications-submenu::before {
    content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px;
  }
  header#banner.site-header nav.top-nav .nav-dropdown:hover > ul.publications-submenu,
  header#banner.site-header nav.top-nav .nav-dropdown:focus-within > ul.publications-submenu,
  header#banner.site-header nav.top-nav .nav-dropdown.is-open > ul.publications-submenu {
    transform: translateY(0) scale(1);
  }
  header#banner.site-header nav.top-nav ul.publications-submenu > li.mega-menu-column {
    align-self: start; justify-self: stretch; min-width: 0; margin: 0; padding: 0;
  }
  header#banner.site-header nav.top-nav ul.publications-submenu h3 {
    margin: 0 0 14px; padding: 0 0 11px; font-size: 16px; line-height: 1.35;
  }
  header#banner.site-header nav.top-nav ul.publications-submenu ul {
    display: flex; flex-direction: column; align-items: stretch; gap: 5px;
    margin: 0; padding: 0;
  }
  header#banner.site-header nav.top-nav ul.publications-submenu li li { margin: 0; padding: 0; }
  header#banner.site-header nav.top-nav ul.publications-submenu a {
    display: block; padding: 9px 11px; font-size: 15px; line-height: 1.5;
  }
}
@media (max-width: 700px) {
  header#banner.site-header nav.top-nav ul.publications-submenu {
    right: auto; left: 50%; width: min(520px, calc(100vw - 28px));
    max-width: calc(100vw - 28px); align-items: start;
  }
  header#banner.site-header nav.top-nav ul.publications-submenu h3 { font-size: 15px; }
  header#banner.site-header nav.top-nav ul.publications-submenu a { font-size: 14px; }
}


/* ===== Mega menu hover stability fix ===== */
@media (min-width: 701px) {
  header#banner.site-header nav.top-nav ul.publications-submenu {
    top: calc(100% + 14px);
    transform: scale(.99);
    transform-origin: top right;
  }
  header#banner.site-header nav.top-nav ul.publications-submenu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -16px;
    height: 16px;
  }
  header#banner.site-header nav.top-nav .nav-dropdown:hover > ul.publications-submenu,
  header#banner.site-header nav.top-nav .nav-dropdown:focus-within > ul.publications-submenu,
  header#banner.site-header nav.top-nav .nav-dropdown.is-open > ul.publications-submenu {
    transform: scale(1);
  }
}


/* ===== Publications dropdown chevron: alignment and animation refinement ===== */
header#banner.site-header nav.top-nav .nav-dropdown {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

header#banner.site-header nav.top-nav .nav-dropdown > a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  line-height: 1.2;
}

header#banner.site-header nav.top-nav .dropdown-toggle {
  display: inline-flex;
  flex: 0 0 18px;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 34px;
  min-height: 34px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: 1;
  cursor: pointer;
  transform: none;
  transition: background-color 180ms ease, opacity 180ms ease;
}

header#banner.site-header nav.top-nav .dropdown-toggle span {
  display: block;
  width: 7px;
  height: 7px;
  margin: -3px 0 0;
  padding: 0;
  border: 0;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  background: transparent;
  font-size: 0;
  line-height: 0;
  transform: rotate(45deg);
  transform-origin: center;
  transition: transform 180ms cubic-bezier(.2, .7, .3, 1);
}

header#banner.site-header nav.top-nav .nav-dropdown.is-open .dropdown-toggle span,
header#banner.site-header nav.top-nav .dropdown-toggle[aria-expanded="true"] span {
  margin-top: 3px;
  transform: rotate(225deg);
}

header#banner.site-header nav.top-nav .dropdown-toggle:hover {
  background-color: rgba(0, 125, 250, .08);
}

header#banner.site-header nav.top-nav .dropdown-toggle:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  header#banner.site-header nav.top-nav .nav-dropdown > a {
    min-height: 25px;
  }

  header#banner.site-header nav.top-nav .dropdown-toggle {
    height: 25px;
    min-height: 25px;
  }
}

@media (prefers-reduced-motion: reduce) {
  header#banner.site-header nav.top-nav .dropdown-toggle,
  header#banner.site-header nav.top-nav .dropdown-toggle span {
    transition: none;
  }
}


/* ===== Final fix: close Publications mega menu after submenu link click =====
   The menu is controlled by the .is-open class. Hover/focus must not reopen it
   after JavaScript removes that class when a submenu link is clicked.
*/
header#banner.site-header nav.top-nav
.nav-dropdown:hover:not(.is-open) > ul.publications-submenu,
header#banner.site-header nav.top-nav
.nav-dropdown:focus-within:not(.is-open) > ul.publications-submenu {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

header#banner.site-header nav.top-nav
.nav-dropdown.is-open > ul.publications-submenu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

@media (min-width: 701px) {
  header#banner.site-header nav.top-nav
  .nav-dropdown:hover:not(.is-open) > ul.publications-submenu,
  header#banner.site-header nav.top-nav
  .nav-dropdown:focus-within:not(.is-open) > ul.publications-submenu {
    transform: scale(.99) !important;
  }

  header#banner.site-header nav.top-nav
  .nav-dropdown.is-open > ul.publications-submenu {
    transform: scale(1) !important;
  }
}

@media (max-width: 700px) {
  header#banner.site-header nav.top-nav
  .nav-dropdown:hover:not(.is-open) > ul.publications-submenu,
  header#banner.site-header nav.top-nav
  .nav-dropdown:focus-within:not(.is-open) > ul.publications-submenu {
    transform: translate(-50%, -8px) scale(.985) !important;
  }

  header#banner.site-header nav.top-nav
  .nav-dropdown.is-open > ul.publications-submenu {
    transform: translate(-50%, 0) scale(1) !important;
  }
}
