:root{
  --bg:#050b13;--bg2:#091421;--text:#f4f8fb;--muted:#9cb0c0;
  --cyan:#75ddff;--blue:#6c8cff;--light:#f7fafc;--ink:#07111b;--max:1220px
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{text-decoration:none;color:inherit}
.nav{position:fixed;inset:0 0 auto 0;z-index:100;background:linear-gradient(to bottom,rgba(5,11,19,.94),rgba(5,11,19,.62));backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06)}
.nav-inner{height:74px;max-width:var(--max);margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between}
.brand{font-weight:800;letter-spacing:.08em;font-size:22px;cursor:pointer}.brand span{color:var(--cyan)}
.menu{display:flex;gap:34px;font-size:16px;font-weight:700;letter-spacing:.045em}.menu a{opacity:.88}.menu a:hover,.menu a.active{opacity:1;color:var(--cyan)}
.dropdown{position:relative}.drop{position:absolute;top:24px;left:-14px;min-width:190px;padding:10px;background:#0a1621;border:1px solid rgba(255,255,255,.08);border-radius:14px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}
.dropdown:hover .drop{opacity:1;transform:none;pointer-events:auto}
.drop a{display:block;padding:9px 10px;border-radius:9px;font-size:13px}.drop a:hover{background:rgba(255,255,255,.05)}
.view{display:none}.view.active{display:block}
.hero{display:grid;place-items:center;padding:140px 0 80px;position:relative;overflow:hidden;background:#04101a}
@media (min-width:821px){
  #home > .hero{min-height:76vh}
}
/* Shared desktop internal-page Hero height — Our Mission baseline */
@media (min-width:821px){
  #our-mission > .hero,
  #in-vivo > .in-vivo-v99-hero,
  #donate > .donate-hero,
  #contact > .hero{
    min-height:76vh;
  }
}
@media (max-width:820px){
  #our-mission > .hero,
  #in-vivo > .in-vivo-v99-hero,
  #donate > .donate-hero,
  #contact > .hero{
    height:440px !important;
    min-height:440px !important;
    max-height:440px !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }
}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(2,7,12,.06),rgba(2,7,12,.12) 68%,rgba(5,11,19,.45));pointer-events:none}
.hero-inner{position:relative;z-index:2;max-width:var(--max);width:100%;padding:0 28px}
.eyebrow,.kicker{color:var(--cyan);font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;margin-bottom:18px}
h1{margin:0;max-width:980px;font-size:clamp(52px,7vw,100px);line-height:.94;letter-spacing:-.055em;font-weight:650}
h2{margin:0 0 26px;font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:-.045em;font-weight:620}
.lead{max-width:760px;margin:28px 0 0;font-size:clamp(18px,2vw,22px);line-height:1.65;color:#b9c9d5}
.container{max-width:var(--max);margin:auto;padding:0 28px}
.section{padding:120px 0}.light{background:var(--light);color:var(--ink)}.dark{background:#07111b}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.statement{font-size:clamp(34px,4.8vw,68px);line-height:1.08;letter-spacing:-.04em;margin:0;font-weight:620}.statement span{color:#218fc5}
.copy p{font-size:18px;line-height:1.78;color:var(--muted);margin:0 0 18px}.light .copy p{color:#587080}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.card{padding:28px;border-radius:22px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035)}
.light .card{background:#fff;border-color:#dce5ea}.card h3{margin:0 0 10px;font-size:20px}.card p{margin:0;color:#657985;line-height:1.6}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;margin-top:24px;border-radius:999px;border:1px solid rgba(255,255,255,.14);font-size:14px;transition:.2s}
.btn:hover{transform:translateY(-2px)}.light .btn{border-color:#cfdde5}
.quote{margin-top:38px;padding-left:22px;border-left:2px solid var(--cyan);font-size:clamp(22px,3vw,34px);line-height:1.35;color:#e8f5fb}
.flow{display:grid;gap:14px;margin-top:34px}.flow-item{display:grid;grid-template-columns:50px 1fr;gap:16px;align-items:center;padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(255,255,255,.035)}
.flow-num{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(117,221,255,.35);color:var(--cyan);font-size:12px}
.small{color:#91a7b8;font-size:14px}
footer{padding:34px 0 42px;border-top:1px solid rgba(255,255,255,.06);color:#6f8491;font-size:13px}
.footer-inner{display:flex;justify-content:space-between}
@media(max-width:900px){.grid2,.cards{grid-template-columns:1fr}.menu{gap:16px}.section{padding:90px 0}}
@media(max-width:620px){.nav-inner,.container,.hero-inner{padding-left:18px;padding-right:18px}.nav-inner{height:64px}.menu{gap:11px;font-size:12px}.dropdown .drop{display:none}.footer-inner{flex-direction:column;gap:8px}}

/* v25 — In Vivo Hero positioning */
#home .hero .hero-eyebrow{
  display:inline-block;
  margin:0 0 14px 0;
  font-size:13px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#4f6f8f;
}
@media (max-width:760px){
  #home .hero .hero-eyebrow{
    margin-bottom:10px;
    font-size:11px;
    letter-spacing:.15em;
  }
}

/* v27 — refined two-line Hero supporting copy */
#home .hero .hero-sub,
#home .hero .hero-copy,
#home .hero p {
  font-size: 17px !important;
  line-height: 1.55 !important;
  letter-spacing: -0.012em !important;
}
@media (max-width: 1100px) {
  #home .hero .hero-sub,
  #home .hero .hero-copy,
  #home .hero p {
    font-size: 15.5px !important;
    letter-spacing: -0.016em !important;
  }
}
@media (max-width: 760px) {
  #home .hero .hero-sub,
  #home .hero .hero-copy,
  #home .hero p {
    font-size: 14px !important;
    line-height: 1.5 !important;
    letter-spacing: -0.018em !important;
  }
}

/* v28 — GNB click-to-open dropdown */
.menu .dropdown.open .drop{
  opacity:1 !important;
  transform:none !important;
  pointer-events:auto !important;
}
.menu .dropdown > a{
  cursor:pointer;
}

/* v29 — center GNB dropdown under parent menu + center submenu text */
.menu .dropdown .drop{
  left:50% !important;
  right:auto !important;
  transform:translate(-50%, 8px) !important;
  text-align:center !important;
}

.menu .dropdown:hover .drop,
.menu .dropdown.open .drop{
  transform:translate(-50%, 0) !important;
}

.menu .dropdown .drop a{
  text-align:center !important;
}

/* v30 — GNB dropdowns open ONLY on click, never on hover */
.menu .dropdown:hover .drop{
  opacity:0 !important;
  transform:translate(-50%, 8px) !important;
  pointer-events:none !important;
}

/* Keep only the clicked dropdown open */
.menu .dropdown.open .drop,
.menu .dropdown.open:hover .drop{
  opacity:1 !important;
  transform:translate(-50%, 0) !important;
  pointer-events:auto !important;
}

/* v32 — unify detail pages to the bright Home visual palette */

/* Detail-page hero: bright white / pale-blue like Home */
.view:not(#home) > .hero{
  background:
    radial-gradient(circle at 78% 20%, rgba(118,170,255,.20), transparent 34%),
    radial-gradient(circle at 18% 78%, rgba(120,220,255,.14), transparent 30%),
    linear-gradient(135deg,#ffffff 0%,#f5f9ff 45%,#eaf3ff 100%) !important;
  color:#13243a !important;
}
.view:not(#home) > .hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,.35),rgba(255,255,255,0));
}
.view:not(#home) > .hero .hero-inner{
  position:relative;
  z-index:3;
}
.view:not(#home) > .hero h1{
  color:#13243a !important;
  text-shadow:none !important;
}
.view:not(#home) > .hero .lead{
  color:#526b82 !important;
  text-shadow:none !important;
}
.view:not(#home) > .hero .eyebrow{
  color:#3675c5 !important;
  text-shadow:none !important;
}
.view:not(#home) > /* All detail-page content sections use the same bright palette */
.view:not(#home) .section,
.view:not(#home) .section.dark,
.view:not(#home) .section.light{
  background:#f7faff !important;
  color:#13243a !important;
}
.view:not(#home) .section:nth-of-type(even){
  background:#eef5fc !important;
}
.view:not(#home) .section h2,
.view:not(#home) .section h3{
  color:#13243a !important;
}
.view:not(#home) .copy p,
.view:not(#home) .section p{
  color:#587087 !important;
}
.view:not(#home) .kicker{
  color:#3675c5 !important;
}

/* Cards */
.view:not(#home) .card{
  background:rgba(255,255,255,.92) !important;
  border-color:#d8e5f2 !important;
  box-shadow:0 12px 34px rgba(63,105,150,.08);
}
.view:not(#home) .card p{
  color:#60778c !important;
}

/* Quotes / highlighted content */
.view:not(#home) .quote{
  background:#ffffff !important;
  color:#334e68 !important;
  border-color:#d8e5f2 !important;
  box-shadow:0 12px 32px rgba(63,105,150,.07);
}

/* Buttons on light detail pages */
.view:not(#home) .btn{
  color:#245d9d !important;
  border-color:#b9cfe5 !important;
  background:rgba(255,255,255,.72) !important;
}
.view:not(#home) .btn:hover{
  background:#ffffff !important;
  border-color:#8fb4d8 !important;
}

/* Keep the fixed GNB unchanged */

/* v34 — Home Hero headline reduced to approximately 2/3 */
#home .hero h1{
  font-size:clamp(28px, 3.2vw, 48px) !important;
}

/* v35 — translucent panel only behind the Home Hero supporting sentence */
#home .hero .lead{
  display:inline-block;
  width:fit-content;
  max-width:760px;
  padding:14px 18px;
  background:rgba(7,17,27,.56);
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 28px rgba(7,17,27,.14);
}

@media(max-width:760px){
  #home .hero .lead{
    max-width:100%;
    padding:12px 14px;
    border-radius:10px;
  }
}

/* v36 — brighten the translucent panel behind the Home Hero supporting sentence */
#home .hero .lead{
  background:rgba(255,255,255,.68) !important;
  border:1px solid rgba(255,255,255,.78) !important;
  color:#2f4d66 !important;
  text-shadow:none !important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 28px rgba(60,95,130,.10) !important;
}

/* v37 — remove translucent panel; improve supporting-copy legibility with a white halo/outline */
#home .hero .lead{
  display:block !important;
  width:auto !important;
  max-width:760px !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:none !important;

  /* Keep the existing text color, then add a crisp white edge + soft white halo */
  color:#3b5870 !important;
  text-shadow:
    -1px -1px 0 rgba(255,255,255,.96),
     1px -1px 0 rgba(255,255,255,.96),
    -1px  1px 0 rgba(255,255,255,.96),
     1px  1px 0 rgba(255,255,255,.96),
     0 0 3px rgba(255,255,255,.96),
     0 0 8px rgba(255,255,255,.88),
     0 0 14px rgba(255,255,255,.72) !important;
}

/* v38 — refined single-line platform statement */
#home .statement.platform-line{
  white-space:nowrap !important;
  font-size:clamp(18px, 1.75vw, 26px) !important;
  line-height:1.2 !important;
  letter-spacing:-0.035em !important;
  font-weight:600 !important;
}

/* Scale down smoothly while preserving a single line */
@media (max-width:1100px){
  #home .statement.platform-line{
    font-size:clamp(16px, 1.9vw, 21px) !important;
    letter-spacing:-0.04em !important;
  }
}

@media (max-width:760px){
  #home .statement.platform-line{
    font-size:clamp(11px, 3.05vw, 15px) !important;
    letter-spacing:-0.045em !important;
  }
}

/* v39 — Home platform statement + compact cards */

/* Give the first Home content band a balanced vertical rhythm. */
#home > .section.light{
  padding:72px 0 76px !important;
}

