/* ============================================================
   RS Oncology — recreation (v2)
   ============================================================ */

/* ---------- Fonts ---------- */
@font-face{font-family:'Aptos';src:url('../fonts/aptos.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Source Sans Pro';src:url('../fonts/source-sans-pro.woff2') format('woff2');font-weight:400;font-display:swap;}
@font-face{font-family:'Source Sans Pro';src:url('../fonts/source-sans-pro-semibold.woff2') format('woff2');font-weight:600;font-display:swap;}
@font-face{font-family:'Circular Std';src:url('../fonts/circular-std-medium.woff2') format('woff2');font-weight:500;font-display:swap;}

/* ---------- Tokens ---------- */
:root{
  --black:#000; --dark:#3b3a3a; --ink:#4e4f4f; --grey:#6e6e6e;
  --navy:#0a1768; --blue:#0147ff; --blue-h:#1a6aff; --date:#8e8e8e;
  --pink:#eb207d; --orange:#f05334; --amber:#f17f35;
  --grad:linear-gradient(90deg,#f7a94b 0%,#f05334 55%,#eb207d 100%);
  --font:'Aptos','Source Sans Pro','Segoe UI',Arial,sans-serif;
  --content:1300px; --pad:70px;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;font-family:var(--font);color:var(--black);background:#fff;line-height:1.45;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4,p{margin:0;}
.wrap{width:100%;max-width:var(--content);margin:0 auto;padding:0 var(--pad);position:relative;}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:10px 16px;z-index:200;}
.skip-link:focus{left:8px;top:8px;}

/* ============================================================
   Header — logo mark (left) + white nav pill (right)
   ============================================================ */
.site-header{position:absolute;top:0;left:0;width:100%;z-index:80;padding-top:24px;}
.site-header .wrap{display:flex;align-items:center;gap:18px;
  width:fit-content;max-width:calc(100% - 48px);margin-left:auto;margin-right:auto;
  background:rgba(255,255,255,.95);backdrop-filter:blur(12px);
  border-radius:60px;box-shadow:0 16px 42px rgba(20,20,40,.17);padding:8px 24px 8px 24px;}
.brand{display:inline-flex;align-items:center;flex:none;}
.brand img{width:48px;height:48px;}
.main-nav{background:none;box-shadow:none;padding:0;border-radius:0;backdrop-filter:none;}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;}
.main-nav a{display:block;padding:15px 16px;font-size:18px;color:#2c2c2c;letter-spacing:.2px;transition:color .18s;white-space:nowrap;}
.main-nav a:hover{color:var(--orange);}
.main-nav a.active{color:#111;font-weight:600;}
.nav-toggle{display:none;background:#fff;border:0;border-radius:50%;cursor:pointer;width:52px;height:52px;padding:12px;color:#2c2c2c;box-shadow:0 8px 24px rgba(20,20,40,.14);}
.nav-toggle svg{width:100%;height:100%;}

/* ============================================================
   Buttons
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 34px;
  background:#fff;color:#000;border:1px solid transparent;border-radius:50px;font-family:var(--font);
  font-size:20px;line-height:1.1;cursor:pointer;transition:.2s;box-shadow:0 6px 18px rgba(0,0,0,.08);}
.btn:hover{border-color:var(--blue-h);color:var(--blue-h);transform:translateY(-1px);}
.btn--ghost{box-shadow:none;border:1px solid #d3d3d3;}
.btn--navy{background:var(--navy);color:#fff;box-shadow:0 8px 22px rgba(10,23,104,.28);}
.btn--navy:hover{background:#0d1f8a;color:#fff;border-color:transparent;}
.btn .arw{font-size:.9em;}

/* ============================================================
   Hero logo lockup (home)
   ============================================================ */
.lockup{display:flex;align-items:center;gap:24px;}
.lockup__mark{width:132px;height:132px;flex:none;animation:markSpin 1.15s cubic-bezier(.2,.75,.2,1) both;transform-origin:center;}
.lockup__txt{display:flex;flex-direction:column;animation:wmFade .9s ease .55s both;}
.lockup__wm{width:min(480px,42vw);height:auto;display:block;}
.lockup__tag{width:78%;height:auto;display:block;margin:13px auto 0 8px;}
@keyframes markSpin{from{transform:rotate(-230deg) scale(.25);opacity:0;}60%{opacity:1;}to{transform:rotate(0) scale(1);opacity:1;}}
@keyframes wmFade{from{opacity:0;transform:translateX(-18px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.lockup__mark,.lockup__txt{animation:none;}}

/* ============================================================
   Stacking / pinned panels (home)
   ============================================================ */
.stack{position:relative;}
.stack>.panel{position:sticky;top:0;min-height:100vh;display:flex;align-items:center;overflow:hidden;}
.panel{background-position:center;background-size:cover;background-repeat:no-repeat;}

/* book-page curl on stacking sections (revealed as each slides over the previous) */
.stack>.strip,.stack>.news-panel{border-top-left-radius:66px;box-shadow:0 -22px 48px rgba(20,20,40,.10);}

/* solid-white-to-transparent wash so paragraph text stays readable over the photo */
.strip::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 28%,rgba(255,255,255,.62) 48%,rgba(255,255,255,0) 68%);}
.strip>.wrap{position:relative;z-index:1;}

.strip__text{max-width:560px;padding:60px 0;}
.strip__text h2{font-size:clamp(34px,3.6vw,50px);font-weight:400;line-height:1.22;color:var(--grey);margin-bottom:22px;}
.strip__text.head-dark h2{color:#0f0f0f;}
.strip__text p{font-size:clamp(19px,1.6vw,24px);line-height:1.5;color:#0d0d0d;margin-bottom:30px;}

/* Hero panel — lockup sits high-left over the light fade for clean contrast */
.stack>.hero-panel{align-items:flex-start;}
.hero-panel .wrap{padding-top:clamp(150px,20vh,260px);padding-bottom:40px;padding-left:clamp(20px,3vw,48px);}

/* ============================================================
   Interior hero
   ============================================================ */
.hero{position:relative;width:100%;min-height:74vh;background-position:center;background-size:cover;display:flex;align-items:center;}
.hero__title{font-size:clamp(44px,5.6vw,64px);font-weight:400;line-height:1.15;color:#000;}
.hero--center{justify-content:center;text-align:center;}
.hero--white .hero__title{color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.45);}
/* bottom-left title placement (keeps it off the subject's face) */
.hero--bl{align-items:flex-end;justify-content:flex-start;}
.hero--bl .wrap{width:100%;padding-bottom:clamp(56px,8vh,110px);}
.hero--bl .hero__title{text-align:left;}
.stack>.panel.p-bl{align-items:flex-end;min-height:85vh;}
.p-bl .wrap{width:100%;padding-bottom:clamp(56px,8vh,110px);}
.p-bl .hero__title{text-align:left;}
main.offset-header{padding-top:132px;}

/* ============================================================
   Sections
   ============================================================ */
.section{padding:110px 0;}
.section--tight{padding:80px 0;}
.lead{font-size:clamp(20px,1.7vw,25px);line-height:1.6;color:var(--dark);max-width:960px;margin:0 auto;text-align:center;text-wrap:balance;}
.heading-xl{font-size:clamp(34px,3.6vw,46px);font-weight:400;color:var(--dark);line-height:1.18;}
.heading-navy{font-size:clamp(30px,3vw,40px);font-weight:400;color:var(--navy);margin-bottom:24px;}
.body-copy{font-size:clamp(19px,1.5vw,23px);line-height:1.6;color:#0d0d0d;}
.body-copy p+p{margin-top:1.15em;}

/* ============================================================
   Home News panel
   ============================================================ */
.news-panel{background:linear-gradient(120deg,#fdf1ea 0%,#f4eef8 45%,#e9f3fb 100%);}
.news-panel .wrap{width:100%;}
.news-head{font-size:clamp(34px,3.6vw,50px);font-weight:700;margin-bottom:30px;letter-spacing:.3px;
  background:linear-gradient(96deg,#ec1f4b 0%,#f0453a 46%,#f6902f 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content;}
.news-card{background:#fff;border-radius:26px;box-shadow:0 24px 60px rgba(40,30,60,.12);padding:44px 48px;max-width:1050px;}
.news-card__date{font-size:19px;color:var(--date);margin-bottom:16px;}
.news-card__title{font-size:clamp(20px,1.7vw,25px);font-weight:400;color:var(--dark);line-height:1.4;margin-bottom:26px;max-width:900px;}
.news-more{margin-top:40px;}

/* ============================================================
   About team + bio modal
   ============================================================ */
.team-grid{display:grid;gap:64px 44px;margin-top:60px;}
.team-grid--2{grid-template-columns:repeat(2,1fr);max-width:940px;margin-left:auto;margin-right:auto;}
.team-flex{display:flex;flex-wrap:wrap;justify-content:center;gap:60px 54px;margin-top:60px;}
.team-flex .team-member{width:300px;}
.team-member{text-align:center;}
.team-member__photo{width:250px;height:250px;border-radius:50%;object-fit:cover;margin:0 auto 24px;background:#eee;}
.team-flex .team-member__photo{width:230px;height:230px;}
.team-member__name{font-size:23px;font-weight:400;color:var(--dark);line-height:1.25;white-space:pre-line;}
.team-member__role{font-size:18px;color:var(--dark);margin-top:8px;line-height:1.3;}
.team-member .btn{margin-top:18px;font-size:16px;min-height:42px;padding:9px 26px;}

.modal{position:fixed;inset:0;z-index:200;display:none;}
.modal.open{display:block;}
.modal__backdrop{position:absolute;inset:0;background:rgba(15,15,25,.55);backdrop-filter:blur(3px);}
.modal__panel{position:relative;max-width:640px;width:calc(100% - 40px);max-height:86vh;overflow:auto;margin:7vh auto;background:#fff;border-radius:20px;padding:48px 50px;box-shadow:0 30px 80px rgba(0,0,0,.35);}
.modal__close{position:absolute;top:16px;right:18px;width:40px;height:40px;border:0;background:#f2f2f2;border-radius:50%;font-size:20px;cursor:pointer;color:#333;}
.modal__close:hover{background:#e6e6e6;}
.modal__name{font-size:30px;color:var(--dark);margin-bottom:4px;}
.modal__role{font-size:18px;color:var(--orange);margin-bottom:22px;}
.modal__bio{font-size:18px;line-height:1.7;color:#242424;}
.modal__bio p+p{margin-top:1em;}

/* ============================================================
   Science layout (text + diagram)
   ============================================================ */
.sci-panel{background:#fff;border-top-left-radius:60px;box-shadow:0 -24px 54px rgba(20,20,40,.16);}
.sci-panel .wrap{width:100%;padding-top:60px;padding-bottom:60px;}
.sci-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.sci-row--rev .sci-row__media{order:-1;}
.sci-row__media img{width:100%;height:auto;}
.video-embed{position:relative;width:100%;max-width:940px;margin:26px auto 0;aspect-ratio:16/9;border-radius:18px;overflow:hidden;box-shadow:0 22px 60px rgba(0,0,0,.22);background:#000;}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* ============================================================
   Pipeline table
   ============================================================ */
.pipe-wrap{max-width:1300px;margin:0 auto;}
.pipe-intro{font-size:clamp(19px,1.6vw,24px);line-height:1.6;color:#111;margin-bottom:14px;}
.pipe-intro strong{color:var(--navy);font-weight:700;}
.pipe{margin-top:46px;background:#fff;border-radius:20px;box-shadow:0 26px 70px rgba(30,30,60,.14);overflow:hidden;}
.pipe-head,.pipe-row{display:grid;grid-template-columns:128px 90px 232px 1fr 160px;}
.pipe-head{background:var(--navy);color:#fff;font-weight:700;font-size:15px;letter-spacing:.05em;text-transform:uppercase;}
.pipe-head>span{padding:22px 22px;display:flex;align-items:center;}
.pipe-phead{padding:0!important;display:grid;grid-template-columns:repeat(4,1fr);}
.pipe-phead>i{font-style:normal;display:flex;align-items:center;justify-content:center;text-align:center;padding:22px 6px;border-left:1px solid rgba(255,255,255,.18);line-height:1.2;}
.pipe-phead>i:first-child{border-left:0;}
.pipe-row{border-top:1px solid #eef0f4;align-items:center;}
.pipe-row>span{padding:26px 22px;display:flex;align-items:center;}
.pipe-asset{font-size:23px;font-weight:700;color:var(--blue);}
.pipe-ind{font-size:17px;color:#2a2a2a;line-height:1.38;}
.pipe-status{font-size:17px;color:#2a2a2a;}
.pipe-phase{position:relative;flex-direction:column;justify-content:center;align-items:stretch;padding:26px 0;}
.pipe-scale{display:none;}
.pipe-phase::before{content:'';position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:46px;
  background-image:repeating-linear-gradient(90deg,transparent,transparent calc(25% - 1px),#eef0f4 25%);pointer-events:none;}
.pipe-track{position:relative;display:block;width:100%;}
.pipe-bar{position:relative;display:block;height:46px;border-radius:24px;width:var(--w);
  background:linear-gradient(90deg,#f7a94b,#f05334,#eb207d,#f05334,#f7a94b);
  background-size:200% 100%;background-repeat:repeat;
  animation:pipegrow 1.5s cubic-bezier(.2,.8,.2,1) .2s backwards, pipeflow 3.6s linear infinite;
  overflow:hidden;box-shadow:0 6px 18px rgba(240,83,52,.32);}
@keyframes pipegrow{from{width:0;}to{width:var(--w);}}
.pipe-bar::after{content:'';position:absolute;top:0;left:0;height:100%;width:60%;
  background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.65) 50%,transparent 80%);
  transform:translateX(-120%);animation:pipeshine 3.4s ease-in-out infinite;}
@keyframes pipeflow{from{background-position:0 0;}to{background-position:-200% 0;}}
@keyframes pipeshine{0%{transform:translateX(-120%);}60%,100%{transform:translateX(320%);}}

/* Pipeline — reflow to stacked cards on small screens */
@media(max-width:820px){
  .pipe-head{display:none;}
  .pipe-row{display:block;padding:26px 24px;}
  .pipe-row+.pipe-row{border-top:1px solid #e7e9ef;}
  .pipe-row>span{display:block;padding:0;}
  .pipe-asset{font-size:26px;margin-bottom:16px;}
  .pipe-roa,.pipe-ind,.pipe-status{font-size:16px;color:#2a2a2a;margin-bottom:12px;}
  .pipe-roa::before{content:'ROA — ';font-weight:700;color:#8a8f98;}
  .pipe-ind::before{content:'Indication — ';font-weight:700;color:#8a8f98;}
  .pipe-status::before{content:'Status — ';font-weight:700;color:#8a8f98;}
  .pipe-phase{padding:6px 0 2px;}
  .pipe-phase::before{height:38px;}
  .pipe-bar{height:38px;}
  .pipe-scale{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:9px;}
  .pipe-scale>i{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.03em;color:#9a9fa8;text-align:center;}
}

/* ============================================================
   Publications (medicenna-style)
   ============================================================ */
.pub-list{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:0;}
.pub-item{display:grid;grid-template-columns:150px 1fr auto;gap:32px;align-items:center;padding:34px 8px;border-bottom:1px solid #e6e6ea;}
.pub-item:first-child{border-top:1px solid #e6e6ea;}
.pub-date{font-size:16px;color:var(--date);font-weight:600;letter-spacing:.04em;text-transform:uppercase;}
.pub-body__journal{font-size:15px;color:var(--orange);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.pub-body__title{font-size:22px;color:var(--dark);line-height:1.4;margin-bottom:8px;}
.pub-body__authors{font-size:15px;color:#666;line-height:1.5;}
.pub-item .btn{white-space:nowrap;}
.pub-intro{max-width:900px;margin:0 auto 10px;text-align:center;}

/* ============================================================
   Event detail
   ============================================================ */
.event-detail{max-width:820px;margin:0 auto;}
.event-back{color:var(--blue);font-size:16px;display:inline-block;margin-bottom:34px;}
.event-back:hover{text-decoration:underline;}
.event-logo{max-width:380px;width:100%;height:auto;margin:0 auto 34px;display:block;}
.event-title{font-size:clamp(30px,3.4vw,46px);font-weight:400;color:var(--dark);text-align:center;line-height:1.14;margin-bottom:14px;}
.event-daterange{text-align:center;color:var(--orange);font-size:21px;font-weight:600;margin-bottom:16px;}
.event-catwrap{text-align:center;margin-bottom:46px;}
.event-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 44px;background:#fff;border:1px solid #ececf1;border-radius:22px;padding:44px 48px;box-shadow:0 22px 54px rgba(30,30,60,.08);}
.event-fact__label{font-size:13px;font-weight:700;color:#8a8f98;text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px;}
.event-fact__value{font-size:18px;color:#222;line-height:1.5;}
.event-fact__value a{color:var(--blue);word-break:break-word;}
.event-fact--full{grid-column:1/-1;}
@media(max-width:640px){.event-facts{grid-template-columns:1fr;padding:32px 26px;}}

/* ============================================================
   Patients
   ============================================================ */
.intro-row{display:grid;grid-template-columns:1fr 1.18fr;gap:76px;align-items:center;padding:64px 0 44px;}
.intro-row__text .body-copy{font-size:clamp(20px,1.75vw,26px);line-height:1.55;}
.intro-row__img img{width:100%;height:auto;border-radius:16px;box-shadow:0 30px 72px rgba(20,20,40,.20);}
.patients-head{font-size:clamp(38px,4.4vw,58px);font-weight:400;color:var(--dark);line-height:1.1;margin-bottom:30px;}
.resources{padding:20px 0 40px;}
.resources__title{text-align:center;font-size:clamp(30px,3vw,40px);font-weight:400;color:var(--dark);margin-bottom:10px;}
.res-cols{display:grid;grid-template-columns:1fr 1fr;gap:50px 80px;max-width:1080px;margin:44px auto 0;}
.res-col h3{text-align:center;font-size:clamp(26px,2.4vw,33px);font-weight:400;color:var(--dark);margin-bottom:28px;}
.res-list{display:flex;flex-direction:column;gap:22px;}
.res-list a{font-size:25px;color:var(--blue);line-height:1.2;}
.res-list a:hover{text-decoration:underline;}
.q-block{margin-top:34px;}
.q-block h4{font-size:21px;font-weight:400;color:#000;margin-bottom:8px;}

/* ============================================================
   Reveal / curl panel — content slides up over a pinned hero
   ============================================================ */
.hero--sticky{position:sticky;top:0;z-index:1;}
.reveal-section{position:relative;z-index:2;background:#fff;
  border-top-left-radius:70px;margin-top:-70px;padding:92px 0 110px;
  box-shadow:0 -26px 54px rgba(20,20,40,.13);}

/* ============================================================
   News tiles
   ============================================================ */
.news-cards{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:28px;}
.news-tile{background:#fff;border:1px solid #ecedf1;border-radius:22px;
  box-shadow:0 16px 40px rgba(30,30,60,.07);padding:34px 40px;transition:box-shadow .2s,transform .2s;}
.news-tile:hover{box-shadow:0 22px 52px rgba(30,30,60,.13);transform:translateY(-2px);}
.news-tile__top{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
.news-tile__tag{font-size:12.5px;font-weight:600;color:#fff;padding:5px 14px;border-radius:30px;letter-spacing:.05em;text-transform:uppercase;}
.news-tile__tag--press{background:var(--orange);}
.news-tile__tag--pub{background:var(--navy);}
.news-tile__tag--event{background:#7f8792;}
.news-tile__date{font-size:16px;color:var(--date);}
.news-tile__title{font-size:clamp(20px,1.7vw,23px);font-weight:400;color:var(--dark);line-height:1.42;margin-bottom:24px;}
.news-tile .btn{min-height:46px;font-size:17px;padding:10px 26px;}
.news-tile.is-hidden{display:none;}

/* News filter tabs */
.news-filter{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:48px;}
.news-filter button{font-family:var(--font);font-size:16px;padding:11px 26px;border-radius:50px;border:1px solid #d6d6dd;background:#fff;color:#444;cursor:pointer;transition:.18s;}
.news-filter button:hover{border-color:var(--orange);color:var(--orange);}
.news-filter button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy);}

/* Home news — 3-up preview cards */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.news-mini{background:#fff;border-radius:22px;box-shadow:0 22px 54px rgba(30,30,60,.12);padding:42px 40px;display:flex;flex-direction:column;min-height:380px;border-top:5px solid #dcdce2;transition:transform .2s,box-shadow .2s;}
.news-mini:has(.tag--press){border-top-color:var(--orange);}
.news-mini:has(.tag--pub){border-top-color:var(--navy);}
.news-mini:has(.tag--event){border-top-color:#7f8792;}
.news-mini:hover{transform:translateY(-4px);box-shadow:0 32px 66px rgba(30,30,60,.17);}
.news-mini__top{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap;}
.tag{font-size:12.5px;font-weight:600;color:#fff;padding:5px 15px;border-radius:30px;text-transform:uppercase;letter-spacing:.05em;}
.tag--press{background:var(--orange);}
.tag--pub{background:var(--navy);}
.tag--event{background:#7f8792;}
.news-mini__date{font-size:15.5px;color:var(--date);}
.news-mini__title{font-size:22px;font-weight:400;color:var(--dark);line-height:1.42;margin-bottom:28px;flex:1;}
.news-mini__cta{color:var(--blue);font-size:17.5px;font-weight:600;align-self:flex-start;}
.news-mini__cta:hover{text-decoration:underline;}
@media(max-width:900px){.news-grid{grid-template-columns:1fr;gap:22px;}.news-mini{min-height:0;padding:34px 30px;}}

/* Article detail */
.article{max-width:820px;margin:0 auto;}
.article__date{color:var(--date);font-size:17px;margin-bottom:10px;}
.article__title{font-size:clamp(28px,3vw,40px);font-weight:400;color:var(--dark);line-height:1.25;margin-bottom:14px;}
.article__sub{font-size:21px;color:var(--orange);margin-bottom:30px;}
.article__body{font-size:19px;line-height:1.75;color:#242424;}
.article__body h2{font-size:26px;color:var(--navy);font-weight:400;margin:34px 0 10px;}
.article__body p{margin-bottom:16px;}
.article__body blockquote{margin:22px 0;padding:16px 26px;border-left:4px solid var(--orange);background:#faf6f3;font-style:italic;color:#333;}

/* ============================================================
   Contact
   ============================================================ */
.contact-intro{font-size:clamp(24px,2.4vw,32px);font-weight:400;color:var(--dark);line-height:1.35;text-align:center;max-width:920px;margin:0 auto 46px;}
.contact-form{max-width:660px;margin:0 auto;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.field{margin-bottom:24px;}
.field label{display:block;font-size:15px;color:#000;margin-bottom:9px;}
.field input,.field textarea{width:100%;font-family:var(--font);font-size:17px;color:#000;padding:12px 4px;border:0;border-bottom:1px solid #000;background:transparent;outline:none;}
.field textarea{min-height:130px;resize:vertical;}
.field input:focus,.field textarea:focus{border-color:var(--blue-h);}
.contact-form .btn{border:1px solid #000;margin-top:10px;}

/* ============================================================
   Footer
   ============================================================ */
.site-footer{position:relative;overflow:hidden;min-height:460px;background-position:center;background-size:cover;color:#1a1a1a;display:flex;align-items:center;animation:footerDrift 28s ease-in-out infinite alternate;}
@keyframes footerDrift{from{background-position:44% 44%;background-size:118%;}to{background-position:56% 58%;background-size:130%;}}
/* floating bokeh particles — like peering into a microscopic world */
.site-footer::before,.site-footer::after{content:'';position:absolute;left:0;top:0;width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.95);filter:blur(3px);pointer-events:none;z-index:1;mix-blend-mode:screen;}
.site-footer::before{box-shadow:8vw 66px 14px 7px rgba(255,255,255,.75),23vw 250px 22px 11px rgba(255,255,255,.5),40vw 120px 10px 5px rgba(255,255,255,.85),56vw 330px 26px 13px rgba(255,255,255,.42),72vw 84px 15px 7px rgba(255,255,255,.7),86vw 300px 18px 9px rgba(255,255,255,.55),15vw 380px 12px 6px rgba(255,255,255,.6),65vw 200px 16px 8px rgba(255,255,255,.65);animation:floatA 19s ease-in-out infinite alternate;}
.site-footer::after{box-shadow:13vw 210px 18px 9px rgba(255,255,255,.5),30vw 96px 11px 5px rgba(255,255,255,.8),48vw 350px 24px 12px rgba(255,255,255,.4),63vw 165px 13px 6px rgba(255,255,255,.68),80vw 275px 17px 8px rgba(255,255,255,.55),93vw 115px 11px 5px rgba(255,255,255,.62),5vw 145px 13px 6px rgba(255,255,255,.6),36vw 390px 20px 10px rgba(255,255,255,.42);animation:floatB 25s ease-in-out infinite alternate;}
@keyframes floatA{0%{transform:translate(0,0);opacity:.6;}50%{opacity:1;}100%{transform:translate(26px,-58px);opacity:.7;}}
@keyframes floatB{0%{transform:translate(0,0);opacity:.95;}50%{opacity:.5;}100%{transform:translate(-22px,-48px);opacity:.85;}}
@media(prefers-reduced-motion:reduce){.site-footer,.site-footer::before,.site-footer::after{animation:none;}}
.site-footer .wrap{position:relative;z-index:3;display:grid;grid-template-columns:auto 1fr;gap:34px 90px;padding-top:72px;padding-bottom:52px;align-items:start;}
.footer-lockup{display:flex;align-items:center;gap:18px;margin:0;}
.footer-lockup img.mk{width:62px;height:62px;}
.footer-lockup img.wm{width:300px;height:auto;}
.footer-nav{justify-self:end;max-width:520px;}
.footer-nav ul{list-style:none;margin:0;padding:0;columns:2;column-gap:70px;}
.footer-nav li{margin-bottom:16px;break-inside:avoid;}
.footer-nav a{font-size:18px;color:#1a1a1a;transition:color .18s;}
.footer-nav a:hover{color:var(--orange);}
.footer-copy{grid-column:1/-1;border-top:1px solid rgba(30,30,60,.12);padding-top:24px;margin-top:14px;font-size:14.5px;color:#4a4a4a;}
@media(max-width:760px){
  .site-footer .wrap{grid-template-columns:1fr;gap:30px;}
  .footer-nav{justify-self:start;}
  .footer-lockup img.wm{width:230px;}
}

/* ============================================================
   Legal
   ============================================================ */
.legal{padding:170px 0 100px;}
.legal .wrap{max-width:900px;}
.legal h1{font-size:44px;font-weight:400;color:var(--dark);margin-bottom:8px;}
.legal .updated{color:var(--date);margin-bottom:40px;}
.legal h2{font-size:26px;font-weight:400;color:var(--navy);margin:34px 0 12px;}
.legal p{font-size:18px;line-height:1.75;color:#222;margin-bottom:14px;}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1100px){:root{--pad:44px;}}
@media (max-width:1024px){.pipe-head,.pipe-row{grid-template-columns:110px 78px 190px 1fr 140px;}}
@media (max-width:900px){
  .nav-toggle{display:inline-flex;}
  .main-nav{position:absolute;top:74px;right:0;background:#fff;box-shadow:0 16px 40px rgba(0,0,0,.16);display:none;border-radius:18px;}
  .main-nav.open{display:block;}
  .main-nav ul{flex-direction:column;align-items:stretch;padding:8px 0;}
  .main-nav a{padding:14px 26px;}
  .stack>.panel{position:relative;min-height:auto;}
  .strip{min-height:70vh;background-position:72% center;}
  .hero-panel{min-height:84vh;}
  .news-panel{padding:80px 0;}
  .sci-row,.intro-row,.form-row,.res-cols{grid-template-columns:1fr;}
  .sci-row--rev .sci-row__media{order:0;}
  .lockup__mark{width:96px;height:96px;}
}
@media (max-width:560px){
  :root{--pad:22px;}
  .lockup{gap:14px;}.lockup__mark{width:74px;height:74px;}.lockup__tag{font-size:18px;letter-spacing:.2em;}
  .news-card{padding:30px 24px;}
  .team-grid--2{grid-template-columns:1fr;}
  .res-list a{font-size:21px;}
}
