:root { --header: #575c5f; --nav: #102d43; --nav-active: #1d425d; --page: #fff; --outer: #d1d1d1; --ink: #000; --heading: #000; --link: #1757ad; --line: #dbdbdb;  --max-width: 100%; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--outer); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.48; }
a { color: var(--link); text-decoration: none; } a:hover { text-decoration: underline; }
.skip-link { position: fixed; z-index: 10; top: .5rem; left: .5rem; padding: .55rem .75rem; background: #fff; color: #111; transform: translateY(-150%); }.skip-link:focus { transform: translateY(0); }
.site-header { height: 360px; padding-top: 10px; background: var(--header); box-shadow: 0 3px 6px rgba(0,0,0,.38); }.title-wrap { width: min(var(--max-width), calc(100% - 2rem)); margin: 0 auto; }.title-wrap a { color: #fff; font-size: 38px; font-weight: 400; letter-spacing: -.8px; }.title-wrap a:hover { text-decoration: none; }
.site-shell { width: min(var(--max-width), calc(100% - 2rem)); margin: -280px auto 48px; }.hero { height: 310px; background: url('assets/hero-home.webp') center 56% / cover no-repeat; border: 1px solid rgba(0,0,0,.38); }
.site-nav { position: sticky; top: 0; z-index: 100; display: flex; align-items: stretch; min-height: 50px; margin: 0 -18px; padding: 0 10px; background: var(--nav); box-shadow: 0 5px 0 #0a1c2b; }.site-nav::before, .site-nav::after { position: absolute; top: 100%; width: 0; height: 0; content: ''; border-top: 18px solid #091a27; }.site-nav::before { left: 0; border-right: 18px solid transparent; }.site-nav::after { right: 0; border-left: 18px solid transparent; }
.site-nav a { display: flex; align-items: center; padding: 0 26px; color: #fff; font-size: 16px; font-weight: 600; white-space: nowrap; transition: background-color 0.3s ease;}.site-nav a:hover, .site-nav a.active { background: var(--nav-active); color: #fff; text-decoration: none; }
.page-content { min-height: 700px; padding: 49px 38px 60px; background: var(--page); }.page-content h1 { margin: 0 0 18px; color: var(--heading); font-size: 26px; line-height: 1.2; }.page-content h2 { margin: 0 0 20px; color: var(--heading); font-size: 23px; line-height: 1.25; }.page-content h3 { margin: 22px 0 11px; color: #555; font-size: 18px; }.page-content p { margin: 0 0 20px; }.page-content hr { height: 1px; margin: 38px 0; border: 0; background: var(--line); }
.home-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 42px; }.news-column { padding-left: 0; }.news-column h1 { margin-bottom: 20px; }.news-item { display: grid; grid-template-columns: 155px 1fr; gap: 24px; align-items: start; padding: 0 0 27px; margin-bottom: 27px; border-bottom: 1px solid var(--line); }.news-item img { width: 155px; height: 142px; object-fit: cover; }.news-item p { margin: 0; text-align: left; }.contact-card { display: flex; gap: 30px; align-items: flex-start; }.contact-card img { width: 188px; height: 252px; object-fit: cover; border: 1px solid #d2d2d2; }.contact-card address { margin: 0; font-style: normal; }.partner-row { display: flex; gap: 46px; margin-top: 46px; align-items: center; }.placeholder-mark { display: grid; place-items: center; width: 235px; height: 110px; color: #154d94; border: 3px solid #1e5da3; font-size: 44px; font-weight: 800; letter-spacing: 2px; }.placeholder-mark.narrow { width: 160px; font-size: 30px; line-height: .9; text-align: center; }
.two-column { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: 50px; }.side-image { width: 100%; height: 220px; margin: 0 0 18px; object-fit: cover; }.callout { padding: 22px; margin: 25px 0; background: #efefef; border-left: 5px solid var(--nav-active); }.research-list { padding-left: 25px; }.research-list li { padding: 0 0 20px 8px; }.panel-title { margin: 0 0 24px; font-size: 33px !important; }
.group-intro { max-width: 900px; }.group-visual { float: right; width: 36%; min-width: 260px; height: 210px; margin: 0 0 20px 34px; object-fit: cover; }.member-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 19px; clear: both; }.member-card { padding: 12px; background: #eee; }.member-card img { width: 100%; height: 128px; object-fit: cover; }.member-card h3 { margin: 10px 0 4px; }.member-card p { margin: 0; font-size: 14px; }
.publication-tools { display: flex; flex-wrap: wrap; gap: 25px; margin: -4px 0 25px; }.publication-tools a { font-weight: 600; }.publication-list { margin: 0; padding: 0; list-style: none; }.publication-list li { display: grid; grid-template-columns: 66px 1fr; gap: 0; padding: 18px 17px; }.publication-list li:nth-child(odd) { background: #dedede; }.publication-number { font-weight: 700; }.citation { margin: 0; }.citation em { display: block; margin-top: 4px; }.citation a { font-weight: 600; }
.cv-section { display: grid; grid-template-columns: 155px 1fr; gap: 18px; margin-bottom: 25px; }.cv-date { text-align: right; font-weight: 600; }.cv-section p { margin: 0; }.cv-section ul { margin: 0; padding-left: 21px; }.cv-section li { margin-bottom: 8px; }.cv-heading { margin: 31px 0 22px !important; }
.book-layout { display: grid; grid-template-columns: 220px 1fr; gap: 34px; align-items: start; }.book-cover { width: 220px; height: 320px; object-fit: cover; border: 1px solid #c7c7c7; }.book-copy p { margin-bottom: 18px; }.corrections { width: 100%; border-collapse: collapse; margin-top: 26px; }.corrections th, .corrections td { padding: 10px; border: 1px solid #d4d4d4; text-align: left; }.corrections th { background: #e3e3e3; }
.site-footer { padding: 18px 38px; color: #e8e8e8; background: #54595c; font-size: 13px; }
@media (max-width: 980px) { .site-header { height: 320px; }.site-shell { margin-top: -214px; }.site-nav { overflow-x: auto; }.site-nav a { padding: 0 18px; }.home-layout, .two-column { grid-template-columns: 1fr; }.news-column { border-top: 1px solid var(--line); padding-top: 36px; }.group-visual { float: none; width: 100%; height: 240px; margin: 0 0 22px; }.member-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 650px) { body { font-size: 15px; }.site-header { height: 225px; padding-top: 24px; }.title-wrap a { font-size: 29px; }.site-shell { width: calc(100% - 1rem); margin-top: -165px; }.hero { height: 205px; }.site-nav { min-height: 60px; margin: 0 -8px; padding: 0 8px; }.site-nav::before, .site-nav::after { top: 60px; }.site-nav a { padding: 0 13px; font-size: 14px; }.page-content { padding: 35px 21px 45px; }.page-content h1 { font-size: 24px; }.news-item { grid-template-columns: 100px 1fr; gap: 15px; }.news-item img { width: 100px; height: 105px; }.contact-card { flex-direction: column; }.contact-card img { width: 155px; height: 190px; }.partner-row { flex-wrap: wrap; gap: 15px; }.placeholder-mark { width: 170px; height: 85px; font-size: 32px; }.member-grid { grid-template-columns: 1fr; }.book-layout { grid-template-columns: 1fr; }.book-cover { width: 190px; height: 260px; }.cv-section { grid-template-columns: 1fr; gap: 4px; }.cv-date { text-align: left; }.site-footer { padding: 16px 21px; } }
.site-nav a.active {
    view-transition-name: active-nav-tab;
}

/* Polish: anchor offset under the sticky nav, readable line length, focus, motion */
html{scroll-padding-top:3.5rem}
body{line-height:1.56;-webkit-font-smoothing:antialiased}
.page-content p,.page-content li{text-wrap:pretty}
.rp-lede{max-width:56rem}.rp-main{max-width:52rem}
a:focus-visible,button:focus-visible{outline:2px solid #1757ad;outline-offset:2px}
.site-nav a:focus-visible{outline:2px solid #fff;outline-offset:-5px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Research: prose left, expandable details right on wide screens */
@media (min-width:1100px){
  .rp-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0 2.4rem;align-items:start}
  .rp-main{max-width:none}
  .rp-side details:first-child{margin-top:1.4em}
}