/* Statement: larger, still one line, and vertically balanced above the cards. */
#home .statement.platform-line{
  white-space:nowrap !important;
  font-size:clamp(28px, 2.75vw, 42px) !important;
  line-height:1.12 !important;
  letter-spacing:-0.045em !important;
  font-weight:620 !important;
  margin:0 !important;
}

/* Cards: reduce their visual size to roughly 2/3 of the previous footprint. */
#home .cards{
  width:100% !important;
  max-width:980px !important;
  margin:52px auto 0 !important;
  gap:16px !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
}

#home .card{
  min-height:0 !important;
  padding:20px 22px !important;
  border-radius:18px !important;
}

#home .card h3{
  margin:0 0 8px !important;
  font-size:18px !important;
  line-height:1.25 !important;
}

#home .card p{
  font-size:14px !important;
  line-height:1.55 !important;
}

#home .card .btn{
  min-height:40px !important;
  padding:0 16px !important;
  margin-top:18px !important;
  font-size:13px !important;
}

/* Tablet: keep statement on one line while scaling naturally. */
@media(max-width:1100px){
  #home > .section.light{
    padding:62px 0 68px !important;
  }
  #home .statement.platform-line{
    font-size:clamp(22px, 2.9vw, 32px) !important;
    letter-spacing:-0.05em !important;
  }
  #home .cards{
    max-width:900px !important;
    margin-top:44px !important;
  }
}

/* Mobile: existing one-column card behavior remains, with compact spacing. */
@media(max-width:900px){
  #home .statement.platform-line{
    font-size:clamp(15px, 3.25vw, 24px) !important;
    letter-spacing:-0.052em !important;
  }
  #home .cards{
    max-width:620px !important;
    margin-top:38px !important;
    gap:14px !important;
    grid-template-columns:1fr !important;
  }
}

@media(max-width:560px){
  #home > .section.light{
    padding:48px 0 54px !important;
  }
  #home .statement.platform-line{
    font-size:clamp(11px, 3.05vw, 17px) !important;
    letter-spacing:-0.055em !important;
  }
  #home .cards{
    margin-top:32px !important;
  }
}

/* Remove any legacy quote/highlight panel from this page */
#our-mission .quote{
  display:none !important;
}

@media(max-width:900px){
}

@media(max-width:560px){
}

/* v58 — Dedicated donation page */
.menu > .nav-donate{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 18px !important;
  border:1px solid rgba(33,143,197,.34);
  border-radius:999px;
  background:rgba(255,255,255,.76);
  color:#177eaf !important;
  font-weight:700 !important;
  letter-spacing:.06em;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.menu > .nav-donate:hover,
.menu > .nav-donate.active{
  background:#eef9fd;
  border-color:rgba(33,143,197,.62);
  transform:translateY(-1px);
}

.donate-view{
  background:#f6fbfd;
}
.donate-hero{
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 35%, rgba(77,175,217,.16), transparent 33%),
    radial-gradient(circle at 16% 70%, rgba(109,191,218,.12), transparent 34%),
    linear-gradient(180deg,#fbfeff 0%,#edf8fc 100%);
}

.donate-hero:before,
.donate-hero:after{
  content:"";
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(53,153,195,.15);
  pointer-events:none;
}
.donate-hero:before{
  width:380px;height:380px;
  right:-80px;top:55px;
}
.donate-hero:after{
  width:235px;height:235px;
  right:105px;top:130px;
}
.donate-hero-inner{
  position:relative;
  z-index:2;
  text-align:center;
  max-width:980px;
  margin:0 auto;
  padding-top:30px;
}
.donate-hero .eyebrow{
  margin-bottom:20px;
  color:#218fc5;
  font-weight:700;
  letter-spacing:.15em;
}
.donate-hero h1{
  margin:0 auto;
  max-width:940px;
  font-size:clamp(48px,5.5vw,76px);
  line-height:1.02;
  letter-spacing:-.052em;
}
.donate-hero .lead{
  max-width:790px;
  margin:26px auto 0;
  font-size:18px;
  line-height:1.65;
  color:#4b6373;
}

.donate-section{
  padding-top:88px !important;
  padding-bottom:96px !important;
}
.donate-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(360px,.8fr);
  gap:76px;
  align-items:center;
  max-width:1080px;
}
.donate-copy h2{
  margin-top:12px;
  font-size:clamp(38px,4vw,58px);
  line-height:1.05;
  letter-spacing:-.048em;
}
.donate-copy p{
  max-width:620px;
  font-size:16px;
  line-height:1.75;
  color:#536a78;
}
.donate-card{
  border:1px solid rgba(30,126,173,.16);
  border-radius:28px;
  padding:42px;
  background:rgba(255,255,255,.92);
  box-shadow:0 22px 60px rgba(47,105,132,.10);
}
.donate-card-label{
  color:#218fc5;
  font-size:12px;
  font-weight:750;
  letter-spacing:.14em;
}
.donate-card h3{
  margin:12px 0 10px;
  font-size:30px;
  letter-spacing:-.035em;
}
.donate-card p{
  margin:0 0 26px;
  color:#597080;
  line-height:1.65;
}
.paypal-donate-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  width:100%;
  border-radius:14px;
  background:#ffffff;
  border:1px solid rgba(19,112,166,.32);
  color:#1478a8;
  text-decoration:none;
  font-weight:750;
  font-size:16px;
  box-shadow:0 8px 22px rgba(38,118,153,.08);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.paypal-donate-btn:hover{
  transform:translateY(-2px);
  background:#f6fcff;
  box-shadow:0 12px 28px rgba(38,118,153,.13);
}
.donate-note{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(38,118,153,.10);
  font-size:12px;
  line-height:1.55;
  color:#8a9aa4;
}

@media(max-width:820px){
  .donate-hero h1{font-size:clamp(38px,10vw,58px)}
  .donate-grid{grid-template-columns:1fr;gap:42px}
  .donate-card{padding:30px}
  .menu > .nav-donate{
    min-height:36px;
    padding:0 13px !important;
  }
}

/* v60 — v58 base: DONATE uses the same plain GNB text style as ABOUT / STRATEGIES / CONTACT */
.menu > .nav-donate{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:inherit !important;
  font-weight:inherit !important;
  letter-spacing:inherit !important;
  transform:none !important;
  transition:color .2s ease !important;
}
.menu > .nav-donate:hover,
.menu > .nav-donate.active{
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
  color:inherit !important;
}

