* { box-sizing: border-box; }
body { margin: 0; color: #30363b; background: #80c2e9; font: 16px/1.65 system-ui, -apple-system, sans-serif; }
.site-shell { max-width: 1000px; margin: 0 auto; min-height: 100vh; background: white; }
.rainbow-banner { height: 288px; background: url('rainbow.png') center center / cover no-repeat; }
nav { display: flex; gap: 0; background: linear-gradient(#272727, #101010); padding-left: 70px; }
nav a { color: white; display: block; padding: 12px 18px; text-decoration: none; font-size: .9rem; }
nav a:hover, nav a:focus { background: #414141; }
.content { max-width: 760px; margin: 0 auto; padding: 48px 24px 85px; }
a { color: #145b8e; }
h1 { font-size: 2rem; line-height: 1.25; margin: 0 0 1rem; }
.contact-block { display: flex; align-items: flex-start; gap: 22px; margin: 34px 0; }
.contact-block dl { display: grid; grid-template-columns: 125px 1fr; margin: 0; flex: 1; }
.contact-block dt, .contact-block dd { padding: 7px 0; margin: 0; border-top: 1px solid #ddd; }
.contact-block dt { font-weight: 700; }
.portrait { width: 180px; height: 240px; object-fit: cover; }
footer { border-top: 1px solid #ddd; text-align: center; padding: 24px; font-size: .84rem; }
.bibentry { width: 100%; border: 0; border-top: 1px solid #d9e0e6; margin: 22px 0 0; padding-top: 15px; border-collapse: separate; border-spacing: 0; }
.bibentry td { padding: 10px 10px 4px 0; vertical-align: top; }
.bibentry tr:first-child td:first-child { width: 78%; }
.bibentry td > strong:first-child { display: block; color: #17324a; }
.venue-line { line-height: 1.45; }
.bibentry .paper-link { display: inline-block; white-space: nowrap; margin: 0 5px 5px 0; }
summary { cursor: pointer; color: #145b8e; }
.abstract { margin: 10px 0 16px; font-size: .94rem; }
.new-publication { border-top: 1px solid #d9e0e6; padding: 16px 0 22px; }
.new-publication h2 { margin: 0; color: #17324a; font-size: 1.12rem; line-height: 1.4; }
.new-publication p { margin: 7px 0; }
@media (max-width: 600px) { .rainbow-banner { height: 30vw; min-height: 100px; } nav { padding-left: 0; justify-content: center; } .content { padding-top: 28px; } .contact-block { flex-direction: column-reverse; } .contact-block dl { width: 100%; grid-template-columns: 105px 1fr; } .portrait { width: 150px; height: 200px; } .bibentry tr:first-child td:first-child { width: auto; } .bibentry td { display: block; padding: 4px 0; } }
