:root{
  --paper:#f7f1e6;
  --cream:#fffaf1;
  --ink:#2b2118;
  --muted:#6a5a47;
  --teal:#173f46;
  --gold:#b58a45;
}

*{
  box-sizing:border-box;
}

body{
  margin:0;
  background:linear-gradient(#fbf7ef,#efe4d2);
  color:var(--ink);
  font-family:Georgia, "Times New Roman", serif;
}

.page{
  width:min(1320px,92%);
  margin:auto;
}

header{
  text-align:center;
  padding:64px 0 42px;
}

.site-title{
  margin:0;
  color:var(--teal);
  font-size:clamp(3rem,7vw,6rem);
  font-weight:500;
  letter-spacing:.015em;
}

.tagline{
  margin:18px auto 0;
  max-width:760px;
  color:var(--muted);
  font-size:clamp(1.05rem,2vw,1.35rem);
  font-style:italic;
  line-height:1.55;
}

.section{
  margin:62px 0;
}

.section h2{
  text-align:center;
  color:var(--teal);
  font-size:1.35rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:500;
  margin:0 0 30px;
}

.grid{
  display:grid;
  gap:30px;
  justify-content:center;
}

.grid.four{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.grid.three{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  max-width:980px;
  margin:auto;
}

.card{
  text-decoration:none;
  color:var(--ink);
  text-align:center;
}

.card img{
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
  display:block;
  border-radius:16px;
  border:1px solid rgba(181,138,69,.35);
  background:var(--cream);
  box-shadow:0 12px 28px rgba(43,33,24,.16);
  transition:transform .25s ease, box-shadow .25s ease;
}

.card:hover img{
  transform:translateY(-4px);
  box-shadow:0 18px 38px rgba(43,33,24,.22);
}

.card h3{
  margin:15px 0 0;
  font-size:clamp(1.1rem,1.7vw,1.35rem);
  font-weight:500;
  line-height:1.3;
}

footer{
  text-align:center;
  padding:40px 0 50px;
  color:#7a6a58;
  font-size:.95rem;
}

@media(max-width:950px){
  .grid.four,
  .grid.three{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .grid.three{
    max-width:none;
  }
}

@media(max-width:560px){
  .page{
    width:min(92%,420px);
  }

  header{
    padding:42px 0 28px;
  }

  .section{
    margin:46px 0;
  }

  .grid.four,
  .grid.three{
    grid-template-columns:1fr;
  }
}

.author-credit {
    margin-top: 0.25rem;
    margin-bottom: 0.75rem;
    font-size: 1.15rem;
    opacity: 0.8;
}