/*! RP Theme — late additions to the header and footer
    Rules that belong with the generated header/footer layers but are written by hand,
    so they live here and load after them: the footer's WeChat code beside LinkedIn, and
    the homepage portraits that now open a profile. Safe to edit. */

/* ---------- the footer: LinkedIn and the WeChat code ---------- */
/* a code is only useful at a size a phone can read, so the LinkedIn square grows to
   match it and the two sit on one line, their tops level. Each is a figure: the square
   itself, and under it the one quiet word that names it. */
.site-footer .social-row{align-items:flex-start;gap:14px}
.foot-soc{display:block;width:76px;margin:0}
.site-footer .social-row>a,.foot-soc>a{width:76px;height:76px}
.site-footer .social-row>a svg,.foot-soc>a svg{width:26px;height:26px}

/* LinkedIn wears its own blue (the brand's #0A66C2) — the size and the icon are the
   row's own; only this square, never the WeChat fallback beside it */
.site-footer .social-row a.soc-li{background:#0a66c2}
.site-footer .social-row a.soc-li:active{background:#084e94}
@media(hover:hover){.site-footer .social-row a.soc-li:hover{background:#084e94}}

/* the code on its white tile. It grows from its own bottom-left corner under the
   pointer (and for a keyboard on the word below it), so it can be scanned from where
   the reader sits without the footer moving around it. */
.foot-qr img{display:block;width:76px;height:76px;padding:5px;background:var(--white);
  border:1px solid var(--line);object-fit:contain;transform-origin:0 100%;
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease}
.foot-qr:focus-within{position:relative;z-index:6}
.foot-qr:focus-within img{transform:scale(2.7);box-shadow:0 20px 48px rgba(17,17,17,.26)}
@media(hover:hover){
  .foot-qr:hover{position:relative;z-index:6}
  .foot-qr:hover img{transform:scale(2.7);box-shadow:0 20px 48px rgba(17,17,17,.26)}
}
@media(prefers-reduced-motion:reduce){.foot-qr img{transition:none}}

/* the quiet word under each square — it names the square, nothing more */
.foot-soc figcaption{margin-top:7px;font-size:11px;font-weight:600;letter-spacing:.1em;line-height:1.3;
  text-transform:uppercase;color:var(--muted);text-align:center}
.foot-soc figcaption a{display:inline;width:auto;height:auto;background:none;color:inherit;transition:color .15s}
.foot-soc figcaption a:active{color:var(--ink)}
@media(hover:hover){.foot-soc figcaption a:hover{color:var(--ink)}}
@media(max-width:640px){
  .site-footer .social-row>a,.foot-soc>a{width:68px;height:68px}
  .foot-soc{width:68px}
  .foot-qr img{width:68px;height:68px}
}

/* ---------- the homepage's team eyebrow, now a way in ----------- */
/* it keeps the row it always was; only the colour answers the pointer */
a.team-lab{transition:color .18s ease}
a.team-lab:active{color:var(--ink)}
@media(hover:hover){a.team-lab:hover{color:var(--ink)}}

/* ---------- a portrait that opens a profile ---------------------- */
a.tcard{display:block;-webkit-tap-highlight-color:transparent}
a.tcard::after{content:"";position:absolute;inset:0;border:2px solid transparent;transition:border-color .2s ease}
a.tcard:active::after{border-color:var(--red)}
@media(hover:hover){a.tcard:hover::after{border-color:var(--red)}}
