:root{
  --navy:#1F4171; --deep:#1B2842; --celeste:#8DA9C4; --mint:#EEF4ED; --white:#fff; --salmon:#F6B2A2;
  --line-dark:rgba(255,255,255,.14); --line-light:rgba(31,65,113,.12);
  --radius:14px; --max:1160px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',system-ui,sans-serif;color:var(--deep);background:var(--white);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
section{padding:96px 0}
h1,h2,h3{font-weight:600;line-height:1.15;letter-spacing:-.01em}
h1{font-size:clamp(36px,5vw,58px);font-weight:700}
h2{font-size:clamp(28px,3.4vw,40px)}
h3{font-size:19px;font-weight:600}
.lead{font-size:17px;max-width:620px;margin-top:18px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--salmon);border-radius:2px}
.small{font-size:14px}

/* section themes */
.t-navy{background:var(--navy);color:#fff}
.t-deep{background:var(--deep);color:#fff}
.t-celeste{background:var(--celeste);color:var(--deep)}
.t-celeste h2,.t-celeste .big{color:#fff}
.t-mint{background:var(--mint);color:var(--deep)}
.t-white{background:#fff;color:var(--deep)}
.t-navy .eyebrow,.t-deep .eyebrow{color:var(--celeste)}
.t-white .eyebrow,.t-mint .eyebrow{color:var(--navy)}
.t-celeste .eyebrow{color:var(--deep)}
.t-white h2,.t-mint h2,.t-white h3,.t-mint h3{color:var(--navy)}
.t-navy p,.t-deep p{color:rgba(255,255,255,.82)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;padding:13px 24px;border-radius:999px;border:1.5px solid transparent;transition:.2s;cursor:pointer;white-space:nowrap}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover{background:var(--mint)}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--deep)}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* image placeholders */
.ph{position:relative;border:2px dashed currentColor;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:20px;opacity:.9;min-height:220px;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(127,127,127,.06) 14px 28px)}
.ph svg{width:34px;height:34px;opacity:.7}
.ph b{font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.ph span{font-size:13px;max-width:280px;opacity:.85}
.t-navy .ph,.t-deep .ph{color:var(--celeste)}
.t-white .ph,.t-mint .ph{color:var(--celeste)}
.t-white .ph span,.t-mint .ph span,.t-white .ph b,.t-mint .ph b{color:var(--navy)}
.t-celeste .ph{color:#fff}
.t-celeste .ph span,.t-celeste .ph b{color:var(--deep)}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:var(--navy);border-bottom:1px solid var(--line-dark)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px}
.nav img{height:38px;width:auto}
.nav ul{display:flex;gap:30px;list-style:none;align-items:center;color:#fff;font-size:14px;font-weight:500}
.nav ul a:hover{color:var(--celeste)}
.menu-btn{display:none;background:none;border:0;color:#fff}

/* hero */
.hero{padding:88px 0 96px}
.hero .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(30px,3.3vw,44px);line-height:1.15;letter-spacing:-.015em;text-wrap:balance}
.hero p.lead{color:rgba(255,255,255,.85);margin-top:22px}
.chart{background:rgba(27,40,66,.55);border:1px solid var(--line-dark);border-radius:18px;padding:24px 26px 20px}
.chart-top{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:#fff;margin-bottom:10px}
.chart-top em{font-style:normal;font-weight:400;font-size:11px;color:var(--celeste)}
.chart svg{width:100%;height:auto}
.chart .cap{font-size:12px;color:rgba(255,255,255,.7);margin-top:10px}
.legend{display:flex;gap:18px;font-size:11px;color:rgba(255,255,255,.8);margin-top:6px}
.legend i{display:inline-block;width:18px;height:2px;vertical-align:middle;margin-right:6px}

/* proof bar */
.proof{padding:30px 0}
.proof .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.proof .wrap>div{padding:0 24px;border-left:1px solid var(--line-dark)}
.proof .wrap>div:first-child{border-left:0;padding-left:0}
.proof strong{display:block;font-size:24px;font-weight:600;color:#fff}
.proof span{font-size:12.5px;color:rgba(255,255,255,.7)}

/* mission */
.mission .wrap{display:block}
.mission .wrap>div:first-child{text-align:left;width:fit-content;max-width:100%;margin:0}
.mission .big{font-size:clamp(28px,3.4vw,40px);font-weight:700;line-height:1.15;letter-spacing:-.01em}
.mission p:not(.big){font-size:16px;margin:16px 0 0;width:0;min-width:100%;max-width:none;font-weight:500;text-wrap:pretty}
.mission .vid{margin-top:48px}
.mission .ph{min-height:0;aspect-ratio:16/9;width:100%}
.vid{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--deep);box-shadow:0 20px 50px rgba(27,40,66,.25)}
.vid video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.vid-sound{position:absolute;right:14px;bottom:14px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(27,40,66,.7);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(4px)}
.vid-sound:hover{background:var(--navy)}
.vid-sound svg{width:20px;height:20px}
.vid-sound .i-on{display:none}
.vid-sound[aria-pressed="true"] .i-on{display:block}
.vid-sound[aria-pressed="true"] .i-off{display:none}

/* cards */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.card{background:#fff;border-radius:var(--radius);padding:28px;border:1px solid var(--line-light);display:flex;flex-direction:column}
.card h3{margin-bottom:10px}
.card p{font-size:14.5px;color:#41536f;margin-bottom:18px}
.card .marker{margin-top:auto;font-size:13px;font-weight:600;color:var(--navy);display:flex;gap:8px;align-items:center}
.card .marker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--salmon);flex:none}

/* species */
.species{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px;margin-top:48px}
.sp{background:#fff;border-radius:18px;overflow:hidden;border:1px solid var(--line-light);display:flex;flex-direction:column}
.sp .ph{border-radius:0;border-width:0 0 2px 0;min-height:260px}
.sp:first-child .ph{min-height:320px}
.sp-body{padding:24px 26px 28px}
.sp-body h3{font-size:22px;display:flex;align-items:center;gap:10px}
.sp-body h3 svg{width:22px;height:22px;color:var(--salmon)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{font-size:13px;font-weight:500;padding:7px 13px;border-radius:999px;background:var(--mint);color:var(--navy);display:inline-flex;gap:8px;align-items:center}
.chip small{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#5d7391}

/* platform */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:52px}
.step{border-top:2px solid var(--celeste);padding-top:18px}
.step:first-child{border-top-color:var(--navy)}
.step .n{font-size:12px;font-weight:600;color:var(--celeste);letter-spacing:.1em}
.step h3{font-size:17px;margin:6px 0 6px}
.step p{font-size:14px;color:#41536f}
.adv{margin-top:56px;background:var(--navy);color:#fff;border-radius:18px;padding:36px 40px;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.adv strong{font-size:26px;font-weight:600;display:block}
.adv span{font-size:13px;color:rgba(255,255,255,.75)}

/* pipeline */
.pipe-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
table.pipe{width:100%;border-collapse:collapse;margin-top:40px;font-size:14px}
.pipe th{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--celeste);text-align:left;padding:0 0 14px;border-bottom:1px solid var(--line-dark)}
.pipe th.stages{display:grid;grid-template-columns:repeat(4,1fr)}
.pipe td{padding:20px 0;border-bottom:1px solid var(--line-dark);vertical-align:middle}
.pipe td.prog{font-size:18px;font-weight:600;width:16%}
.pipe td.ind b{display:block;font-weight:600}
.pipe td.ind span{font-size:12.5px;color:rgba(255,255,255,.65)}
.pipe td.bar{width:44%}
.track{height:8px;border-radius:8px;background:rgba(255,255,255,.1);position:relative}
.fill{position:absolute;inset:0 auto 0 0;border-radius:8px;background:var(--celeste)}
.fill.hi{background:#fff}
.fill::after{content:"";position:absolute;right:-4px;top:-3px;width:14px;height:14px;border-radius:50%;background:var(--salmon);border:3px solid var(--deep)}
.note{font-size:12px;color:rgba(255,255,255,.55);margin-top:22px}

/* clinical */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.stat{background:var(--mint);border-radius:var(--radius);padding:30px}
.stat strong{font-size:40px;font-weight:600;color:var(--navy);display:block;line-height:1.1}
.stat h3{font-size:15px;margin:10px 0 6px}
.stat p{font-size:13.5px;color:#41536f}
.dataroom{margin-top:22px;border:1px solid var(--line-light);border-radius:var(--radius);padding:26px 30px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.dataroom h3{color:var(--navy)}
.dataroom p{font-size:13.5px;color:#41536f}

/* comparison */
.cmp{width:100%;border-collapse:separate;border-spacing:0;margin-top:44px;background:#fff;border-radius:16px;overflow:hidden;font-size:14px}
.cmp th{background:var(--navy);color:#fff;text-align:left;padding:18px 22px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.cmp td{padding:16px 22px;border-top:1px solid var(--line-light);color:#41536f}
.cmp td:first-child{font-weight:600;color:var(--deep)}
.cmp td:nth-child(2){background:#f5f9fc;font-weight:600;color:var(--navy)}

/* video */
.video .wrap{display:grid;grid-template-columns:1fr 1.5fr;gap:56px;align-items:center}
.video p{font-weight:500;margin-top:16px;max-width:400px}
.video .ph{min-height:0;aspect-ratio:16/9;width:100%}
.wrap>*{min-width:0}
.play{width:68px;height:68px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.play::after{content:"";border-left:18px solid var(--navy);border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px}

/* partnering */
.grid3.dark .card{background:rgba(27,40,66,.5);border-color:var(--line-dark)}
.grid3.dark .card h3{color:#fff}
.grid3.dark .card p{color:rgba(255,255,255,.78)}
.cta{margin-top:24px;background:var(--mint);border-radius:var(--radius);padding:28px 32px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta h3{color:var(--navy);font-size:20px}
.cta p{color:#41536f;font-size:14px}

/* backers & awards */
.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:28px}
.logo-box{height:78px;border:1.5px dashed var(--celeste);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;color:var(--navy);text-align:center;padding:8px}
.awards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:28px}
.award{border:1px solid var(--line-light);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:6px;transition:.2s;background:#fff}
.award:hover{border-color:var(--navy);transform:translateY(-2px)}
.award .yr{font-size:28px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px}
.award .yr svg{width:18px;height:18px;color:var(--salmon)}
.award .nm{font-size:13.5px;font-weight:600;color:var(--deep)}
.award .lk{font-size:12px;color:#5d7391;margin-top:auto}
.sub{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);margin-top:56px}
.sub:first-of-type{margin-top:0}

/* footer */
footer{background:var(--deep);color:rgba(255,255,255,.75);padding:72px 0 32px;font-size:14px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
footer img{height:40px;width:auto;margin-bottom:18px}
footer h4{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--celeste);margin-bottom:14px;font-weight:600}
footer ul{list-style:none;display:grid;gap:8px}
footer a:hover{color:#fff}
.social{display:flex;gap:10px;margin-top:22px}
.social a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#fff}
.social a:hover{background:var(--navy);border-color:var(--celeste)}
.social svg{width:18px;height:18px}
.fbot{border-top:1px solid var(--line-dark);margin-top:56px;padding-top:22px;display:flex;justify-content:space-between;font-size:12.5px;flex-wrap:wrap;gap:12px}

/* sketch banner */
.sketch{background:var(--mint);color:var(--navy);text-align:center;font-size:12.5px;font-weight:600;padding:8px 16px}

@media (max-width:960px){
  section{padding:72px 0}
  .nav ul{display:none}.menu-btn{display:block}
  .nav ul.open{display:flex;flex-direction:column;align-items:flex-start;gap:18px;position:absolute;top:76px;left:0;right:0;background:var(--navy);padding:20px 24px 28px;border-top:1px solid var(--line-dark)}
  .nav .wrap{position:relative}
  .hero .wrap,.mission .wrap,.video .wrap{grid-template-columns:1fr;gap:40px}
  .proof .wrap{grid-template-columns:1fr 1fr;gap:20px}
  .proof .wrap>div{border-left:0;padding:0}
  .grid3,.species,.stats{grid-template-columns:1fr}
  .steps,.adv{grid-template-columns:1fr 1fr}
  .logos{grid-template-columns:repeat(3,1fr)}
  .awards{grid-template-columns:1fr 1fr}
  .fgrid{grid-template-columns:1fr 1fr}
  .pipe td.ind span{display:block}
  .cmp-wrap{overflow-x:auto}
  .mission .ph{min-height:300px}
}
@media (max-width:560px){
  .wrap{padding:0 16px}
  .steps,.adv{grid-template-columns:1fr}
  .awards{grid-template-columns:1fr}
  .logos{grid-template-columns:1fr 1fr}
  .fgrid{grid-template-columns:1fr}
  .pipe th.stages{display:none}
  .pipe td.ind{display:none}
  .pipe td.bar{width:60%}
  .adv{padding:28px}
}

/* backers marquee */
.marquee{overflow:hidden;margin-top:24px;padding:6px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex;gap:14px;width:max-content;animation:marquee 45s linear infinite}
.marquee-track .dup{display:flex;gap:14px}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee .logo-box{width:190px;height:84px;flex:none;border:1px solid var(--line-light);background:#fff;padding:14px 22px;transition:transform .2s,border-color .2s}
.marquee a.logo-box:hover{border-color:var(--navy);transform:translateY(-3px)}
.logo-box img{display:block;max-width:100%;max-height:48px;width:auto;height:auto}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 7px))}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap;width:auto}.marquee-track .dup{display:none}.marquee{-webkit-mask-image:none;mask-image:none}}

/* team */
.leaders{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.leader{display:flex;gap:18px;align-items:center;padding:16px;border-radius:14px;background:var(--mint)}
.leader .ph{min-height:300px;margin-bottom:14px}
.leader .nm{display:block;font-size:18px;color:var(--navy)}
.leader .rl{font-size:13px;font-weight:600;color:#5d7391;letter-spacing:.08em;text-transform:uppercase}
.team-group{margin-top:48px}
.team-group h3{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);padding-bottom:12px;border-bottom:1px solid var(--line-light);display:flex;align-items:center;gap:10px}
.team-group h3::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--salmon)}
.people{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.person{display:flex;gap:14px;align-items:center;padding:14px;border-radius:14px;background:var(--mint)}
.avatar{flex:none;width:60px;height:60px;border-radius:50%;object-fit:cover;background:var(--celeste);display:block}
.leader-photo{flex:none;display:block;width:112px;height:112px;object-fit:cover;border-radius:12px;background:var(--celeste)}
.person span{display:block;line-height:1.4}
a.person,a.leader{position:relative;padding-right:30px;border:1px solid transparent;transition:transform .2s,border-color .2s,box-shadow .2s}
a.person:hover,a.leader:hover{border-color:var(--navy);transform:translateY(-3px);box-shadow:0 8px 20px rgba(27,40,66,.08)}
.lnk{position:absolute;top:12px;right:12px;width:15px;height:15px;color:#5d7391;transition:color .2s}
a.person:hover .lnk,a.leader:hover .lnk{color:var(--navy)}
.person b{display:block;font-size:14.5px;color:var(--deep);font-weight:600;line-height:1.3}
.person span{font-size:12.5px;color:#41536f}
@media (max-width:860px){.leaders{grid-template-columns:1fr}}
@media (max-width:960px){.people{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.leaders,.people{grid-template-columns:1fr}.leader .ph{min-height:240px}}

/* pipeline (animated bars) */
.pl{margin-top:40px}
.pl-head,.pl-row{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:center}
.pl-head{padding-bottom:14px;border-bottom:1px solid var(--line-dark)}
.pl-stages{display:grid;grid-template-columns:repeat(5,1fr)}
.pl-stages span{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--celeste);white-space:nowrap;line-height:1}
.pl-row{padding:22px 0;border-bottom:1px solid var(--line-dark)}
.pl-name b{display:block;font-size:19px;font-weight:700;color:#fff}
.pl-ind{font-size:13.5px;color:rgba(255,255,255,.75)}
.pl-name b+.pl-ind{color:rgba(255,255,255,.65);font-size:12.5px;white-space:nowrap}
.pl-name:not(:has(b)) .pl-ind{font-size:15px;font-weight:600;color:#fff}
.pl-track{position:relative;height:16px;border-radius:8px;background:rgba(255,255,255,.07) repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),rgba(255,255,255,.12) calc(20% - 1px) 20%)}
.pl-bar{position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:8px;background:var(--celeste);transition:width 3.4s cubic-bezier(.45,.05,.25,1) calc(var(--d) * 2.5)}
.pl-bar.hi{background:#fff}
.pl-bar::after{content:"";position:absolute;right:3px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--salmon)}
.js .pl:not(.in) .pl-bar{width:0}
.pl-stage{display:none}
@media (max-width:1100px){
  .pl-head{display:none}
  .pl-row{grid-template-columns:1fr;gap:10px}
  .pl-stage{display:block;font-size:12px;color:var(--celeste);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
}
@media (prefers-reduced-motion:reduce){.pl-bar{transition:none}.js .pl:not(.in) .pl-bar{width:var(--w)}}
.fit{width:fit-content;max-width:100%}
.fit .lead{max-width:none;width:0;min-width:100%;font-size:16px;text-wrap:pretty}
.lead.wide{max-width:none;text-wrap:pretty}
#platform h2{text-wrap:balance}

/* ===== multipage additions ===== */
.nav ul a.active{color:var(--celeste)}
.nav ul a.btn.active{color:var(--navy)}
.page-hero{padding:80px 0 72px}
.page-hero h1{font-size:clamp(32px,4vw,50px);line-height:1.12;letter-spacing:-.015em;max-width:880px;text-wrap:balance}
.page-hero .lead{color:rgba(255,255,255,.85);max-width:720px}
.crumbs{font-size:13px;color:var(--celeste);margin-bottom:18px}
.crumbs a:hover{color:#fff}
.more{display:inline-flex;align-items:center;gap:8px;margin-top:36px;font-weight:600;font-size:14px;color:var(--navy);border-bottom:1.5px solid var(--salmon);padding-bottom:3px}
.t-navy .more,.t-deep .more{color:#fff}
.more:hover{gap:12px}
.split{display:grid;grid-template-columns:1fr 1.5fr;gap:64px;align-items:start}
.prose p{color:#41536f;margin-top:16px;font-size:16px;text-wrap:pretty}
.prose p:first-child{margin-top:0}
.prose ul{margin:16px 0 0 18px;color:#41536f}
.prose li{margin-top:6px}
.t-navy .prose p,.t-deep .prose p,.t-navy .prose ul{color:rgba(255,255,255,.82)}
.note-ph{font-size:13px;color:#5d7391;font-style:italic}
.pill{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:999px;background:var(--mint);color:var(--navy)}
.t-navy .pill,.t-deep .pill{background:rgba(255,255,255,.12);color:#fff}

/* facts bar (program pages) */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:44px;border-top:1px solid var(--line-dark)}
.facts>div{padding:20px 24px 0 0}
.facts span{display:block;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--celeste)}
.facts strong{display:block;font-size:17px;font-weight:600;color:#fff;margin-top:6px}

/* program cards */
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.prog{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-light);border-radius:var(--radius);padding:26px;transition:transform .2s,border-color .2s}
.prog:hover{border-color:var(--navy);transform:translateY(-3px)}
.prog .code{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--celeste);text-transform:uppercase}
.prog h3{color:var(--navy);margin:8px 0 8px}
.prog p{font-size:14px;color:#41536f;margin-bottom:18px}
.prog .stage{margin-top:auto;font-size:13px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:8px}
.prog .stage::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--salmon)}
.pl-name a{color:inherit}
.pl-name a:hover b,.pl-name a:hover .pl-ind{color:var(--celeste)}

/* info cards */
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:44px}
.info{background:var(--mint);border-radius:var(--radius);padding:28px}
.t-mint .info{background:#fff}
.info h3{color:var(--navy);font-size:18px;margin-bottom:8px}
.info p{font-size:14.5px;color:#41536f}
.info ul{margin:10px 0 0 18px;font-size:14.5px;color:#41536f}
.info li{margin-top:4px}

/* publications */
.pubs{margin-top:40px;border-top:1px solid var(--line-light)}
.pub{display:grid;grid-template-columns:130px 1fr auto;gap:24px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line-light)}
.pub .d{font-size:12.5px;font-weight:600;color:#5d7391;text-transform:uppercase;letter-spacing:.06em}
.pub b{display:block;font-size:15.5px;color:var(--deep);font-weight:600;line-height:1.35}
.pub span{display:block;font-size:13px;color:#5d7391;margin-top:4px}
.pub a.go{font-size:13px;font-weight:600;color:var(--navy);white-space:nowrap}
.pub a.go:hover{color:var(--deep)}
.pub.feat{background:var(--mint);border-radius:var(--radius);padding:22px 24px;border:0;margin:16px 0}

/* timeline */
.tl{position:relative;display:grid;grid-template-columns:repeat(8,1fr);gap:18px;margin-top:56px}
.tl::before{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:var(--celeste)}
.tl-item{position:relative;padding-top:34px}
.tl-item::before{content:"";position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;background:var(--salmon);border:4px solid #fff;box-shadow:0 0 0 2px var(--salmon)}
.tl-item.future::before{background:#fff}
.tl-item .y{font-size:22px;font-weight:700;color:var(--navy)}
.tl-item ul{list-style:none;margin-top:8px}
.tl-item li{font-size:13px;color:#41536f;line-height:1.4;margin-top:8px}

/* values / glance */
.glance{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}
.glance div{border-top:2px solid var(--celeste);padding-top:16px}
.glance strong{display:block;font-size:26px;font-weight:700;color:var(--navy)}
.glance span{font-size:14px;color:#41536f}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.value{background:rgba(27,40,66,.45);border:1px solid var(--line-dark);border-radius:var(--radius);padding:28px}
.value h3{color:#fff}
.value em{display:block;font-style:normal;color:var(--salmon);font-weight:600;font-size:14px;margin:6px 0 10px}
.value p{font-size:14.5px}

/* news & press */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.news{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-light);border-radius:var(--radius);padding:26px;transition:transform .2s,border-color .2s}
a.news:hover{border-color:var(--navy);transform:translateY(-3px)}
.news .d{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#5d7391}
.news h3{font-size:17px;color:var(--navy);margin:10px 0 10px;line-height:1.3}
.news p{font-size:14px;color:#41536f;margin-bottom:16px}
.news .lk{margin-top:auto;font-size:13px;font-weight:600;color:var(--navy)}
.press{columns:2;column-gap:40px;margin-top:40px}
.press a{display:block;break-inside:avoid;padding:14px 0;border-bottom:1px solid var(--line-light)}
.press a:hover b{color:var(--navy)}
.press span{display:block;font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#5d7391}
.press b{display:block;font-size:15px;font-weight:600;color:var(--deep);line-height:1.35;margin-top:4px}

/* partnering form */
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}
.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--navy)}
.form .full{grid-column:1/-1}
.form input,.form select,.form textarea{font:inherit;font-size:15px;font-weight:400;color:var(--deep);padding:12px 14px;border:1px solid rgba(31,65,113,.25);border-radius:10px;background:#fff}
.form textarea{min-height:110px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--celeste);border-color:var(--navy)}
.form-box{background:var(--mint);border-radius:18px;padding:36px}
.form-box .note-ph{margin-top:14px;color:#5d7391}
.t-navy .form-box p{color:#41536f}
.checks{list-style:none;margin-top:28px;display:grid;gap:12px}
.checks li{display:flex;gap:12px;align-items:flex-start;font-size:15px}
.checks li::before{content:"";flex:none;width:10px;height:10px;margin-top:7px;border-radius:50%;background:var(--salmon)}
.contact-card{margin-top:28px;padding:22px 24px;border-radius:var(--radius);border:1px solid var(--line-dark)}
.contact-card b{display:block;color:#fff;font-size:16px}
.contact-card span{font-size:14px;color:rgba(255,255,255,.75)}

/* legal */
.legal-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.legal-nav a{font-size:13px;font-weight:600;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.35);color:#fff}
.legal-nav a:hover{background:rgba(255,255,255,.1)}
.legal{max-width:820px}
.legal h2{margin-top:64px;font-size:28px}
.legal h2:first-child{margin-top:0}
.legal h3{font-size:16px;color:var(--navy);margin-top:26px}
.legal p,.legal li{font-size:15px;color:#41536f;margin-top:10px}
.legal ul{margin-left:18px}
.legal dl{display:grid;grid-template-columns:200px 1fr;gap:10px 20px;margin-top:20px;font-size:15px}
.legal dt{font-weight:600;color:var(--navy)}
.legal dd{color:#41536f}

@media (max-width:960px){
  .split{grid-template-columns:1fr;gap:28px}
  .facts{grid-template-columns:1fr 1fr}
  .prog-grid,.news-grid,.values{grid-template-columns:1fr 1fr}
  .glance{grid-template-columns:1fr 1fr}
  .tl{grid-template-columns:1fr;gap:0;margin-left:9px}
  .tl::before{left:0;right:auto;top:0;bottom:0;width:2px;height:auto}
  .tl-item{padding:0 0 28px 30px}
  .tl-item::before{left:-9px;top:2px}
  .press{columns:1}
}
@media (max-width:640px){
  .prog-grid,.news-grid,.values,.info-grid,.glance,.form{grid-template-columns:1fr}
  .pub{grid-template-columns:1fr;gap:6px}
  .legal dl{grid-template-columns:1fr}
  .form-box{padding:24px}
}

/* ===== motion ===== */
.hero,.page-hero{position:relative;overflow:hidden}
.hero>.wrap,.page-hero>.wrap{position:relative;z-index:1}
.ab-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.ab-canvas{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.45) 45%,#000 75%);mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.45) 45%,#000 75%)}
@media (max-width:960px){.ab-canvas{-webkit-mask-image:none;mask-image:none;opacity:.6}}
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--rd,0s)}
.js .rv.in{opacity:1;transform:none}
.js .chart .draw{stroke-dasharray:640;stroke-dashoffset:640}
.js .chart.in .draw{animation:drawline 2.4s cubic-bezier(.45,.05,.25,1) .3s forwards}
.js .chart .mono{opacity:0;transition:opacity 1.2s ease 1.6s}
.js .chart.in .mono{opacity:1}
.js .chart .pop{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(0)}
.js .chart.in .pop{animation:pop .5s cubic-bezier(.3,1.6,.5,1) 1.1s forwards}
@keyframes drawline{to{stroke-dashoffset:0}}
@keyframes pop{to{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .js .rv{opacity:1;transform:none;transition:none}
  .js .chart .draw{stroke-dasharray:none;stroke-dashoffset:0;animation:none}
  .js .chart .mono,.js .chart .pop{opacity:1;transform:none;animation:none}
}

/* platform mechanism animation: active immunization */
.ab-demo{margin-top:44px;background:#fff;border-radius:18px;border:1px solid var(--line-light);padding:22px 22px 18px}
.ab-demo svg{display:block;width:100%;height:auto;overflow:visible}
.ab-demo .lb{font:600 11px Montserrat,sans-serif;letter-spacing:.12em;text-transform:uppercase;fill:#5d7391;text-anchor:middle;transition:opacity .7s ease,fill .4s}
.ab-cap{display:flex;gap:14px;align-items:baseline;margin-top:10px;min-height:46px}
.ab-cap .ab-n{font-size:12px;font-weight:700;color:var(--salmon);letter-spacing:.1em}
.ab-cap .ab-t{font-size:15px;font-weight:500;color:var(--deep)}
/* tissue, inflammation and nerve */
.ab-demo .tissue{fill:#EEF4ED;stroke:#8DA9C4;stroke-width:1.5}
.ab-demo .infl{transform-box:fill-box;transform-origin:center;transition:opacity 1.6s ease,transform 1.6s ease;animation:hwGlow 2.4s ease-in-out infinite}
@keyframes hwGlow{50%{opacity:.7}}
.ab-demo .pulse{fill:#F6B2A2;stroke:#fff;stroke-width:1.5;opacity:0;transition:opacity .8s}
.ab-demo .kt{fill:#F6B2A2}.ab-demo .kd{fill:#8DA9C4}.ab-demo .kh{fill:#1B2842}.ab-demo .lkt{text-anchor:start;font-size:10px}.ab-demo .lk{transition:opacity .7s}.ab-demo .ln{text-anchor:end}.ab-demo .ldm{font-size:9px;fill:#8DA9C4}.ab-demo .ldm:last-child{text-anchor:end}.ab-demo .ldm:nth-last-child(2){text-anchor:start}
.ab-demo .p1{animation:hwP1 1.8s linear infinite}.ab-demo .p2{animation:hwP2 1.8s linear .6s infinite}.ab-demo .p3{animation:hwP3 1.8s linear 1.2s infinite}
@keyframes hwP1{0%{transform:translate(860px,114px);opacity:1}35%{transform:translate(917px,112px)}100%{transform:translate(945px,30px);opacity:0}}
@keyframes hwP2{0%{transform:translate(858px,160px);opacity:1}25%{transform:translate(915px,160px)}100%{transform:translate(945px,30px);opacity:0}}
@keyframes hwP3{0%{transform:translate(860px,210px);opacity:1}30%{transform:translate(917px,210px)}100%{transform:translate(945px,290px);opacity:0}}
/* mediators: the body's own molecules */
.ab-demo .med{transform:translate(var(--x),var(--y))}
.ab-demo .med use{transform-box:fill-box;transform-origin:center;animation:hwJig 2.4s ease-in-out infinite;transition:fill .8s,opacity .8s,stroke .8s;stroke-width:1.5}
.ab-demo .med.t use{fill:#F6B2A2;stroke:#F6B2A2}.ab-demo .med.d use{fill:#8DA9C4;stroke:#8DA9C4}.ab-demo .med.h use{fill:#1B2842;stroke:#1B2842}
.ab-demo .m2 use{animation-delay:-.5s}.ab-demo .m3 use{animation-delay:-1s}.ab-demo .m4 use{animation-delay:-1.5s}.ab-demo .m5 use{animation-delay:-1.9s}.ab-demo .m6 use{animation-delay:-2.2s}
@keyframes hwJig{0%,100%{transform:translate(0,0) scale(1)}25%{transform:translate(2px,-3px) scale(1.12)}50%{transform:translate(-2px,2px) scale(1)}75%{transform:translate(-3px,-1px) scale(1.1)}}
/* immune cell */
.ab-demo .halo{fill:#8DA9C4;opacity:0;transform-box:fill-box;transform-origin:center}
.ab-demo .cell{transform-box:fill-box;transform-origin:center}
.ab-demo .scan{stroke:#1F4171;stroke-width:2;opacity:0}
/* immunogen: same shapes, no activity */
.ab-demo .imm{transform:translate(-40px,160px);opacity:0;transition:transform 1s ease,opacity .8s ease}
.ab-demo .imm .ic{fill:#fff;stroke:#5d7391;stroke-width:1.6;stroke-dasharray:3 2}
.ab-demo[data-p="1"] .imm{animation:hwImm 3.4s cubic-bezier(.45,.05,.25,1) forwards}
@keyframes hwImm{0%{opacity:0;transform:translate(-40px,160px)}20%{opacity:1}70%,100%{opacity:1;transform:translate(140px,160px)}}
.ab-demo[data-p="2"] .imm{opacity:0;transform:translate(240px,160px) scale(.5)}
/* phase 2: the immune cell reads the shapes and makes antibodies */
.ab-demo[data-p="2"] .scan{animation:hwScan 1.1s ease-in-out 2}
@keyframes hwScan{0%{opacity:.8;transform:translateY(118px)}100%{opacity:.8;transform:translateY(202px)}}
.ab-demo[data-p="2"] .halo{animation:hwHalo 1.6s ease-out .6s 2}
@keyframes hwHalo{0%{opacity:.45;transform:scale(.75)}100%{opacity:0;transform:scale(1.25)}}
.ab-demo .ab{opacity:0;transform:translate(250px,160px) rotate(0deg) scale(.4);transition:transform 1.6s cubic-bezier(.3,.6,.3,1) var(--d),opacity .6s ease var(--d)}
.ab-demo[data-p="1"] .ab{transition:none}
.ab-demo[data-p="2"] .ab{opacity:1;transform:translate(var(--wx),var(--wy)) rotate(var(--wr)) scale(1);transition-delay:calc(var(--d) + 1.2s)}
.ab-demo[data-p="3"] .ab,.ab-demo[data-p="4"] .ab{opacity:1;transform:translate(var(--bx),var(--by)) rotate(90deg) scale(1)}
/* phase 3: matching antibodies capture the mediators (one stays free: partial effect) */
.ab-demo[data-p="3"] .med:not(.m5) use,.ab-demo[data-p="4"] .med:not(.m5) use{animation:none;fill:#fff;opacity:.9;transition-delay:1.4s}
.ab-demo[data-p="3"] .p1,.ab-demo[data-p="3"] .p3,.ab-demo[data-p="4"] .p1,.ab-demo[data-p="4"] .p3{animation:none;opacity:0}
.ab-demo[data-p="3"] .infl{opacity:.55;transform:scale(.85);transition-delay:1.4s}
/* phase 4: inflammation down, effect lasts months */
.ab-demo[data-p="4"] .infl{opacity:.12;transform:scale(.6);animation:none}
.ab-demo[data-p="4"] .p2{animation-duration:3.6s}
.ab-demo .dur{opacity:0;transition:opacity .6s}
.ab-demo .durfill{transform-box:fill-box;transform-origin:left center;transform:scaleX(0)}
.ab-demo[data-p="4"] .dur{opacity:1}
.ab-demo[data-p="4"] .durfill{transform:scaleX(1);transition:transform 3.2s ease .4s}
/* labels follow the story */
.ab-demo .la,.ab-demo .lt3,.ab-demo .lt4{opacity:0}
.ab-demo .lv,.ab-demo .lv2{opacity:0}
.ab-demo[data-p="1"] .lv,.ab-demo[data-p="1"] .lv2{opacity:1;fill:#1F4171;transition-delay:2.2s}
.ab-demo[data-p="1"] .lt1,.ab-demo[data-p="1"] .lkt{fill:#1F4171}
.ab-demo[data-p="2"] .lc{fill:#1F4171}
.ab-demo[data-p="2"] .la{opacity:1;fill:#1F4171;transition-delay:1.6s}
.ab-demo[data-p="3"] .lt1,.ab-demo[data-p="4"] .lt1{opacity:0}
.ab-demo[data-p="3"] .lt3{opacity:1;fill:#1F4171;transition-delay:1.4s}
.ab-demo[data-p="4"] .lt4{opacity:1;fill:#1F4171}
.ab-demo[data-p="4"] .lk{opacity:0}
.ab-demo .ldur{fill:#1F4171}
.steps.synced .step{border-top-color:var(--celeste);transition:border-color .4s}
.steps.synced .step.on{border-top-color:var(--navy)}
.steps.synced .step.on .n{color:var(--salmon)}
@media (max-width:640px){.ab-demo{padding:14px 10px}.ab-cap .ab-t{font-size:14px}.ab-demo .lb{font-size:20px}.ab-demo .lk,.ab-demo .ln,.ab-demo .lc,.ab-demo .ldm{display:none}}
@media (prefers-reduced-motion:reduce){.ab-demo *{animation:none!important;transition:none!important}}

/* hero background video */
.page-hero.has-vid{background:var(--navy) var(--poster) center/cover no-repeat}
.hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:0;transition:opacity 1.2s ease}
.page-hero.vid-on .hero-vid{opacity:1}
.hero-ov{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(31,65,113,.93) 0%,rgba(31,65,113,.86) 45%,rgba(31,65,113,.62) 100%)}
.hero-vid+.hero-ov,.hero-ov{pointer-events:none}
.page-hero.has-vid>.wrap{z-index:2}
@media (max-width:700px){.hero-ov{background:rgba(31,65,113,.86)}}

/* nav dropdown */
.nav li.dd{position:relative}
.nav li.dd>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-3px) rotate(45deg);margin-left:8px}
.nav li.dd::after{content:"";position:absolute;left:-10px;right:-10px;top:100%;height:16px}
.nav ul.sub{display:none;position:absolute;top:calc(100% + 14px);left:-18px;min-width:180px;flex-direction:column;align-items:stretch;gap:0;background:var(--navy);border:1px solid var(--line-dark);border-radius:12px;padding:8px 0;box-shadow:0 14px 34px rgba(0,0,0,.22);z-index:60}
.nav li.dd:hover>ul.sub,.nav li.dd:focus-within>ul.sub{display:flex}
.nav ul.sub a{display:block;padding:9px 18px;white-space:nowrap;text-transform:none;letter-spacing:0;font-size:14px;font-weight:500;color:#fff}
.nav ul.sub a:hover,.nav ul.sub a.active{color:var(--celeste)}
.nav ul.sub li{list-style:none;margin:0;padding:0}
.nav ul.sub li::before{display:none}
@media (max-width:960px){.nav ul.open ul.sub{display:flex;position:static;background:none;border:0;box-shadow:none;padding:12px 0 0 16px;min-width:0;gap:12px}.nav ul.open ul.sub a{padding:0}.nav li.dd>a::after,.nav li.dd::after{display:none}}

/* careers band */
section.careers{padding-top:0}
.careers .cta{margin-top:0;padding:36px 40px}
.careers .cta .eyebrow{margin-bottom:10px;color:var(--navy)}
.careers .cta h3{font-size:26px;margin-bottom:6px}
.careers .cta p{font-size:15px;max-width:560px}
@media (max-width:640px){.careers .cta{padding:28px 24px}.careers .btn{white-space:normal}}

/* home hero: active immunization field */
.hero{position:relative;overflow:hidden}
.hero>.wrap{position:relative;z-index:1}
.im-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero .chart{background:rgba(27,40,66,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.hero h1 .hw{display:inline-block;opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1),filter .7s ease;transition-delay:calc(var(--i)*70ms + 150ms)}
.hero h1.hw-in .hw{opacity:1;transform:none;filter:none}
@media (prefers-reduced-motion:reduce){.hero h1 .hw{opacity:1;transform:none;filter:none;transition:none}}
.hero{min-height:min(84vh,720px);display:flex;align-items:center}
.hero>.wrap{width:100%}
.hero .wrap>div:first-child{max-width:600px}
.im-canvas{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.6) 40%,#000 60%);mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.6) 40%,#000 60%)}
@media (max-width:960px){.hero{min-height:0;padding-bottom:300px}.im-canvas{-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.4) 45%,#000 70%);mask-image:linear-gradient(180deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.4) 45%,#000 70%)}}
.clin-chart{margin-top:36px;background:var(--navy);border-radius:18px;padding:28px;display:flex;justify-content:center}
.clin-chart .chart{width:100%;max-width:720px;background:transparent;border:0;padding:0}

/* bigger backer logos */
.marquee .logo-box{width:260px;height:124px;padding:16px 26px}
.marquee .logo-box img{max-height:84px}
@media (max-width:640px){.marquee .logo-box{width:200px;height:100px;padding:12px 18px}.marquee .logo-box img{max-height:66px}}

/* opportunity (gap + why it travels) */
.gap-top{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center;margin:8px 0 60px}
.gap-num strong{display:block;font-size:clamp(64px,8vw,112px);line-height:1;font-weight:600;color:var(--navy);letter-spacing:-.03em}
.gap-rot{font-size:clamp(20px,2.2vw,28px);line-height:1.35;color:var(--deep);max-width:560px;margin:0}
.gap-rot .rot{display:inline-grid;vertical-align:bottom;overflow:hidden;height:1.35em}
.gap-rot .rot b{grid-area:1/1;justify-self:start;font-weight:700;color:var(--navy);white-space:nowrap;opacity:0;transform:translateY(100%);animation:rotw 10s cubic-bezier(.6,.05,.3,1) infinite;box-shadow:inset 0 -.32em 0 #FDE7E1}
.gap-rot .rot b:nth-child(2){animation-delay:2.5s}.gap-rot .rot b:nth-child(3){animation-delay:5s}.gap-rot .rot b:nth-child(4){animation-delay:7.5s}
@keyframes rotw{0%{opacity:0;transform:translateY(100%)}4%,22%{opacity:1;transform:none}26%,100%{opacity:0;transform:translateY(-100%)}}
@media (prefers-reduced-motion:reduce){.gap-rot .rot b{animation:none;opacity:0}.gap-rot .rot b:first-child{opacity:1;transform:none}}
.gap-sub{font-size:20px;color:var(--navy);margin:0 0 18px}
.fits{margin-top:48px;background:var(--mint);border-radius:18px;padding:32px 32px 28px}
.fit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.fit-grid h4{font-size:16px;color:var(--navy);margin-bottom:6px;padding-top:12px;border-top:2px solid var(--navy)}
.fit-grid p{font-size:14px;color:#41536f}
@media (max-width:960px){.gap-top{grid-template-columns:1fr;gap:16px}.fit-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.fit-grid{grid-template-columns:1fr}.fits{padding:24px 20px}}

/* home hero: shorter */
.hero{min-height:min(66vh,560px);padding:64px 0 72px}

/* proof bar: bigger + interactive */
.proof{padding:40px 0}
.proof .wrap{gap:0}
.proof .wrap>div{position:relative;padding:14px 22px 20px;border-radius:14px;cursor:default;transition:transform .35s cubic-bezier(.2,.7,.2,1),background-color .35s ease,box-shadow .35s ease}
.proof .wrap>div:first-child{padding-left:22px}
.proof .wrap>div{border-left:0}
.proof .wrap>div+div::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:1px;background:var(--line-dark);transition:opacity .35s ease}
.proof .wrap>div:hover::before,.proof .wrap>div:hover+div::before{opacity:0}
.proof strong{font-size:clamp(34px,3.4vw,48px);line-height:1;font-weight:600;letter-spacing:-.03em;transition:color .35s ease}
.proof strong{display:inline}.proof b{display:inline;margin-left:8px;font-size:16px;font-weight:600;color:#fff;white-space:nowrap}
.proof span{margin-top:10px!important}
.proof span{display:block;margin-top:4px;font-size:13.5px;transition:color .35s ease}
.proof .wrap>div::after{content:"";position:absolute;left:22px;bottom:8px;height:3px;width:0;border-radius:2px;background:#F6B2A2;transition:width .45s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){
.proof .wrap>div:hover{transform:translateY(-6px) scale(1.05);background:rgba(255,255,255,.07);box-shadow:0 14px 34px rgba(0,0,0,.25)}
.proof .wrap>div:hover strong{color:#8DA9C4}
.proof .wrap>div:hover span{color:#fff}
.proof .wrap>div:hover::after{width:48px}
}
.proof .wrap>div:active{transform:scale(1.04);background:rgba(255,255,255,.07)}
.proof .wrap>div:active::after{width:48px}
@media (max-width:960px){.proof .wrap>div+div::before{display:none}.proof .wrap{gap:12px}.proof .wrap>div,.proof .wrap>div:first-child{padding:12px 16px 18px}.proof .wrap>div::after{left:16px}}
@media (prefers-reduced-motion:reduce){.proof .wrap>div,.proof strong,.proof .wrap>div::after{transition:none}}

/* where active immunization fits: stronger */
.fits{position:relative;overflow:hidden;margin-top:56px;padding:48px 44px 44px;border-radius:24px;background:radial-gradient(120% 140% at 100% 0%,#2C5592 0%,#1F4171 45%,#1B2842 100%);color:#fff}
.fits::before{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;border-radius:50%;border:1px solid rgba(141,169,196,.25);box-shadow:0 0 0 60px rgba(141,169,196,.05),0 0 0 120px rgba(141,169,196,.03)}
.fits-head{position:relative;margin-bottom:34px}
.fits-head .eyebrow{color:#8DA9C4}
.fits-head h3{font-size:clamp(26px,2.8vw,36px);line-height:1.15;color:#fff;letter-spacing:-.015em;margin:0}
.fits .fit-grid{position:relative;gap:18px}
.fits .fit-grid>div{position:relative;padding:26px 22px 24px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);transition:opacity .8s ease var(--rd,0s),transform .5s cubic-bezier(.2,.7,.2,1),background-color .35s ease,box-shadow .35s ease,border-color .35s ease}
.fit-ic{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:#EEF4ED;color:#1F4171;margin-bottom:20px;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.fit-ic svg{width:34px;height:34px}
.fit-n{position:absolute;top:22px;right:22px;font-size:13px;font-weight:600;letter-spacing:.08em;color:rgba(141,169,196,.8)}
.fits .fit-grid h4{font-size:18px;line-height:1.25;color:#fff;margin:0 0 10px;padding:0;border:0}
.fits .fit-grid p{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.78);margin:0}
@media (hover:hover){
.fits .fit-grid>div:hover{transform:translateY(-8px);background:rgba(255,255,255,.11);border-color:rgba(141,169,196,.45);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.fits .fit-grid>div:hover .fit-ic{transform:rotate(-8deg) scale(1.08)}
}
@media (max-width:640px){.fits{padding:32px 20px 24px;border-radius:18px}}
.fits-head p{max-width:640px;margin:14px 0 0;font-size:17px;line-height:1.55;color:rgba(255,255,255,.8)}
.fit-how{position:relative;margin-top:36px;padding-top:30px;border-top:1px solid rgba(255,255,255,.12)}
.fit-how-t{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8DA9C4;margin:0 0 22px}
.fit-how ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:fh;position:relative}
.fit-how ol::before{content:"";position:absolute;left:14px;right:14px;top:14px;height:2px;background:linear-gradient(90deg,#8DA9C4,rgba(141,169,196,.15));transform-origin:left;transform:scaleX(0);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.fit-how.on ol::before{transform:none}
.fit-how li{position:relative;padding-top:44px;counter-increment:fh}
.fit-how li::before{content:counter(fh);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;color:#1F4171;background:#EEF4ED;box-shadow:0 0 0 5px rgba(238,244,237,.12);opacity:0;transform:scale(.4);transition:opacity .4s ease,transform .5s cubic-bezier(.3,1.6,.5,1);transition-delay:calc(var(--k)*.35s + .2s)}
.fit-how.on li::before{opacity:1;transform:none}
.fit-how li:nth-child(1){--k:0}.fit-how li:nth-child(2){--k:1}.fit-how li:nth-child(3){--k:2}.fit-how li:nth-child(4){--k:3}
.fit-how li b{display:block;font-size:16px;color:#fff;margin-bottom:6px}
.fit-how li span{display:block;font-size:14px;line-height:1.5;color:rgba(255,255,255,.72)}
.fit-foot{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;margin-top:34px}
.fit-chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.fit-chips li{font-size:13.5px;font-weight:600;color:#fff;padding:8px 14px;border-radius:999px;border:1px solid rgba(141,169,196,.45);background:rgba(141,169,196,.1)}
@media (max-width:960px){.fit-how ol{grid-template-columns:1fr 1fr;row-gap:26px}.fit-how ol::before{display:none}}
@media (max-width:640px){.fit-how ol{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.fit-how ol::before{transform:none;transition:none}.fit-how li::before{opacity:1;transform:none;transition:none}}

/* fits: full-bleed band */
body{overflow-x:clip}
.fits{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-bottom:-96px;border-radius:0;padding:72px calc(50vw - 50%) 80px}
.fits::before{right:calc(50vw - 50% - 120px)}
@media (max-width:960px){.fits{margin-bottom:-72px;padding-top:56px;padding-bottom:56px}}
@media (max-width:640px){.fits{border-radius:0;padding:44px calc(50vw - 50%) 44px}}

/* fits: animated rings */
.fits::before{animation:fitsBreath 9s ease-in-out infinite}
.fits::after{content:"";position:absolute;right:calc(50vw - 50% - 120px);top:-120px;width:360px;height:360px;border-radius:50%;border:2px solid rgba(141,169,196,.75);box-shadow:0 0 24px rgba(141,169,196,.25),inset 0 0 24px rgba(141,169,196,.15);pointer-events:none;animation:fitsRipple 5s cubic-bezier(.2,.6,.3,1) infinite}
@keyframes fitsBreath{0%,100%{transform:scale(1) translate(0,0)}50%{transform:scale(1.08) translate(-14px,10px)}}
@keyframes fitsRipple{0%{transform:scale(.55);opacity:0}15%{opacity:.9}100%{transform:scale(1.9);opacity:0}}
.fits>*{position:relative;z-index:1}
@media (max-width:640px){.fits::after{right:-160px;top:-160px}}
@media (prefers-reduced-motion:reduce){.fits::before,.fits::after{animation:none}.fits::after{display:none}}

/* home: balanced vertical spacing */
body:has(.gap2)>section{padding-top:87px}
body:has(.gap2)>section.hero{padding:72px 0 64px}
.proof{padding:47px 0 32px}
#clinical{padding-bottom:90px}
#company{padding-top:94px}
.fits{margin-top:96px;padding-top:80px;padding-bottom:72px}
@media (max-width:960px){
body:has(.gap2)>section{padding-top:63px}
body:has(.gap2)>section.hero{padding:64px 0 300px}
#clinical{padding-bottom:66px}
#company{padding-top:70px}
.fits{margin-top:72px;padding-top:60px;padding-bottom:52px}
}
@media (max-width:640px){.fits{padding-top:48px;padding-bottom:40px}}

/* pipeline: light (mint) */
#pipeline.pl-light .eyebrow{color:var(--navy)}
#pipeline.pl-light h2{color:var(--navy)}
#pipeline.pl-light .btn-ghost{border-color:rgba(31,65,113,.45);color:var(--navy)}
#pipeline.pl-light .btn-ghost:hover{background:var(--navy);color:#fff}
#pipeline.pl-light .pl-head,#pipeline.pl-light .pl-row{border-bottom-color:rgba(31,65,113,.14)}
#pipeline.pl-light .pl-stages span,#pipeline.pl-light .pl-stage{color:#5f7ea3}
#pipeline.pl-light .pl-name b{color:var(--navy)}
#pipeline.pl-light .pl-ind,#pipeline.pl-light .pl-name b+.pl-ind{color:rgba(27,40,66,.68)}
#pipeline.pl-light .pl-name:not(:has(b)) .pl-ind{color:var(--deep)}
#pipeline.pl-light .pl-name a:hover b,#pipeline.pl-light .pl-name a:hover .pl-ind{color:#5f7ea3}
#pipeline.pl-light .pl-track{background:rgba(31,65,113,.07) repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),rgba(31,65,113,.14) calc(20% - 1px) 20%)}
#pipeline.pl-light .pl-bar{background:var(--celeste)}
#pipeline.pl-light .pl-bar.hi{background:var(--navy)}
.pl-stages span{font-size:clamp(11px,.87vw,12.5px);letter-spacing:.04em}
/* pipeline: evenly spread stage labels (JS maps bars + gridlines) */
.pl-stages{display:flex;justify-content:space-between}
.pl{--plg:rgba(255,255,255,.12)}
#pipeline.pl-light .pl{--plg:rgba(31,65,113,.14)}
.pl.mapped .pl-track{background-image:linear-gradient(90deg,transparent calc(var(--m1) - 1px),var(--plg) calc(var(--m1) - 1px) var(--m1),transparent var(--m1) calc(var(--m2) - 1px),var(--plg) calc(var(--m2) - 1px) var(--m2),transparent var(--m2) calc(var(--m3) - 1px),var(--plg) calc(var(--m3) - 1px) var(--m3),transparent var(--m3) calc(var(--m4) - 1px),var(--plg) calc(var(--m4) - 1px) var(--m4),transparent var(--m4))!important}

/* platform page v2 */
.pv-intro{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end}
.pv-intro h2{font-size:clamp(34px,3.6vw,52px);line-height:1.08;margin:0}
.pv-intro .lead{margin:0}
.pv-demo{margin-top:48px}
.pv-demo .ab-demo{margin:0}
.pv-tl{position:relative;margin-top:80px}
.pv-tl::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:linear-gradient(#8DA9C4,rgba(141,169,196,.15))}
.pv-row{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center;margin-bottom:56px;position:relative}
.pv-row:last-child{margin-bottom:0}
.pv-row::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#1F4171;box-shadow:0 0 0 6px #EEF4ED}
.pv-num{font-size:64px;line-height:1;font-weight:600;color:#8DA9C4;letter-spacing:-.03em}
.pv-row h3{font-size:24px;color:#1F4171;margin:10px 0 12px}
.pv-row p{font-size:15.5px;color:#41536f;line-height:1.6;margin:0}
.pv-vis{display:grid;place-items:center;height:180px;border-radius:24px;background:#EEF4ED;color:#1F4171}
.pv-vis span{display:grid;place-items:center;width:110px;height:110px;border-radius:50%;background:#fff;box-shadow:0 10px 30px rgba(31,65,113,.1);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.pv-vis svg{width:60px;height:60px}
.pv-row:hover .pv-vis span{transform:scale(1.08) rotate(-6deg)}
.pv-row:nth-child(even) .pv-tx{order:2}
.pv-facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:80px;border-top:2px solid #1F4171;border-bottom:1px solid rgba(31,65,113,.15)}
.pv-facts>div{padding:30px 26px 28px;border-left:1px solid rgba(31,65,113,.15)}.pv-facts>div:first-child{border-left:0;padding-left:0}
.pv-facts strong{display:block;font-size:clamp(34px,3.3vw,46px);line-height:1;font-weight:600;color:#1F4171;letter-spacing:-.02em}
.pv-facts span{display:block;margin-top:12px;font-size:14px;color:#41536f}
.pv-tabs{display:grid;grid-template-columns:320px 1fr;gap:40px;margin-top:40px;align-items:start}
.pv-tablist{display:flex;flex-direction:column;gap:4px}
.pv-tablist button{font:inherit;text-align:left;padding:16px 18px;border-radius:12px;border:0;background:transparent;font-weight:600;font-size:15px;color:#41536f;cursor:pointer;transition:background-color .25s,color .25s}
.pv-tablist button:hover{background:rgba(31,65,113,.07);color:#1F4171}
.pv-tablist button[aria-selected=true]{background:#1F4171;color:#fff}
.pv-tablist button:focus-visible{outline:2px solid #1F4171;outline-offset:2px}
.pv-panels{background:#fff;border-radius:20px;padding:36px 40px;min-height:340px;box-shadow:0 10px 30px rgba(31,65,113,.06)}
.pv-panel h3{font-size:24px;color:#1F4171;margin:0 0 14px}
.pv-panel p{color:#41536f;font-size:16px;line-height:1.6;margin:0}
.pv-panel{animation:pvIn .35s ease}
@keyframes pvIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pv-soon{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#5f7ea3;background:rgba(141,169,196,.18);padding:4px 10px;border-radius:999px;margin-bottom:12px}
.pv-panel .pv-ph{margin-top:12px;color:#7a8aa3;font-style:italic;font-size:15px}
.pv-feat{position:relative;overflow:hidden;margin-top:32px;padding:40px 44px;border-radius:24px;background:radial-gradient(120% 140% at 100% 0%,#2C5592 0%,#1F4171 45%,#1B2842 100%);color:#fff}
.pv-feat::after{content:"";position:absolute;right:-90px;top:-90px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(141,169,196,.3);box-shadow:0 0 0 40px rgba(141,169,196,.05)}
.pv-feat-top{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.pv-tag{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#1F4171;background:#F6B2A2;padding:5px 12px;border-radius:999px}
.pv-date{font-size:13.5px;font-weight:600;color:#8DA9C4}
.pv-feat h3{position:relative;font-size:clamp(20px,2vw,26px);line-height:1.3;color:#fff;margin:18px 0 12px;max-width:900px}
.pv-auth{position:relative;font-size:13.5px;color:rgba(255,255,255,.7);margin:0 0 26px;max-width:900px}
.pv-feat .btn{position:relative}
.pv-pubs .pub:nth-child(n+9){display:none}
.pv-pubs.open .pub{display:grid}
.btn-ghost-navy{background:transparent;border:1px solid rgba(31,65,113,.4);color:#1F4171;cursor:pointer;font:inherit;font-weight:600}
.btn-ghost-navy:hover{background:#1F4171;color:#fff}
.pv-more{margin-top:28px}
@media (max-width:960px){
.pv-intro{grid-template-columns:1fr;gap:16px}
.pv-tl::before{left:8px}
.pv-row{grid-template-columns:1fr;gap:18px;padding-left:40px;margin-bottom:44px}
.pv-row::after{left:8px;top:22px}
.pv-row:nth-child(even) .pv-tx{order:0}
.pv-vis{height:130px}
.pv-facts{grid-template-columns:1fr 1fr}.pv-facts>div:nth-child(3){border-left:0;padding-left:0}.pv-facts>div{padding:22px 16px}
.pv-tabs{grid-template-columns:1fr;gap:20px}
.pv-tablist{flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:4px}
.pv-tablist button{white-space:nowrap;padding:12px 16px;background:rgba(31,65,113,.07)}
.pv-panels{padding:26px 22px;min-height:0}
.pv-feat{padding:30px 24px}
}
@media (max-width:640px){.pv-num{font-size:48px}.pv-row h3{font-size:20px}}
@media (prefers-reduced-motion:reduce){.pv-panel{animation:none}.pv-vis span{transition:none}}

/* ===== Typography system: one size per role, site-wide ===== */
:root{--t-label:12px;--t-h1:clamp(34px,3.6vw,50px);--t-h2:clamp(28px,2.8vw,40px);--t-h3:clamp(20px,1.7vw,24px);--t-h4:clamp(17px,1.35vw,19px);--t-lead:clamp(16px,1.2vw,17px);--t-body:15px}
/* small titles (eyebrows and labels) */
.eyebrow,.fit-how-t,.team-group>h3{font-size:var(--t-label)!important}
/* big titles */
h1{font-size:var(--t-h1)!important;line-height:1.1!important}
section h2,.fits-head h3{font-size:var(--t-h2)!important;line-height:1.15!important}
/* subtitles */
section h3,section h4{font-size:var(--t-h4)!important;line-height:1.3!important}
.gap-sub,.pv-panel h3,.pv-row h3,.pv-feat h3,.cta h3,.form-box h3,body:has(.legal-nav a[href="#privacy"]) section h2{font-size:var(--t-h3)!important;line-height:1.25!important}
/* text under titles */
.lead,.fits-head p{font-size:var(--t-lead)!important;line-height:1.6!important}
/* body text */
section p:not(.lead):not(.big):not(.gap-rot):not(.cap):not(.pv-auth):not(.note){font-size:var(--t-body)!important;line-height:1.6!important}
.fit-how li span{font-size:var(--t-body)!important}
.hero .wrap>div:first-child{max-width:680px}
.pv-intro{grid-template-columns:1fr;gap:18px;align-items:start}
.pv-intro h2{white-space:nowrap}
.pv-intro .lead{max-width:800px}
@media (max-width:720px){.pv-intro h2{white-space:normal}}
/* justified body text (applied by site.js only where spacing stays even) */
.jt{text-align:justify;text-justify:inter-word}
.jt{-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:7 3 3}

/* platform: horizontal steps synced with the animation */
.pv-steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:36px;border:0;padding:0}
.pv-line{position:absolute;left:12.5%;right:12.5%;top:48px;height:2px;background:rgba(31,65,113,.12);z-index:0}
.pv-line i{position:absolute;left:0;top:0;bottom:0;width:0;background:#1F4171;transition:width .8s cubic-bezier(.2,.7,.2,1)}
.pv-demo:has(.ab-demo[data-p="2"]) .pv-line i{width:33.33%}
.pv-demo:has(.ab-demo[data-p="3"]) .pv-line i{width:66.66%}
.pv-demo:has(.ab-demo[data-p="4"]) .pv-line i{width:100%}
.pv-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 20px 26px;border-radius:20px;border:1px solid transparent;background:transparent;opacity:.5;transition:opacity .5s ease,background-color .5s ease,box-shadow .5s ease,transform .5s cubic-bezier(.2,.7,.2,1),border-color .5s ease}
.pv-step::before{display:none}
.pv-step .pv-ic{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:#EEF4ED;color:#1F4171;box-shadow:0 0 0 8px #fff;transition:background-color .5s ease,color .5s ease,transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s ease}
.pv-step .pv-ic svg{width:52px;height:52px}
.pv-n{margin-top:16px;font-size:13px;font-weight:700;letter-spacing:.1em;color:#8DA9C4}
.pv-step h3{color:#1F4171;margin:6px 0 10px!important}
.pv-step p{color:#41536f;margin:0;text-align:left;align-self:stretch}
.pv-step p.jt{text-align:justify}
.pv-step.on{opacity:1;background:#fff;border-color:rgba(31,65,113,.12);box-shadow:0 18px 44px rgba(31,65,113,.14);transform:translateY(-6px)}
.pv-step.on .pv-ic{background:#1F4171;color:#fff;transform:scale(1.06);box-shadow:0 0 0 8px #fff,0 0 0 14px rgba(141,169,196,.25)}
.pv-step.on .pv-n{color:#F6B2A2}
.pv-step:hover{opacity:1}
@media (max-width:960px){.pv-steps{grid-template-columns:1fr 1fr}.pv-line{display:none}}
@media (max-width:560px){.pv-steps{grid-template-columns:1fr}.pv-step{opacity:1}}
@media (prefers-reduced-motion:reduce){.pv-step,.pv-step .pv-ic,.pv-line i{transition:none}}
.steps.synced .pv-step{border-top-color:transparent;padding-top:24px}
.steps.synced .pv-step.on{border-top-color:rgba(31,65,113,.12)}
.steps.synced .pv-step.on .pv-n{color:#F6B2A2}
.steps.synced .pv-step:not(.on){opacity:.5}
.steps.synced .pv-step:not(.on):hover{opacity:.85}
/* platform: drawing + step text visible together */
.pv-demo .ab-demo{padding-bottom:18px}
.pv-demo .ab-cap{display:none}
.pv-demo .ab-demo svg{display:block;max-height:min(330px,40vh);width:100%;margin:0 auto}
.pv-steps{margin-top:22px;gap:14px}
.pv-step{padding:16px 14px 18px}
.steps.synced .pv-step{padding-top:16px}
.pv-step .pv-ic{width:68px;height:68px;box-shadow:0 0 0 6px #fff}
.pv-step .pv-ic svg{width:38px;height:38px}
.pv-step.on .pv-ic{box-shadow:0 0 0 6px #fff,0 0 0 11px rgba(141,169,196,.25)}
.pv-line{top:50px}
.pv-n{margin-top:12px}
.pv-step h3{margin:4px 0 0!important}
.pv-step.on{transform:translateY(-4px)}
.pv-detail{position:relative;margin-top:16px;background:#1F4171;border-radius:20px;padding:22px 32px;color:#fff;min-height:72px;display:flex;align-items:center}
.pv-detail::before{content:"";position:absolute;top:-9px;left:calc(12.5% - 9px);width:18px;height:18px;background:#1F4171;transform:rotate(45deg);border-radius:3px;transition:left .5s cubic-bezier(.2,.7,.2,1)}
.pv-demo:has(.ab-demo[data-p="2"]) .pv-detail::before{left:calc(37.5% - 9px)}
.pv-demo:has(.ab-demo[data-p="3"]) .pv-detail::before{left:calc(62.5% - 9px)}
.pv-demo:has(.ab-demo[data-p="4"]) .pv-detail::before{left:calc(87.5% - 9px)}
.pv-d{display:none}
.pv-demo:has(.ab-demo[data-p="1"]) .pv-d[data-n="1"],.pv-demo:has(.ab-demo[data-p="2"]) .pv-d[data-n="2"],.pv-demo:has(.ab-demo[data-p="3"]) .pv-d[data-n="3"],.pv-demo:has(.ab-demo[data-p="4"]) .pv-d[data-n="4"]{display:block;animation:pvIn .45s ease}
.pv-demo:not(:has(.ab-demo[data-p])) .pv-d[data-n="1"]{display:block}
.pv-d-h{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
.pv-d-n{font-size:13px;font-weight:700;letter-spacing:.1em;color:#F6B2A2}
.pv-d h3{color:#fff;margin:0!important}
.pv-d p{color:rgba(255,255,255,.85);margin:0}
@media (max-width:960px){.pv-detail::before{display:none}.pv-detail{padding:22px}}
@media (max-width:560px){.pv-steps{grid-template-columns:1fr 1fr}.steps.synced .pv-step:not(.on){opacity:.5}.pv-step .pv-ic{width:56px;height:56px}.pv-step .pv-ic svg{width:32px;height:32px}}
.steps.synced .pv-step:not(.on){opacity:1}
.steps.synced .pv-step:not(.on) h3{color:#9fb3c8}
.steps.synced .pv-step:not(.on) .pv-ic svg{opacity:.45;transition:opacity .5s ease}
.steps.synced .pv-step:not(.on):hover h3{color:#1F4171}
.steps.synced .pv-step:not(.on):hover .pv-ic svg{opacity:.8}

/* pipeline page: program cards coloured by stage, with species silhouette */
.progs-sec .prog{border:0}
.prog-top{display:flex;align-items:center;gap:12px;min-height:30px}
.prog-top .sil{width:44px;height:30px;flex:none;color:#8DA9C4}
.progs-sec .prog h3{margin-top:12px}
.progs-sec .prog.st-ct{background:#1F4171}
.progs-sec .prog.st-ct h3,.progs-sec .prog.st-ct .stage{color:#fff}
.progs-sec .prog.st-ct p{color:rgba(255,255,255,.8)}
.progs-sec .prog.st-ct .code{color:#8DA9C4}
.progs-sec .prog.st-ct .sil{color:#fff}
.progs-sec .prog.st-poc{background:#8DA9C4}
.progs-sec .prog.st-poc p{color:#1B2842}
.progs-sec .prog.st-poc .sil{color:#1F4171}
.progs-sec .prog.st-pre{background:#EEF4ED}
.progs-sec .prog.st-pre .sil{color:#1F4171}
.progs-sec .prog:hover{box-shadow:0 16px 36px rgba(31,65,113,.18)}
.prog-top{min-height:36px}.prog-top .sil{width:36px;height:36px}
/* pipeline chart: no gridlines; program subtitle same style as other rows */
.pl-track,.pl.mapped .pl-track,#pipeline.pl-light .pl-track{background-image:none!important}
.pl-name b+.pl-ind,#pipeline.pl-light .pl-name b+.pl-ind{font-size:15px;font-weight:600;color:#fff;white-space:normal;display:block;line-height:1.35}
#pipeline.pl-light .pl-name b+.pl-ind{color:var(--deep)}
/* pipeline: stage colour scale (clinical navy, POC celeste, preclinical light celeste) */
#pipeline.pl-light .pl-track{background-color:#fff!important}
#pipeline.pl-light .pl-row.st-pre .pl-bar{background:#DCE6EF}
.progs-sec .prog.st-pre{background:#DCE6EF}
#pipeline .wrap>.pl:first-child{margin-top:0}
/* program cards: call to action */
.prog-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.prog-foot .stage{margin-top:0}
.prog-cta{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;padding:9px 16px;border-radius:999px;background:#fff;color:#1F4171;transition:background-color .25s,color .25s}
.prog-cta i{font-style:normal;transition:transform .25s}
.prog:hover .prog-cta i{transform:translateX(4px)}
.progs-sec .prog.st-ct .prog-cta{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.progs-sec .prog.st-ct:hover .prog-cta{background:#fff;color:#1F4171}
.progs-sec .prog.st-poc:hover .prog-cta,.progs-sec .prog.st-pre:hover .prog-cta{background:#1F4171;color:#fff}
/* program cards: stronger hover */
.progs-sec .prog{transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,filter .4s ease}
.progs-sec .prog:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 26px 50px rgba(31,65,113,.28);filter:saturate(1.08)}
.prog-top .sil{transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.progs-sec .prog:hover .sil{transform:scale(1.18) rotate(-8deg)}
@media (prefers-reduced-motion:reduce){.progs-sec .prog,.prog-top .sil{transition:none}.progs-sec .prog:hover{transform:none}}
/* program pages: header colour matches the program card */
.page-hero.hero-poc{background:#8DA9C4;color:#1F4171;--abc:rgba(31,65,113,.9)}
.page-hero.hero-pre{background:#DCE6EF;color:#1F4171;--abc:#8DA9C4}
.page-hero.hero-poc h1,.page-hero.hero-pre h1,.page-hero.hero-poc .eyebrow,.page-hero.hero-pre .eyebrow{color:#1F4171}
.page-hero.hero-poc .lead,.page-hero.hero-pre .lead{color:#1B2842}
.page-hero.hero-poc .crumbs,.page-hero.hero-pre .crumbs,.page-hero.hero-poc .crumbs a,.page-hero.hero-pre .crumbs a{color:#41536f}
.page-hero.hero-poc .crumbs a:hover,.page-hero.hero-pre .crumbs a:hover{color:#1F4171}
.page-hero.hero-poc .facts,.page-hero.hero-pre .facts{border-top-color:rgba(31,65,113,.2)}
.page-hero.hero-poc .facts span{color:#1F4171;opacity:.75}
.page-hero.hero-pre .facts span{color:#5f7ea3}
.page-hero.hero-poc .facts strong,.page-hero.hero-pre .facts strong{color:#1F4171}

/* program page v2 (Xep01) */

.sn{position:sticky;top:76px;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(31,65,113,.1)}
.sn .wrap{display:flex;gap:28px;align-items:center;height:56px;position:relative}
.sn a{font-size:14px;font-weight:600;color:#7a8aa3}.sn a.on{color:#1F4171}
.sn-bar{position:absolute;left:24px;right:24px;bottom:-1px;height:2px}.sn-bar i{display:block;height:100%;width:30%;background:#F6B2A2}
.mx-hero-stat{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center;margin:36px 0 40px;padding:40px 44px;border-radius:24px;background:radial-gradient(120% 140% at 100% 0%,#2C5592 0%,#1F4171 45%,#1B2842 100%);color:#fff}
.mx-big strong{display:block;font-size:clamp(72px,9vw,128px);line-height:.95;font-weight:600;letter-spacing:-.04em}
.mx-big span{display:block;margin-top:10px;font-size:17px;color:rgba(255,255,255,.85);max-width:280px}
.mx-dogs{display:grid;grid-template-columns:repeat(5,1fr);gap:14px 18px;justify-items:center}
.mx-dogs span{display:block;width:100%;max-width:96px;aspect-ratio:334/249;background:#fff;-webkit-mask:url(dog-side.svg) center/contain no-repeat;mask:url(dog-side.svg) center/contain no-repeat}
.mx-dogs .off{opacity:.2}
.mx-dogs .on{opacity:0}.mx-dogs.in .on{animation:mxPop .5s cubic-bezier(.3,1.6,.5,1) both}
.mx-dogs span:nth-child(1){animation-delay:0.00s}.mx-dogs span:nth-child(2){animation-delay:0.08s}.mx-dogs span:nth-child(3){animation-delay:0.16s}.mx-dogs span:nth-child(4){animation-delay:0.24s}.mx-dogs span:nth-child(5){animation-delay:0.32s}.mx-dogs span:nth-child(6){animation-delay:0.40s}.mx-dogs span:nth-child(7){animation-delay:0.48s}.mx-dogs span:nth-child(8){animation-delay:0.56s}.mx-dogs span:nth-child(9){animation-delay:0.64s}.mx-dogs span:nth-child(10){animation-delay:0.72s}
@keyframes mxPop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.mx-sched .mx-dose{margin-top:0}
.mx-sched .mx-chips span{background:#fff}
.mx-prose{columns:2;column-gap:48px}.mx-prose p{break-inside:avoid;margin:0 0 14px;color:#41536f}
.mx-mech{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.mx-mech p{color:#41536f;margin:16px 0}
.mx-ev{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px}
.mx-ok{background:#EEF4ED;border-radius:18px;padding:24px}.mx-ok span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1F4171;color:#fff;font-weight:700;margin-bottom:14px}.mx-ok p{margin:0;color:#41536f}
.mx-sub{margin:56px 0 24px!important;font-size:24px!important;color:#1F4171}
.mx-dose{margin-top:44px;background:#1F4171;color:#fff;border-radius:22px;padding:28px 34px 52px}
.mx-dose-h{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:30px}.mx-dose-h span{color:#8DA9C4;font-weight:600;font-size:14px}
.mx-rule{position:relative;height:4px;background:rgba(255,255,255,.2);border-radius:2px;margin:0 12px}
.mx-rule i{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#8DA9C4}
.mx-rule i.inj{width:22px;height:22px;margin:-11px 0 0 -11px;background:#F6B2A2;box-shadow:0 0 0 6px rgba(246,178,162,.25)}
.mx-rule i.end{background:#fff}
.mx-rule em{position:absolute;top:22px;left:50%;transform:translateX(-50%);white-space:nowrap;font-style:normal;font-size:12px;color:#c9d6e3}
.mx-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.mx-chips span{padding:8px 14px;border-radius:999px;background:#EEF4ED;color:#1F4171;font-weight:600;font-size:13.5px}
.mx-rule em{top:20px}

.mx-tl{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.mx-tl-line{position:absolute;left:10%;right:10%;top:13px;height:3px;background:#DCE6EF}.mx-tl-line i{display:block;height:100%;width:50%;background:#1F4171}
.mx-tl .d{position:relative;text-align:center;padding-top:40px}
.mx-tl .d::before{content:"";position:absolute;left:50%;top:4px;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:#1F4171;box-shadow:0 0 0 5px #fff}
.mx-tl .d.now::before{background:#F6B2A2;box-shadow:0 0 0 5px #fff,0 0 0 11px rgba(246,178,162,.3)}
.mx-tl .d.now~.d::before{background:#DCE6EF}
.mx-tl b{display:block;color:#1F4171;font-size:16px}.mx-tl span{display:block;color:#41536f;font-size:14px;margin-top:4px}
.sn .wrap{overflow-x:auto;scrollbar-width:none}.sn .wrap::-webkit-scrollbar{display:none}.sn a{white-space:nowrap;transition:color .2s}.sn a:hover{color:#1F4171}
.sn-bar i{width:0;transition:width .15s linear}
@media (max-width:960px){.mx-hero-stat{grid-template-columns:1fr;gap:28px;padding:30px 24px}.mx-prose{columns:1}.mx-mech{grid-template-columns:1fr;gap:28px}.mx-ev{grid-template-columns:1fr}.mx-tl{grid-template-columns:1fr;gap:18px}.mx-tl-line{display:none}.mx-tl .d{text-align:left;padding:0 0 0 40px}.mx-tl .d::before{left:11px;top:2px}.mx-dose{padding:24px 22px 48px}}
@media (max-width:560px){.mx-dogs{gap:10px}.mx-rule em{font-size:10.5px}.mx-rule i:nth-child(even) em{top:-26px}}

/* dogs one by one */
.mx-dogs .off{opacity:0}
.mx-dogs.in .on{animation:mxPop .55s cubic-bezier(.3,1.5,.5,1) both}
.mx-dogs.in .off{animation:mxPopOff .55s ease both}
@keyframes mxPopOff{from{transform:scale(.4);opacity:0}to{transform:none;opacity:.2}}
.mx-dogs.in span:nth-child(1){animation-delay:0.15s}.mx-dogs.in span:nth-child(2){animation-delay:0.47s}.mx-dogs.in span:nth-child(3){animation-delay:0.79s}.mx-dogs.in span:nth-child(4){animation-delay:1.11s}.mx-dogs.in span:nth-child(5){animation-delay:1.43s}.mx-dogs.in span:nth-child(6){animation-delay:1.75s}.mx-dogs.in span:nth-child(7){animation-delay:2.07s}.mx-dogs.in span:nth-child(8){animation-delay:2.39s}.mx-dogs.in span:nth-child(9){animation-delay:2.71s}.mx-dogs.in span:nth-child(10){animation-delay:3.03s}
@media (prefers-reduced-motion:reduce){.mx-dogs .on{opacity:1;animation:none}.mx-dogs .off{opacity:.2;animation:none}}

/* Xep01 hero: joint animation + compact program heroes */
.page-hero.hero-ct,.page-hero.hero-poc,.page-hero.hero-pre{padding:52px 0 40px}
.page-hero.hero-ct h1,.page-hero.hero-poc h1,.page-hero.hero-pre h1{max-width:1000px}
.page-hero.hero-ct .facts,.page-hero.hero-poc .facts,.page-hero.hero-pre .facts{margin-top:28px}
.page-hero.hero-ct .facts>div,.page-hero.hero-poc .facts>div,.page-hero.hero-pre .facts>div{padding-top:16px}
.page-hero .crumbs{margin-bottom:12px}
.page-hero.hero-joint .ab-canvas{display:none}
.page-hero.hero-joint h1{max-width:760px}.page-hero.hero-joint .lead{max-width:680px}.page-hero.hero-joint .facts{max-width:860px;grid-template-columns:repeat(4,auto);justify-content:space-between}.page-hero.hero-joint .facts>div{padding-right:24px}
.hj{position:absolute;right:max(24px,calc((100vw - 1240px)/2 - 10px));top:50%;width:min(28vw,340px);transform:translateY(-50%);z-index:0;pointer-events:none}
.hj svg{display:block;width:100%;height:auto;overflow:visible}
.hj-bone{fill:#1F4171;stroke:#fff;stroke-width:3;stroke-linejoin:round}
.hj-cap{fill:none;stroke:rgba(255,255,255,.35);stroke-width:2.5;stroke-dasharray:6 7}
.hj-inf{transform-origin:150px 152px;animation:hjInf 12s ease-in-out infinite}
.hj-calm{opacity:0;animation:hjCalm 12s ease-in-out infinite}
.jy{opacity:0;stroke:#fff;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round;animation:hjY 12s ease-in-out var(--d) infinite both,hjFloat 3s ease-in-out infinite alternate}
@keyframes hjInf{0%{opacity:.55;transform:scale(.96)}6%{opacity:1;transform:scale(1.06)}12%{opacity:.5;transform:scale(.96)}18%{opacity:1;transform:scale(1.06)}24%{opacity:.5;transform:scale(.96)}30%{opacity:1;transform:scale(1.06)}36%{opacity:.55;transform:scale(.96)}42%{opacity:1;transform:scale(1.05)}48%{opacity:.8;transform:scale(1)}62%,88%{opacity:0;transform:scale(.85)}100%{opacity:.55;transform:scale(.96)}}
@keyframes hjCalm{0%,48%{opacity:0}64%,84%{opacity:1}96%,100%{opacity:0}}
@keyframes hjY{0%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.6)}8%{opacity:.9;transform:translate(var(--dx),var(--dy))}18%{opacity:.9;transform:translate(calc(var(--dx)*.94),calc(var(--dy)*.94 - 4px))}40%,82%{opacity:.95;transform:none}90%{opacity:0;transform:none}91%,100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.6)}}
@keyframes hjFloat{from{translate:0 0}to{translate:0 -3px}}
@media (max-width:960px){.page-hero.hero-joint .facts{grid-template-columns:1fr 1fr}.hj{width:300px;right:-90px;top:auto;bottom:-40px;transform:none;opacity:.35}}
@media (prefers-reduced-motion:reduce){.hj-inf{animation:none;opacity:0}.hj-calm{animation:none;opacity:1}.jy{animation:none;opacity:.95}}

.mx-mech-1{grid-template-columns:1fr}.mx-mech-1>div{max-width:820px}
/* Xep01 evidence: safety + efficacy */
.mx-ev2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px}
.mx-evc{background:#EEF4ED;border-radius:22px;padding:30px 32px}
.mx-evc h3{margin:0 0 16px;color:#1F4171;font-size:var(--t-h3)}
.mx-evc h3::before{content:"";display:block;width:36px;height:4px;border-radius:2px;background:#F6B2A2;margin-bottom:16px}
.mx-evc ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.mx-evc li{position:relative;padding-left:36px;color:#41536f}
.mx-evc li::before{content:"✓";position:absolute;left:0;top:1px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#1F4171;color:#fff;font-size:12px;font-weight:700}
@media (max-width:860px){.mx-ev2{grid-template-columns:1fr}.mx-evc{padding:24px 22px}}

/* Cat OA: cat silhouettes */
.mx-dogs.mx-cats span{aspect-ratio:241/287;max-width:60px;-webkit-mask-image:url(cat-side.svg);mask-image:url(cat-side.svg)}

/* Xep01: tighter section spacing */
#disease,#mechanism,#evidence{padding-top:60px;padding-bottom:60px}
#disease .mx-hero-stat{margin:28px 0 32px}
.mx-prose strong{color:#1F4171;font-weight:600}

.mx-ev1{grid-template-columns:1fr;max-width:640px}

.mx-evc ul:first-child{margin-top:0}

/* Desktop dropdown: dark list with celeste top line */
@media (min-width:961px){
header.nav li.dd>ul.sub{background:#1B2842;border:0;border-top:3px solid #8DA9C4;border-radius:0 0 12px 12px;padding:6px 0 8px;min-width:150px;top:calc(100% + 20px);left:-16px;box-shadow:0 14px 34px rgba(0,0,0,.22)}
header.nav li.dd>ul.sub a{color:#fff;padding:11px 40px 11px 18px;font-size:14px;position:relative}
header.nav li.dd>ul.sub a::after{content:"\2192";position:absolute;right:16px;opacity:0;transition:opacity .2s}
header.nav li.dd>ul.sub a:hover,header.nav li.dd>ul.sub a.active{color:#8DA9C4}header.nav li.dd>ul.sub a:hover::after{opacity:1}
header.nav li.dd>ul.sub li+li{border-top:1px solid rgba(255,255,255,.08)}
.dd::after{height:24px}
header.nav li.dd>ul.sub{display:flex;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s ease .3s,transform .2s ease .3s,visibility 0s linear .5s}
header.nav li.dd:hover>ul.sub,header.nav li.dd:focus-within>ul.sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}
header.nav li.dd>ul.sub::before{content:"";position:absolute;left:-12px;right:-12px;top:-30px;height:30px}
}

.nav a.dd-t{cursor:default}

.mission .mission-btn{margin-top:22px}

/* News cards: mauve dates, lift on hover, outlined Read more */
#news .news-grid{margin-top:0}
.news .d{color:#B5838C}
.news-grid .news{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important}
.news-grid .news:hover{transform:translateY(-8px)!important;box-shadow:0 18px 36px rgba(27,40,66,.14);border-color:#8DA9C4}
.news .lk{align-self:flex-start;padding:7px 14px;margin-left:-14px;border:1.5px solid transparent;border-radius:999px;transition:border-color .25s ease,margin .25s ease}
.news:hover .lk{border-color:#1F4171;margin-left:0}

.press span{color:#8DA9C4}

/* Press list: See more pill, outlined on hover */
#press .press{margin-top:0}
.press a{transition:transform .25s ease}
.press a:hover{transform:translateX(4px)}
.press .lk{display:inline-block;margin:10px 0 2px -14px;padding:6px 14px;border:1.5px solid transparent;border-radius:999px;font-style:normal;font-size:13px;font-weight:600;color:#1F4171;transition:border-color .25s ease,margin .25s ease}
.press a:hover .lk{border-color:#1F4171;margin-left:0}

/* Footer: equal spacing between columns */
@media (min-width:961px){footer .fgrid{grid-template-columns:minmax(0,320px) auto auto auto;justify-content:space-between}}

/* Clinical data: trial index status pills */
.trials td{vertical-align:top}
.trials td:nth-child(4){min-width:220px}
.tst{display:inline-block;white-space:nowrap;padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:600}
.tst-done{background:#1F4171;color:#fff}
.tst-on{background:#8DA9C4;color:#1F4171}
.tst-soon{background:#DCE6EF;color:#1F4171}
.trials td small{display:block;font-size:12.5px;color:#5f7ea3;margin-top:3px;line-height:1.4}
.trials{table-layout:fixed;margin-top:0;min-width:900px}
.trials th,.trials td{text-align:left;hyphens:none;vertical-align:top}
.trials th:nth-child(1){width:12%}.trials th:nth-child(2){width:14%}.trials th:nth-child(3){width:27%}.trials th:nth-child(4){width:10%}.trials th:nth-child(5){width:23%}.trials th:nth-child(6){width:14%}
.trials td.tn{font-weight:600;color:#1F4171;white-space:nowrap}
section#team{padding-bottom:48px}
section.careers{padding-bottom:80px}
section#partners{padding:52px 0 56px}
section#partners .pt-grid{margin-top:28px}
section.careers .cta{background:#fff;border:1px solid #DCE6EF;padding:22px 30px;gap:18px}
section.careers .cta h3{font-size:20px!important;margin-bottom:4px}
section.careers .cta .eyebrow{margin-bottom:6px}
section.careers .cta p{font-size:14.5px}
.pt-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin:40px auto 0;max-width:820px}
section .pt-grid .logo-box.pt-box{width:auto;height:124px;padding:20px 30px;border:1px solid #DCE6EF;border-radius:16px;background:#fff;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,border-color .35s ease}
section .pt-grid .logo-box.pt-box:hover{transform:translateY(-8px);border-color:#8DA9C4;box-shadow:0 22px 40px -24px rgba(27,40,66,.45)}
section .pt-grid .logo-box.pt-box img{max-height:84px;max-width:100%;object-fit:contain}
section .pt-grid .logo-box.pt-puntovet img{max-width:230px;max-height:62px}section .pt-grid .logo-box.pt-buenvet img{max-width:240px;max-height:34px}
section .pt-grid .logo-box.pt-fvet img{max-width:250px}
@media (max-width:960px){section .pt-grid .logo-box.pt-box{height:110px;padding:16px 24px}}
@media (max-width:560px){section .pt-grid .logo-box.pt-box{width:100%}}
@media (min-width:961px){.glance.tglance:not(:has(.g-soon)){grid-template-columns:repeat(3,1fr)}}
section.page-hero .hw{width:fit-content;max-width:100%}
section.page-hero .hw h1{max-width:none;text-wrap:wrap}
section.page-hero .lead.lead-wide{max-width:none;width:0;min-width:100%}
.trials td:first-child{font-weight:400;color:#41536f}.trials td:nth-child(2){background:none;font-weight:400;color:#41536f}
.tgrp+.tgrp{margin-top:56px}
.progs-sec .prog.st-poc .code{color:#1F4171}
section .glance.hc-gl{margin:40px 0 0}
.hc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:28px}
.hc-card{display:block;background:#fff;border:1px solid #DCE6EF;border-radius:16px;padding:22px 22px 20px;color:inherit;text-decoration:none;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,border-color .35s ease}
.hc-card:hover{transform:translateY(-8px);border-color:#8DA9C4;box-shadow:0 22px 40px -24px rgba(27,40,66,.45)}
.hc-top{display:flex;align-items:center;gap:12px}.hc-top b{font-size:22px;color:#1F4171}
.hc-ic{height:22px;fill:#1F4171;flex:none;transition:transform .35s ease}
.hc-card:hover .hc-ic{animation:l2cWig .6s ease-in-out}
.hc-ind{display:block;margin-top:6px;color:#5f7ea3;font-size:14px}
.hc-n{display:block;margin-top:14px;font-weight:600;color:#1B2842;font-size:15px}
.hc-p{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.hc-btn{margin-top:32px}
@media (max-width:960px){.hc-grid{grid-template-columns:1fr}}
.wb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:40px}
.wb{background:#fff;border-radius:16px;padding:28px 26px 26px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.wb:hover{transform:translateY(-8px);box-shadow:0 22px 40px -24px rgba(27,40,66,.45)}
.wb{position:relative;overflow:hidden}
.wb::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:#F6B2A2;transition:width .45s cubic-bezier(.2,.7,.2,1)}
.wb:hover::after{width:100%}
.wb:hover .wb-i svg{animation:l2cWig .6s ease-in-out}
.wb:hover .wb-i{transform:scale(1.1)}
.wb-i{transition:background .35s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
.wb-grid.js-rv .wb{opacity:0;transform:translateY(26px)}
.wb-grid.js-rv.in .wb{opacity:1;transform:none;transition:opacity .7s ease calc(var(--i)*110ms),transform .7s cubic-bezier(.2,.7,.2,1) calc(var(--i)*110ms),box-shadow .35s ease}
.wb-grid.js-rv.in .wb:hover{transform:translateY(-8px);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.wb-i{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:#DCE6EF}
.wb-i svg{width:24px;height:24px}
.wb:hover .wb-i{background:#8DA9C4}
section .wb h3{margin:18px 0 8px;font-size:var(--t-h4)!important;color:#1F4171}
.wb p{margin:0;font-size:14.5px;line-height:1.6;color:#41536f}
@media (max-width:960px){.wb-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.wb-grid{grid-template-columns:1fr}}
.l2c{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px;max-width:460px}
.l2c::before{content:"";position:absolute;left:24px;right:calc(33.333% - 24px);top:24px;border-top:2px dashed #8DA9C4}
.l2c-s{position:relative}
.l2c-i{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;box-shadow:0 0 0 6px #fff}
.l2c-i svg{width:26px;height:26px}
.story-split{align-items:center}
.l2c-s{cursor:default}
.l2c-i{position:relative;z-index:1;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.l2c-s:hover .l2c-i{transform:translateY(-6px) scale(1.15);box-shadow:0 0 0 6px #fff,0 12px 22px -8px rgba(27,40,66,.45)}
.l2c-s:hover .l2c-i svg{animation:l2cWig .6s ease-in-out}
@keyframes l2cWig{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg)}60%{transform:rotate(9deg)}}
.l2c-s strong{transition:color .3s}
.l2c-s:hover strong{color:#8DA9C4}
.l2c-s strong{display:block;margin-top:14px;font-size:20px;font-weight:700;color:#1F4171}
.l2c-s small{display:block;margin-top:4px;font-size:13px;line-height:1.45;color:#41536f}
@media (max-width:960px){.l2c{max-width:none}}
.cglance>div{position:relative;padding:18px 16px 20px;border-top:0!important;border-radius:14px;cursor:default}
.cglance>div::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:#8DA9C4;transition:opacity .35s ease}
.cglance>div:hover::before{opacity:0}
.cglance{grid-template-columns:repeat(4,minmax(0,1fr))}
.cglance strong{white-space:nowrap;font-size:24px}
@media (max-width:960px){.cglance{grid-template-columns:1fr 1fr}}
.cglance>div.in{transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--rd,0s),transform .35s cubic-bezier(.2,.7,.2,1),background-color .35s ease,box-shadow .35s ease,border-color .35s ease}
.cglance>div strong{transition:color .35s ease}
section .cglance>div:hover{transform:translateY(-6px) scale(1.05);background:#fff;box-shadow:0 14px 34px -14px rgba(27,40,66,.35)}
.cglance>div:hover strong{color:#8DA9C4}
@media (min-width:961px){.tl{display:flex!important;justify-content:space-between;gap:18px!important}.tl .tl-item{flex:0 0 112px}.tl::before{right:102px!important}.tl::after{content:"";position:absolute;top:9px;right:16px;width:74px;border-top:2px dashed #8DA9C4}}
.tl .tl-item{cursor:default}
.tl .tl-item.in{transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--rd,0s),transform .35s ease}
.tl .tl-item:hover{transform:translateY(-8px)}
.tl .tl-item::before{transition:background .3s,box-shadow .3s,transform .3s}
.tl .tl-item:hover::before{background:#8DA9C4;box-shadow:0 0 0 2px #8DA9C4;transform:scale(1.12)}
.tl .tl-item .y{transition:color .3s}
.tl .tl-item:hover .y{color:#1B2842}
.trials tr.has-tx{cursor:pointer}
.tx-btn{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:600;line-height:1;color:#1F4171;background:#fff;border:1.5px solid #1F4171;border-radius:999px;cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.tx-btn:hover{background:#DCE6EF}
tr.open .tx-btn{background:#EEF4ED;border-color:#EEF4ED;color:#1F4171}
.tx-btn i{position:relative;width:8px;height:10px}
.tx-btn i::before,.tx-btn i::after{content:"";position:absolute;left:0;top:4px;width:8px;height:2px;background:currentColor;transition:transform .3s}
.tx-btn i::after{transform:rotate(90deg)}
tr.open .tx-btn i::after{transform:rotate(0)}
.trials tbody tr:not(.tx-row) td:last-child{white-space:nowrap}
.trials td:last-child .tx-btn{display:flex}
.trials tbody tr.tx-row td{padding:0;border-top:0}
.trials tbody tr.tx-row:hover td{background:none}
.tx{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.7,.2,1)}
.tx-row.open .tx{grid-template-rows:1fr}
.tx-in{overflow:hidden}
.tx-row.open .tx-in{border-top:1px dashed #DCE6EF}
.tx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;padding:22px 22px 6px}
.tx-k{background:#EEF4ED;border-radius:14px;padding:18px 18px 16px;opacity:0;transform:translateY(10px);transition:opacity .45s,transform .45s}
.tx-row.open .tx-k{opacity:1;transform:none}
.tx-row.open .tx-k:nth-child(2){transition-delay:.08s}.tx-row.open .tx-k:nth-child(3){transition-delay:.16s}.tx-row.open .tx-k:nth-child(4){transition-delay:.24s}
.tx-k strong{display:block;font-size:34px;line-height:1.1;font-weight:700;color:#1F4171}
.tx-k span{display:block;margin-top:6px;font-size:13px;line-height:1.4;color:#41536f}
.tx-note{margin:0;padding:10px 22px 22px;font-size:14px;color:#41536f}
@media (max-width:760px){.tx-grid{grid-template-columns:1fr 1fr}}
.tgrp .cmp-wrap{border:1px solid #DCE6EF;border-radius:16px;background:#fff;box-shadow:0 14px 34px -24px rgba(27,40,66,.45);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.tgrp .cmp-wrap:hover{transform:translateY(-6px);box-shadow:0 26px 48px -26px rgba(27,40,66,.5)}
.tgrp .cmp{border-radius:15px}
.trials tbody td:first-child{box-shadow:inset 0 0 0 #1F4171;transition:box-shadow .3s}
.trials tbody tr.r-done:hover td:first-child{box-shadow:inset 4px 0 0 #1F4171}
.trials tbody tr.r-on:hover td:first-child{box-shadow:inset 4px 0 0 #8DA9C4}
.trials tbody tr.r-soon:hover td:first-child{box-shadow:inset 4px 0 0 #B9CCDD}
.tgrp-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
section .tgrp .tgrp-h h3{margin:0;font-size:var(--t-h3)!important;font-weight:700;color:#1F4171;display:flex;align-items:baseline;gap:14px}
section .tgrp .tgrp-h h3 span{font-size:15px!important;font-weight:500;color:#5f7ea3;padding-left:14px;border-left:2px solid #8DA9C4}
.tgrp-l{font-weight:600;font-size:14px;color:#1F4171;border-bottom:1.5px solid #F6B2A2;padding-bottom:3px}
.trials td:nth-child(4){min-width:0}
.tglance{margin:0 0 36px}
.tglance strong{font-size:40px;line-height:1.1}
.tglance div{border-top-width:4px}
.tglance .g-all{border-top-color:#1B2842}.tglance .g-done{border-top-color:#1F4171}.tglance .g-on{border-top-color:#8DA9C4}.tglance .g-soon{border-top-color:#DCE6EF}
.trials tbody tr{transition:background .25s}
.trials tbody tr:hover td{background:#f5f9fc}
.trials.js-rv tbody tr{opacity:0;transform:translateY(16px)}
.trials.js-rv.in tbody tr{opacity:1;transform:none;transition:opacity .6s ease calc(var(--i)*110ms),transform .6s ease calc(var(--i)*110ms),background .25s}
.spc{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.sp-ic{height:22px;fill:#1F4171;flex:none}
.sp-dog{width:30px}.sp-horse{width:27px}
.tst{display:inline-flex;align-items:center}
.tst-on::before{content:"";width:7px;height:7px;border-radius:50%;background:#1F4171;margin-right:7px;animation:tstPulse 1.8s ease-out infinite}
@keyframes tstPulse{0%{box-shadow:0 0 0 0 rgba(31,65,113,.55)}70%{box-shadow:0 0 0 7px rgba(31,65,113,0)}100%{box-shadow:0 0 0 0 rgba(31,65,113,0)}}
@media (max-width:960px){.tglance{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.tst-on::before{animation:none}}

/* Xep02 hero: skin animation */
.as-top{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round}
.as-l{fill:none;stroke:rgba(255,255,255,.4);stroke-width:2;stroke-dasharray:5 6}
.af{fill:none;stroke:rgba(255,255,255,.55);stroke-width:2}
.ah{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round}
.ams{fill:#F6B2A2}
.am{animation:adM 12s ease-in-out var(--d) infinite both,adJ 1.4s ease-in-out infinite alternate}
.az{fill:none;stroke:#F6B2A2;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;animation:adZ 12s linear var(--d) infinite both}
@keyframes adM{0%,41%{opacity:1;transform:scale(1)}50%{opacity:0;transform:scale(.3)}90%{opacity:0;transform:scale(.3)}100%{opacity:1;transform:scale(1)}}
@keyframes adJ{from{translate:0 0}to{translate:0 -2px}}
@keyframes adZ{0%,3%{opacity:0}5%,9%{opacity:1}11%,14%{opacity:0}16%,20%{opacity:1}22%,25%{opacity:0}27%,31%{opacity:1}33%,36%{opacity:0}38%,42%{opacity:1}46%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.am,.az{animation:none;opacity:0}}

/* Program heroes: silhouette -> zoom -> detail (18 s loop) */
.hz-sil{transform-box:view-box;transform-origin:var(--zx) var(--zy);animation:hzSil 18s cubic-bezier(.55,0,.35,1) infinite both}
.hz-body{fill:#fff;opacity:.92}
.hz-spot{transform-box:fill-box;transform-origin:center;animation:hzSpot 18s ease-in-out infinite both}
.hz-det{animation:hzDet 18s ease-in-out infinite both}
.hz .hj-inf{animation:zInf 18s ease-in-out infinite}
.hz .hj-calm{animation:zCalm 18s ease-in-out infinite}
.hz .jy{animation:zY 18s ease-in-out var(--d) infinite both,hjFloat 3s ease-in-out infinite alternate}
.hz .am{animation:zM 18s ease-in-out var(--d) infinite both,adJ 1.4s ease-in-out infinite alternate}
.hz .az{animation:zZ 18s linear var(--d) infinite both}
@keyframes hzSil{0%,17%{opacity:1;transform:translate(0,0) scale(1)}24%{opacity:1}27%,89%{opacity:0;transform:translate(calc(150px - var(--zx)),calc(var(--cy) - var(--zy))) scale(7)}100%{opacity:1;transform:translate(0,0) scale(1)}}
@keyframes hzSpot{0%{opacity:.5;transform:scale(.8)}4%{opacity:1;transform:scale(1.25)}8%{opacity:.45;transform:scale(.8)}12%{opacity:1;transform:scale(1.25)}16%{opacity:.5;transform:scale(.85)}20%{opacity:1;transform:scale(1.1)}27%,90%{opacity:.6;transform:scale(1.1)}94%,100%{opacity:.5;transform:scale(.8)}}
@keyframes hzDet{0%,21%{opacity:0}28%,87%{opacity:1}92%,100%{opacity:0}}
@keyframes zInf{0%,26.67%{opacity:.55;transform:scale(.96)}30.47%{opacity:1;transform:scale(1.06)}34.27%{opacity:.5;transform:scale(.96)}38.07%{opacity:1;transform:scale(1.06)}41.87%{opacity:.5;transform:scale(.96)}45.67%{opacity:1;transform:scale(1.06)}49.47%{opacity:.55;transform:scale(.96)}53.27%{opacity:1;transform:scale(1.05)}57.07%{opacity:.8;transform:scale(1)}65.93%,82.40%{opacity:0;transform:scale(.85)}90.00%,100%{opacity:.55;transform:scale(.96)}}
@keyframes zCalm{0%,26.67%,57.07%{opacity:0}67.20%,79.87%{opacity:1}87.47%,90.00%,100%{opacity:0}}
@keyframes zY{0%,26.67%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.6)}31.73%{opacity:.9;transform:translate(var(--dx),var(--dy))}38.07%{opacity:.9;transform:translate(calc(var(--dx)*.94),calc(var(--dy)*.94 - 4px))}52.00%,78.60%{opacity:.95;transform:none}83.67%{opacity:0;transform:none}84.30%,90.00%,100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.6)}}
@keyframes zM{0%,26.67%,52.63%{opacity:1;transform:scale(1)}58.33%{opacity:0;transform:scale(.3)}83.67%{opacity:0;transform:scale(.3)}90.00%,100%{opacity:1;transform:scale(1)}}
@keyframes zZ{0%,26.67%,28.57%{opacity:0}29.83%,32.37%{opacity:1}33.63%,35.53%{opacity:0}36.80%,39.33%{opacity:1}40.60%,42.50%{opacity:0}43.77%,46.30%{opacity:1}47.57%,49.47%{opacity:0}50.73%,53.27%{opacity:1}55.80%,90.00%,100%{opacity:0}}
/* light heroes (preclinical / POC): navy line work */
.hero-pre .hz-body,.hero-poc .hz-body{fill:#1F4171;opacity:.9}
.hero-pre .hj-bone{fill:#DCE6EF;stroke:#1F4171}.hero-poc .hj-bone{fill:#8DA9C4;stroke:#1F4171}
.hero-pre .hj-cap,.hero-poc .hj-cap{stroke:rgba(31,65,113,.45)}
.hero-pre .jy,.hero-poc .jy{stroke:#1F4171}
.hero-pre .as-top,.hero-poc .as-top,.hero-pre .ah,.hero-poc .ah{stroke:#1F4171}
.hero-pre .as-l,.hero-poc .as-l,.hero-pre .af,.hero-poc .af{stroke:rgba(31,65,113,.45)}
.hero-poc .hj-calm{fill:rgba(255,255,255,.3);filter:blur(16px)}
@media (prefers-reduced-motion:reduce){.hz-sil{animation:none;opacity:0}.hz-det{animation:none;opacity:1}}

/* News & Press: soft drifting brand colour fields in the background */
#news,#press{position:relative;overflow:hidden;isolation:isolate;background:#fff}
#news::before,#press::before{content:"";position:absolute;inset:-10%;z-index:-1;pointer-events:none;
background:
 radial-gradient(28% 16% at 8% 8%,rgba(141,169,196,.6),transparent 72%),
 radial-gradient(30% 14% at 92% 22%,rgba(220,230,239,.9),transparent 72%),
 radial-gradient(26% 13% at 18% 44%,rgba(250,204,178,.55),transparent 72%),
 radial-gradient(32% 15% at 86% 58%,rgba(141,169,196,.55),transparent 72%),
 radial-gradient(28% 13% at 12% 80%,rgba(220,230,239,.9),transparent 72%),
 radial-gradient(30% 14% at 78% 94%,rgba(250,204,178,.5),transparent 72%);
background-size:130% 115%;animation:bgFields 40s ease-in-out infinite alternate}
#news::after,#press::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(rgba(31,65,113,.09) 1.2px,transparent 1.4px) 0 0/26px 26px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(180deg,transparent,#000 15%,#000 85%,transparent)}
@keyframes bgFields{0%{background-position:0% 0%;transform:rotate(0deg)}50%{background-position:100% 40%}100%{background-position:30% 100%;transform:rotate(1.5deg)}}
@media (prefers-reduced-motion:reduce){#news::before,#press::before{animation:none}}

/* ===== Partnering v2 ===== */
.form .hp{position:absolute!important;left:-10000px;width:1px;height:1px;opacity:0;pointer-events:none}
.dr-msg{margin:4px 0 0;font-size:15px;line-height:1.6;color:#41536f}
.dr-msg.err{color:#9b3d4a}
.dr-done{padding:8px 0}
.dr-done h4{color:#1F4171;font-size:20px;margin:0 0 8px}
.dr-done p{margin:0;color:#41536f}
.form button[disabled]{opacity:.6;cursor:wait}
section.pn-stats-sec{padding:64px 0}
.pn-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #DCE6EF;border-bottom:1px solid #DCE6EF}
.pn-stat{padding:30px 28px 30px 0;border-bottom:1px solid #DCE6EF}
.pn-stat:nth-last-child(-n+3){border-bottom:0}
.pn-stat+.pn-stat{padding-left:0}
.pn-stat strong{display:block;font-size:clamp(32px,3.4vw,44px);font-weight:700;color:#1F4171;letter-spacing:-.01em;line-height:1.05}
.pn-stat span{display:block;margin-top:10px;font-size:15px;line-height:1.5;color:#41536f;max-width:300px;text-align:left!important}
.pn-stats.js-rv .pn-stat{opacity:0;transform:translateY(18px)}
.pn-stats.js-rv.in .pn-stat{opacity:1;transform:none;transition:opacity .7s ease calc(var(--i)*90ms),transform .7s cubic-bezier(.2,.7,.2,1) calc(var(--i)*90ms)}
.qa{margin-top:40px;background:#fff;border-radius:18px;padding:10px 32px}
.qa-head{display:grid;grid-template-columns:1fr 48px 1.25fr;gap:16px;padding:18px 0 14px;border-bottom:1px solid #DCE6EF}
.qa-head span{font-size:14.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#B5838C;white-space:nowrap}
.qa-head span:last-child{color:#1F4171}
.qa-row{display:grid;grid-template-columns:1fr 48px 1.25fr;gap:16px;align-items:center;padding:20px 0;border-bottom:1px solid #DCE6EF;transition:background .3s ease}
.qa-row:last-child{border-bottom:0}
.qa-q{font-size:16px;color:#1B2842;text-align:left!important}
.qa-ar{color:#B5838C;font-size:20px;text-align:center;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.qa-a{font-size:16px;font-weight:600;color:#1F4171;line-height:1.5;text-align:left!important}
.qa-row:hover .qa-ar{transform:translateX(6px)}
.qa.js-rv .qa-row{opacity:0;transform:translateY(14px)}
.qa.js-rv.in .qa-row{opacity:1;transform:none;transition:opacity .6s ease calc(var(--i)*80ms),transform .6s cubic-bezier(.2,.7,.2,1) calc(var(--i)*80ms)}
.pn-note{margin-top:22px;font-size:14px;color:#5d7391;max-width:720px;text-align:left!important}
.pl2-h{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin:44px 0 16px}
section .pl2-h h3{font-size:13px!important;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#1F4171;margin:0}
.pl2-h p{font-size:14px;color:#5d7391;margin:0;display:flex;align-items:center;gap:8px;text-align:left!important}
.lg{display:inline-block;width:14px;height:14px;border-radius:4px;margin-left:10px}
.lg-done{background:#1F4171}.lg-next{border:1.5px solid #8DA9C4;background:#fff}
.pp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pp-box{border-radius:14px;padding:22px 24px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.pp-box:hover{transform:translateY(-6px);box-shadow:0 20px 36px -24px rgba(27,40,66,.45)}
section .pp-box h4{font-size:17px;margin:0 0 6px;font-weight:700}
.pp-box p{font-size:14.5px;line-height:1.55;margin:0;text-align:left!important}
.pp-done{background:#1F4171;color:#fff}.pp-done h4{color:#fff}.pp-done p{color:rgba(255,255,255,.8)}
.pp-next{background:#fff;border:1.5px dashed #8DA9C4}.pp-next h4{color:#1F4171}.pp-next p{color:#41536f}
.lp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.lp-item{background:#EEF4ED;border-radius:14px;padding:22px 20px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.lp-item:hover{transform:translateY(-6px);box-shadow:0 20px 36px -24px rgba(27,40,66,.4)}
section .lp-item h4{font-size:17px;color:#1F4171;margin:0 0 8px;font-weight:700}
.lp-item p{font-size:14px;line-height:1.55;color:#41536f;margin:0;text-align:left!important}
.lp-item.lp-hl{background:#fff;border:1.5px solid #B5838C}
.pp-grid.js-rv .pp-box,.lp-grid.js-rv .lp-item{opacity:0;transform:translateY(18px)}
.pp-grid.js-rv.in .pp-box,.lp-grid.js-rv.in .lp-item{opacity:1;transform:none;transition:opacity .6s ease calc(var(--i)*90ms),transform .6s cubic-bezier(.2,.7,.2,1) calc(var(--i)*90ms),box-shadow .35s ease}
.pp-grid.js-rv.in .pp-box:hover,.lp-grid.js-rv.in .lp-item:hover{transform:translateY(-6px);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.pk-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:36px}
.pk-card{background:#fff;border-radius:18px;padding:30px 32px}
section .pk-card h3{font-size:20px!important;color:#1F4171;margin:0 0 14px}
.pk-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.pk-list li{position:relative;padding-left:22px;font-size:15px;line-height:1.55;color:#1B2842;text-align:left!important}
.pk-list li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:#F6B2A2}
.pk-lead{margin-top:28px;padding:22px 24px;border-radius:14px;background:#1F4171}
section .pk-lead h4{color:#fff;font-size:16px;margin:0 0 12px}
.pk-lead .pk-list li{color:rgba(255,255,255,.88)}
.pk-lead .pk-list li::before{background:#8DA9C4}
.tm{margin-top:40px;display:grid;gap:44px}
.tm-lane{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start}
section .tm-h h3{font-size:18px!important;color:#1F4171;margin:0 0 6px}
.tm-h p{font-size:14px;color:#5d7391;margin:0;text-align:left!important}
.tm-yrs{display:grid;grid-template-columns:repeat(9,1fr);border-bottom:1px solid #DCE6EF;padding-bottom:8px}
.tm-yrs span{font-size:13px;color:#5d7391}
.tm-rows{position:relative;padding:12px 0 44px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100%/9 - 1px),#EEF4ED calc(100%/9 - 1px),#EEF4ED calc(100%/9))}
.tm-bar{position:relative;margin-left:var(--l);width:var(--w);height:30px;margin-top:8px;border-radius:8px;display:flex;align-items:center;padding:0 10px;white-space:nowrap}
.tm-bar span{font-size:12.5px;font-weight:600}
.tm-a .tm-bar{background:#8DA9C4}.tm-a .tm-bar span{color:#1B2842}
.tm-b .tm-bar{background:#DCE6EF}.tm-b .tm-bar span{color:#1B2842}
.tm-mk{position:absolute;left:var(--l);bottom:6px;display:flex;align-items:center;gap:8px;transform:translateX(-9px)}
.tm-mk i{width:14px;height:14px;border:2px solid #1F4171;transform:rotate(45deg);background:#fff}
.tm-mk b{font-size:15px;color:#1F4171;white-space:nowrap}
.tm-b .tm-mk{left:auto;right:calc(100% - var(--l));transform:translateX(9px);flex-direction:row-reverse}
.tm.js-rv .tm-bar{transform:scaleX(0);transform-origin:left center}
.tm.js-rv .tm-mk{opacity:0}
.tm.js-rv.in .tm-bar{transform:none;transition:transform .8s cubic-bezier(.2,.7,.2,1) calc(var(--i)*260ms)}
.tm.js-rv.in .tm-mk{opacity:1;transition:opacity .5s ease calc(var(--i)*260ms + .3s)}
.rt-grid .rt-card{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.rt-grid .rt-card:hover{transform:translateY(-8px);box-shadow:0 22px 40px -24px rgba(27,40,66,.45)}
.dr-reply{margin-top:24px;font-size:15px;color:rgba(255,255,255,.82)}
.cc-person{display:flex;align-items:center;gap:16px}
.cc-ini{flex:none;width:46px;height:46px;border-radius:50%;border:1.5px solid #F6B2A2;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:15px}
.cc-person a{color:#fff;text-decoration:underline;text-underline-offset:3px}
@media (max-width:960px){
 .pn-stats{grid-template-columns:1fr 1fr}.pn-stat:nth-last-child(-n+3){border-bottom:1px solid #DCE6EF}.pn-stat:nth-last-child(-n+2){border-bottom:0}
 .qa{padding:6px 20px}.qa-head{display:none}.qa-row{grid-template-columns:1fr;gap:6px}.qa-ar{display:none}
 .pp-grid{grid-template-columns:1fr 1fr}.lp-grid{grid-template-columns:1fr 1fr}.pk-grid{grid-template-columns:1fr}
 .tm-lane{grid-template-columns:1fr;gap:14px}.tm-chart{overflow-x:auto}.tm-yrs,.tm-rows{min-width:620px}
}
@media (max-width:560px){.pn-stats,.pp-grid,.lp-grid{grid-template-columns:1fr}.pn-stat{border-bottom:1px solid #DCE6EF!important}.pn-stat:last-child{border-bottom:0!important}}

/* ===== Partnering v2: motion and illustrations ===== */
.pn-stat .pn-ic{display:flex;max-width:none;width:44px;height:44px;border-radius:12px;background:#EEF4ED;color:#1F4171;align-items:center;justify-content:center;margin-bottom:14px;transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s ease,color .35s ease}
.pn-ic svg{width:24px;height:24px}
.pn-stat:hover .pn-ic{transform:translateY(-4px) rotate(-6deg);background:#1F4171;color:#fff}
.pn-stat strong{font-variant-numeric:tabular-nums}
.qa-q,.qa-a{display:flex;gap:14px;align-items:flex-start}
.qa-b{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;margin-top:-2px}
.qa-b-q{border:1.5px solid #B5838C;color:#B5838C}
.qa-b-a{background:#1F4171}
.qa-b-a svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:0}
.qa-ar{position:relative;height:2px}
.qa-ar i{position:absolute;left:4px;right:4px;top:0;height:2px;background:linear-gradient(90deg,#B5838C,#1F4171);border-radius:2px;transform-origin:left center}
.qa-ar i::after{content:"";position:absolute;right:-1px;top:-4px;border:5px solid transparent;border-left:7px solid #1F4171;border-right:0}
.qa-row:hover{background:linear-gradient(90deg,rgba(238,244,237,0),#EEF4ED 30%,#EEF4ED 70%,rgba(238,244,237,0))}
.qa-row:hover .qa-b-a{transform:scale(1.12)}
.qa-b-a{transition:transform .3s ease}
.qa.js-rv .qa-ar i{transform:scaleX(0)}
.qa.js-rv .qa-b-a{transform:scale(0)}
.qa.js-rv .qa-b-a svg{stroke-dashoffset:24}
.qa.js-rv.in .qa-ar i{transform:none;transition:transform .5s ease calc(var(--i)*80ms + .35s)}
.qa.js-rv.in .qa-b-a{transform:none;transition:transform .45s cubic-bezier(.3,1.6,.5,1) calc(var(--i)*80ms + .7s)}
.qa.js-rv.in .qa-b-a svg{stroke-dashoffset:0;transition:stroke-dashoffset .4s ease calc(var(--i)*80ms + 1s)}
.pp-flow{position:relative;padding-top:34px}
.pp-track{position:absolute;left:calc(100%/12);right:calc(100%/12);top:8px;height:4px;border-radius:4px}
.pp-fill{position:absolute;left:0;top:0;height:4px;width:50%;background:#1F4171;border-radius:4px;transform-origin:left center}
.pp-dash{position:absolute;left:50%;right:0;top:1px;border-top:2px dashed #8DA9C4}
.pp-today{position:absolute;left:50%;top:-30px;transform:translateX(-50%);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:#B5838C;padding:4px 10px;border-radius:999px;white-space:nowrap}
.pp-today::after{content:"";position:absolute;left:50%;bottom:-5px;margin-left:-5px;border:5px solid transparent;border-top-color:#B5838C;border-bottom:0}
.pp-flow .pp-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.pp-box{position:relative}
.pp-box::before{content:"";position:absolute;left:50%;top:-30px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#fff;border:3px solid #1F4171}
.pp-next::before{border-color:#8DA9C4}
.pp-done::before{background:#1F4171;box-shadow:0 0 0 0 rgba(31,65,113,.4)}
.pp-box:nth-child(3)::before{animation:ppPing 2.2s ease-out infinite}
@keyframes ppPing{0%{box-shadow:0 0 0 0 rgba(181,131,140,.55)}80%,100%{box-shadow:0 0 0 12px rgba(181,131,140,0)}}
.pp-grid.js-rv~*{}
.pp-flow.js-rv .pp-fill{transform:scaleX(0)}
.pp-flow.js-rv .pp-dash,.pp-flow.js-rv .pp-today{opacity:0}
.pp-flow.js-rv.in .pp-fill{transform:none;transition:transform 1.1s cubic-bezier(.4,.1,.2,1) .2s}
.pp-flow.js-rv.in .pp-dash{opacity:1;transition:opacity .6s ease 1.2s}
.pp-flow.js-rv.in .pp-today{opacity:1;transition:opacity .5s ease 1.3s}
.lp-ic{display:flex;width:40px;height:40px;border-radius:50%;background:#fff;color:#1F4171;align-items:center;justify-content:center;margin-bottom:12px;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.lp-ic svg{width:22px;height:22px}
.lp-hl .lp-ic{background:#B5838C;color:#fff}
.lp-item:hover .lp-ic{transform:rotate(-12deg) scale(1.08)}
.lp-wrap{position:relative}
.lp-loop{display:block;width:100%;height:46px;margin-top:6px;overflow:visible}
.lp-loop path{fill:none;stroke:#8DA9C4;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:6 7;animation:lpFlow 1.4s linear infinite reverse}
.lp-loop .lp-head{stroke-dasharray:none;animation:none;stroke-width:2.4}
@keyframes lpFlow{to{stroke-dashoffset:26}}
.lp-cap{text-align:center!important;margin:2px 0 0;font-size:13.5px;font-style:italic;color:#5d7391}
.pk-grid{grid-template-columns:1fr 92px 1fr;gap:0;align-items:stretch}
.pk-arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#1F4171}
.pk-arrow span{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5d7391}
.pk-arrow svg{width:56px;height:24px;fill:none;stroke:#1F4171;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;animation:pkNudge 1.8s ease-in-out infinite}
@keyframes pkNudge{0%,100%{transform:translateX(-6px)}50%{transform:translateX(6px)}}
.pk-card{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.pk-card:hover{transform:translateY(-6px);box-shadow:0 22px 40px -24px rgba(27,40,66,.45)}
.pk-tag{display:inline-block;margin-bottom:12px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:#1F4171;border-radius:999px;padding:4px 10px}
.pk-tag-p{background:#fff;color:#1F4171;border:1.5px dashed #8DA9C4}
.pk-list li{transition:transform .25s ease}
.pk-list li:hover{transform:translateX(4px)}
.tm-gap{display:grid;grid-template-columns:240px 1fr;gap:28px;margin-top:-20px}
.tm-gap-ch{position:relative;height:44px}
.tm-gap-br{position:absolute;left:var(--l);width:var(--w);top:6px;height:14px;border:2px solid #B5838C;border-top:0;border-radius:0 0 8px 8px}
.tm-gap-br b{position:absolute;left:50%;top:20px;transform:translateX(-50%);white-space:nowrap;font-size:14px;color:#B5838C}
.tm.js-rv~.tm-gap .tm-gap-br,.tm-gap.js-rv .tm-gap-br{transform:scaleX(0);opacity:0}
.tm-gap.js-rv.in .tm-gap-br{transform:none;opacity:1;transition:transform .8s cubic-bezier(.2,.7,.2,1) 1.6s,opacity .3s ease 1.6s}
.tm-mk i{animation:mkPulse 2.4s ease-in-out infinite}
@keyframes mkPulse{0%,100%{box-shadow:0 0 0 0 rgba(31,65,113,.35)}50%{box-shadow:0 0 0 6px rgba(31,65,113,0)}}
.tm-bar{transition:filter .25s ease}
.tm-bar:hover{filter:brightness(.92)}
.rt-i{margin-bottom:16px}
.rt-card:hover .rt-i svg{animation:l2cWig .6s ease-in-out}
.rt-card:hover .rt-i{background:#8DA9C4;transform:scale(1.1)}
.rt-i svg{color:#1F4171}
.dr-lock{width:58px;height:58px;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:#F6B2A2;margin-bottom:22px}
.dr-lock svg{width:30px;height:30px}
.dr-lock .lk-sh{transform-origin:16px 10px;transition:transform .45s cubic-bezier(.3,1.5,.5,1)}
#data-room:hover .dr-lock .lk-sh{transform:translateY(-2px) rotate(18deg)}
.checks li{transition:transform .25s ease}
#data-room .checks li:hover{transform:translateX(4px)}
@media (max-width:960px){
 .pp-flow{padding-top:0}.pp-track,.pp-box::before{display:none}.pp-flow .pp-grid{grid-template-columns:1fr 1fr}
 .pk-grid{grid-template-columns:1fr;gap:14px}.pk-arrow{flex-direction:row;padding:4px 0}.pk-arrow svg{transform:rotate(90deg);animation:none}
 .tm-gap{display:none}.lp-loop,.lp-cap{display:none}
}
@media (max-width:560px){.pp-flow .pp-grid{grid-template-columns:1fr}}

/* ===== full-width text ===== */
.lead,.pv-intro .lead,.page-hero:not(.hero-joint) .lead,section .lead{max-width:none}
.pn-note,.careers .cta p,.fits-head p,.legal,.mx-ev1,.mx-mech-1>div{max-width:none}

.fit,section.page-hero .hw,.mission .wrap>div:first-child{width:auto}
.fit .lead,.mission p:not(.big),section.page-hero .lead.lead-wide{width:auto;min-width:0}

.tx-cta{display:flex;align-items:center;gap:18px;margin:18px 22px 22px;padding:20px 24px;border-radius:14px;background:#EEF4ED;opacity:0;transform:translateY(10px);transition:opacity .45s,transform .45s}
.tx-row.open .tx-cta{opacity:1;transform:none}
.tx-ic{flex:none;width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center}
.tx-ic svg{width:22px;height:22px;fill:none;stroke:#1F4171;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tx-ct{flex:1;min-width:0}
section .tx-ct h4{margin:0 0 4px;font-size:17px;color:#1F4171;font-weight:700}
.tx-ct p{margin:0;font-size:14.5px;color:#41536f;text-align:left!important}
.tx-cta .btn{flex:none}
@media (max-width:760px){.tx-cta{flex-wrap:wrap}.tx-cta .btn{width:100%;justify-content:center}}

.page-hero .lead{hyphens:none;-webkit-hyphens:none}

/* Xep01 oncologic pain hero */
.onc-shade{fill:none;stroke:rgba(255,255,255,.35);stroke-width:2}
.onc-lbl{font-family:Montserrat,sans-serif;font-size:14px;font-weight:700;fill:#1F4171;letter-spacing:.02em}
.onc-mass{fill:#F6B2A2;stroke:#1F4171;stroke-width:2;stroke-linejoin:round;opacity:.92}
.onc-nerve{fill:none;stroke:#1F4171;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.onc-end{stroke-width:2}
.onc-pulse{fill:#E6989B;stroke:#fff;stroke-width:1.2}
.onc-med{fill:#E6989B;stroke:#1F4171;stroke-width:1.2;animation:adJ 1.4s ease-in-out var(--d) infinite alternate}
.onc-sig{transform-box:view-box;transform-origin:162px 150px}
.hero-poc .onc-shade{stroke:rgba(31,65,113,.25)}

.pv-panel p+p{margin-top:14px}

.pv-panel p{text-align:justify;hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:7 3 3}

/* About us: core values motion */
.values.vl-anim .value{position:relative;overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,background .35s,box-shadow .35s}
.values.vl-anim .value::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(246,178,162,.16),transparent 55%);opacity:0;transition:opacity .35s;pointer-events:none}
.values.vl-anim .value::after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:#F6B2A2;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.vl-ic{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:rgba(141,169,196,.16);color:#fff;margin-bottom:18px;transition:transform .45s cubic-bezier(.3,1.6,.5,1),background .35s}
.vl-ic svg{width:30px;height:30px;overflow:visible}
.values.vl-anim .value em{transition:letter-spacing .35s}
.values.vl-anim .value:hover{transform:translateY(-8px);border-color:rgba(246,178,162,.55);background:rgba(27,40,66,.75);box-shadow:0 22px 44px -18px rgba(0,0,0,.55)}
.values.vl-anim .value:hover::before{opacity:1}
.values.vl-anim .value:hover::after{transform:scaleX(1)}
.values.vl-anim .value:hover .vl-ic{transform:translateY(-4px) rotate(-8deg) scale(1.12);background:rgba(246,178,162,.22)}
.values.vl-anim .value:hover em{letter-spacing:.02em}
.vl-a{stroke-dasharray:40;stroke-dashoffset:0;transition:stroke-dashoffset .6s,opacity .4s}
.vl-b{stroke-dasharray:28;stroke-dashoffset:28;transition:stroke-dashoffset .6s .1s}
.value:hover .vl-a{stroke-dashoffset:40;opacity:.25}
.value:hover .vl-b{stroke-dashoffset:0}
.vl-bar{transform-box:fill-box;transform-origin:bottom;transition:transform .4s cubic-bezier(.3,1.6,.5,1) calc(var(--k)*.08s)}
.value:hover .vl-bar{transform:scaleY(1.18)}
.value:hover .vl-bar:nth-child(1){transform:scaleY(.7)}
.vl-ray{opacity:.35;transition:opacity .3s}
.value:hover .vl-ray{opacity:1;animation:vlRay 1.2s ease-in-out infinite alternate}
@keyframes vlRay{from{opacity:.5}to{opacity:1}}
.values.vl-anim.js-rv .value{opacity:0;transform:translateY(28px)}
.values.vl-anim.js-rv.in .value{opacity:1;transform:none;transition:opacity .6s ease calc(var(--i)*.12s),transform .6s cubic-bezier(.2,.8,.2,1) calc(var(--i)*.12s),border-color .35s,background .35s,box-shadow .35s}
.values.vl-anim.js-rv.in .value:hover{transform:translateY(-8px);transition-delay:0s}
@media (prefers-reduced-motion:reduce){.values.vl-anim .value,.values.vl-anim .value *{transition:none!important;animation:none!important}.values.vl-anim.js-rv .value{opacity:1;transform:none}}

.page-hero .lead.lead-full{max-width:none}

/* News article pages */
.na{padding:72px 0 96px}
.na .wrap{max-width:820px}
.na-fig{margin:0 0 40px;border-radius:20px;overflow:hidden;background:#EEF4ED;display:flex;align-items:center;justify-content:center}
.na-fig img{display:block;width:100%;height:auto;max-height:520px;object-fit:cover}
.na-fig.na-logo{padding:40px}
.na-fig.na-logo img{width:auto;max-width:200px;max-height:200px;object-fit:contain}
.na-fig.na-tall img{width:auto;max-width:100%;max-height:560px;object-fit:contain}
.na-body p{margin:0 0 18px}
.na-body h3{margin:36px 0 10px}
.na-links{margin:32px 0 0;padding:24px 28px;border-radius:16px;background:#EEF4ED;display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center}
.na-links b{color:#1F4171;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-right:4px}
.na-links a{color:#1F4171;font-weight:600;text-decoration:none;border-bottom:1.5px solid #F6B2A2}
.na-links a:hover{border-color:#1F4171}
.na-nav{display:flex;justify-content:space-between;gap:20px;margin-top:56px;padding-top:28px;border-top:1px solid #E2E8F0}
.na-nav a{color:#1F4171;text-decoration:none;font-weight:600;max-width:48%}
.na-nav a small{display:block;color:#B5838C;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-weight:700}
.na-nav a:hover span{text-decoration:underline}
.na-nav .na-next{text-align:right;margin-left:auto}
.na-back{display:inline-block;margin-top:36px;color:#1F4171;font-weight:600;text-decoration:none}
.page-hero .crumbs a{color:inherit}
@media (max-width:700px){.na{padding:48px 0 72px}.na-nav{flex-direction:column}.na-nav a{max-width:100%}.na-nav .na-next{text-align:left;margin-left:0}}

.nolink{cursor:default}a.nolink:hover,a.nolink:hover *{text-decoration:none}.pl-name a.nolink{pointer-events:none}

/* mobile home fixes (Oct 2026): hero animation below text, proof labels, pipeline stage header */
@media (max-width:960px){.hero{padding-bottom:350px}.im-canvas{-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.45) 52%,#000 64%);mask-image:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.45) 52%,#000 64%)}}
@media (max-width:600px){.proof b{display:block;margin:6px 0 0;white-space:normal}}
.pl-stages .ps{display:none;font-style:normal}.pl-stages .pf{font-style:normal}
@media (max-width:1100px){
.pl .pl-head{display:block;padding:0 0 12px}
.pl .pl-head>span{display:none}
.pl .pl-stages{display:grid!important;grid-template-columns:repeat(5,1fr)}
.pl .pl-stages span{white-space:normal!important;text-align:center;font-size:10.5px!important;line-height:1.25;letter-spacing:.04em}
.pl-stages .pf{display:none}.pl-stages .ps{display:inline}
}
@media (max-width:600px){.cglance{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.cglance>div{padding:16px 12px 18px}.cglance strong{white-space:normal;font-size:22px;line-height:1.2}}
/* platform demo on mobile: zoomed panning view (JS sets viewBox per step) */
@media (max-width:640px){.ab-demo .lb{font-size:17px}.ab-demo .lkt,.ab-demo .ldm{font-size:14px}.ab-demo .lk,.ab-demo .ln,.ab-demo .lc,.ab-demo .ldm{display:inline}
.pv-facts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pv-facts>div{padding:22px 0 22px 16px}.pv-facts>div:nth-child(odd){padding-left:0;padding-right:12px;border-left:0}.pv-facts strong{font-size:21px;line-height:1.15}.pv-facts span{font-size:13.5px}}
.ab-demo .oov{opacity:0!important;transition:opacity .25s}
/* platform steps on mobile: one compact row so the blue box stays visible with the animation */
@media (max-width:640px){
.pv-steps{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;margin-top:14px!important}
.pv-steps .pv-step{padding:8px 2px 10px!important;border-radius:12px;transform:none!important}
.pv-steps .pv-step.on{transform:none!important;box-shadow:0 8px 20px rgba(31,65,113,.14)}
.pv-step .pv-ic{width:40px!important;height:40px!important;box-shadow:0 0 0 4px #fff!important}
.pv-step.on .pv-ic{box-shadow:0 0 0 4px #fff,0 0 0 7px rgba(141,169,196,.25)!important}
.pv-step .pv-ic svg{width:22px!important;height:22px!important}
.pv-step .pv-n{font-size:11px!important;margin-top:6px!important}
.pv-step h3{font-size:11.5px!important;line-height:1.25!important;margin:2px 0 0!important;hyphens:none;overflow-wrap:normal}
.pv-detail{margin-top:12px!important;padding:18px 18px!important}
.pv-detail::before{display:block!important;width:14px;height:14px;top:-7px}
.pv-demo:has(.ab-demo[data-p="1"]) .pv-detail::before{left:calc(12.5% - 7px)}
.pv-demo:has(.ab-demo[data-p="2"]) .pv-detail::before{left:calc(37.5% - 7px)}
.pv-demo:has(.ab-demo[data-p="3"]) .pv-detail::before{left:calc(62.5% - 7px)}
.pv-demo:has(.ab-demo[data-p="4"]) .pv-detail::before{left:calc(87.5% - 7px)}
.pv-d p{font-size:14px;line-height:1.55}
}
/* clinical data on mobile: each trial as a card instead of a wide table */
@media (max-width:700px){
.tglance{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.tgrp .cmp-wrap{overflow:visible}.tgrp .cmp-wrap:hover{transform:none}
.trials{min-width:0!important;table-layout:auto!important;display:block}
.trials thead{display:none}
.trials tbody{display:block}
.trials tbody tr:not(.tx-row){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;padding:16px 18px 18px;border-top:1px solid #DCE6EF}
.trials tbody tr:not(.tx-row):first-child{border-top:0}
.trials tbody tr:not(.tx-row) td{display:block;padding:0;border:0;background:none!important;width:auto;box-shadow:none!important}
.trials td[data-l]::before{content:attr(data-l);display:block;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8DA9C4;margin-bottom:2px}
.trials td[data-l="Species"]::before,.trials td[data-l="Status"]::before{display:none}
.trials td[data-l="Species"]{grid-column:1;grid-row:1;align-self:center;font-weight:600!important;color:#1F4171!important}
.trials td[data-l="Status"]{grid-column:2;grid-row:1;display:flex!important;flex-direction:column;align-items:flex-end;gap:6px}
.trials td[data-l="Type"],.trials td[data-l="Design"],.trials td[data-l="N"],.trials td[data-l="Location"]{grid-column:1/-1;margin-top:12px}
.trials td[data-l="Type"]{grid-column:1;grid-row:2}.trials td[data-l="N"]{grid-column:2;grid-row:2;text-align:right}.trials td[data-l="Design"]{grid-row:3}.trials td[data-l="Location"]{grid-row:4}
.trials td.tn{white-space:normal}
.trials tbody tr.tx-row{display:block}.trials tbody tr.tx-row td{display:block}
.trials tbody tr:hover td{background:none!important}
}
/* partnering on mobile */
@media (max-width:560px){
.pn-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.pn-stat,.pn-stat+.pn-stat{padding:20px 12px 20px 0!important}
.pn-stat:nth-child(even){padding-left:14px!important;border-left:1px solid #DCE6EF}
.pn-stat:nth-last-child(-n+3){border-bottom:1px solid #DCE6EF}.pn-stat:nth-last-child(-n+2){border-bottom:0}
.pn-stat .pn-ic{width:36px;height:36px;margin-bottom:10px}.pn-ic svg{width:20px;height:20px}
.pn-stat strong{font-size:26px!important}
.pn-stat span{font-size:13.5px;margin-top:6px}
.pl2-h p{display:block!important;line-height:1.9;hyphens:none}
.pl2-h p .lg{display:inline-block;vertical-align:middle;margin:0 6px 0 0!important}.pl2-h p .lg-next{margin-left:0}
.tm-yrs,.tm-rows{min-width:0!important}
.tm-chart{overflow:visible!important}
.tm-yrs span{font-size:10.5px}
.tm-rows{padding:4px 0 40px}
.tm-bar{height:12px;margin-top:30px;padding:0;border-radius:6px}
.tm-bar span{position:absolute;left:0;bottom:16px;font-size:12px;white-space:nowrap}
.tm-bar.tm-r span{left:auto;right:0}
.tm-mk b{font-size:13.5px}
}
.mbr{display:none}@media (max-width:560px){.mbr{display:inline}}
/* partnering product pipeline on mobile: vertical rail, Today marker before the partner steps */
@media (max-width:560px){
.pp-flow{padding-top:0}.pp-flow .pp-track{display:none}
.pp-flow .pp-grid{grid-template-columns:1fr!important;gap:12px;padding-left:28px}
.pp-flow .pp-box{position:relative;padding:14px 16px}
.pp-flow .pp-box:hover,.pp-grid.js-rv.in .pp-box:hover{transform:none}
section .pp-flow .pp-box h4{font-size:15.5px;margin-bottom:4px}
.pp-flow .pp-box p{font-size:13.5px;line-height:1.5}
.pp-flow .pp-box::before{content:"";display:block!important;position:absolute;left:-19px;top:-12px;bottom:-12px;width:4px;height:auto;margin:0;border:0;border-radius:0;animation:none!important;background:#1F4171}
.pp-flow .pp-box.pp-next::before{width:0;left:-18px;background:none;border-left:2px dashed #8DA9C4}
.pp-flow .pp-box:first-child::before{top:50%}
.pp-flow .pp-box:last-child::before{bottom:50%}
.pp-flow .pp-box::after{content:"";position:absolute;left:-24px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:#1F4171;box-shadow:0 0 0 3px #fff}
.pp-flow .pp-box.pp-next::after{background:#fff;border:2px solid #8DA9C4;width:10px;height:10px;margin-top:-7px;left:-24px}
.pp-flow .pp-box:nth-child(4){margin-top:34px}
.pp-flow .pp-box:nth-child(4)::before{top:-46px}
.pp-flow .pp-box:nth-child(4) h4::before{content:"Today";position:absolute;left:-30px;top:-32px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:#B5838C;padding:3px 9px;border-radius:999px;line-height:1.4}
}
/* partnering learning pipeline on mobile: compact cards, icon beside the title */
@media (max-width:560px){
.lp-grid{gap:10px}
.lp-item{display:grid;grid-template-columns:36px 1fr;column-gap:12px;align-items:center;padding:14px 16px}
.lp-item:hover,.lp-grid.js-rv.in .lp-item:hover{transform:none}
.lp-ic{width:36px;height:36px;margin:0}.lp-ic svg{width:19px;height:19px}
section .lp-item h4{font-size:15.5px;margin:0}
.lp-item p{grid-column:1/-1;margin-top:8px;font-size:13.5px;line-height:1.5}
.lp-wrap .lp-cap{display:block!important;margin-top:14px;font-size:13.5px}
.lp-wrap .lp-cap::before{content:"\21BB";display:block;font-style:normal;font-size:22px;line-height:1;color:#8DA9C4;margin-bottom:4px}
}
/* pipeline program cards: left-aligned descriptions (long subtitles justify badly) */
.prog p{text-align:left}
/* source line under program hero stats */
.mx-big .mx-src{margin:16px 0 0;font-size:12px;line-height:1.4;color:rgba(255,255,255,.6);max-width:300px;text-align:left}
.mx-big .mx-src a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.mx-big .mx-src a:hover{color:#fff}
/* program hero stat: number sized to the animal icons */
.mx-big strong{font-size:clamp(56px,6.4vw,92px)}
.mx-big span{font-size:16px}

/* neurogenic inflammation loop diagram */
.nl-fig{margin:26px 0 22px}
.nl-svg{display:block;width:100%;height:auto;font-family:Montserrat,sans-serif}
.nl-svg.nl-m{display:none;max-width:380px;margin:0 auto}
@media (max-width:640px){.nl-svg.nl-d{display:none}.nl-svg.nl-m{display:block}}
.nl-cap{margin:14px auto 0;max-width:640px;background:#1F4171;color:#fff;border-radius:14px;padding:13px 18px;font-size:14px;font-weight:600;line-height:1.45;text-align:center;opacity:0;transform:translateY(10px);transition:opacity .8s ease,transform .8s ease}
.nl-fig.cap .nl-cap{opacity:1;transform:none}
