:root{
  --bg:#0f1720;
  --card:#0b1320;
  --muted:#9aa4b2;
  --accent:#2dd4bf;
  --gap:12px;
  --radius:8px;
  --maxwidth:1200px;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background: #f5f7fa;
  color:#0f1720;
  -webkit-font-smoothing:antialiased;
}
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px;
  background: linear-gradient(90deg, #ffffff, #f7fafc);
  border-bottom:1px solid rgba(0,0,0,0.04);
}
.topbar h1 { margin:0; font-size:1.1rem; }
.controls { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.filter label { margin-right:8px; font-size:0.95rem; color:var(--muted); }
.search input[type="search"]{
  padding:8px 12px;
  border-radius:8px;
  border:1px solid #e3e7ee;
  min-width:220px;
}

/* main layout */
main{ max-width: var(--maxwidth); margin:20px auto; padding:0 16px; }
.grid-section h2 { margin: 4px 0 10px 0; font-size:1rem; color:#111827; }
.grid {
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  align-items:start;
}

/* card (poster) */
.card {
  display:block;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
  box-shadow: 0 6px 18px rgba(16,24,40,0.06);
  text-decoration:none;
  transition: transform .15s ease, box-shadow .15s ease;
}
.card img {
  width:100%;
  height:210px;
  object-fit:cover;
  display:block;
}
.card:hover { transform: translateY(-6px); box-shadow: 0 12px 26px rgba(16,24,40,0.12); }

.empty { color:var(--muted); padding:20px; }

/* pagination */
.pagination { display:flex; gap:8px; margin-top:16px; flex-wrap:wrap; align-items:center; }
.page-link {
  padding:8px 10px;
  border-radius:8px;
  text-decoration:none;
  color:#374151;
  border:1px solid #e6e9ef;
  background:#fff;
}
.page-link.active { background:var(--accent); color:#fff; border-color:transparent; }

/* misc */
.hidden{ display:none; }

/* responsive tweaks */
@media (max-width:600px){
  .card img { height:160px; }
  .search input[type="search"] { min-width:120px; width:100%; }
}