:root{
  --paper: #f6f6f6;
  --ink:   #111;
  --ink-2: #333;
  --line:  #d9d9d9;
  --muted: #777;
  --pill:  #ededed;
  --pill-active:#d7d7d7;
}

*{ box-sizing:border-box; }
html, body{ height:100%; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family: Georgia, "Times New Roman", Times, serif;
  line-height:1.5;
}

.visually-hidden{
  position:absolute !important;
  width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

header.header{
  padding: 16px 12px 8px;
  border-bottom:1px solid var(--line);
  text-align:center;
}

h1{
  margin:6px 0 4px;
  font-size: 2rem;
}

.foot {
  text-decoration: none;
  font-weight: bold;
  color: black;
}
.foot:hover { text-decoration: underline; }

.strap{
  margin:0 0 8px;
  color:var(--muted);
  font-style: italic;
  font-size: .95rem;
}

.intro{
  margin: 0 auto 10px;
  max-width: 920px;
  padding: 0 8px;
  color: var(--ink-2);
  font-size: .98rem;
}
.search{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  padding: 6px 6px 10px;
}
.search input[type="search"]{
  min-width: 260px;
  padding: 6px 10px;
  border:1px solid var(--line);
  background:#fff;
  border-radius: 8px;
  font: inherit;
}
.search button{
  border:1px solid var(--line);
  background:var(--pill);
  color:var(--ink-2);
  padding:6px 10px;
  border-radius:999px;
  cursor:pointer;
  font:inherit;
}
.search button:hover{
  background:var(--pill-active);
}

.tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  padding: 8px 6px;
}
.tags button{
  border:1px solid var(--line);
  background:var(--pill);
  color:var(--ink-2);
  padding:6px 10px;
  border-radius:999px;
  cursor:pointer;
  font:inherit;
}
.tags button[aria-pressed="true"]{
  background:var(--pill-active);
  color:var(--ink);
}

main{ padding: 14px 10px 32px; }

.cards{
  display:flex;
  flex-wrap:wrap;
  justify-content:center; 
  gap:12px;
  width:100%;
}

.card{
  border:1px solid var(--line);
  background:#fff;
  padding:12px;
  width:100%;
  max-width: 680px; 
}

.card h2{
  font-size: 1.15rem;
  margin: 0 0 6px;
}

.card h2 a{
  text-decoration: none;
  color: inherit;
}
.card h2 a:hover{
  text-decoration: underline;
}

.meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  align-items:center;
  color:var(--muted);
  font-size:.9rem;
  margin-bottom:8px;
}
.meta ul{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  gap:6px;
}
.meta li{
  border:1px solid var(--line);
  background:var(--pill);
  padding: 2px 8px;
  border-radius:999px;
  font-size:.8rem;
}
.card p{ margin:0 0 10px; }
.card a{ color:inherit; text-decoration-thickness:1px; text-underline-offset:2px; }

.empty{ text-align:center; color:var(--muted); padding: 8px 0; }

footer.footer{
  border-top:1px solid var(--line);
  color:var(--muted);
  text-align:center;
  padding: 12px 10px 24px;
  font-size:.9rem;
}

@media (min-width: 600px){
  .card{ width: calc(50% - 6px); max-width:none; }
}
@media (min-width: 900px){
  .card{ width: calc(33.333% - 8px); }
}
@media (min-width: 1300px){
  .card{ width: calc(25% - 9px); }
}

body.single .cards{ display:block; }
body.single .card{
  width:100% !important;
  max-width: 980px;
  margin: 0 auto;
  padding: 16px;
}
body.single .card h2{ font-size: 1.6rem; }
body.single .card p{ font-size: 1.05rem; }


@media print{
  @page { margin: 12mm; }

  header.header,
  .strap,
  #searchWrap,
  nav.tags{
    display:none !important;
  }

  .cards{ display:block; }
  .card{
    width:100% !important;
    max-width:none;
    border:0;
    padding:0 0 10px;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .card .meta{ display:none !important; }
  .card h2 a{
    text-decoration:none !important;
    color:inherit !important;
    pointer-events:none !important;
  }
  .card a{
    text-decoration:none !important;
    color:inherit !important;
  }

  footer.footer{
    border:0;
    color:#000;
    padding-top:8px;
  }
}
