:root{--ink:#171225;--purple:#5b2acb;--purple-dark:#21144f;--purple-soft:#7546dd;--soft:#f2eff8;--muted:#625e6c;--shell:1440px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:Inter,"Noto Sans SC",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin-top:0}
.shell{width:min(calc(100% - 64px),var(--shell));margin-inline:auto;position:relative;z-index:2}
.shell--wide{--shell:1680px}
.hero{min-height:700px;position:relative;display:flex;align-items:center;background:#21144f url("images/hero-lab.png") center/cover no-repeat;color:#fff;overflow:hidden}
.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,10,42,.94) 0%,rgba(27,14,55,.84) 43%,rgba(45,25,82,.31) 76%,rgba(45,25,82,.14) 100%)}
.hero__content{padding-left:2.5%;padding-block:64px}
.eyebrow{display:inline-block;margin-bottom:20px;padding:5px 13px;border:1px solid currentColor;border-radius:999px;font-weight:600;letter-spacing:.02em}
.eyebrow--green{color:#c2adff;background:rgba(91,42,203,.16);box-shadow:0 0 12px rgba(117,70,221,.42)}
.hero h1{font:800 clamp(44px,4.2vw,76px)/1.13 Inter,sans-serif;letter-spacing:-.02em;margin-bottom:12px}
.hero__accent{font:800 clamp(40px,3.8vw,68px)/1.15 Inter,sans-serif;color:var(--purple-soft);margin-bottom:28px}
.hero__checks{display:flex;flex-wrap:wrap;gap:12px 26px;margin:0 0 26px;padding:0;list-style:none;font-size:18px}
.hero__checks span{color:#9c7bf0;font-weight:800;margin-right:7px}
.hero__copy{max-width:720px;font-size:18px;line-height:1.5;margin-bottom:28px}
.button{display:inline-flex;align-items:center;gap:10px;padding:18px 34px;color:#fff;text-decoration:none;font-size:18px;font-weight:700;border-radius:2px;transition:transform .25s,filter .25s}
.button:hover{transform:translateY(-2px);filter:brightness(1.07)}
.button img{width:28px;height:28px;object-fit:cover;filter:grayscale(1) brightness(0) invert(1)}
.button--green{background:var(--purple)}
.manufacturing{min-height:940px;position:relative;overflow:hidden;background:#f8f8fb}
.manufacturing__photo{position:absolute;inset:0;background:url("images/cleanroom-manufacturing.png") center/cover no-repeat}
.manufacturing__glow{position:absolute;inset:0;background:linear-gradient(90deg,rgba(249,249,252,.99) 0%,rgba(249,249,252,.96) 34%,rgba(249,249,252,.62) 50%,rgba(249,249,252,0) 68%),linear-gradient(0deg,rgba(78,22,181,.94),rgba(78,22,181,0) 8%)}
.manufacturing__content{position:relative;z-index:2;width:min(760px,48%);padding:68px 0 180px max(4%,calc((100% - 1680px)/2))}
.manufacturing h2{font-size:clamp(40px,3.8vw,66px);line-height:1.08;letter-spacing:-.025em;color:#050505;margin-bottom:18px}
.manufacturing h2 span{color:#5918b9}
.short-rule{width:70px;height:5px;background:#5b17b9;margin:8px 0 18px}
.manufacturing__keywords{font-size:25px;color:#29292d;margin-bottom:24px}.manufacturing__keywords b{color:#5514b1;padding:0 15px}
.capability-list{display:grid;gap:16px}
.capability-list article{display:flex;align-items:center;gap:18px}.capability-list h3{font-size:18px;color:#4b149f;margin:0 0 3px}.capability-list p{font-size:14px;margin:0;line-height:1.4;color:#131313;max-width:360px}
.round-icon{width:54px;height:54px;display:grid;place-items:center;border:1.5px solid #5718b3;border-radius:50%;flex:0 0 auto;overflow:hidden}.round-icon img{width:42px;height:42px;object-fit:cover}
.manufacturing__summary{position:absolute;z-index:3;left:2%;right:2%;bottom:68px;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.93);border-radius:16px;box-shadow:0 10px 28px rgba(38,27,74,.13);padding:25px 34px}
.manufacturing__summary article{display:flex;align-items:center;justify-content:center;gap:18px;padding-inline:22px;border-right:1px solid #bbb}.manufacturing__summary article:last-child{border:0}.manufacturing__summary h3{color:#4d13ad;font-size:17px;margin:0 0 5px}.manufacturing__summary p{margin:0;line-height:1.35;font-size:14px}.summary-icon{width:64px;height:64px;display:grid;place-items:center;border:2px solid #5815b2;border-radius:50%;flex:0 0 auto;overflow:hidden}.summary-icon img{width:50px;height:50px;object-fit:cover}
.services{padding:40px 0 58px;background:#fff}
.section-heading{text-align:center;margin-bottom:42px}.section-heading h2{font-size:52px;color:#15164d;margin-bottom:8px}.section-heading span{display:block;width:64px;height:5px;border-radius:3px;background:#5d3aa9;margin:0 auto 12px}.section-heading p{font-size:23px;line-height:1.35;color:#333;margin:0}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.service-card{overflow:hidden;background:#fff;border-radius:12px;box-shadow:0 3px 12px rgba(0,0,0,.13)}
.service-card__image{height:205px;background-color:rgba(91,42,203,.16);background-blend-mode:soft-light;background-repeat:no-repeat;background-size:cover;background-position:center}.service-card__image--one{background-image:url("images/service-peptide.png")}.service-card__image--two{background-image:url("images/service-oligo.png")}.service-card__image--three{background-image:url("images/service-fte.png")}
.service-card__body{position:relative;text-align:center;padding:48px 50px 38px;min-height:286px}.service-card__icon{position:absolute;top:-28px;left:50%;translate:-50%;width:64px;height:64px;display:grid;place-items:center;border:4px solid #fff;border-radius:50%;background:#fff;overflow:hidden;box-shadow:0 2px 8px rgba(63,25,128,.22)}.service-card__icon img{width:55px;height:55px;object-fit:cover}.service-card h3{font-size:21px;margin-bottom:11px}.service-card i{display:block;width:47px;height:3px;background:#5837a0;margin:0 auto 13px}.service-card p{font-size:17px;line-height:1.57;margin:0;color:#3b3b3d}
.benefits{padding:35px 0 60px;background:#f3f0f8}
.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.benefit-card{position:relative;text-align:center;padding:112px 28px 36px;min-height:355px;background:rgba(255,255,255,.82);border-radius:18px;box-shadow:0 13px 25px rgba(67,39,116,.13)}
.benefit-icon{position:absolute;top:30px;left:50%;translate:-50%;width:72px;height:72px;display:grid;place-items:center;background:#f8fafc;border-radius:50%;box-shadow:0 9px 20px rgba(62,42,126,.12);overflow:hidden}.benefit-icon img{width:60px;height:60px;object-fit:cover}.benefit-icon--green img{filter:none}
.benefit-card h3{font-size:21px;color:#050505;margin-bottom:25px}.benefit-card p{text-align:left;font-size:17px;line-height:1.75;color:#64686f;margin:0}
.enterprise{position:relative;min-height:720px;display:flex;align-items:center;background:#21144f url("images/enterprise-lab.webp") center/cover no-repeat;color:#fff}.enterprise__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,12,43,.95) 0%,rgba(30,17,58,.86) 50%,rgba(45,25,82,.53) 100%)}
.enterprise__content{padding-block:70px}.enterprise__eyebrow{color:#bca5ff;font-size:17px;font-weight:700;margin-bottom:20px}.enterprise h2{max-width:900px;font:700 clamp(34px,3vw,48px)/1.18 Inter,sans-serif;margin-bottom:18px}.enterprise__lead{max-width:850px;color:rgba(255,255,255,.62);font-size:17px;line-height:1.6;margin-bottom:20px}.enterprise-list{display:grid;gap:16px;max-width:850px}.enterprise-list article{display:flex;gap:20px;align-items:center;padding:18px 22px;border:1px solid rgba(255,255,255,.19);border-radius:10px;background:rgba(34,18,64,.34);transition:transform .25s,border-color .25s}.enterprise-list article:hover{transform:translateX(8px);border-color:rgba(154,118,240,.8)}.enterprise-list article>span{width:56px;height:56px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:rgba(91,42,203,.48);border:1px solid #7546dd;overflow:hidden}.enterprise-list article>span img{width:48px;height:48px;object-fit:cover}.enterprise-list h3{font-size:20px;margin:0 0 3px}.enterprise-list p{margin:0;color:rgba(255,255,255,.6);font-size:16px;line-height:1.45}
.enterprise-list article>span{background:rgba(255,255,255,.94);border-color:#d9ccff;box-shadow:0 6px 18px rgba(12,5,31,.34)}.enterprise-list article>span img{width:44px;height:44px}
.button img,.round-icon img,.summary-icon img,.service-card__icon img,.benefit-icon img,.enterprise-list article>span img{display:block;object-fit:contain;object-position:center}
.site-footer{background:#fff;color:#171225}.site-footer__grid{min-height:300px;display:grid;grid-template-columns:1fr 1.15fr .72fr;gap:70px;padding-block:50px}.site-footer h2{font-size:16px;color:var(--purple-dark);margin-bottom:22px}.site-footer p{max-width:560px;color:#5f5a69;line-height:1.75;margin-bottom:14px}.site-footer a{color:var(--purple);text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-footer__links{display:flex;flex-direction:column;align-items:flex-start;gap:13px}.site-footer__links h2{margin-bottom:9px}.newsletter{display:flex;max-width:470px;height:44px}.newsletter input{flex:1;min-width:0;border:1px solid #d7cfee;padding:0 14px;font:inherit}.newsletter button{border:0;background:var(--purple);color:#fff;padding:0 22px;font-weight:700;cursor:pointer}.site-footer__disclaimer{padding:20px 0;background:#f2eff8;border-top:1px solid #e3dced}.site-footer__disclaimer p{max-width:none;margin:0;color:#4e4957;font-size:13px;line-height:1.7}.site-footer__disclaimer strong{color:var(--purple-dark)}.site-footer__bottom{border-top:1px solid #ebe6f5;padding:18px 0;color:#777;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.legal-header{background:#21144f;color:#fff;border-bottom:1px solid rgba(255,255,255,.13)}.legal-header__inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:28px}.legal-brand{color:#fff;text-decoration:none;font-size:17px;font-weight:800;line-height:1.25}.legal-brand span{display:block;color:#bca5ff;font-size:11px;font-weight:600;letter-spacing:0;margin-top:2px}.legal-home{color:#fff;text-decoration:none;font-size:14px;font-weight:600;padding:10px 0;border-bottom:2px solid #8d68e8}.legal-home:hover{color:#d8caff}.legal-main{min-height:calc(100vh - 76px);background:#f7f6fa}.legal-hero{padding:68px 0 58px;background:#2b1859 url("images/hero-lab.png") center 44%/cover no-repeat;color:#fff;position:relative}.legal-hero::before{content:"";position:absolute;inset:0;background:rgba(28,14,58,.88)}.legal-hero .shell{position:relative}.legal-hero p{margin:0 0 10px;color:#bca5ff;font-size:13px;font-weight:700;letter-spacing:0}.legal-hero h1{font-size:clamp(36px,4vw,58px);line-height:1.1;letter-spacing:0;margin:0}.legal-content{width:min(calc(100% - 64px),960px);margin-inline:auto;padding:62px 0 80px}.legal-content h2{font-size:23px;color:var(--purple-dark);margin:38px 0 12px}.legal-content h2:first-child{margin-top:0}.legal-content p{font-size:16px;line-height:1.8;color:#4e4957;margin-bottom:18px}.legal-content a{color:var(--purple)}.legal-content .legal-lead{font-size:18px;color:#2e2937}.legal-notice{margin-top:34px;padding:22px 24px;border-left:4px solid var(--purple);background:#eeeaf7}.legal-notice p:last-child,.legal-contact p:last-child{margin-bottom:0}.legal-contact{margin-top:32px;padding-top:25px;border-top:1px solid #ded9e8}
.legal-footer-nav{background:#fff;border-top:1px solid #ebe6f5}.legal-footer-nav__inner{display:flex;flex-wrap:wrap;gap:12px 28px;padding-block:24px}.legal-footer-nav a{color:var(--purple);font-size:14px;font-weight:600;text-decoration:none}.legal-footer-nav a:hover,.legal-footer-nav a[aria-current="page"]{text-decoration:underline}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1100px){.manufacturing__content{width:62%;padding-left:40px}.manufacturing__summary{grid-template-columns:repeat(2,1fr);gap:24px}.manufacturing__summary article:nth-child(2){border-right:0}.service-card__body{padding-inline:25px}.benefit-grid{grid-template-columns:repeat(2,1fr)}.site-footer__grid{gap:40px}}
@media(max-width:720px){.shell{width:min(calc(100% - 32px),var(--shell))}.hero{min-height:660px;background-position:64% center}.hero__shade{background:rgba(2,12,20,.74)}.hero__content{padding:55px 0}.hero h1,.hero__accent{text-align:center}.hero .eyebrow{display:block;width:100%;max-width:100%;margin-inline:auto;padding:8px 10px;text-align:center;line-height:1.35;overflow-wrap:anywhere}.hero__checks{display:grid;font-size:15px}.hero__copy{text-align:center;font-size:15px}.button{display:flex;width:max-content;margin:auto}.manufacturing{min-height:auto;padding-bottom:30px}.manufacturing__photo{background-position:58% center;opacity:.16}.manufacturing__glow{background:linear-gradient(90deg,rgba(249,249,252,.97),rgba(249,249,252,.82))}.manufacturing__content{width:auto;padding:45px 20px 30px}.manufacturing h2{font-size:36px}.manufacturing__keywords{font-size:17px}.capability-list p{font-size:13px}.manufacturing__summary{position:relative;left:auto;right:auto;bottom:auto;margin:0 16px;grid-template-columns:1fr;padding:20px}.manufacturing__summary article{justify-content:flex-start;border-right:0;border-bottom:1px solid #ddd;padding:14px 0}.manufacturing__summary article:last-child{border-bottom:0}.services{padding-top:50px}.section-heading h2{font-size:38px}.section-heading p{font-size:16px}.section-heading br{display:none}.service-grid{grid-template-columns:1fr}.service-card__image{height:190px}.benefit-grid{grid-template-columns:1fr}.benefit-card{min-height:0}.enterprise{min-height:auto}.enterprise__content{padding-block:55px}.enterprise-list article{align-items:flex-start}.enterprise-list p{font-size:14px}.site-footer__grid{grid-template-columns:1fr;gap:28px;padding-block:40px}.newsletter{max-width:none}.legal-header__inner{min-height:68px}.legal-brand{font-size:15px}.legal-hero{padding:48px 0 42px}.legal-content{width:min(calc(100% - 32px),960px);padding:42px 0 55px}.legal-content p{font-size:15px}.legal-content .legal-lead{font-size:17px}}
@media(max-width:480px){.hero h1,.hero__accent{font-size:34px}.hero__checks{gap:8px}.hero__copy{font-size:14px}.manufacturing h2{font-size:29px}.capability-list article{align-items:flex-start}.round-icon{width:46px;height:46px}.round-icon img{width:37px;height:37px}.service-card__body{padding-inline:22px}.enterprise h2{font-size:29px}.enterprise-list article{padding:15px}.enterprise-list article>span{width:48px;height:48px}.newsletter button{padding-inline:16px}}
@media(max-width:720px){.legal-footer-nav__inner{gap:12px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
