* { box-sizing: border-box; }
body { max-width: 840px; margin: auto; padding: 0 24px; font-size: 18px; line-height: 1.6; color: #222; }
a { color: #2467b9; text-underline-offset: 3px; }
a:focus-visible { outline: 2px solid; outline-offset: 4px; }
.site-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; border-bottom: 1px solid #ddd; }
.site-title { font-size: 26px; color: inherit; text-decoration: none; }
nav { display: flex; gap: 20px; }
nav a { color: inherit; text-decoration: none; }
nav a:hover, nav a[aria-current="page"] { text-decoration: underline; }
main { padding: 32px 0 56px; }
h1, h2, h3 { line-height: 1.25; }
h1 { margin-top: 0; }
h2 { margin-top: 1.6em; }
img { max-width: 100%; height: auto; }
.home { text-align: center; }
.home img { display: block; width: 500px; margin: 32px auto; }
.meta { color: #666; font-size: 15px; }
.project { margin-bottom: 48px; }
.project img { display: block; margin: 20px auto; }
.site-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; border-top: 1px solid #ddd; padding: 20px 0; font-size: 15px; color: #666; }
.site-footer nav { flex-wrap: wrap; gap: 16px; }
.legal { max-width: 70ch; }
.legal li + li { margin-top: 12px; }
.legal a { overflow-wrap: anywhere; }
.skip-link { position: absolute; top: -100px; background: white; padding: 8px; }
.skip-link:focus { top: 8px; }
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }
@media (max-width: 480px) {
  body { padding: 0 16px; }
  .site-title { font-size: 23px; }
  nav { gap: 14px; font-size: 16px; }
}
@media print {
  .site-header, .site-footer, .skip-link { display: none; }
  body { font-size: 11pt; }
}