/* v63 — Donate page: QR + direct PayPal donation CTA */
.donate-card-v63{
  padding:38px 38px 34px !important;
}
.donate-card-v63 .donate-card-intro{
  margin-bottom:28px !important;
}
.donate-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);
  align-items:stretch;
  gap:18px;
}
.donate-qr-wrap,
.donate-button-wrap{
  min-width:0;
}
.donate-option-title{
  font-size:15px;
  font-weight:750;
  letter-spacing:-.01em;
  color:#203849;
  margin-bottom:5px;
}
.donate-option-copy{
  min-height:42px;
  font-size:13px;
  line-height:1.5;
  color:#70838f;
  margin-bottom:16px;
}
.donate-qr-frame{
  width:100%;
  max-width:220px;
  aspect-ratio:1 / 1;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px;
  background:#fff;
  border:1px solid rgba(30,126,173,.14);
  border-radius:18px;
  box-shadow:0 12px 30px rgba(47,105,132,.08);
}
.donate-qr{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.donate-or{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9aaab3;
  font-size:11px;
  font-weight:750;
  letter-spacing:.12em;
}
.donate-or:before,
.donate-or:after{
  content:"";
  position:absolute;
  left:50%;
  width:1px;
  height:calc(50% - 22px);
  background:rgba(39,118,153,.12);
}
.donate-or:before{top:0}
.donate-or:after{bottom:0}
.donate-or span{
  background:#fff;
  position:relative;
  z-index:1;
  padding:7px 0;
}
.donate-button-wrap{
  display:flex;
  flex-direction:column;
}
.paypal-donate-btn-v63{
  min-height:58px !important;
  margin-top:auto;
  background:linear-gradient(180deg,#ffffff 0%,#f6fbfe 100%) !important;
  border:1px solid rgba(13,112,172,.30) !important;
  color:#1478a8 !important;
  font-size:16px !important;
  font-weight:800 !important;
}
.paypal-donate-btn-v63:hover{
  background:#eef9fd !important;
}
.donate-secure-note{
  margin-top:12px;
  text-align:center;
  color:#8a9aa4;
  font-size:11px;
  line-height:1.4;
}

@media(max-width:900px){
  .donate-actions{
    grid-template-columns:1fr;
    gap:26px;
  }
  .donate-option-copy{min-height:0}
  .donate-or{
    min-height:24px;
  }
  .donate-or:before,
  .donate-or:after{
    top:50%;
    width:calc(50% - 28px);
    height:1px;
  }
  .donate-or:before{left:0}
  .donate-or:after{left:auto; right:0; bottom:auto}
  .donate-or span{padding:0 10px}
  .paypal-donate-btn-v63{margin-top:6px}
}

/* v64 — Donate page refinements */
.donate-qr-frame{
  max-width:330px !important; /* 220px × 1.5 */
}
.paypal-donate-btn-v63{
  text-align:center !important;
  justify-content:center !important;
  align-items:center !important;
}

/* v65 — QR code 2x original size */
.donate-qr-frame{
  max-width:440px !important;
}

/* v69 — Based on v65: visually enlarge QR ~2x without overflow */
.donate-actions{
  grid-template-columns:minmax(0,2fr) 44px minmax(0,1fr) !important;
  gap:18px !important;
}

.donate-qr-frame{
  width:100% !important;
  max-width:440px !important;
  aspect-ratio:1 / 1 !important;
  margin:0 auto !important;
}

.donate-qr{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
}

@media(max-width:900px){
  .donate-actions{
    grid-template-columns:1fr !important;
  }
  .donate-qr-frame{
    width:100% !important;
    max-width:440px !important;
  }
}

/* v70 — QR approximately 2x larger than v69 */
.donate-grid{
  max-width:1320px !important;
  grid-template-columns:minmax(300px,.72fr) minmax(700px,1.28fr) !important;
  gap:54px !important;
}

.donate-actions{
  grid-template-columns:minmax(0,2.35fr) 44px minmax(240px,1fr) !important;
  gap:20px !important;
}

.donate-qr-frame{
  width:100% !important;
  max-width:880px !important;
  aspect-ratio:1 / 1 !important;
  margin:0 auto !important;
}

@media(max-width:1050px){
  .donate-grid{
    grid-template-columns:1fr !important;
    max-width:820px !important;
  }
}

@media(max-width:900px){
  .donate-actions{
    grid-template-columns:1fr !important;
  }
  .donate-qr-frame{
    width:100% !important;
    max-width:880px !important;
  }
}

/* v71 — Vertically center the Donate button in the Donate Online column */
.donate-button-wrap{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
}

.paypal-donate-btn-v63{
  margin-top:auto !important;
  margin-bottom:auto !important;
}

.donate-secure-note{
  margin-top:-28px !important;
  transform:translateY(42px) !important;
}

/* v72 — Align Donate button vertically with the OR label */
.donate-button-wrap{
  position:relative !important;
}

.paypal-donate-btn-v63{
  position:absolute !important;
  top:50% !important;
  left:0 !important;
  width:100% !important;
  margin:0 !important;
  transform:translateY(-50%) !important;
}

.paypal-donate-btn-v63:hover{
  transform:translateY(calc(-50% - 2px)) !important;
}

.donate-secure-note{
  position:absolute !important;
  top:calc(50% + 42px) !important;
  left:0 !important;
  width:100% !important;
  margin:0 !important;
  transform:none !important;
}

/* v73 — Donate hero background image */
.donate-hero{
  position:relative !important;
  background-image:url("/assets/images/donate-hero-c95d7536.webp") !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  }

.donate-hero::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  width:auto !important;
  height:auto !important;
  right:auto !important;
  top:auto !important;
  border:0 !important;
  border-radius:0 !important;
  background:rgba(255,255,255,.26) !important;
  pointer-events:none !important;
}

.donate-hero::after{
  display:none !important;
}

.donate-hero-inner{
  position:relative !important;
  z-index:2 !important;
}

@media(max-width:820px){
  .donate-hero{
    background-size:cover !important;
    background-position:center center !important;
    }
}

#donate .donate-hero .eyebrow{
  color:#087fb9 !important;
  text-shadow:
    0 0 4px rgba(255,255,255,.98),
    0 0 10px rgba(255,255,255,.95) !important;
}

/* v78 — Structural fix for Our Mission background.
   A real image layer is used because legacy detail-page CSS applies
   a `background: ... !important` shorthand to every detail hero. */

#our-mission > .hero{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
}

/* Actual uploaded image layer */
#our-mission > .hero > .our-mission-hero-bg{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  z-index:0 !important;
  pointer-events:none !important;
}

/* Disable the old animated detail-page canvas */
/* Remove the old dark hero overlay; keep only a very soft white veil */
#our-mission > .hero::after{
  background:rgba(255,255,255,.08) !important;
  z-index:1 !important;
}
#our-mission > .hero::before{
  display:block !important;
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,.34) 0%,
    rgba(255,255,255,.16) 48%,
    rgba(255,255,255,.06) 100%
  ) !important;
  z-index:1 !important;
  pointer-events:none !important;
}

/* Text always above the background image */
#our-mission > .hero > .hero-inner{
  position:relative !important;
  z-index:3 !important;
}
#our-mission .hero .eyebrow{
  color:#087fb9 !important;
  text-shadow:
    0 0 4px rgba(255,255,255,.98),
    0 0 9px rgba(255,255,255,.94) !important;
}

/* Make sure ABOUT itself has no custom image layer */
#about .our-mission-hero-bg{
  display:none !important;
}

@media(max-width:820px){
  #our-mission > .hero > .our-mission-hero-bg{
    object-fit:cover !important;
    object-position:center center !important;
  }
}

/* v80 — Align the Our Mission vision copy with the top of the heading */
#our-mission .mission-grid,
#our-mission .vision-grid,
#our-mission .split{
  align-items:start !important;
}

#our-mission .mission-grid > *,
#our-mission .vision-grid > *,
#our-mission .split > *{
  align-self:start !important;
}

/* Remove any top offset on the right-side vision statement */
#our-mission .mission-grid p,
#our-mission .vision-grid p,
#our-mission .split p{
  margin-top:0 !important;
  padding-top:0 !important;
  transform:none !important;
}

/* v81 — Align right-side vision text with the H2, not with the kicker */
#our-mission .section.dark .container.grid2{
  align-items:start !important;
}

/* Left column has a kicker above H2:
   kicker line + 18px margin-bottom ≈ 33px total offset.
   Match that on the right so the paragraph starts at the H2 top. */
#our-mission .section.dark .container.grid2 > .copy{
  padding-top:33px !important;
  margin-top:0 !important;
}

#our-mission .section.dark .container.grid2 > .copy p:first-child{
  margin-top:0 !important;
}

@media(max-width:820px){
  #our-mission .section.dark .container.grid2 > .copy{
    padding-top:0 !important;
  }
}

/* v82 — Our Mission detail-section refinements */

/* 1. Make the "Our Mission" kicker approximately 2x larger */
#our-mission .section.dark .kicker{
  font-size:24px !important;
  line-height:1.2 !important;
}

/* 2. Move the right-side vision statement slightly lower.
   Increased from v81's 33px offset to account for the larger kicker
   and the remaining visual misalignment. */
#our-mission .section.dark .container.grid2 > .copy{
  padding-top:47px !important;
  margin-top:0 !important;
}

#our-mission .section.dark .container.grid2 > .copy p:first-child{
  margin-top:0 !important;
}

@media(max-width:820px){
  #our-mission .section.dark .container.grid2 > .copy{
    padding-top:0 !important;
  }
}

/* v86 — Donate legal disclosure */
#donate .donate-legal{
  width:min(1080px, calc(100% - 40px));
  margin:52px auto 0;
  padding:28px 30px;
  border-top:1px solid rgba(19,36,58,.16);
  color:#52677a;
  font-size:13px;
  line-height:1.7;
}
#donate .donate-legal p{margin:0 0 5px}
#donate .donate-legal p:last-child{margin-bottom:0}
#donate .donate-legal strong{color:#243b52;font-weight:700}

/* Footer nonprofit status */
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-nonprofit{font-size:12px;font-weight:500;opacity:.68;white-space:nowrap}
@media(max-width:820px){
  .footer-brand{display:block}
  .footer-nonprofit{display:block;margin-top:4px;white-space:normal;font-size:11px}
  #donate .donate-legal{
    width:min(100% - 28px,1080px);
    margin-top:36px;
    padding:22px 4px 0;
  }
}

/* v88 — Emphasize 501(c)(3) in Donate disclosure */
#donate .donate-legal .donate-501{
  font-weight:800 !important;
  color:#13243a !important;
}

/* v89 — Strategies detail-page background image */
#strategies > .hero{
  position:relative !important;
  overflow:hidden !important;
  background:#eef6ff !important;
  color:#13243a !important;
}
#strategies > .hero > .strategies-hero-bg{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  z-index:0 !important;
  pointer-events:none !important;
}
#strategies > .hero::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:rgba(255,255,255,.10) !important;
  pointer-events:none !important;
  z-index:1 !important;
}
#strategies > .hero > .hero-inner{
  position:relative !important;
  z-index:2 !important;
}
#strategies > .hero h1,
#strategies > .hero .lead,
#strategies > .hero .eyebrow{
  color:#13243a !important;
  text-shadow:
    -1px -1px 0 rgba(255,255,255,.92),
     1px -1px 0 rgba(255,255,255,.92),
    -1px  1px 0 rgba(255,255,255,.92),
     1px  1px 0 rgba(255,255,255,.92),
     0 0 8px rgba(255,255,255,.88) !important;
}

/* v90 — Apply Strategies image to Strategies > In Vivo detail hero */
#in-vivo > .hero{
  position:relative !important;
  overflow:hidden !important;
  background:#eef6ff !important;
  color:#13243a !important;
}
#in-vivo > .hero > .in-vivo-hero-bg{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  z-index:0 !important;
  pointer-events:none !important;
}
#in-vivo > .hero::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:rgba(255,255,255,.10) !important;
  pointer-events:none !important;
  z-index:1 !important;
}
#in-vivo > .hero > .hero-inner{
  position:relative !important;
  z-index:2 !important;
}
#in-vivo > .hero h1,
#in-vivo > .hero .lead,
#in-vivo > .hero .eyebrow{
  color:#13243a !important;
  text-shadow:
    -1px -1px 0 rgba(255,255,255,.92),
     1px -1px 0 rgba(255,255,255,.92),
    -1px  1px 0 rgba(255,255,255,.92),
     1px  1px 0 rgba(255,255,255,.92),
     0 0 8px rgba(255,255,255,.88) !important;
}

