body {
  background: white;
  font-family: Georgia, serif;
  margin: 0;
  color: #111;
}
.site-shell {
  display: grid;
  grid-template-columns: 215px minmax(0, 920px);
  gap: 0;
  align-items: start;
  width: min(1160px, 100%);
}
#layout-menu {
  box-sizing: border-box;
  min-height: 100vh;
  height: 100vh;
  position: sticky;
  top: 0;
  background: #f6f6f6;
  border-right: 1px solid #dddddd;
  padding: 0.7em 12px 1.5em;
  font-size: 1em;
}
#layout-content {
  box-sizing: border-box;
  padding: 0 1.35em 2em;
  max-width: 920px;
}
#layout-menu a { line-height: 1.5em; margin-left: 0.5em; }
a { color: #3f68a8; text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; text-underline-offset: 0.14em; }
a:focus-visible, button:focus-visible { outline: 2px solid #224b8d; outline-offset: 2px; }
#layout-menu a.current { color: #022b6d; border-bottom: 1px gray solid; }
#layout-menu a { color: #3f68a8; }
div.menu-category {
  border-bottom: 1px solid gray;
  margin-top: 0.8em;
  padding: 0.2em 0 0.1em;
  font-weight: bold;
}
div.menu-category.site-name { margin-top: 0; font-size: 1.02em; }
div.menu-category.secondary { margin-top: 1.6em; }
div.menu-item { padding-left: 16px; text-indent: -16px; }
div#toptitle {
  padding-bottom: 0;
  margin-bottom: 1.2em;
}
div#toptitle h1 { margin-bottom: 0; }
h1, h2, h3 {
  border-bottom: none;
  color: #3f68a8;
  margin-top: 0.7em;
  margin-bottom: 0.3em;
  padding-bottom: 0.2em;
  line-height: 1.08;
  padding-top: 0.5em;
}
h1 { font-size: 165%; }
h2 { padding-top: 0.8em; font-size: 125%; border-bottom: none; }
h3 { font-size: 110%; border-bottom: none; }
p { margin-top: 0; margin-bottom: 0.8em; padding: 0; line-height: 1.35; }
ul, ol, dl { margin-top: 0.2em; padding-top: 0; margin-bottom: 0.8em; }
ul { list-style-position: outside; list-style-type: square; }
li p { margin-bottom: 0.45em; }
img { max-width: 100%; height: auto; }
#img-container img { display: block; width: auto; height: auto; }
#img-container img.home-photo { max-width: 267px; max-height: 400px; }
#img-container img.content-photo { max-width: 520px; max-height: 300px; }
#text-img-container { display: flex; gap: 1.1em; align-items: flex-start; }
#img-container { flex: 0 0 auto; }
#text-container { flex: 1 1 340px; min-width: 250px; }
.topic-jump { margin: 0.5em 0 1.4em; line-height: 1.55; }
.topic-jump a { white-space: nowrap; }
.topic-jump a:not(:last-child)::after { content: " · "; color: #666; border: 0; }
.publication-list { padding-left: 1.35em; }
.publication-list > li { margin-bottom: 0.95em; }
.structure-note { color: #666; font-style: italic; }
.group-list > li { margin-bottom: 0.45em; }
.group-intro { max-width: 760px; }
.note-list > li { margin-bottom: 0.9em; }
.meta { color: #555; }
.back-link { margin-top: 1.4em; }
/* Media entries: compact paragraphs rather than publication bullets */
.media-list {
  list-style: none;
  margin: 0 0 1em;
  padding-left: 0;
}
.media-list > li {
  margin: 0 0 1.05em;
  padding: 0;
}
.media-list > li p { margin: 0; }

@media (max-width: 760px) {
  .site-shell { display: block; width: 100%; }
  #layout-menu {
    position: static;
    height: auto;
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid #dddddd;
    padding-bottom: 0.85em;
  }
  #layout-menu nav { display: flex; flex-wrap: wrap; column-gap: 1em; row-gap: 0.15em; }
  #layout-menu .menu-item { padding-left: 0; text-indent: 0; }
  #layout-menu a { margin-left: 0; }
  div.menu-category.secondary { margin-top: 0.8em; }
  #layout-content { padding: 0 1em 2em; }
  #text-img-container { display: block; }
  #img-container { max-width: 100%; }
  #img-container img.home-photo, #img-container img.content-photo { max-width: 100%; }
  #text-container { min-width: 0; }
}

.compact-heading {
  border-bottom: none;
  padding-top: 0.35em;
  margin-top: 0.9em;
  margin-bottom: 0.35em;
}

/* Research landing pages */
.paper-citation { margin: 0.25em 0 1em; }
.paper-citation p > b:first-child { display: none; }
.paper-citation p > b:first-child + br { display: none; }
.paper-topics { color: #555; line-height: 1.5; }
.paper-title-link { color: inherit; }
.paper-title-link:hover { color: #224b8d; }


/* Compact navigation with accessible fly-out submenus */
#layout-menu { overflow: visible; }
#layout-menu nav { position: relative; }
#layout-menu .menu-item.parent { padding-left: 16px; text-indent: -16px; }
#layout-menu .menu-group { position: relative; }
#layout-menu .menu-item.has-submenu { display: flex; align-items: center; }
#layout-menu .menu-item.has-submenu > a { flex: 0 1 auto; }
#layout-menu .submenu-toggle {
  box-sizing: border-box;
  min-width: 24px;
  min-height: 24px;
  margin: 0 0 0 0.08em;
  padding: 0;
  border: 0;
  background: transparent;
  color: #666;
  font: inherit;
  line-height: 1;
  cursor: pointer;
}
#layout-menu a.section-current { color: #315f9f; }
#layout-menu .menu-item.utility-start { margin-top: 0.65em; }

#layout-menu .submenu {
  position: absolute;
  z-index: 20;
  left: calc(100% - 1px);
  top: -0.35em;
  min-width: 175px;
  box-sizing: border-box;
  padding: 0.28em 0;
  background: white;
  border: 1px solid #888888;
}
#layout-menu .submenu[hidden] { display: none; }
#layout-menu .submenu a {
  display: block;
  box-sizing: border-box;
  margin: 0;
  padding: 0.24em 0.70em;
  color: #3f68a8;
  line-height: 1.35;
  white-space: nowrap;
}
#layout-menu .submenu a:hover,
#layout-menu .submenu a:focus-visible {
  border-bottom: 0;
  background: #f6f6f6;
}
#layout-menu .submenu a.current {
  color: #022b6d;
  border-bottom: 0;
  text-decoration: underline;
  text-decoration-color: #666;
  text-underline-offset: 0.16em;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.skip-link {
  position: absolute;
  left: 0.5em;
  top: 0.5em;
  z-index: 100;
  padding: 0.45em 0.65em;
  background: white;
  color: #111;
  border: 2px solid #224b8d;
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }
#layout-content:focus { outline: none; }

/* Short CV: deliberately quiet and compact */
/* On touch-sized screens, the arrow button expands the submenu inline. */
@media (max-width: 760px) {
  #layout-menu .menu-item.has-submenu { display: flex; width: max-content; max-width: 100%; }
  #layout-menu .submenu {
    position: static;
    min-width: 0;
    margin: 0.1em 0 0.2em 0.8em;
    padding: 0.1em 0 0.1em 0.55em;
    border: 0;
    border-left: 2px solid #888888;
    background: transparent;
  }
  #layout-menu .submenu a { padding: 0.12em 0.35em; white-space: normal; }
}
