*{box-sizing:border-box}body{margin:0;background:#f5f5f5;color:#333;font:15px/1.6 Arial,Helvetica,sans-serif}.page{max-width:980px;margin:36px auto;background:white;border:1px solid #ddd;padding:34px 44px 0}a{color:#24577f;text-underline-offset:3px}a:hover{color:#103b5e}a:focus-visible{outline:2px solid #24577f;outline-offset:4px}.skip{position:absolute;top:-60px;left:20px;background:white;padding:10px}.skip:focus{top:10px}h1{font-size:30px;line-height:1.25;font-weight:400;color:#314f67;margin:0 0 25px}nav{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid #ddd;border-bottom:1px solid #ccc;padding:0;margin-bottom:31px}nav a{display:block;padding:10px 15px;text-decoration:none;font-size:14px}nav a:first-child{padding-left:12px}nav a[aria-current]{background:#edf2f5;color:#234d6d;font-weight:bold}nav a:hover{background:#f3f5f7;text-decoration:underline}h2{font-size:20px;font-weight:400;color:#314f67;margin:0 0 23px;padding-bottom:8px;border-bottom:1px solid #ddd}.contact-layout{display:grid;grid-template-columns:160px 1fr;gap:30px;align-items:start}.portrait{width:160px;height:auto;min-height:160px;display:block;background:#f5f5f5;color:#555;font-size:13px}.contact-info p{margin:0 0 16px}.contact-info strong{font-size:17px;font-weight:600}.contact-info .lab{margin-bottom:0}.news{margin-top:36px}.news h2{margin-bottom:0}.news article{padding:19px 0;border-bottom:1px solid #eee}.news article:last-child{border-bottom:0}h3{font-size:15px;font-weight:600;line-height:1.6;margin:0 0 5px}.news a{font-size:14px}footer{border-top:1px solid #ddd;margin-top:34px;padding:17px 0;color:#777;font-size:12px}@media(max-width:700px){body{background:white}.page{margin:0;border:0;padding:26px 22px 0}h1{font-size:26px;margin-bottom:21px}nav{margin-bottom:27px}nav a{padding:10px 12px;font-size:13px}.contact-layout{grid-template-columns:120px 1fr;gap:22px}.portrait{width:120px;min-height:120px}.contact-info{font-size:14px}.contact-info a{overflow-wrap:anywhere}.news{margin-top:30px}}@media(max-width:440px){.contact-layout{grid-template-columns:1fr;gap:22px}.portrait{width:125px;min-height:125px}h1{font-size:25px}.contact-info{font-size:15px}h2{font-size:19px}nav a{padding:10px 11px}.news article{padding:18px 0}footer{margin-top:25px}} 

/* Content pages */
.content{overflow-wrap:anywhere}.content h2{margin:30px 0 20px}.content h2:first-child{margin-top:0}.content h3{font-size:17px;color:#314f67;margin:26px 0 12px}.content h4{font-size:15px;color:#314f67;margin:22px 0 10px}.content p{margin:0 0 16px}.content ul,.content ol{padding-left:24px;margin:12px 0 22px}.content li{margin-bottom:10px}.content img{max-width:100%;height:auto}.content table{max-width:100%;border-spacing:12px 4px}.content .imgProg{margin:22px 0}.content .titleImg{font-size:14px;color:#555;margin-bottom:8px}.content [id]{scroll-margin-top:20px}.profile-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding:0 0 10px}.content iframe{max-width:100%}


/* Subtle blue accents — optional colour variant */
:root {
  --site-blue: #205b82;
  --site-blue-dark: #163f5b;
  --site-hover: #086c78;
  --site-blue-tint: #f0f6fa;
  --site-rule: #d5e2eb;
}

.page > header h1 {
  color: var(--site-blue-dark);
}

.page a {
  color: var(--site-blue);
  text-decoration-color: #9ab9cf;
}

.page a:hover {
  color: var(--site-hover);
  text-decoration-color: currentColor;
}

.page a:focus-visible,
.page summary:focus-visible {
  outline: 2px solid var(--site-blue);
  outline-offset: 4px;
}

/* Scoped to the main menu, leaving publication-category navigation intact. */
.page > header > nav {
  border-top-color: var(--site-rule);
  border-bottom-color: var(--site-rule);
}

.page > header > nav a {
  color: #3e5668;
}

.page > header > nav a:hover {
  color: var(--site-blue-dark);
  background: var(--site-blue-tint);
  text-decoration: none;
}

.page > header > nav a[aria-current="page"] {
  color: var(--site-blue-dark);
  background: var(--site-blue-tint);
  box-shadow: inset 0 -3px 0 var(--site-blue);
  text-decoration: none;
}

.page main h2 {
  color: var(--site-blue);
  border-bottom-color: var(--site-rule);
}

/* Extra specificity keeps the colour consistent with page-local CSS. */
.page main.content h3,
.page main.content h4,
.page main.content .publication-results > h3 {
  color: var(--site-blue);
}

.page .bibtex summary {
  color: var(--site-blue);
}

.page .bibtex summary:hover {
  color: var(--site-hover);
}

.page > footer {
  border-top-color: var(--site-rule);
}
