/* ============================================================
   Work Games — home screen
   ============================================================ */

body.is-hub {
  min-height: 100dvh;
  background:
    radial-gradient(120% 80% at 50% -10%, #1b2130 0%, transparent 60%),
    var(--bg);
}

.hub {
  max-width: 720px;
  margin: 0 auto;
  padding:
    calc(var(--safe-t) + 28px)
    calc(var(--pad) + var(--safe-r))
    calc(var(--safe-b) + 32px)
    calc(var(--pad) + var(--safe-l));
}

.hub-hdr { text-align: center; margin-bottom: 26px; }

.hub-hdr__mark {
  width: 60px;
  height: 60px;
  margin: 0 auto 14px;
  display: block;
}

.hub-hdr h1 {
  margin: 0;
  font-size: clamp(28px, 9vw, 38px);
  font-weight: 750;
  letter-spacing: -.02em;
}

.hub-hdr p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 14.5px;
}

/* Two up on phones, three on anything wider. */
.grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (min-width: 560px) {
  .grid { grid-template-columns: repeat(3, 1fr); gap: 14px; }
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--r);
  overflow: hidden;
  color: var(--text);
  transition: transform .12s var(--ease), border-color .15s;
}
.card:active { transform: scale(.975); border-color: var(--line); }

.card__art {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  background: var(--bg-2);
  border-bottom: 1px solid var(--line-soft);
}

.card__body { padding: 10px 11px 12px; }

.card__name {
  display: block;
  font-size: 15px;
  font-weight: 680;
  line-height: 1.2;
}

.card__desc {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  line-height: 1.35;
  color: var(--muted);
  /* Reserve two lines so every card is the same height, whether its
     description wraps or not. */
  min-height: 2.7em;
}

.card__tag {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 3px 8px;
  border-radius: var(--r-pill);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .05em;
  text-transform: uppercase;
  background: var(--surface-3);
  color: var(--text-2);
  backdrop-filter: blur(6px);
}
.card__tag--done { background: var(--ok); color: #06210e; }
.card__tag--live { background: var(--warn); color: #2a1f00; }

.hub-note {
  margin: 26px 2px 0;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--muted);
  text-align: center;
}
.hub-note a { color: var(--text-2); text-decoration: underline; text-underline-offset: 2px; }
