/* team-common.css – portrait, contact buttons and the WeChat dialog (team-common.js), used by team, contact and about */

/* round portrait; transparent cut-outs stand on a soft gradient disc */
.tp{position:relative;display:block;flex:none;width:132px;aspect-ratio:1;border-radius:50%;overflow:hidden;isolation:isolate;
  background:radial-gradient(circle at 50% 30%,var(--stage1),var(--bg2) 70%);box-shadow:0 0 0 1px var(--line2),0 24px 40px -24px rgba(var(--ink-rgb),.3)}
.tp img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.tp--alpha{background:radial-gradient(circle at 50% 35%,var(--ph2),var(--ph1) 55%,var(--bg2) 80%)}
.tp--alpha img{object-fit:contain;object-position:50% 100%}
.tp--mono{display:grid;place-items:center;background:linear-gradient(140deg,rgba(245,132,31,.18),rgba(47,123,224,.2)),var(--bg3)}
.tp--mono b{font-size:clamp(30px,40%,54px);font-weight:800;letter-spacing:-.04em;color:var(--text)}

/* contact buttons (44 px tap targets) */
.tc{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;border:0;padding:0;background:var(--card2);color:var(--text);
  box-shadow:inset 0 0 0 1px var(--line);transition:background .2s,color .2s,box-shadow .2s,transform .25s var(--ease)}
.tc svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tc svg.fill{fill:currentColor;stroke:none}
.tc:hover,.tc:focus-visible{transform:translateY(-2px)}
.tc--wa:hover,.tc--wa:focus-visible{background:#25d366;color:#04230f;box-shadow:none}
.tc--mail:hover,.tc--mail:focus-visible{background:var(--orange);color:#1b0d00;box-shadow:none}
.tc--li:hover,.tc--li:focus-visible{background:#0a66c2;color:#fff;box-shadow:none}
.tc--wc:hover,.tc--wc:focus-visible{background:#07c160;color:#fff;box-shadow:none}

/* tooltip (pointer devices; page-team.js) */
.ttip{position:fixed;z-index:150;left:0;top:0;padding:6px 10px;border-radius:8px;background:var(--surface-solid);box-shadow:0 0 0 1px var(--line2),0 12px 30px -12px rgba(var(--ink-rgb),.25);
  font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,calc(-100% - 6px));transition:opacity .15s}
.ttip.is-on{opacity:1}

/* WeChat dialog */
.wcd{width:min(380px,calc(100vw - 32px));max-width:none;padding:0;border:0;background:none;color:var(--text);overflow:visible}
.wcd::backdrop{background:rgba(var(--bg-rgb),.86)}
.wcd[open]{animation:wcd-in .3s var(--ease)}
@keyframes wcd-in{from{opacity:0;transform:translateY(12px) scale(.98)}}
.wcd__box{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 26px 26px;border-radius:24px;background:var(--surface-solid);box-shadow:0 0 0 1px var(--line2),0 50px 100px -30px rgba(var(--ink-rgb),.3);text-align:center}
.wcd__x{position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;border:0;display:grid;place-items:center;background:var(--card2);color:var(--text)}
.wcd__x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.wcd__x:hover{background:var(--orange);color:#1b0d00}
.wcd__k{display:flex;align-items:center;gap:8px;font:700 12px Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.wcd__k svg{width:22px;height:22px;fill:currentColor}
.wcd__t{font-size:24px;margin-top:4px}
.wcd__d{color:var(--muted);font-size:14.5px;max-width:280px}
.wcd__qr{width:min(256px,70vw);height:auto;aspect-ratio:1;margin:14px 0 12px;padding:12px;border-radius:18px;background:#fff}
html.wcd-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){.wcd[open]{animation:none}}
