/* The one door — v19 §25. Mobile-first: traffic is overwhelmingly phones
   arriving from YouTube, so this is designed at 375px and allowed to grow. */

.hub{max-width:860px;margin:0 auto;padding:20px 18px calc(40px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:22px}

.hub-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.hub-top h1{margin:0;font-family:var(--serif);font-size:26px;font-weight:400;color:var(--heading)}
.hub-top .tm{font-size:.5em;vertical-align:super;color:var(--muted)}
.hub-who{display:flex;align-items:center;gap:10px;font-family:var(--ui);font-size:12.5px;
  color:var(--faint)}

/* A poster with a play button, not an embed. The page's whole job is to be
   instant, and a YouTube player is a megabyte and a half before anybody has
   decided they want it. */
.vsl{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;
  border:1px solid var(--border);background:var(--card)}
.vsl iframe{width:100%;height:100%;border:0;display:block}
.vsl-play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:12px;width:100%;border:0;background:transparent;color:var(--text)}
.vsl-play:hover .vsl-tri{background:var(--orange2);transform:scale(1.04)}
.vsl-tri{display:flex;align-items:center;justify-content:center;width:62px;height:62px;
  border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:22px;
  padding-left:5px;transition:background .15s,transform .15s}
.vsl-say{font-family:var(--ui);font-size:14px;color:var(--muted)}
.vsl-none{font-family:var(--ui);font-size:13.5px;color:var(--faint);text-align:center;
  padding:40px 20px}

.hub-lead{font-family:var(--serif);font-size:19px;color:var(--heading);text-align:center;
  margin:0}

/* Three across where there is room, two, then stacked. Flat rather than nested:
   "software, then which software" is a click nobody needs, and the course
   belongs at the same level because it is a place a member goes, not a mode. */
.hub-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:820px){.hub-choices{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.hub-choices{grid-template-columns:1fr}}

/* The course is the way OUT of the software, so it reads as the quieter of the
   three. Same size and same target — the members who want it should not have to
   hunt — but it does not compete with the thing they came here to do. */
.hub-card.course{background:transparent}
.hub-card.course .hub-mark{color:var(--muted)}

.hub-card{display:flex;flex-direction:column;gap:9px;padding:24px 22px;border-radius:16px;
  border:1px solid var(--border);background:var(--card);text-decoration:none;color:var(--text);
  transition:border-color .15s,transform .15s,box-shadow .15s}
.hub-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}
.hub-mark{font-size:34px;line-height:1;color:var(--accent)}
.hub-name{font-family:var(--serif);font-size:22px;color:var(--heading)}
.hub-say{font-family:var(--ui);font-size:13.5px;line-height:1.55;color:var(--muted);flex:1}
.hub-go{font-family:var(--ui);font-size:13.5px;font-weight:600;color:var(--accent);margin-top:4px}

.hub-foot{font-family:var(--ui);font-size:12.5px;color:var(--faint);text-align:center;margin:0}
.hub-new{text-align:center;margin:0;font-family:var(--ui);font-size:13.5px}
.hub-new a{color:var(--accent);text-decoration:none}
.hub-new a:hover{text-decoration:underline}