/* v95 — based directly on v90
   Improve readability of In Vivo title and description over the background */
#in-vivo > .hero .hero-inner h1,
#in-vivo > .hero .hero-inner .lead{
  position:relative !important;
  z-index:4 !important;
  text-shadow:
    0 1px 2px rgba(255,255,255,.98),
    0 0 4px rgba(255,255,255,.96),
    0 0 8px rgba(255,255,255,.92),
    0 0 14px rgba(255,255,255,.86),
    0 0 22px rgba(255,255,255,.72) !important;
}

/* Soft local halo only around the text, without a visible rectangular box */
#in-vivo > .hero .hero-inner h1::before,
#in-vivo > .hero .hero-inner .lead::before{
  content:"" !important;
  position:absolute !important;
  left:-18px !important;
  right:-18px !important;
  top:-10px !important;
  bottom:-10px !important;
  background:rgba(255,255,255,.18) !important;
  filter:blur(14px) !important;
  border-radius:18px !important;
  z-index:-1 !important;
  pointer-events:none !important;
}

/* v96 — Make nonprofit/EIN descriptor match footer text brightness */
footer .footer-501-meta{
  color:inherit !important;
  opacity:1 !important;
}

/* =========================================================
   v99 — Rebuilt In Vivo strategy page
   ========================================================= */
#in-vivo.in-vivo-v99{background:#f7fafc;color:#13243a}
#in-vivo .in-vivo-v99-hero{
  background:
    radial-gradient(circle at 78% 33%,rgba(108,140,255,.22),transparent 28%),
    radial-gradient(circle at 64% 65%,rgba(117,221,255,.18),transparent 30%),
    linear-gradient(135deg,#eef6ff 0%,#f9fcff 48%,#eaf3ff 100%) !important;
  color:#13243a !important;isolation:isolate;
}
#in-vivo .in-vivo-v99-hero:after{background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(255,255,255,.36) 52%,rgba(255,255,255,.06)) !important;z-index:1}
#in-vivo .in-vivo-v99-glow{position:absolute;right:6%;top:16%;width:min(46vw,650px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(96,138,255,.17),rgba(117,221,255,.06) 46%,transparent 70%);filter:blur(2px);z-index:0}
#in-vivo .in-vivo-v99-hero .hero-inner{position:relative;z-index:2;max-width:1220px;width:100%}
#in-vivo .in-vivo-v99-hero .eyebrow{color:#2f73c9 !important;font-weight:800;letter-spacing:.16em}

#in-vivo .in-vivo-intro{padding:105px 0 110px;background:#f7fafc}
#in-vivo .in-vivo-intro-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:86px;align-items:start}
#in-vivo .in-vivo-intro h2{color:#13243a;font-size:clamp(42px,5vw,68px);line-height:1.03;letter-spacing:-.05em;margin:13px 0 0}
#in-vivo .in-vivo-intro-copy{padding-top:34px;color:#536b80;font-size:18px;line-height:1.78}
#in-vivo .in-vivo-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:72px}
#in-vivo .platform-pillar{position:relative;border:1px solid #d8e5ef;background:#fff;border-radius:24px;padding:32px 30px 34px;box-shadow:0 15px 38px rgba(31,64,99,.055)}
#in-vivo .platform-pillar.featured{background:linear-gradient(145deg,#eef6ff,#fff);border-color:#b8d3ec}
#in-vivo .pillar-index{position:absolute;right:24px;top:22px;font-weight:800;color:#a7bed1;font-size:13px}
#in-vivo .pillar-kicker{font-size:12px;font-weight:800;letter-spacing:.14em;color:#367cc8;margin-bottom:18px}
#in-vivo .platform-pillar h3{font-size:25px;color:#13243a;margin:0 0 13px;letter-spacing:-.025em}
#in-vivo .platform-pillar p{margin:0;color:#63798d;line-height:1.7;font-size:15px}

#in-vivo .in-vivo-architecture{background:#071522;color:#eaf4fb;padding:105px 0}
#in-vivo .section-heading-center{text-align:center;max-width:850px;margin:0 auto 52px}
#in-vivo .section-heading-center .kicker{color:#75ddff}
#in-vivo .section-heading-center h2{font-size:clamp(42px,4.8vw,64px);letter-spacing:-.048em;line-height:1.05;margin:12px 0 18px;color:#f4f8fb}
#in-vivo .section-heading-center p{color:#a8bdcc;font-size:17px;line-height:1.7;margin:0}
#in-vivo .platform-table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(255,255,255,.035)}
#in-vivo .platform-table{width:100%;border-collapse:collapse;min-width:760px}
#in-vivo .platform-table th{padding:20px 24px;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#75ddff;border-bottom:1px solid rgba(255,255,255,.11)}
#in-vivo .platform-table td{padding:23px 24px;color:#afc2d1;border-bottom:1px solid rgba(255,255,255,.075);line-height:1.55}
#in-vivo .platform-table td:first-child{color:#f1f7fb;width:20%}
#in-vivo .platform-table tr:last-child td{border-bottom:none}

#in-vivo .pe-workflow-section{background:#f4f8fc;padding:110px 0}
#in-vivo .workflow-heading{display:grid;grid-template-columns:1fr .85fr;gap:70px;align-items:end;margin-bottom:46px}
#in-vivo .workflow-heading h2{color:#13243a;font-size:clamp(40px,4.7vw,62px);line-height:1.05;letter-spacing:-.047em;margin:12px 0 0}
#in-vivo .workflow-heading>p{margin:0;color:#60778c;font-size:16px;line-height:1.75;padding-bottom:6px}
#in-vivo .pe-workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
#in-vivo .pe-step-card{overflow:hidden;background:#fff;border:1px solid #dbe6ef;border-radius:20px;box-shadow:0 12px 30px rgba(27,62,94,.055)}
#in-vivo .pe-step-media{aspect-ratio:16/9;background:#eef5fc;overflow:hidden}
#in-vivo .pe-step-media img{display:block;width:100%;height:100%;object-fit:cover}
#in-vivo .pe-step-body{display:grid;grid-template-columns:38px 1fr;gap:14px;padding:20px 20px 23px}
#in-vivo .pe-step-num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#1767e8;color:white;font-weight:800;font-size:11px}
#in-vivo .pe-step-body h3{margin:1px 0 7px;color:#13243a;font-size:18px;letter-spacing:-.02em}
#in-vivo .pe-step-body p{margin:0;color:#6a7f91;font-size:13.5px;line-height:1.55}
#in-vivo .workflow-note{margin:28px auto 0;max-width:850px;text-align:center;color:#7890a3;font-size:13px;line-height:1.65}

#in-vivo .in-vivo-close{padding:90px 0;background:linear-gradient(135deg,#eaf3ff,#f8fbfe)}
#in-vivo .in-vivo-close-card{max-width:930px;margin:auto;text-align:center;padding:54px 54px;border-radius:28px;background:rgba(255,255,255,.8);border:1px solid #d8e6f0;box-shadow:0 18px 50px rgba(37,76,112,.07)}
#in-vivo .in-vivo-close-card .kicker{color:#2f79c6}
#in-vivo .in-vivo-close-card h2{color:#13243a;font-size:clamp(38px,4.6vw,60px);line-height:1.07;letter-spacing:-.045em;margin:12px 0 18px}
#in-vivo .in-vivo-close-card p{color:#5d7489;font-size:17px;line-height:1.75;max-width:760px;margin:auto}

@media(max-width:900px){
  #in-vivo .in-vivo-intro-grid,#in-vivo .workflow-heading{grid-template-columns:1fr;gap:30px}
  #in-vivo .in-vivo-intro-copy{padding-top:0}
  #in-vivo .in-vivo-pillars{grid-template-columns:1fr}
  #in-vivo .pe-workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  #in-vivo .in-vivo-intro,#in-vivo .in-vivo-architecture,#in-vivo .pe-workflow-section{padding:78px 0}
  #in-vivo .pe-workflow-grid{grid-template-columns:1fr}
  #in-vivo .in-vivo-close-card{padding:38px 24px}
}

/* v100 — In Vivo detail-page typography/layout refinements */

/* Hero title + supporting copy centered */
#in-vivo .in-vivo-v99-hero .hero-inner{
  width:min(94vw, 980px) !important;
  max-width:980px !important;
  margin:0 auto !important;
  padding-left:24px !important;
  padding-right:24px !important;
  text-align:center !important;
}

/* Platform Strategy approximately 2x the previous kicker size */
#in-vivo .in-vivo-intro .kicker{
  font-size:2em !important;
  line-height:1.05 !important;
  letter-spacing:.08em !important;
}

/* Preserve requested two-line heading */
#in-vivo .in-vivo-intro h2{
  text-wrap:balance;
}

/* v101 — lock requested headings to exact visual line counts */

/* Hero: exactly two lines */
#in-vivo .in-vivo-v99-hero .hero-inner{
  width:min(96vw, 1180px) !important;
  max-width:1180px !important;
}

/* Intro title: exactly two lines */
#in-vivo .in-vivo-intro h2{
  max-width:760px !important;
  width:100% !important;
  font-size:clamp(34px,3.35vw,52px) !important;
  line-height:1.04 !important;
  letter-spacing:-.03em !important;
  white-space:nowrap !important;
}
#in-vivo .in-vivo-intro h2 br{
  display:block !important;
}

/* Platform Architecture — 2x emphasis */
#in-vivo .platform-architecture .kicker,
#in-vivo .architecture-section .kicker,
#in-vivo .platform-architecture-title,
#in-vivo .architecture-title{
  font-size:2em !important;
  line-height:1.05 !important;
  letter-spacing:.08em !important;
}

/* One Framework Multiple Technologies — single line */
#in-vivo .platform-architecture h2,
#in-vivo .architecture-section h2{
  white-space:nowrap !important;
  font-size:clamp(32px,3vw,46px) !important;
  line-height:1.04 !important;
  letter-spacing:-.03em !important;
  max-width:none !important;
}

#in-vivo .one-framework-title{
  white-space:nowrap !important;
  font-size:clamp(32px,3vw,46px) !important;
  line-height:1.04 !important;
  letter-spacing:-.03em !important;
  max-width:none !important;
}

@media(max-width:760px){
}

