/* hub.css — link-hub pages. Each page sets the brand tokens on :root (see links/index.html, coach/index.html). */
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:16px;line-height:1.5;
  background-image:var(--bg-art);background-size:cover;background-position:center top;background-attachment:fixed}
.hub{max-width:520px;margin:0 auto;padding:40px max(16px,env(safe-area-inset-right,0px)) 32px max(16px,env(safe-area-inset-left,0px));
  display:flex;flex-direction:column;gap:18px}
.hub-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}
.hub-head img{width:104px;height:104px;border-radius:50%;object-fit:cover;border:3px solid var(--accent);box-shadow:0 10px 40px -10px var(--accent)}
.hub-head h1{margin:6px 0 0;font-family:var(--font-display);font-size:1.6rem;letter-spacing:.5px;line-height:1.15;text-wrap:balance}
.hub-head p{margin:0;color:var(--muted);max-width:40ch;text-wrap:balance}
.hub-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.hub-tags span{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border-radius:999px;
  border:1px solid var(--line);color:var(--muted)}
#hub-links{display:flex;flex-direction:column;gap:10px}
.hub-link{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;text-decoration:none;color:var(--fg);
  background:var(--card);border:1px solid var(--line);transition:transform .15s ease,border-color .15s ease,background .15s ease}
.hub-link:hover,.hub-link:focus-visible{transform:translateY(-2px);border-color:var(--accent);outline:none}
.hub-link.primary{background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:0 12px 32px -12px var(--accent)}
.hub-link .ic{flex:0 0 40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--chip)}
.hub-link.primary .ic{background:rgba(0,0,0,.14)}
.hub-link svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hub-link .tx{flex:1;min-width:0;display:flex;flex-direction:column}
.hub-link b{font-weight:800;font-size:1rem}
.hub-link small{color:var(--muted);font-size:.84rem;line-height:1.3}
.hub-link.primary small{color:inherit;opacity:.8}
.hub-link .go{font-size:1.6rem;opacity:.6;line-height:1}
.hub-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px}
.hub-card h2{margin:0 0 4px;font-family:var(--font-display);font-size:1.15rem}
.hub-card p{margin:0 0 12px;color:var(--muted);font-size:.92rem}
#hub-form{display:flex;flex-direction:column;gap:10px}
#hub-form .row{display:flex;gap:8px;flex-wrap:wrap}
#hub-form input[type=email],#hub-form input[type=text]{flex:1 1 200px;min-width:0;padding:13px 14px;border-radius:12px;border:1px solid var(--line);
  background:var(--input);color:var(--fg);font:inherit}
#hub-form input:focus{outline:2px solid var(--accent);outline-offset:1px}
#hub-form button{padding:13px 18px;border-radius:12px;border:0;background:var(--accent);color:var(--on-accent);font:inherit;font-weight:800;cursor:pointer}
#hub-form button:disabled{opacity:.6;cursor:wait}
#hub-form label.consent{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--muted);cursor:pointer}
#hub-form label.consent input{margin-top:3px;accent-color:var(--accent);width:18px;height:18px;flex:0 0 18px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.hub-msg{min-height:1.2em;font-size:.88rem;margin:0}
.hub-msg.ok{color:var(--ok)} .hub-msg.bad{color:var(--bad)}
.hub-sister{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px dashed var(--line);text-decoration:none;color:var(--fg)}
.hub-sister img{width:42px;height:42px;border-radius:50%;object-fit:cover}
.hub-sister span{display:flex;flex-direction:column;font-size:.86rem;color:var(--muted)} .hub-sister b{color:var(--fg);font-size:.95rem}
.hub-foot{text-align:center;font-size:.78rem;color:var(--muted)}
.hub-foot a{color:var(--muted)}
@media (prefers-reduced-motion:reduce){.hub-link{transition:none}.hub-link:hover{transform:none}}
