:root { --ink: #1d1d1b; --soft: #6b6b66; --line: #e4e2dc; --page: #faf9f6; --link: #2f5d62; }
@media (prefers-color-scheme: dark) {
  :root { --ink: #ecebe6; --soft: #a3a29b; --line: #33332f; --page: #161614; --link: #8fc1c7; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--page); color: var(--ink); font: 16px/1.6 Georgia, "Times New Roman", serif; }
header, main, footer { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
header { padding-top: 48px; padding-bottom: 12px; }
h1 { margin: 0 0 8px; font-size: 28px; font-weight: normal; letter-spacing: .01em; overflow-wrap: anywhere; }
h2 { margin: 48px 0 16px; font-size: 20px; font-weight: normal; border-bottom: 1px solid var(--line); padding-bottom: 8px; }
p { max-width: 62ch; color: var(--soft); }
a { color: var(--link); }
nav a { margin-right: 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.grid a { display: block; background: var(--line); aspect-ratio: 4 / 3; overflow: hidden; }
.grid img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sets { list-style: none; margin: 0; padding: 0; }
.sets li { padding: 10px 0; border-bottom: 1px solid var(--line); }
.sets span { color: var(--soft); margin-left: 8px; }
footer { margin-top: 56px; padding-bottom: 40px; font-size: 14px; }
