:root { --ink:#132f47; --muted:#5c7182; --navy:#102d43; --orange:#d47b35; --teal:#168c83; --paper:#fffcf7; --line:rgba(16,45,67,.12); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); font-family:"Avenir Next","Segoe UI",sans-serif; background:radial-gradient(circle at 8% 4%,rgba(34,109,150,.15),transparent 29%),radial-gradient(circle at 92% 12%,rgba(212,123,53,.14),transparent 25%),linear-gradient(180deg,#f4eadc 0%,#fffaf4 46%,#edf5f5 100%); }
.researchers-shell { width:min(1240px,calc(100% - 32px)); margin:0 auto; padding:calc(var(--site-topbar-offset,98px) + 24px) 0 80px; }
.directory-hero { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr); gap:30px; align-items:end; padding:clamp(28px,5vw,58px); border:1px solid var(--line); border-radius:32px; background:rgba(255,252,247,.9); box-shadow:0 24px 70px rgba(16,45,67,.11); }
.eyebrow { display:inline-flex; align-items:center; gap:10px; color:#9f5f24; font-size:.77rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow::before { content:""; width:10px; height:10px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 8px rgba(212,123,53,.13); }
h1 { max-width:820px; margin:16px 0; color:var(--navy); font-size:min(clamp(1.75rem,3vw,2.65rem), var(--site-page-title-size, clamp(1.75rem, 2.6vw, 2.5rem))); line-height:1.12; letter-spacing:-.025em; }
.directory-hero p { max-width:780px; margin:0; color:var(--muted); font-size:clamp(1rem,1.8vw,1.22rem); line-height:1.65; }
.page-share-button,.profile-share-button,.profile-donate-button { margin-top:18px; border:1px solid rgba(16,45,67,.18); border-radius:999px; padding:10px 15px; background:white; color:var(--navy); font:inherit; font-weight:900; cursor:pointer; }
.profile-support-actions { display:flex; flex-wrap:wrap; gap:8px; }
.profile-share-button { border-color:rgba(255,255,255,.38); background:rgba(255,255,255,.14); color:white; }
.profile-donate-button { border-color:#f0b25e; background:#fff0d7; color:#71420e; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.hero-actions .page-share-button { margin-top:0; }
.personal-match-button { border:1px solid var(--teal); border-radius:999px; padding:11px 17px; background:var(--teal); color:white; font:inherit; font-weight:950; cursor:pointer; }
.donation-return-status { margin:16px 0; border:1px solid rgba(22,140,131,.28); border-radius:16px; padding:14px 17px; background:#e9f7f3; color:var(--navy); font-weight:800; line-height:1.5; }
.hero-stat { padding:26px; border-radius:24px; background:var(--navy); color:white; }
.hero-stat strong,.hero-stat span,.hero-stat small { display:block; }
.hero-stat strong { font-size:clamp(3rem,7vw,5.6rem); line-height:.9; letter-spacing:-.07em; }
.hero-stat span { margin-top:12px; font-weight:850; }
.hero-stat small { margin-top:8px; color:#b9d2df; line-height:1.45; }
.match-builder { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); gap:26px; margin:24px 0 18px; padding:24px; border:1px solid rgba(46,119,157,.2); border-radius:24px; background:rgba(255,255,255,.76); box-shadow:0 14px 38px rgba(16,45,67,.06); }
.match-builder h2 { margin:12px 0 8px; color:var(--navy); font-size:clamp(1.45rem,2.6vw,2.1rem); letter-spacing:-.035em; }
.match-builder-intro p,.match-summary { margin:0; color:var(--muted); line-height:1.55; }
.match-builder-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.match-builder-form label,.request-form label { display:grid; gap:6px; color:var(--navy); font-size:.78rem; font-weight:900; letter-spacing:.035em; text-transform:uppercase; }
.match-builder-form input,.match-builder-form select,.request-form textarea { width:100%; min-height:46px; border:1px solid rgba(16,45,67,.18); border-radius:12px; padding:11px 12px; background:white; color:var(--ink); font:inherit; font-size:.95rem; font-weight:500; letter-spacing:0; text-transform:none; }
.match-builder-actions { display:flex; gap:8px; align-items:center; grid-column:1/-1; }
.primary-action,.secondary-action,.match-builder-actions button,.search-actions button { border:1px solid rgba(16,45,67,.16); border-radius:12px; padding:11px 14px; background:#edf3f3; color:var(--navy); font:inherit; font-weight:900; cursor:pointer; }
.primary-action,.match-builder-actions .primary-action { border-color:var(--teal); background:var(--teal); color:white; }
.match-summary { grid-column:1/-1; padding:12px 14px; border-radius:13px; background:#eaf5f3; color:var(--navy); }
.directory-tools { display:grid; grid-template-columns:minmax(260px,2fr) repeat(4,minmax(140px,1fr)) auto; gap:14px; align-items:end; margin:18px 0; padding:20px 22px; border:1px solid var(--line); border-radius:22px; background:rgba(255,252,247,.82); }
.search-field { display:grid; gap:7px; width:min(650px,100%); color:var(--navy); font-size:.8rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.search-field input { width:100%; border:1px solid rgba(16,45,67,.18); border-radius:14px; padding:13px 15px; background:white; color:var(--ink); font:inherit; font-size:1rem; font-weight:500; letter-spacing:0; text-transform:none; outline:none; }
.search-field input:focus { border-color:#2e779d; box-shadow:0 0 0 4px rgba(46,119,157,.12); }
.filter-field { display:grid; gap:7px; color:var(--navy); font-size:.8rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.filter-field select { width:100%; border:1px solid rgba(16,45,67,.18); border-radius:14px; padding:13px 34px 13px 12px; background:white; color:var(--ink); font:inherit; font-size:.9rem; font-weight:650; letter-spacing:0; text-transform:none; }
.clear-filters { border:1px solid rgba(16,45,67,.17); border-radius:14px; padding:13px 14px; background:#eef3f3; color:var(--navy); font:inherit; font-weight:850; cursor:pointer; white-space:nowrap; }
.result-note { grid-column:1/-1; color:var(--muted); font-weight:750; }
.search-actions { grid-column:1/-1; display:flex; align-items:center; gap:12px; color:var(--muted); font-size:.86rem; }
.search-actions button { padding:9px 12px; background:white; }
.preference-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(330px,.85fr); gap:28px; margin:0 0 20px; padding:24px; border:1px solid rgba(22,140,131,.22); border-radius:24px; background:linear-gradient(135deg,rgba(236,248,246,.96),rgba(255,252,247,.96)); box-shadow:0 14px 38px rgba(16,45,67,.07); }
.preference-copy h2 { margin:12px 0 8px; color:var(--navy); font-size:clamp(1.5rem,3vw,2.3rem); letter-spacing:-.04em; }
.preference-copy p { margin:0; color:var(--muted); line-height:1.6; }
.preference-copy .preference-benefit { margin-top:12px; padding:12px 14px; border-left:3px solid var(--teal); border-radius:0 12px 12px 0; background:rgba(255,255,255,.68); }
.preference-benefit strong { color:var(--navy); }
.preference-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; counter-reset:rank; }
.preference-choice { counter-increment:rank; display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:14px; background:white; }
.preference-choice::before { content:counter(rank); display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--navy); color:white; font-size:.83rem; font-weight:900; }
.choice-name { overflow:hidden; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.choice-actions { display:flex; gap:4px; }
.choice-actions button { width:30px; height:30px; border:0; border-radius:8px; background:#edf3f3; color:var(--navy); font-weight:900; cursor:pointer; }
.choice-actions button:disabled { opacity:.35; cursor:default; }
.preference-empty { padding:16px; border:1px dashed rgba(16,45,67,.2); border-radius:14px; color:var(--muted); text-align:center; }
.save-preferences { width:100%; margin-top:10px; border:0; border-radius:13px; padding:12px 15px; background:var(--teal); color:white; font:inherit; font-weight:900; cursor:pointer; }
.save-preferences:disabled { background:#aebdbe; cursor:not-allowed; }
.preference-auth-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.preference-auth-actions[hidden] { display:none; }
.preference-auth-actions a { border:1px solid rgba(16,45,67,.18); border-radius:13px; padding:11px 12px; background:white; color:var(--navy); font-weight:900; text-align:center; text-decoration:none; }
.preference-auth-actions a.primary { border-color:var(--teal); background:var(--teal); color:white; }
.preference-status { min-height:20px; margin:8px 2px 0; color:#526b73; font-size:.88rem; line-height:1.4; }
.similar-option { display:flex; gap:9px; align-items:flex-start; margin-top:10px; color:var(--muted); font-size:.88rem; line-height:1.4; }
.similar-option input { width:18px; height:18px; flex:0 0 auto; accent-color:var(--teal); }
.secondary-action { width:100%; margin-top:10px; }
.preference-next { width:100%; margin-top:8px; }
.researcher-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.researcher-card { overflow:hidden; display:flex; flex-direction:column; min-height:100%; border:1px solid var(--line); border-radius:24px; background:rgba(255,252,247,.94); box-shadow:0 14px 38px rgba(16,45,67,.08); transition:transform .2s ease,box-shadow .2s ease; }
.researcher-card:hover { transform:translateY(-4px); box-shadow:0 20px 45px rgba(16,45,67,.14); }
.card-media,.profile-portrait { position:relative; }
.researcher-card .card-media { height:172px!important; min-height:172px!important; padding:14px!important; overflow:hidden; background:linear-gradient(135deg,#e4efef,#f8f0e5); }
.portrait { display:grid; place-items:center; aspect-ratio:16/3; background:linear-gradient(145deg,#183f5b,#247d88); color:white; font-size:clamp(1.8rem,4vw,3.2rem); font-weight:900; letter-spacing:-.08em; }
.researcher-card .portrait { width:144px!important; height:144px!important; min-height:144px!important; aspect-ratio:1!important; overflow:hidden; border:2px solid rgba(255,255,255,.9); border-radius:50%; box-shadow:0 5px 16px rgba(16,45,67,.18); font-size:1.75rem; }
.researcher-card .focus-badges { top:14px; right:12px; left:170px; align-content:flex-start; }
.focus-badges { position:absolute; z-index:1; top:12px; left:12px; right:12px; display:flex; flex-wrap:wrap; gap:6px; }
.focus-badges span { border:1px solid rgba(255,255,255,.32); border-radius:999px; padding:6px 9px; background:rgba(9,35,53,.82); color:white; box-shadow:0 4px 14px rgba(0,0,0,.15); font-size:.7rem; font-weight:900; letter-spacing:.02em; backdrop-filter:blur(7px); }
.portrait img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.portrait-fallback { display:grid; place-items:center; width:100%; height:100%; }
.portrait-fallback[hidden] { display:none; }
.card-body { display:flex; flex:1; flex-direction:column; padding:21px; }
.card-body h2 { margin:0 0 7px; color:var(--navy); font-size:1.35rem; letter-spacing:-.025em; }
.institution { margin:0 0 14px; color:var(--teal); font-size:.86rem; font-weight:850; line-height:1.35; }
.bio { margin:0 0 18px; color:var(--muted); line-height:1.58; }
.match-reason { margin:-6px 0 15px; padding:10px 11px; border-radius:11px; background:#edf7f5; color:#285f63; font-size:.84rem; line-height:1.45; }
.match-level { display:inline-block; margin-bottom:5px; color:var(--navy); font-size:.72rem; font-weight:950; letter-spacing:.05em; text-transform:uppercase; }
.trust-row { display:flex; flex-wrap:wrap; gap:6px; margin:-5px 0 14px; }
.trust-chip { border-radius:999px; padding:5px 8px; background:#f0eee9; color:#5b6870; font-size:.68rem; font-weight:850; }
.trust-chip.verified { background:#e5f4ef; color:#176b61; }
.card-actions { display:grid; grid-template-columns:1fr auto; gap:8px; margin-top:auto; }
.profile-button,.favorite-button { border:0; border-radius:13px; padding:11px 14px; background:#e9f1f2; color:var(--navy); font:inherit; font-weight:850; cursor:pointer; text-align:left; }
.profile-button:hover { background:#dcebed; }
.favorite-button { min-width:48px; padding:10px; background:#fff0df; color:#9f5f24; text-align:center; }
.favorite-button[aria-pressed="true"] { background:var(--orange); color:white; }
.empty-state { padding:70px 24px; border:1px dashed rgba(16,45,67,.25); border-radius:24px; text-align:center; background:rgba(255,255,255,.55); }
.load-more-researchers { display:block; min-height:48px; margin:24px auto 0; border:1px solid rgba(16,45,67,.18); border-radius:14px; padding:13px 24px; background:var(--navy); color:white; font:inherit; font-weight:900; cursor:pointer; }
.load-more-researchers[hidden] { display:none; }
.researcher-dialog { width:min(880px,calc(100% - 28px)); max-height:calc(100vh - 28px); padding:0; border:0; border-radius:28px; color:var(--ink); background:var(--paper); box-shadow:0 30px 100px rgba(4,23,37,.35); }
.researcher-dialog::backdrop { background:rgba(8,27,42,.62); backdrop-filter:blur(5px); }
.dialog-close { position:absolute; z-index:2; top:15px; right:15px; width:42px; height:42px; border:1px solid rgba(255,255,255,.35); border-radius:50%; background:rgba(16,45,67,.75); color:white; font-size:1.65rem; cursor:pointer; }
.profile-head { display:grid; grid-template-columns:220px 1fr; min-height:220px; background:linear-gradient(140deg,#14354e,#1e7078); color:white; }
.profile-head .portrait { aspect-ratio:auto; border-radius:0; background:rgba(255,255,255,.08); }
.profile-portrait,.profile-portrait .portrait { min-height:220px; height:100%; }
.profile-title { align-self:end; padding:34px 64px 32px 30px; }
.profile-title .focus-badges { position:static; margin:0 0 16px; align-items:flex-start; }
.profile-title h2 { margin:0 0 8px; font-size:clamp(2rem,5vw,3.5rem); line-height:1; letter-spacing:-.05em; }
.profile-title p { margin:0; color:#cce0e5; line-height:1.45; }
.profile-body { padding:clamp(24px,5vw,42px); }
.profile-section + .profile-section { margin-top:30px; padding-top:26px; border-top:1px solid var(--line); }
.profile-section h3 { margin:0 0 10px; color:var(--navy); font-size:1.25rem; }
.profile-section p { color:var(--muted); line-height:1.7; }
.paper-list { display:grid; gap:12px; }
.paper { padding:18px; border:1px solid var(--line); border-radius:16px; background:#f8f4ed; }
.paper h4 { margin:0 0 8px; color:var(--navy); line-height:1.4; }
.paper p { margin:0 0 12px; font-size:.9rem; }
.paper-links { display:flex; flex-wrap:wrap; gap:8px; }
.paper-links a { border-radius:999px; padding:7px 11px; background:white; color:#256586; font-size:.83rem; font-weight:850; text-decoration:none; }
.source-note { margin-top:28px; padding:15px 17px; border-radius:14px; background:#fff5e8; color:#765638; font-size:.86rem; line-height:1.55; }
.compare-dialog { width:min(1080px,calc(100% - 28px)); }
.compare-wrap,.request-form { padding:clamp(24px,5vw,42px); }
.compare-wrap h2,.request-form h2 { margin:0 50px 8px 0; color:var(--navy); }
.comparison-table { width:100%; margin-top:20px; border-collapse:collapse; }
.comparison-table th,.comparison-table td { padding:12px; border:1px solid var(--line); text-align:left; vertical-align:top; line-height:1.45; }
.comparison-table th { background:#edf5f5; color:var(--navy); }
.request-form { display:grid; gap:16px; }
.request-form > p { margin:0; color:var(--muted); line-height:1.55; }
.request-form textarea { min-height:140px; resize:vertical; }
.share-dialog { width:min(620px,calc(100% - 28px)); }
.share-sheet { padding:clamp(24px,5vw,42px); }
.share-sheet h2 { margin:10px 50px 8px 0; color:var(--navy); }
.share-sheet > p { color:var(--muted); line-height:1.55; }
.share-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0; }
.share-option,.share-options a,.copy-share-row button { border:1px solid rgba(16,45,67,.16); border-radius:13px; padding:12px 14px; background:#edf3f3; color:var(--navy); font:inherit; font-weight:900; text-align:center; text-decoration:none; cursor:pointer; }
.share-native { width:100%; margin-top:10px; border-color:var(--teal); background:var(--teal); color:white; }
.copy-share-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.copy-share-row input { min-width:0; border:1px solid rgba(16,45,67,.18); border-radius:13px; padding:12px; background:white; color:var(--muted); font:inherit; }
.matches-dialog { width:min(920px,calc(100% - 28px)); }
.matches-sheet { padding:clamp(24px,5vw,42px); }
.matches-sheet h2 { margin:10px 50px 8px 0; color:var(--navy); }
.matches-sheet > p { margin:0 0 18px; color:var(--muted); line-height:1.55; }
.personal-matches-list { display:grid; gap:13px; margin-top:18px; }
.personal-match-card { display:grid; grid-template-columns:40px 96px minmax(0,1fr); gap:14px; align-items:start; padding:15px; border:1px solid var(--line); border-radius:18px; background:white; }
.personal-match-rank { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--navy); color:white; font-weight:950; }
.personal-match-portrait .portrait { width:88px; height:88px; min-height:88px; aspect-ratio:1; overflow:hidden; border-radius:50%; font-size:1.25rem; }
.personal-match-copy h3 { margin:0 0 4px; color:var(--navy); font-size:1.2rem; }
.personal-match-copy .institution { margin-bottom:7px; }
.match-score { display:inline-block; border-radius:999px; padding:5px 8px; background:#e5f4ef; color:#176b61; font-size:.74rem; font-weight:900; }
.personal-match-copy ul { margin:9px 0 0; padding-left:18px; color:var(--muted); font-size:.88rem; line-height:1.45; }
.personal-match-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:11px; }
.personal-match-actions button { border:1px solid rgba(16,45,67,.15); border-radius:10px; padding:8px 10px; background:#edf3f3; color:var(--navy); font:inherit; font-size:.82rem; font-weight:900; cursor:pointer; }
.matches-more { display:block; margin:18px auto 0; }
.donation-dialog { width:min(660px,calc(100% - 28px)); }
.donation-sheet { padding:clamp(24px,5vw,42px); }
.donation-sheet h2 { margin:10px 50px 8px 0; color:var(--navy); }
.donation-sheet > p { color:var(--muted); line-height:1.55; }
.donation-sheet fieldset { margin:20px 0 14px; padding:0; border:0; }
.donation-sheet legend,.custom-donation > span { margin-bottom:9px; color:var(--navy); font-size:.78rem; font-weight:950; letter-spacing:.04em; text-transform:uppercase; }
.donation-amounts { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.donation-amounts label { position:relative; cursor:pointer; }
.donation-amounts input { position:absolute; opacity:0; pointer-events:none; }
.donation-amounts span { display:grid; place-items:center; min-height:48px; border:1px solid rgba(16,45,67,.18); border-radius:13px; background:white; color:var(--navy); font-weight:900; }
.donation-amounts input:checked + span { border-color:var(--teal); background:var(--teal); color:white; box-shadow:0 0 0 3px rgba(22,140,131,.13); }
.custom-donation { display:grid; gap:7px; margin:12px 0; }
.custom-donation input { min-height:48px; border:1px solid rgba(16,45,67,.18); border-radius:13px; padding:11px 13px; font:inherit; }
.donation-disclosure { padding:13px 15px; border-radius:13px; background:#fff5e8; font-size:.83rem; }
.donation-sheet .primary-action { width:100%; margin-top:4px; }
@media (max-width:1050px) { .directory-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.search-field{width:100%}.clear-filters{width:max-content}.result-note{grid-column:1/-1} }
@media (max-width:900px) { .researcher-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.directory-hero,.preference-panel,.match-builder{grid-template-columns:1fr}.hero-stat{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:center}.hero-stat small{grid-column:2}.profile-head{grid-template-columns:170px 1fr} }
@media (max-width:600px) {
  .researchers-shell{width:calc(100% - 16px);padding:calc(var(--site-topbar-offset,72px) + 12px) 0 40px}
  .directory-hero{gap:20px;padding:22px 17px;border-radius:20px}
  .eyebrow{font-size:.68rem;line-height:1.4;letter-spacing:.1em}
  h1{margin:13px 0;font-size:min(clamp(1.45rem,7vw,1.85rem), var(--site-page-title-size, clamp(1.75rem, 2.6vw, 2.5rem)));line-height:1.16}
  .directory-hero p{font-size:.96rem;line-height:1.55}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .personal-match-button,.hero-actions .page-share-button{width:100%;min-height:48px}
  .page-share-button{min-height:46px}
  .hero-stat{display:block;padding:20px;border-radius:18px}
  .hero-stat strong{font-size:3.25rem}
  .hero-stat span{margin-top:8px}
  .hero-stat small{margin-top:7px;font-size:.82rem}
  .directory-tools{grid-template-columns:1fr;align-items:stretch;gap:12px;margin:14px 0;padding:16px;border-radius:18px}
  .match-builder{gap:16px;margin:14px 0;padding:18px 16px;border-radius:19px}
  .match-builder-form{grid-template-columns:1fr}
  .match-builder-actions{display:grid;grid-template-columns:1fr 1fr}
  .comparison-table{display:block;overflow-x:auto;white-space:normal}
  .search-field input,.filter-field select,.clear-filters{min-height:48px;font-size:16px}
  .clear-filters{width:100%}
  .result-note{white-space:normal;font-size:.88rem;line-height:1.4}
  .preference-panel{gap:18px;margin-bottom:14px;padding:18px 16px;border-radius:19px}
  .preference-copy h2{margin-top:9px;font-size:1.42rem}
  .preference-copy p{font-size:.94rem;line-height:1.5}
  .preference-choice{grid-template-columns:30px minmax(0,1fr);padding:10px}
  .choice-actions{grid-column:1/-1;justify-content:flex-end}
  .choice-actions button{width:44px;height:44px}
  .save-preferences,.preference-auth-actions a{min-height:48px}
  .preference-auth-actions{grid-template-columns:1fr}
  .researcher-grid{grid-template-columns:1fr;gap:12px}
  .researcher-card{border-radius:19px;box-shadow:0 9px 24px rgba(16,45,67,.08)}
  .researcher-card:hover{transform:none}
  .portrait{font-size:2rem}
  .researcher-card .card-media{height:150px!important;min-height:150px!important;padding:11px!important}
  .researcher-card .portrait{width:128px!important;height:128px!important;min-height:128px!important;aspect-ratio:1!important}
  .researcher-card .focus-badges{left:150px}
  .focus-badges{top:9px;left:9px;right:9px;gap:4px}
  .focus-badges span{padding:5px 8px;font-size:.66rem}
  .card-body{padding:17px}
  .card-body h2{font-size:1.22rem}
  .institution{margin-bottom:10px}
  .bio{margin-bottom:14px;font-size:.93rem;line-height:1.5}
  .profile-button,.favorite-button{min-height:48px}
  .favorite-button{min-width:52px;font-size:1.1rem}
  .load-more-researchers{width:100%;margin-top:16px}
  .researcher-dialog{width:100%;max-width:none;max-height:100dvh;height:100dvh;margin:0;border-radius:0}
  .dialog-close{position:fixed;top:max(10px,env(safe-area-inset-top));right:10px;width:46px;height:46px}
  .profile-head{grid-template-columns:1fr;min-height:0}
  .profile-head .portrait{height:155px}
  .profile-portrait,.profile-portrait .portrait{min-height:155px;height:155px}
  .profile-title{align-self:auto;padding:20px 56px 22px 20px}
  .profile-title .focus-badges{position:static;left:auto;right:auto;top:auto;margin:0 0 12px;gap:6px;max-width:100%}
  .profile-title .focus-badges span{padding:5px 8px;font-size:.64rem;white-space:normal;line-height:1.2}
  .profile-title h2{font-size:1.75rem;line-height:1.08}
  .profile-body{padding:20px 16px calc(24px + env(safe-area-inset-bottom))}
  .profile-section + .profile-section{margin-top:22px;padding-top:20px}
  .profile-section p{line-height:1.58}
  .paper{padding:15px;border-radius:14px}
  .paper-links a{min-height:42px;display:inline-flex;align-items:center}
  .share-dialog{width:100%;height:auto;max-height:100dvh;margin:auto 0 0;border-radius:22px 22px 0 0}
  .share-options{grid-template-columns:1fr 1fr}
  .copy-share-row{grid-template-columns:1fr}
  .matches-dialog{width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .matches-sheet{padding:22px 14px calc(24px + env(safe-area-inset-bottom))}
  .personal-match-card{grid-template-columns:34px 70px minmax(0,1fr);gap:9px;padding:12px}
  .personal-match-rank{width:30px;height:30px}
  .personal-match-portrait .portrait{width:66px;height:66px;min-height:66px;font-size:1rem}
  .personal-match-actions{grid-column:1/-1}
  .personal-match-actions button{min-height:42px;flex:1}
  .donation-dialog{width:100%;height:auto;max-height:100dvh;margin:auto 0 0;border-radius:22px 22px 0 0}
  .donation-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-support-actions{display:grid;grid-template-columns:1fr}
  .profile-share-button,.profile-donate-button{width:100%;margin-top:8px}
}
