:root{
  --brand: #2563eb; --accent: #8b5cf6; --bg: #f3f6fb; --glass: rgba(255,255,255,0.6);
  --glass-border: rgba(255,255,255,0.8); --text: #111827;
}
*{box-sizing:border-box} html,body{height:100%}
body{
  background: radial-gradient(1200px 600px at 10% -10%, rgba(37,99,235,.08), transparent 40%),
              radial-gradient(800px 400px at 110% 10%, rgba(139,92,246,.10), transparent 50%), var(--bg);
  color: var(--text); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
a{ text-underline-offset:.2rem }
.skip-link{ position:absolute; left:-9999px } .skip-link:focus{ left:0; background:#000; color:#fff; padding:.5rem 1rem }

.navbar-glass{ backdrop-filter:saturate(1.3) blur(12px); -webkit-backdrop-filter:saturate(1.3) blur(12px);
  background:var(--glass); border:1px solid var(--glass-border); border-radius:16px; margin-top:.75rem }
.site-header{ padding:.25rem 0 }
.brand-dot{ width:10px;height:10px;border-radius:50%;display:inline-block;
  background:linear-gradient(135deg,var(--brand),var(--accent)); box-shadow:0 0 0 4px rgba(37,99,235,.12) }

.hero-mica{ background: radial-gradient(1200px 600px at -10% 0%, rgba(37,99,235,.10), transparent 40%); padding-top:.5rem }
.badge-soft{ background:rgba(37,99,235,.12); color:var(--brand); border:1px solid rgba(37,99,235,.25);
  padding:.4rem .7rem; border-radius:999px }
.stats .stat-chip{ border-radius:999px; padding:.4rem .8rem; font-size:.9rem; background:rgba(255,255,255,.6);
  border:1px solid rgba(0,0,0,.06); backdrop-filter:blur(8px) }
.portrait-wrap{ border-radius:22px; overflow:hidden; border:1px solid rgba(0,0,0,.06) }

.chip-row{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:.25rem }
.chip{ background:linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,.55));
  border:1px solid rgba(0,0,0,.06); border-radius:999px; padding:.5rem .75rem; font-size:.9rem }
.card-glass{ border-radius:16px; background:linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,.55));
  border:1px solid rgba(0,0,0,.08); backdrop-filter:blur(10px) }

.bg-gradient-subtle{ background: linear-gradient(180deg, rgba(37,99,235,.04), rgba(139,92,246,.04)) }

.feed-row{ display:flex; gap:1rem; overflow:auto; padding-bottom:.5rem; scroll-snap-type:x mandatory }
.feed-card{ min-width:260px; scroll-snap-align:start; text-decoration:none; background:rgba(255,255,255,.7);
  border:1px solid rgba(0,0,0,.06); border-radius:14px; padding:.9rem 1rem; color:inherit }
.feed-title{ font-weight:600 } .feed-date{ font-size:.85rem; color:#6b7280 }

.btn-primary{ background:linear-gradient(135deg,var(--brand),var(--accent)); border:0 }
.btn-outline-light{ border-color:rgba(255,255,255,.6); color:#fff } .btn-outline-light:hover{ background:rgba(255,255,255,.15); color:#fff }
.btn{ box-shadow:0 2px 8px rgba(0,0,0,.08) }

.site-footer{ position:relative }
.mobile-bar{ position:fixed; bottom:12px; left:50%; transform:translateX(-50%); display:flex; gap:.5rem;
  background:rgba(255,255,255,.8); border:1px solid rgba(0,0,0,.06); border-radius:16px; padding:.35rem; backdrop-filter:blur(10px) }
.mobile-bar__btn{ display:flex; flex-direction:column; align-items:center; justify-content:center; padding:.4rem .9rem;
  text-decoration:none; color:#111827; font-size:.8rem; border-radius:12px }
.mobile-bar__btn--primary{ background:linear-gradient(135deg,var(--brand),var(--accent)); color:#fff }
.mobile-bar__btn span{ font-size:.75rem }
@media (min-width:992px){ .mobile-bar{ display:none } }

@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important } }




/* === Profiles grid (LinkedIn / Scholar / ResearchGate) === */
.net-profiles .net-card{
  border-radius:16px; overflow:hidden;
  border:1px solid rgba(15,29,58,.08);
  background:#fff;
  box-shadow:0 10px 28px rgba(15,29,58,.08);
}
.net-profiles .net-banner{
  display:flex; justify-content:space-between; align-items:center;
  padding:12px 14px; color:#fff;
}
.net-profiles .net-brand{ display:flex; align-items:center; gap:.5rem; font-weight:700 }
.net-profiles .net-brand svg{ width:18px; height:18px }
.net-profiles .net-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.45rem .9rem; border-radius:999px; font-weight:600; text-decoration:none;
  border:1px solid transparent;
}
.net-profiles .net-btn-white{ background:#fff; color:#0f1d3a; border-color:rgba(255,255,255,.6) }
.net-profiles .net-btn-outline{ background:rgba(17,24,39,.04); color:#0f1d3a; border-color:rgba(17,24,39,.12) }
.net-profiles .net-body{ display:flex; gap:12px; align-items:center; padding:14px; }
.net-profiles .net-avatar{ width:64px; height:64px; border-radius:50%; object-fit:cover; border:2px solid #fff; box-shadow:0 6px 16px rgba(15,29,58,.08) }
.net-profiles .net-info{ min-width:200px }
.net-profiles .net-name{ font-weight:700; line-height:1.25 }
.net-profiles .net-headline{ color:#667085; font-size:.95rem; margin-top:2px }
.net-profiles .net-actions{ display:flex; gap:8px; margin-top:10px; flex-wrap:wrap }

/* Variants by network */
.net-li .net-banner{ background:linear-gradient(135deg,#0a66c2,#0d78e6) }
.net-li .net-btn-primary{ background:linear-gradient(135deg,#0a66c2,#0d78e6); color:#fff; box-shadow:0 8px 18px rgba(10,102,194,.25) }

.net-sc .net-banner{ background:linear-gradient(135deg,#4285F4,#3367D6) }
.net-sc .net-btn-primary{ background:linear-gradient(135deg,#4285F4,#3367D6); color:#fff; box-shadow:0 8px 18px rgba(66,133,244,.25) }

.net-rg .net-banner{ background:linear-gradient(135deg,#00CCBB,#00B3A5) } /* RG teal */
.net-rg .net-btn-primary{ background:linear-gradient(135deg,#00CCBB,#00B3A5); color:#fff; box-shadow:0 8px 18px rgba(0,204,187,.25) }

/* Hover tweaks */
.net-profiles .net-btn:hover{ filter:brightness(0.97) }

/* Mobile stacking already handled by grid cols */