/* v106 — Restore V98-style vertical alignment for the two right-side copy blocks */

/* ABOUT > OUR MISSION
   Restore the established 47px offset used for the V98-era Mission layout */
#our-mission .section.dark .container.grid2{
  align-items:start !important;
}
#our-mission .section.dark .container.grid2 > .mission-vision-copy-v106{
  padding-top:47px !important;
  margin-top:0 !important;
  align-self:start !important;
}
#our-mission .section.dark .container.grid2 > .mission-vision-copy-v106 p:first-child{
  margin-top:0 !important;
}

/* STRATEGIES > IN VIVO > PLATFORM STRATEGY
   Use the same vertical-offset logic as the Our Mission layout */
#in-vivo .in-vivo-intro-grid{
  align-items:start !important;
}
#in-vivo .in-vivo-intro-grid > .platform-strategy-copy-v106{
  padding-top:47px !important;
  margin-top:0 !important;
  align-self:start !important;
}
#in-vivo .in-vivo-intro-grid > .platform-strategy-copy-v106 p:first-child{
  margin-top:0 !important;
}

/* On stacked/mobile layouts, return both copy blocks to normal flow */
@media(max-width:900px){
  #in-vivo .in-vivo-intro-grid > .platform-strategy-copy-v106{
    padding-top:0 !important;
  }
}
@media(max-width:820px){
  #our-mission .section.dark .container.grid2 > .mission-vision-copy-v106{
    padding-top:0 !important;
  }
}

/* v107 — Match right-side copy height to the supplied Our Mission reference */

/* ABOUT > OUR MISSION */
#our-mission .section.dark .container.grid2{
  align-items:start !important;
}
#our-mission .section.dark .container.grid2 > .mission-copy-v107{
  padding-top:68px !important;
  margin-top:0 !important;
  align-self:start !important;
}
#our-mission .section.dark .container.grid2 > .mission-copy-v107 p:first-child{
  margin-top:0 !important;
}

/* STRATEGIES > IN VIVO — use the same visual alignment */
#in-vivo .in-vivo-intro-grid{
  align-items:start !important;
}
#in-vivo .in-vivo-intro-grid > .strategy-copy-v107{
  padding-top:68px !important;
  margin-top:0 !important;
  align-self:start !important;
}
#in-vivo .in-vivo-intro-grid > .strategy-copy-v107 p:first-child{
  margin-top:0 !important;
}

/* Stacked/mobile layouts */
@media(max-width:900px){
  #in-vivo .in-vivo-intro-grid > .strategy-copy-v107{
    padding-top:0 !important;
  }
}
@media(max-width:820px){
  #our-mission .section.dark .container.grid2 > .mission-copy-v107{
    padding-top:0 !important;
  }
}

/* v108 — Exact In Vivo heading/copy line breaks */

/* Left heading: exactly 2 lines */
#in-vivo .in-vivo-intro h2{
  width:100% !important;
  max-width:640px !important;
  font-size:clamp(31px,3.0vw,46px) !important;
  line-height:1.06 !important;
  letter-spacing:-.035em !important;
  white-space:nowrap !important;
}
#in-vivo .in-vivo-intro h2 br{
  display:block !important;
}

/* Give the section enough horizontal room for the requested copy lines */
#in-vivo .in-vivo-intro .container{
  max-width:1280px !important;
}
#in-vivo .in-vivo-intro-grid{
  grid-template-columns:minmax(500px,.92fr) minmax(680px,1.08fr) !important;
  column-gap:56px !important;
}

/* Right copy: exactly 5 lines */
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
  max-width:none !important;
}
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
  margin:0 !important;
  font-size:clamp(16px,1.28vw,19px) !important;
  line-height:1.72 !important;
  letter-spacing:-.012em !important;
  white-space:nowrap !important;
}

/* Keep the existing v107 vertical alignment */
#in-vivo .in-vivo-intro-grid > .strategy-copy-v107{
  padding-top:68px !important;
}

/* Responsive fallback */
@media(max-width:1100px){
  #in-vivo .in-vivo-intro-grid{
    grid-template-columns:1fr !important;
    row-gap:34px !important;
  }
  #in-vivo .in-vivo-intro h2,
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    white-space:normal !important;
  }
  #in-vivo .in-vivo-intro-grid > .strategy-copy-v107{
    padding-top:0 !important;
  }
}

/* v109 — Fix overlap in In Vivo Platform Strategy section
   Cause: v108 forced two wide min-width grid columns inside a narrower container.
   Solution: use proportional columns that fit the container, reduce title size slightly,
   and keep a guaranteed gap between columns. */

#in-vivo .in-vivo-intro .container{
  max-width:1380px !important;
  padding-left:56px !important;
  padding-right:56px !important;
}

#in-vivo .in-vivo-intro-grid{
  display:grid !important;
  grid-template-columns:minmax(0, .95fr) minmax(0, 1.25fr) !important;
  column-gap:72px !important;
  align-items:start !important;
}

/* Left title: retain exact 2-line structure, but fit safely inside its own column */
#in-vivo .in-vivo-intro h2{
  width:100% !important;
  max-width:100% !important;
  font-size:clamp(28px,2.55vw,42px) !important;
  line-height:1.08 !important;
  letter-spacing:-.035em !important;
  white-space:nowrap !important;
  overflow:visible !important;
}

/* Right copy: retain exact requested 5-line structure */
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  padding-top:68px !important;
}

#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
  margin:0 !important;
  font-size:clamp(14px,1.05vw,17px) !important;
  line-height:1.78 !important;
  letter-spacing:-.015em !important;
  white-space:nowrap !important;
}

/* Medium desktop / laptop */
@media(max-width:1250px){
  #in-vivo .in-vivo-intro .container{
    padding-left:36px !important;
    padding-right:36px !important;
  }
  #in-vivo .in-vivo-intro-grid{
    grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr) !important;
    column-gap:48px !important;
  }
  #in-vivo .in-vivo-intro h2{
    font-size:clamp(26px,2.5vw,36px) !important;
  }
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    font-size:clamp(13px,1.05vw,15.5px) !important;
  }
}

/* Stack only when the viewport is truly too narrow for the requested fixed line layout */
@media(max-width:1050px){
  #in-vivo .in-vivo-intro-grid{
    grid-template-columns:1fr !important;
    row-gap:32px !important;
  }
  #in-vivo .in-vivo-intro h2,
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    white-space:normal !important;
  }
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
    padding-top:0 !important;
  }
}

/* v110 — Ultra-wide desktop fix for In Vivo Platform Strategy
   Use the available viewport width instead of capping the section at 1380px */

#in-vivo .in-vivo-intro .container{
  width:min(94vw, 1720px) !important;
  max-width:1720px !important;
  padding-left:48px !important;
  padding-right:48px !important;
}

#in-vivo .in-vivo-intro-grid{
  display:grid !important;
  grid-template-columns:minmax(560px, 620px) minmax(820px, 1fr) !important;
  column-gap:88px !important;
  align-items:start !important;
}

/* Left heading — preserve exact requested 2-line structure */
#in-vivo .in-vivo-intro h2{
  width:100% !important;
  max-width:620px !important;
  font-size:clamp(34px,2.55vw,48px) !important;
  line-height:1.07 !important;
  letter-spacing:-.035em !important;
  white-space:nowrap !important;
}

/* Right copy — preserve requested 5-line structure */
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  padding-top:68px !important;
}

#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
  margin:0 !important;
  font-size:clamp(15px,1vw,18px) !important;
  line-height:1.75 !important;
  letter-spacing:-.012em !important;
  white-space:nowrap !important;
}

/* Large desktop fallback */
@media(max-width:1500px){
  #in-vivo .in-vivo-intro .container{
    width:min(96vw, 1480px) !important;
    padding-left:34px !important;
    padding-right:34px !important;
  }
  #in-vivo .in-vivo-intro-grid{
    grid-template-columns:minmax(500px,560px) minmax(700px,1fr) !important;
    column-gap:58px !important;
  }
  #in-vivo .in-vivo-intro h2{
    font-size:clamp(31px,2.45vw,42px) !important;
  }
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    font-size:clamp(14px,.98vw,16px) !important;
  }
}

/* Stack before overlap can occur */
@media(max-width:1260px){
  #in-vivo .in-vivo-intro-grid{
    grid-template-columns:1fr !important;
    row-gap:34px !important;
  }
  #in-vivo .in-vivo-intro h2,
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    white-space:normal !important;
  }
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
    padding-top:0 !important;
  }
}

/* v111 — In Vivo Platform Strategy copy: exact 4-line desktop layout */
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
  white-space:nowrap !important;
  font-size:clamp(14px,.95vw,17px) !important;
  line-height:1.82 !important;
  letter-spacing:-.014em !important;
}

/* Keep the four fixed lines only where there is enough desktop width */
@media(max-width:1260px){
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    white-space:normal !important;
  }
}

/* v112 — Five-line Platform Strategy copy with hard overflow protection */
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
  min-width:0 !important;
  max-width:100% !important;
  overflow:visible !important;
}
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
  max-width:100% !important;
  margin:0 !important;
  font-size:clamp(14px,.90vw,16.5px) !important;
  line-height:1.82 !important;
  letter-spacing:-.014em !important;
  white-space:nowrap !important;
}

/* Before the fixed five-line text could overflow, allow normal wrapping */
@media(max-width:1450px){
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    white-space:normal !important;
    overflow-wrap:normal !important;
  }
}

/* v113 — exact custom 4-line Platform Strategy copy */
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
  margin:0 !important;
  max-width:100% !important;
  font-size:clamp(13px,.82vw,15.5px) !important;
  line-height:1.82 !important;
  letter-spacing:-.018em !important;
  white-space:nowrap !important;
}

/* Allow safe wrapping before any line can overflow */
@media(max-width:1580px){
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    white-space:normal !important;
  }
}

/* v115 — Apply Live Layout Editor settings for Strategies > In Vivo */
#in-vivo .in-vivo-intro .container{
  width:min(96vw,1720px) !important;
  max-width:1720px !important;
}

#in-vivo .in-vivo-intro-grid{
  display:grid !important;
  grid-template-columns:620px minmax(0,1fr) !important;
  column-gap:88px !important;
  align-items:start !important;
}

