:root {
  --bg: #f6f1e8;
  --card: #fffdf8;
  --ink: #2b2118;
  --muted: #5c4e40;
  --accent: #a3441c;
  --focus: #1d4ed8;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
body {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  line-height: 1.5;
  background: var(--bg);
  color: var(--ink);
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
a:focus-visible, .card:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}
.skip {
  position: absolute;
  left: .6rem;
  top: .6rem;
  padding: .5rem .8rem;
  background: var(--card);
  color: var(--ink);
  transform: translateY(-200%);
  z-index: 10;
}
.skip:focus { transform: none; }
header.site {
  padding: clamp(1.2rem, 4vw, 2.5rem) clamp(1rem, 4vw, 1.2rem) .6rem;
  max-width: 740px;
  margin: 0 auto;
}
header.site h1 { margin: 0; font-size: clamp(1.8rem, 5vw, 2.4rem); font-weight: normal; }
header.site p {
  color: var(--muted);
  margin: .8rem 0 0;
  line-height: 1.45;
}
.act {
  max-width: 1100px;
  margin: 1.8rem auto .2rem;
  padding: 0 clamp(1rem, 4vw, 1.5rem);
  font-size: .95rem;
  font-weight: normal;
  color: var(--muted);
  letter-spacing: .06em;
}
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  gap: 1.2rem;
  max-width: 1100px;
  margin: 0 auto;
  padding: .8rem clamp(1rem, 4vw, 1.5rem) 2rem;
}
.grid:last-of-type { padding-bottom: 3rem; }
.card {
  background: var(--card);
  text-decoration: none;
  color: inherit;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 44px;
}
.card:hover { background: #fff; }
.card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: center;
  background: #ddd;
  display: block;
}
.card .meta { padding: .75rem 1rem 1rem; }
.card .num { font-size: 1.45rem; margin: 0; line-height: 1.15; font-weight: normal; }
.card h2 { font-size: .95rem; margin: .2rem 0 .3rem; font-weight: normal; line-height: 1.3; color: var(--muted); }
.card time { color: var(--muted); font-size: .85rem; }
.back {
  display: inline-block;
  margin: 0 0 .25rem;
  padding: .5rem 0;
  min-height: 44px;
  color: var(--accent);
  text-decoration: none;
}
.back:hover { text-decoration: underline; text-underline-offset: 3px; }
article.post {
  max-width: 740px;
  margin: 0 auto;
  padding: 1rem clamp(1rem, 4vw, 1.2rem) 4rem;
}
article.post a.back { color: var(--accent); }
article.post h1 {
  margin: 0;
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: normal;
  line-height: 1.25;
}
article.post > p time { color: var(--muted); }
.verdict {
  font-size: 1.12rem;
  line-height: 1.45;
  margin: .9rem 0 1.2rem;
}
.verdict strong {
  font-weight: normal;
  color: var(--accent);
}
article.post h2 {
  font-size: 1.15rem;
  font-weight: normal;
  margin: 1.8rem 0 .5rem;
}
article.post img { max-width: 100%; height: auto; }
article.post figure { margin: 1rem 0; }
article.post figcaption { color: var(--muted); font-size: .95rem; }
.thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
  gap: .5rem;
  list-style: none;
  margin: 1.8rem 0 0;
  padding: 0;
}
.thumbs a {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 4px;
  min-height: 44px;
  cursor: zoom-in;
}
.thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lightbox {
  border: 0;
  padding: 0;
  max-width: min(96vw, 1100px);
  background: transparent;
}
.lightbox::backdrop { background: #000c; }
.lightbox img {
  display: block;
  max-width: 96vw;
  max-height: 86vh;
  margin: 0 auto;
}
.lightbox form { text-align: center; margin-top: .6rem; }
.lightbox button {
  font: inherit;
  color: #fff;
  background: transparent;
  border: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  min-height: 44px;
  padding: .4rem .8rem;
}
article.post a { color: var(--accent); }
article.post table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
  margin: 1rem 0 1.5rem;
}
article.post th, article.post td {
  text-align: left;
  vertical-align: top;
  padding: .4rem .6rem .4rem 0;
  border-bottom: 1px solid #2b211818;
}
article.post th { color: var(--muted); font-weight: normal; }
article.post li { margin: .25rem 0; }
.lost { color: var(--muted); font-size: .9em; }
.pager {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 2.5rem;
  padding-top: 1.1rem;
  border-top: 1px solid #2b211822;
}
.pager a { text-decoration: none; max-width: 48%; }
.pager a:hover { text-decoration: underline; text-underline-offset: 3px; }
.pager .later { margin-left: auto; text-align: right; }
footer.site {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 4vw, 1.5rem) 2rem;
  color: var(--muted);
  font-size: .9rem;
}
