:root {
  --paper: #fffaf2;
  --paper-soft: #f7efe3;
  --ink: #1f2937;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: radial-gradient(900px 380px at 15% 0%, rgba(191, 219, 254, 0.42), transparent 46%),
    radial-gradient(850px 320px at 95% 10%, rgba(254, 205, 211, 0.38), transparent 42%),
    var(--paper);
}

a {
  color: inherit;
  text-decoration: none;
}

.featured {
  background: linear-gradient(140deg, rgba(255, 255, 255, 0.86), rgba(247, 239, 227, 0.82));
  border: 1px solid #e5ded3;
}

.tag {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.32rem 0.68rem;
  font-size: 0.78rem;
  font-weight: 600;
}

.tag-red {
  background: #fee2e2;
  color: #b91c1c;
}

.tag-blue {
  background: #dbeafe;
  color: #1d4ed8;
}

.post-card {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid #e5ded3;
  border-radius: 1rem;
  padding: 1.15rem;
}

.post-card .meta {
  margin: 0;
  color: #64748b;
  font-size: 0.86rem;
}

.post-card h2 {
  margin: 0.35rem 0 0.48rem;
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  line-height: 1.2;
}

.post-card p {
  margin: 0;
  color: #475569;
}

.sidebar {
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid #e5ded3;
}

.topic {
  display: block;
  padding: 0.48rem 0.62rem;
  border-radius: 0.65rem;
}

.topic:hover {
  background: var(--paper-soft);
}

.reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: all 0.48s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