#in-vivo .in-vivo-intro h2{
  width:100% !important;
  max-width:620px !important;
  font-size:42px !important;
  line-height:1.06 !important;
  letter-spacing:-0.034em !important;
  white-space:nowrap !important;
}

#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  padding-top:68px !important;
  margin-top:0 !important;
}

#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
  margin:0 !important;
  max-width:100% !important;
  font-size:15.5px !important;
  line-height:1.82 !important;
  letter-spacing:-0.018em !important;
  white-space:nowrap !important;
}

/* Responsive protection */
@media(max-width:1450px){
  #in-vivo .in-vivo-intro-grid{
    grid-template-columns:1fr !important;
    row-gap:34px !important;
  }
  #in-vivo .in-vivo-intro h2,
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    white-space:normal !important;
  }
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
    padding-top:0 !important;
  }
}

/* v117 — Platform Strategy typography + tighter two-column spacing */

/* Match the visual scale of "Toward Lasting Genetic Correction" */
#in-vivo .in-vivo-intro h2{
  font-size:54px !important;
  line-height:1.06 !important;
  letter-spacing:-0.034em !important;
  white-space:nowrap !important;
}

/* Bring the strategy paragraph substantially closer to the heading */
#in-vivo .in-vivo-intro-grid{
  grid-template-columns:620px minmax(0,1fr) !important;
  column-gap:28px !important;
}

/* Keep the existing vertical alignment */
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
  padding-top:68px !important;
}

/* Preserve the user-approved 3-line body layout on wide screens */
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
  font-size:15.5px !important;
  line-height:1.82 !important;
  letter-spacing:-0.018em !important;
  white-space:nowrap !important;
}

@media(max-width:1450px){
  #in-vivo .in-vivo-intro-grid{
    grid-template-columns:1fr !important;
    row-gap:34px !important;
  }
  #in-vivo .in-vivo-intro h2,
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy p{
    white-space:normal !important;
  }
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
    padding-top:0 !important;
  }
}

/* v118 — Platform Strategy alignment */
#in-vivo .in-vivo-intro .kicker{
  font-size:24px !important;
  line-height:1.2 !important;
  letter-spacing:.08em !important;
}
#in-vivo .in-vivo-intro .container{
  width:min(96vw,1760px) !important;
  max-width:1760px !important;
  padding-left:20px !important;
  padding-right:20px !important;
}
#in-vivo .in-vivo-intro-grid{
  grid-template-columns:470px minmax(0,1fr) !important;
  column-gap:52px !important;
}
#in-vivo .in-vivo-intro h2{
  max-width:470px !important;
  font-size:54px !important;
}
#in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
  padding-top:68px !important;
  min-width:0 !important;
}
@media(max-width:1450px){
  #in-vivo .in-vivo-intro .container{
    padding-left:28px !important;
    padding-right:28px !important;
  }
  #in-vivo .in-vivo-intro-grid{
    grid-template-columns:1fr !important;
    row-gap:34px !important;
  }
  #in-vivo .in-vivo-intro-grid > .in-vivo-intro-copy{
    padding-top:0 !important;
  }
}

/* v122: content extension; original artwork and hero geometry retained. */
.content-v122{padding:88px 0!important}
.content-v122 h2{font-size:clamp(32px,3.5vw,54px)!important;line-height:1.12!important;max-width:1000px!important;letter-spacing:-.035em!important;margin:0 0 30px!important}
.content-v122 .kicker{font-size:14px!important;letter-spacing:.13em!important;margin-bottom:18px!important;color:#2184ae!important}
.content-v122.dark .kicker{color:#75ddff!important}
.editorial-copy{max-width:940px}
.content-v122 p{font-size:18px!important;line-height:1.8!important;letter-spacing:normal!important;margin:0 0 20px!important;color:#425b6b!important}
.content-v122.dark p{color:#b6c8d6!important}
.content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:30px 0}
.content-card{padding:28px;border:1px solid #d6e3eb;border-radius:18px;background:#fff;min-width:0}
.dark .content-card{background:#0c1b29;border-color:#263b4c}
.content-v122 h3{font-size:21px!important;line-height:1.35!important;margin:0 0 14px!important;letter-spacing:-.015em!important}
.content-card p{font-size:17px!important;margin:0!important}
.content-v122 .source-note{font-size:14px!important;line-height:1.7!important;margin-top:24px!important}
.source-note a,.reference-list a{text-decoration:underline;text-underline-offset:4px}
.reference-list{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.reference-list article{border-top:1px solid #304454;padding-top:24px}
.reference-list a{font-size:15px;color:#75ddff}
.contact-email{overflow-wrap:anywhere;max-width:100%}

a:focus-visible{outline:2px solid #218fc5;outline-offset:5px}
@media(max-width:900px){.content-grid{grid-template-columns:1fr}.content-v122{padding:60px 0!important}}
@media(max-width:620px){.reference-list{grid-template-columns:1fr}.content-v122 p{font-size:17px!important}.content-card{padding:22px}.content-v122 h2{font-size:34px!important}}

/* =========================================================
   v123 — Home content refinements
   ========================================================= */

/* 1 — New two-line hero title, standard-desktop optimized */
#home .hero .home-title-v123{
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  font-size:clamp(44px,4.25vw,68px) !important;
  line-height:1.05 !important;
  letter-spacing:-0.052em !important;
  white-space:normal !important;
}
#home .hero .home-title-v123 br{
  display:block !important;
}
#home .hero .home-title-v123 .home-title-desktop-break{
  display:block !important;
}
@media (max-width:820px){
  #home .hero .home-title-v123{
    width:calc(100vw - 36px) !important;
    max-width:calc(100vw - 36px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    font-size:clamp(27px,7.2vw,34px) !important;
    line-height:1.08 !important;
    letter-spacing:-.045em !important;
    white-space:normal !important;
    text-align:center !important;
    overflow:visible !important;
    box-sizing:border-box !important;
  }
}

/* 6 — Align statement with the exact same centered width as the card group */
#home > .section.light .container{
  width:min(92vw,1220px) !important;
  max-width:1220px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
#home .statement.platform-line.statement-v123{
  display:block !important;
  width:100% !important;
  max-width:980px !important;
  margin:0 auto !important;
  padding:0 !important;
  text-align:left !important;
  white-space:nowrap !important;
  font-size:clamp(28px,2.35vw,36px) !important;
  line-height:1.12 !important;
  letter-spacing:-0.047em !important;
  font-weight:620 !important;
}
#home .cards{
  width:100% !important;
  max-width:980px !important;
  margin:34px auto 0 !important;
}

/* 7 — Research Focus heading removed, retain requested cards/copy from items 8–10 */
#home .research-content-v123{
  padding-top:72px !important;
}
#home .research-content-v123 .content-grid{
  margin-top:0 !important;
}

/* 10 — Preserve the requested two-line closing statement on desktop */
#home .research-foundation-v123{
  max-width:1180px !important;
  white-space:nowrap !important;
}

/* Responsive behavior */
@media(max-width:1200px){
  #home .hero .home-title-v123{
    font-size:clamp(38px,4.6vw,56px) !important;
  }
  #home .statement.platform-line.statement-v123{
    font-size:clamp(23px,2.7vw,31px) !important;
  }
  #home .research-foundation-v123{
    white-space:normal !important;
  }
}
@media(max-width:900px){
  #home .hero .home-title-v123{
    font-size:clamp(31px,6.2vw,46px) !important;
    letter-spacing:-0.055em !important;
  }
  #home .statement.platform-line.statement-v123{
    max-width:620px !important;
    font-size:clamp(18px,4.1vw,27px) !important;
    white-space:normal !important;
  }
  #home .cards{
    max-width:620px !important;
    margin-top:28px !important;
  }
}
@media(max-width:560px){
  #home .hero .home-title-v123{
    font-size:clamp(27px,7.6vw,38px) !important;
  }
}

/* v124 — Restore Our Research Focus heading */
#home .research-content-v123 .kicker{
  margin-bottom:24px !important;
}
#home .research-content-v123 .research-focus-title-v124{
  white-space:nowrap !important;
  max-width:none !important;
  width:100% !important;
  margin:0 0 34px !important;
  font-size:clamp(38px,3.55vw,54px) !important;
  line-height:1.08 !important;
  letter-spacing:-0.045em !important;
}
#home .research-content-v123 .content-grid{
  margin-top:0 !important;
}

@media(max-width:1100px){
  #home .research-content-v123 .research-focus-title-v124{
    font-size:clamp(30px,4.1vw,44px) !important;
  }
}
@media(max-width:820px){
  #home .research-content-v123 .research-focus-title-v124{
    white-space:normal !important;
    font-size:clamp(28px,6.2vw,38px) !important;
  }
}

/* v125 — Match Research Focus title size to the Home statement */
#home .research-content-v123 .research-focus-title-v124{
  font-size:clamp(28px,2.35vw,36px) !important;
  line-height:1.12 !important;
  letter-spacing:-0.047em !important;
  font-weight:620 !important;
  white-space:nowrap !important;
}

@media(max-width:1200px){
  #home .research-content-v123 .research-focus-title-v124{
    font-size:clamp(23px,2.7vw,31px) !important;
  }
}
@media(max-width:900px){
  #home .research-content-v123 .research-focus-title-v124{
    font-size:clamp(18px,4.1vw,27px) !important;
    white-space:normal !important;
  }
}

/* v133 — Updated Our Mission section content */
#our-mission .mission-focus-title-v133{
  width:100% !important;
  max-width:none !important;
  white-space:nowrap !important;
  font-size:clamp(34px,3.25vw,50px) !important;
  line-height:1.08 !important;
  letter-spacing:-0.045em !important;
}
@media(max-width:1100px){
  #our-mission .mission-focus-title-v133{
    font-size:clamp(29px,3.5vw,39px) !important;
  }
}
@media(max-width:820px){
  #our-mission .mission-focus-title-v133{
    white-space:normal !important;
    font-size:clamp(27px,5.5vw,36px) !important;
  }
}

/* v134 — Our Mission updated research heading */
#our-mission .mission-focus-title-v134{
  width:100% !important;
  max-width:none !important;
  white-space:nowrap !important;
  font-size:clamp(34px,3.25vw,50px) !important;
  line-height:1.08 !important;
  letter-spacing:-0.045em !important;
}
@media(max-width:1100px){
  #our-mission .mission-focus-title-v134{
    font-size:clamp(29px,3.5vw,39px) !important;
  }
}
@media(max-width:820px){
  #our-mission .mission-focus-title-v134{
    white-space:normal !important;
    font-size:clamp(27px,5.5vw,36px) !important;
  }
}

