:root{
  --bg: #0b0c10;
  --fg: #f4f5f7;
  --muted: rgba(244,245,247,.75);
  --card: rgba(255,255,255,.06);
  --cardBorder: rgba(255,255,255,.10);
  --shadow: 0 14px 40px rgba(0,0,0,.45);
  --radius: 18px;

  /* layout knobs */
  --max: 1200px;
  --gap: 8px;
  --cards: 6;
}

* { box-sizing: border-box; }
html, body { height: 100%; }

/* ===== BODY ===== */
body {
  margin: 0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background: radial-gradient(1200px 600px at 20% 10%, rgba(255,255,255,.08), transparent 60%),
              radial-gradient(900px 500px at 90% 20%, rgba(255,255,255,.05), transparent 55%),
              var(--bg);
  color: var(--fg);

  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;   /* ✅ vertical centering on non-small screens */
}

/* ===== MAIN CONTAINER ===== */
.wrap{
  width: min(var(--max), 100%);
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 28px 16px 40px;
}

/* ===== HEADER ===== */
header{
  display: grid;
  gap: 8px;
}

h1{
  margin: 0;
  font-size: clamp(22px, 3vw, 30px);
  letter-spacing: .2px;
}

.sub{
  margin: 0;
  color: var(--muted);
  font-size: 15px;
}

/* ===== CARD ROW ===== */
.grid{
  display: flex;
  gap: var(--gap);
  width: 100%;
}

/* ===== CARD ===== */
.card{
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--card);
  border: 1px solid var(--cardBorder);
  box-shadow: var(--shadow);

  flex: 0 0 calc((100% - (var(--cards) - 1) * var(--gap)) / var(--cards));
  min-width: 160px;
}

.card::before{
  content:"";
  display:block;
  aspect-ratio: 3 / 4;
}

.card a{
  position:absolute;
  inset:0;
  display:block;
  color:inherit;
  text-decoration:none;
}

/* ===== MEDIA ===== */
.media{
  position:absolute;
  inset:0;
}

.media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform: scale(1.03);
  transition: filter .3s ease, transform .3s ease;
}

.card:hover img,
.card:focus-within img{
  filter: grayscale(1);
  transform: scale(1.08);
}

/* ===== OVERLAY ===== */
.overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, transparent 45%, rgba(0,0,0,.6));
}

/* ===== LABELS ===== */
.pill{
  position:absolute;
  top:12px;
  left:12px;
  padding:6px 10px;
  font-size:12px;
  background: rgba(0,0,0,.4);
  border-radius: 999px;
}

.label{
  position:absolute;
  bottom:14px;
  left:14px;
  right:14px;
}

.title{
  font-weight:600;
  font-size:16px;
}

.desc{
  font-size:13px;
  color: rgba(244,245,247,.8);
}

/* ===== FOOTER ===== */
footer{
  font-size:12px;
  color: var(--muted);
  display:flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

/* ===== SMALL SCREENS ===== */
@media (max-width: 900px){
  body{
    height: 100vh;
    overflow: hidden;
    align-items: stretch; /* override centering */
  }

  .wrap{
    height: 100%;
  }

  .grid{
    flex: 1;
    align-items: center;      /* vertical centering of cards */
    overflow-x: auto;
    overflow-y: hidden;
  }

  .card{
    flex: 0 0 220px;
  }
}

/* ===== REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce){
  .media img{
    transition: none;
  }
}

