:root { color-scheme: light; }
* { box-sizing: border-box; }
body { max-width: 740px; margin: 56px auto 72px; padding: 0 26px; color: #262626; background: #fff; font: 17px/1.65 Georgia, 'Times New Roman', serif; }
a { color: #315c80; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: #183c5b; }
.supervisors a { text-decoration: none; }
.supervisors a:hover, .supervisors a:focus-visible { text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 2px solid #315c80; outline-offset: 5px; }
h1, h2, h3, .site-name, .site-nav, button { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
h1 { margin: 0 0 7px; font-size: 32px; line-height: 1.25; font-weight: 600; letter-spacing: -.02em; }
h2 { margin: 32px 0 12px; font-size: 21px; line-height: 1.35; font-weight: 600; }
h3 { margin: 0 0 3px; font-size: 16px; line-height: 1.5; font-weight: 600; }
p { margin: 0 0 16px; }
.site-header { margin-bottom: 28px; }
.site-name { display: inline-block; margin-bottom: 12px; color: #262626; font-size: 22px; font-weight: 600; text-decoration: none; }
.site-nav { display: flex; flex-wrap: wrap; gap: 22px; border-bottom: 1px solid #ddd; padding-bottom: 14px; font-size: 14px; }
.site-nav a { text-decoration: none; }
.site-nav a[aria-current="page"] { color: #262626; text-decoration: underline; }
.subtitle, .muted, .date { color: #606060; }
.subtitle { margin: 0 0 20px; }
.entry { margin: 0 0 22px; }
.entry p { margin: 3px 0; }
.date { font-size: 15px; }
ul { margin: 8px 0 22px; padding-left: 22px; }
li { margin-bottom: 8px; }
.thesis-title { font-style: italic; }
.contact { margin-top: 30px; }
.print-button { padding: 6px 10px; border: 1px solid #aaa; border-radius: 2px; background: #fff; color: #333; font-size: 13px; cursor: pointer; }
.print-button:hover { background: #f5f5f5; }
.skip { position: absolute; top: -100px; }
.skip:focus { top: 8px; background: #fff; padding: 5px; }
.introduction { display: grid; grid-template-columns: minmax(0, 1fr) 184px; align-items: start; gap: 30px; }
.introduction-text p:last-child { margin-bottom: 0; }
.portrait-frame, .graduation-frame { overflow: hidden; aspect-ratio: 4 / 5; }
.portrait-frame img, .graduation-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portrait-frame img { object-position: 55% 35%; transform: scale(1.45); transform-origin: 55% 35%; }
.degree-with-photo { display: grid; grid-template-columns: minmax(0, 1fr) 160px; align-items: start; gap: 26px; }
.graduation-photo { margin: 0; }
.graduation-frame img { object-position: 52% 25%; transform: scale(1.5); transform-origin: 52% 25%; }
@media (max-width: 620px) {
  .introduction, .degree-with-photo { grid-template-columns: 1fr; gap: 20px; }
  .portrait-frame { width: 170px; }
  .graduation-photo { width: 160px; }
}
@media (max-width: 520px) {
  body { margin: 28px auto 42px; padding: 0 22px; font-size: 16px; }
  h1 { font-size: 29px; }
  .site-header { margin-bottom: 24px; }
}
@media print {
  @page { size: A4; margin: 18mm; }
  body { max-width: none; margin: 0; padding: 0; font-size: 10pt; line-height: 1.5; }
  .site-header, .skip, .print-button, .graduation-photo, .portrait-frame { display: none; }
  .introduction, .degree-with-photo { display: block; }
  h1 { font-size: 24pt; } h2 { font-size: 15pt; margin-top: 20px; } h3 { font-size: 10pt; }
  .entry { break-inside: avoid; margin-bottom: 15px; }
  .date { font-size: 9pt; }
  a { color: inherit; text-decoration: none; }
}