/* v136 — Restore v121 GNB dropdown behavior.
   A submenu is visible only while its dropdown has the explicit .open class.
   Focus left on a clicked submenu link can no longer hold the panel open. */
.menu .dropdown:focus-within:not(.open) .drop{
  opacity:0 !important;
  transform:translate(-50%, 8px) !important;
  pointer-events:none !important;
}
.menu .dropdown.open .drop,
.menu .dropdown.open:focus-within .drop{
  opacity:1 !important;
  transform:translate(-50%, 0) !important;
  pointer-events:auto !important;
}

/* v138 — Corrected 2× sizing for Current Research Foundation / Platform Direction */
#in-vivo .kicker-double-v137{
  font-size:28px !important;
  line-height:1.15 !important;
  letter-spacing:-0.02em !important;
}
@media(max-width:820px){
  #in-vivo .kicker-double-v137{
    font-size:28px !important;
    line-height:1.15 !important;
  }
}

/* v140 — Restored Current Research Foundation */
#in-vivo .foundation-kicker-v140{
  font-size:28px !important;
  line-height:1.15 !important;
  letter-spacing:-0.02em !important;
}
#in-vivo .concept-line-v140{
  display:block !important;
}
#in-vivo .concept-line-v140 + .concept-line-v140{
  margin-top:4px !important;
}

#donate .donate-kicker-2x-v141{font-size:28px!important;line-height:1.15!important;letter-spacing:-.02em!important}
#donate .donate-impact-title-v141{white-space:normal!important;line-height:1.05!important;letter-spacing:-.045em!important}
#donate .donate-impact-title-v141>span+span{margin-top:2px!important}

/* =========================================================
   v147 — Donate card layout rebuilt from scratch
   Matches supplied reference composition
   ========================================================= */

#donate .donate-actions-v147{
  width:min(100%, 1180px) !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-columns:minmax(0, 52fr) 48px minmax(0, 42fr) !important;
  gap:0 !important;
  align-items:stretch !important;
  box-sizing:border-box !important;
}

/* LEFT: QR */
#donate .donate-left-v147{
  min-width:0 !important;
  padding:0 42px 0 0 !important;
  box-sizing:border-box !important;
}
#donate .donate-section-title-v147{
  margin:0 0 5px !important;
  padding:0 !important;
  font-size:16px !important;
  line-height:1.35 !important;
  font-weight:750 !important;
  letter-spacing:-.015em !important;
  color:#173148 !important;
}
#donate .donate-section-copy-v147{
  margin:0 !important;
  padding:0 !important;
  font-size:13px !important;
  line-height:1.5 !important;
  font-weight:400 !important;
  letter-spacing:-.012em !important;
  color:#6d8090 !important;
  white-space:nowrap !important;
}
#donate .donate-qr-card-v147{
  width:336px !important;
  height:336px !important;
  margin-top:38px !important;
  border:1px solid #dbe9f0 !important;
  border-radius:18px !important;
  background:#fff !important;
  box-shadow:0 18px 44px rgba(54,112,142,.08) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}
#donate .donate-qr-card-v147 img{
  width:86% !important;
  height:86% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  display:block !important;
}

/* CENTER: divider + OR */
#donate .donate-center-v147{
  width:48px !important;
  min-height:420px !important;
  display:grid !important;
  grid-template-rows:1fr auto 1fr !important;
  align-items:stretch !important;
  justify-items:center !important;
  box-sizing:border-box !important;
}
#donate .donate-center-line-v147{
  width:1px !important;
  height:100% !important;
  background:#dfe9ef !important;
}
#donate .donate-or-v147{
  margin:13px 0 !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  color:#98a6af !important;
}

/* RIGHT: title + vertically centered donation action */
#donate .donate-right-v147{
  min-width:0 !important;
  padding:0 0 0 42px !important;
  display:grid !important;
  grid-template-rows:auto 1fr !important;
  box-sizing:border-box !important;
}
#donate .donate-right-head-v147{
  min-width:0 !important;
}
#donate #donate-online-copy-v147{
  white-space:nowrap !important;
}
#donate .donate-right-action-v147{
  align-self:center !important;
  justify-self:start !important;
  width:240px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  margin-top:8px !important;
}
#donate .donate-btn-v147{
  width:240px !important;
  height:58px !important;
  min-width:240px !important;
  min-height:58px !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  position:static !important;
  transform:none !important;
  border:1px solid #add6eb !important;
  border-radius:15px !important;
  background:linear-gradient(180deg,#fff 0%,#f8fcfe 100%) !important;
  box-shadow:0 8px 24px rgba(45,120,160,.06) !important;
  color:#0f7caf !important;
  text-decoration:none !important;
  font-size:16px !important;
  line-height:1 !important;
  font-weight:800 !important;
  text-align:center !important;
}
#donate .donate-btn-v147:hover{
  background:#f1faff !important;
  transform:translateY(-1px) !important;
}
#donate .donate-paypal-note-v147{
  margin-top:13px !important;
  padding:0 !important;
  font-size:11px !important;
  line-height:1.35 !important;
  font-weight:400 !important;
  color:#8b9aa4 !important;
  text-align:center !important;
  white-space:nowrap !important;
}

/* Desktop tuning so both helper lines remain single-line */
@media(min-width:981px) and (max-width:1280px){
  #donate .donate-actions-v147{
    width:min(100%, 1040px) !important;
    grid-template-columns:minmax(0, 51fr) 44px minmax(0, 43fr) !important;
  }
  #donate .donate-left-v147{ padding-right:28px !important; }
  #donate .donate-right-v147{ padding-left:28px !important; }
  #donate .donate-qr-card-v147{
    width:320px !important;
    height:320px !important;
  }
}

/* Mobile/tablet: stack cleanly */
@media(max-width:980px){
  #donate .donate-actions-v147{
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    gap:28px !important;
  }
  #donate .donate-left-v147,
  #donate .donate-right-v147{
    padding:0 !important;
  }
  #donate .donate-center-v147{
    width:100% !important;
    min-height:0 !important;
    display:grid !important;
    grid-template-columns:1fr auto 1fr !important;
    grid-template-rows:auto !important;
    align-items:center !important;
    gap:12px !important;
  }
  #donate .donate-center-line-v147{
    width:100% !important;
    height:1px !important;
  }
  #donate .donate-or-v147{
    margin:0 !important;
  }
  #donate .donate-section-copy-v147,
  #donate #donate-online-copy-v147{
    white-space:normal !important;
  }
  #donate .donate-qr-card-v147{
    width:min(100%,336px) !important;
    height:auto !important;
    aspect-ratio:1/1 !important;
    margin-top:24px !important;
  }
  #donate .donate-right-action-v147{
    justify-self:center !important;
    align-self:auto !important;
    margin:28px auto 0 !important;
  }
}

/* v148 — Align Donate button center with OR */
@media(min-width:981px){
  #donate .donate-right-v147{
    position:relative !important;
  }

  #donate .donate-right-action-v147{
    position:absolute !important;
    left:42px !important;
    top:50% !important;
    transform:translateY(-29px) !important; /* button center = divider/OR center */
    align-self:auto !important;
    justify-self:auto !important;
    margin:0 !important;
  }
}

@media(min-width:981px) and (max-width:1280px){
  #donate .donate-right-action-v147{
    left:28px !important;
  }
}

/* =========================================================
   v149 — Contact page refinement
   ========================================================= */
#contact .contact-title-v149{
  white-space:nowrap !important;
  max-width:none !important;
  width:auto !important;
  font-size:clamp(42px,4.15vw,64px) !important;
  line-height:1.04 !important;
  letter-spacing:-.055em !important;
}
#contact .contact-only-action-v149{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:center !important;
}
#contact .contact-us-btn-v149{
  cursor:pointer !important;
}
@media(max-width:1100px){
  #contact .contact-title-v149{
    font-size:clamp(34px,4vw,48px) !important;
  }
}
@media(max-width:820px){
  #contact .contact-title-v149{
    font-size:clamp(26px,5.2vw,38px) !important;
    letter-spacing:-.06em !important;
  }
}
@media(max-width:560px){
  #contact .contact-title-v149{
    font-size:clamp(21px,5.8vw,30px) !important;
  }
}

/* =========================================================
   v154 — In Vivo + Contact hero background images
   ========================================================= */

/* Shared structural hero image behavior */
#in-vivo .hero,
#contact .hero{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  background:none !important;
}

#in-vivo .in-vivo-bg-v154,
#contact .contact-bg-v154{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  z-index:0 !important;
  pointer-events:none !important;
}

/* Remove legacy dark hero overlays on these two pages */
#in-vivo .hero::after,
#contact .hero::after{
  background:linear-gradient(
    90deg,
    rgba(255,255,255,.78) 0%,
    rgba(255,255,255,.58) 42%,
    rgba(255,255,255,.18) 72%,
    rgba(255,255,255,.08) 100%
  ) !important;
  z-index:1 !important;
}

/* Keep text above image/overlay */
#in-vivo .hero .hero-inner,
#contact .hero .hero-inner{
  position:relative !important;
  z-index:2 !important;
}

/* In Vivo image has important science content across the frame;
   slightly bias left so the LNP/prime-editing elements remain visible */
#in-vivo .in-vivo-bg-v154{
  object-position:center center !important;
}

/* Contact lab image: keep the biosafety cabinet visible */
#contact .contact-bg-v154{
  object-position:center center !important;
}

/* Ensure readable dark typography over the bright images */
#in-vivo .hero h1,
#in-vivo .hero .lead,
#contact .hero h1,
#contact .hero .lead{
  color:#13243a !important;
  text-shadow:0 1px 2px rgba(255,255,255,.32) !important;
}

/* Mobile crops */
@media(max-width:820px){
  #in-vivo .in-vivo-bg-v154{
    object-position:44% center !important;
  }
  #contact .contact-bg-v154{
    object-position:58% center !important;
  }
  #in-vivo .hero::after,
  #contact .hero::after{
    background:rgba(255,255,255,.64) !important;
  }
}

