:root{
  --font: "Times New Roman", Times, serif;
  --bg:#fff;
  --text:#111;
  --muted:#777;
  --line:#e7e7e7;

  --sidebar: 220px;
  --max: 1050px;
}

*{ box-sizing:border-box; }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family: var(--font);
  font-size: 11px;
  line-height: 1.35;
  display:flex;
}

.sidebar{
  width: var(--sidebar);
  padding: 18px 14px;
  border-right: 1px solid var(--line);
  position: sticky;
  top: 0;
  height: 100vh;
}

.brand{
  font-weight: normal;
  margin-bottom: 10px;
}

.links{
  display:flex;
  flex-direction:column;
  gap: 8px;
}

.links a{
  color: var(--muted);
  text-decoration:none;
}

.links a.active,
.links a:hover{
  color: var(--text);
  text-decoration: underline;
}

.main{
  flex: 1;
  padding: 18px 18px 60px;
  max-width: var(--max);
}

.icon-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 14px;
  align-items:start;
}

.icon{
  text-decoration:none;
  color: var(--muted);
}

.icon img{
  width:100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display:block;
  border: 1px solid #eee;
}

.caption{
  margin-top: 4px;
}

.icon:hover .caption{
  color: var(--text);
  text-decoration: underline;
}

@media (max-width: 800px){
  body{ display:block; }
  .sidebar{
    width:auto;
    height:auto;
    position:relative;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
}