/* =========================================================
   v155 — Contact hero supporting-copy contrast
   Match Home hero lead treatment (white edge + soft halo)
   ========================================================= */
#contact .hero .lead{
  display:block !important;
  width:auto !important;
  max-width:900px !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:none !important;

  color:#3b5870 !important;
  text-shadow:
    -1px -1px 0 rgba(255,255,255,.96),
     1px -1px 0 rgba(255,255,255,.96),
    -1px  1px 0 rgba(255,255,255,.96),
     1px  1px 0 rgba(255,255,255,.96),
     0 0 3px rgba(255,255,255,.96),
     0 0 8px rgba(255,255,255,.88),
     0 0 14px rgba(255,255,255,.72) !important;
}

/* =========================================================
   v156 — Contact hero lead: dark outline + fixed two lines
   ========================================================= */
#contact .hero .lead{
  max-width:none !important;
  color:#ffffff !important;
  text-shadow:
    -1px -1px 0 rgba(10,20,30,.95),
     1px -1px 0 rgba(10,20,30,.95),
    -1px  1px 0 rgba(10,20,30,.95),
     1px  1px 0 rgba(10,20,30,.95),
     0 0 3px rgba(5,15,25,.92),
     0 0 7px rgba(5,15,25,.72) !important;
}
#contact .hero .contact-lead-line-v156{
  display:block !important;
  white-space:nowrap !important;
}
@media(max-width:980px){
  #contact .hero .contact-lead-line-v156{
    white-space:normal !important;
  }
}

/* Home uses one CSS background source; other internal pages use one structural hero image layer. */
#home>.hero{background-image:url("/assets/images/home-hero-dff63688.webp")!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important}

/* Final Home hero geometry.
   Mobile height is determined by its content; the background covers the entire hero. */
@media (max-width:820px){
  #home > .hero{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    padding:110px 0 44px !important;
    overflow:hidden !important;
  }

  #home > .hero > .hero-inner{
    height:auto !important;
    min-height:0 !important;
  }

  #home > .hero .lead{
    margin-bottom:0 !important;
  }
}

/* ONE authoritative GNB implementation. Desktop header styling is not redefined. */
.mobile-menu-toggle{
  display:none !important;
}

@media (min-width:821px){
  #site-menu .dropdown .drop{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  #site-menu .dropdown.open .drop{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
}

@media (max-width:820px){
  header.nav{overflow:visible !important;}
  header.nav .nav-inner{position:relative !important;}

  .mobile-menu-toggle{
    display:flex !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    position:relative !important;
    z-index:10005 !important;
    flex:0 0 42px !important;
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    margin:0 0 0 auto !important;
    padding:9px !important;
    border:0 !important;
    border-radius:0 !important;
    outline:0 !important;
    background:transparent !important;
    background-color:transparent !important;
    box-shadow:none !important;
    color:transparent !important;
    font-size:0 !important;
    line-height:0 !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    gap:5px !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    -webkit-tap-highlight-color:transparent !important;
  }

  .mobile-menu-toggle span{
    display:block !important;
    width:24px !important;
    height:2px !important;
    min-height:2px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:2px !important;
    background:#fff !important;
    box-shadow:none !important;
    opacity:1 !important;
    transform:none !important;
    pointer-events:none !important;
  }

  #site-menu{
    display:none !important;
    position:fixed !important;
    top:68px !important;
    left:0 !important;
    right:0 !important;
    z-index:10004 !important;
    width:100vw !important;
    max-width:none !important;
    max-height:calc(100vh - 68px) !important;
    max-height:calc(100dvh - 68px) !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    margin:0 !important;
    padding:8px 20px 24px !important;
    background:#050b13 !important;
    border-top:1px solid rgba(255,255,255,.08) !important;
    border-bottom:1px solid rgba(255,255,255,.08) !important;
    box-shadow:0 14px 30px rgba(0,0,0,.28) !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:0 !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    pointer-events:auto !important;
  }

  #site-menu.mobile-open{
    display:flex !important;
  }

  #site-menu > a,
  #site-menu > .dropdown > a{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-height:48px !important;
    margin:0 !important;
    padding:0 2px !important;
    border:0 !important;
    border-bottom:1px solid rgba(255,255,255,.08) !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#fff !important;
    text-decoration:none !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    letter-spacing:.04em !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  #site-menu .dropdown{
    width:100% !important;
  }

  #site-menu .dropdown .drop{
    display:none !important;
    position:static !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:3px 0 8px 16px !important;
    border:0 !important;
    border-bottom:1px solid rgba(255,255,255,.08) !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    pointer-events:auto !important;
  }

  #site-menu .dropdown.open .drop{
    display:block !important;
  }

  #site-menu .dropdown .drop a{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-height:40px !important;
    margin:0 !important;
    padding:0 2px !important;
    border:0 !important;
    background:transparent !important;
    color:#a9c4d3 !important;
    text-decoration:none !important;
    font-size:14px !important;
    font-weight:600 !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  body.mobile-nav-open{
    overflow:hidden !important;
  }
}

/* =========================================================
   v197 — clean, single-source hero typography
   Old page-specific title/lead rules were removed first.
   ========================================================= */

/* HOME readability preserved */
html body #home .hero .lead{
  font-weight:700 !important;
}

html body #contact .content-v122 .kicker{
  font-size:28px !important;
  line-height:1.15 !important;
  letter-spacing:-.02em !important;
}

/* Header descriptor preserved */
html body header.nav .brand{
  display:flex !important;
  align-items:center !important;
  white-space:nowrap !important;
}
html body header.nav .brand .brand-descriptor{
  display:inline-flex !important;
  align-items:center !important;
  align-self:center !important;
  margin-left:8px !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:600 !important;
  letter-spacing:.055em !important;
  color:rgba(255,255,255,.62) !important;
  white-space:nowrap !important;
  transform:translateY(1px) !important;
}

/* DESKTOP: Mission / In Vivo / Donate use one identical title system */
@media (min-width:821px){
  html body #home .hero .home-title-v123{
    text-shadow:
      -2px -2px 0 rgba(0,0,0,.38),
       2px -2px 0 rgba(0,0,0,.38),
      -2px  2px 0 rgba(0,0,0,.38),
       2px  2px 0 rgba(0,0,0,.38),
       0 0 7px rgba(0,0,0,.34),
       0 0 15px rgba(0,0,0,.22) !important;
  }
  html body #home .hero .hero-eyebrow{
    text-shadow:
      -1px -1px 0 rgba(255,255,255,.98),
       1px -1px 0 rgba(255,255,255,.98),
      -1px  1px 0 rgba(255,255,255,.98),
       1px  1px 0 rgba(255,255,255,.98),
       0 0 5px rgba(255,255,255,.98),
       0 0 11px rgba(255,255,255,.84) !important;
  }

  html body #our-mission .hero-inner,
  html body #in-vivo .in-vivo-v99-hero .hero-inner,
  html body #donate .donate-hero-inner{
    width:min(96vw,1180px) !important;
    max-width:1180px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }

  html body #our-mission .mission-title-v128,
  html body #in-vivo .in-vivo-v99-hero h1,
  html body #donate .donate-hero-title-v141{
    width:100% !important;
    max-width:1180px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding:0 !important;
    font-size:clamp(44px,4.7vw,72px) !important;
    line-height:1.04 !important;
    letter-spacing:-.035em !important;
    white-space:normal !important;
    overflow:visible !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }

  html body #our-mission .mission-title-v128 br,
  html body #in-vivo .in-vivo-v99-hero h1 br,
  html body #donate .donate-hero-title-v141 > span{
    display:block !important;
  }

  /* One identical supporting-copy system for all three pages */
  html body #in-vivo .in-vivo-v99-hero .lead,
  html body #donate .donate-hero .lead{
    width:100% !important;
    max-width:1180px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    font-size:clamp(17px,1.45vw,22px) !important;
    line-height:1.55 !important;
    letter-spacing:-.012em !important;
    white-space:normal !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }
}

/* MOBILE: keep the same typography across all three pages,
   with a size that allows the requested first lines to fit on phones. */
@media (max-width:820px){
  html body #our-mission .hero-inner,
  html body #in-vivo .in-vivo-v99-hero .hero-inner,
  html body #donate .donate-hero-inner{
    width:calc(100vw - 36px) !important;
    max-width:calc(100vw - 36px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
    text-align:center !important;
    overflow:visible !important;
    box-sizing:border-box !important;
  }

  html body #our-mission .mission-title-v128,
  html body #in-vivo .in-vivo-v99-hero h1,
  html body #donate .donate-hero-title-v141{
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding:0 !important;
    font-size:clamp(22px,6vw,30px) !important;
    line-height:1.08 !important;
    letter-spacing:-.045em !important;
    white-space:normal !important;
    overflow:visible !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    text-align:center !important;
    color:#000 !important;
    box-sizing:border-box !important;
  }

  html body #our-mission .mission-title-v128 br,
  html body #in-vivo .in-vivo-v99-hero h1 br,
  html body #donate .donate-hero-title-v141 > span{
    display:block !important;
  }

  html body #in-vivo .in-vivo-v99-hero .lead,
  html body #donate .donate-hero .lead{
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    font-size:18px !important;
    line-height:1.65 !important;
    letter-spacing:normal !important;
    white-space:normal !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }

  html body header.nav .brand{
    min-width:0 !important;
    font-size:17px !important;
    letter-spacing:.055em !important;
  }
  html body header.nav .brand .brand-descriptor{
    display:inline-flex !important;
    margin-left:5px !important;
    font-size:8px !important;
    line-height:1 !important;
    letter-spacing:.018em !important;
    white-space:nowrap !important;
  }
  html body header.nav .nav-inner{gap:8px !important;}
  html body header.nav .mobile-menu-toggle{flex:0 0 42px !important;}
}


@media (min-width:821px){
  html body #our-mission .hero .lead{
    width:100% !important;
    max-width:1180px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    font-size:clamp(17px,1.45vw,22px) !important;
    line-height:1.55 !important;
    letter-spacing:-.012em !important;
    white-space:normal !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }
  html body #our-mission .hero .lead br{
    display:block !important;
  }
  html body #donate .donate-hero-title-v141{
    color:#000 !important;
  }
}
