@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;450;500;550;600;650;700;750&display=swap');
:root {
  --ink:#102c29;
  --deep:#0b211f;
  --muted:#63736d;
  --paper:#f8faf6;
  --white:#fff;
  --mint:#b8edcf;
  --line:#dce3dc;
  --tint:#edf2eb;
  --max:1280px;
  --gutter:clamp(22px,5.6vw,88px)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:'DM Sans',Arial,sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  cursor:default
}
img {
  display:block;
  max-width:100%;
  height:auto
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-family:Manrope,'DM Sans',Arial,sans-serif;
  font-weight:450;
  line-height:1.13;
  letter-spacing:-.045em
}
h1 {
  font-size:clamp(46px,5.2vw,76px)
}
h2 {
  font-size:clamp(32px,3.15vw,47px)
}
h3 {
  font-size:clamp(23px,2.1vw,31px)
}
p {
  color:var(--muted)
}
p+p {
  margin-top:20px
}
em {
  font-style:normal;
  color:#719c85
}
::selection {
  background:var(--mint);
  color:var(--deep)
}
:focus-visible {
  outline:3px solid #278564;
  outline-offset:5px
}
a,button {
  touch-action:manipulation
}
.wrap {
  width:min(var(--max),calc(100% - var(--gutter)*2));
  margin-inline:auto
}
.section-pad {
  padding-block:110px
}
.eyebrow {
  font-size:10px;
  letter-spacing:.17em;
  font-weight:650;
  line-height:1.7;
  text-transform:uppercase;
  color:#547262;
  margin-bottom:24px
}
.lead {
  font-size:21px;
  line-height:1.6;
  letter-spacing:-.025em;
  color:var(--ink)
}
.muted {
  color:#8a9b8e
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:24px;
  font-size:14px;
  font-weight:550;
  border-bottom:1px solid #a8b5a9;
  padding-block:8px
}
.text-link span,.hero-link span {
  font-size:20px;
  transition:transform .2s
}
.text-link:hover span,.hero-link:hover span {
  transform:translate(3px,-3px)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:16px 24px;
  min-height:56px;
  border:1px solid transparent;
  border-radius:3px;
  font-size:13px;
  font-weight:550;
  line-height:1.4;
  transition:background .2s,transform .2s
}
.button:hover {
  transform:translateY(-2px)
}
.button span {
  font-size:21px;
  font-weight:400
}
.button.mint {
  background:var(--mint);
  color:var(--deep)
}
.button.mint:hover {
  background:#d2f6df
}
.button.dark {
  background:var(--ink);
  color:white
}
.button.dark:hover {
  background:#245447
}
.fine-print {
  font-size:11px;
  line-height:1.7;
  color:#738779
}
.skip-link {
  position:fixed;
  top:10px;
  left:10px;
  transform:translateY(-150%);
  background:var(--mint);
  padding:10px 20px;
  z-index:50
}
.skip-link:focus {
  transform:translateY(0)
}
.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
}
/* Shared navigation */
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(248,250,246,.97);
  border-bottom:1px solid var(--line)
}
.nav-wrap {
  width:min(1440px,calc(100% - var(--gutter)*2));
  margin:auto;
  min-height:90px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  line-height:1.05;
  flex-shrink:0
}
.brand>img {
  width:32px;
  height:34px
}
.brand>span {
  font-size:21px;
  font-weight:650;
  letter-spacing:-1px
}
.brand-light {
  font-weight:400
}
.brand i {
  display:block;
  font-size:7px;
  letter-spacing:.23em;
  font-style:normal;
  font-weight:500;
  margin-top:9px
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:25px
}
.site-header nav>a {
  font-size:12px;
  font-weight:500;
  white-space:nowrap;
  position:relative;
  padding-block:12px
}
.site-header nav>a[aria-current=page]:after {
  content:'';
  position:absolute;
  bottom:2px;
  left:0;
  right:0;
  height:2px;
  background:#508468
}
.site-header nav>a:hover {
  color:#398062
}
.site-header nav>.nav-contact {
  display:flex;
  gap:22px;
  align-items:center;
  background:var(--ink);
  color:#fff;
  padding:11px 18px;
  border-radius:3px;
  margin-left:9px
}
.site-header nav>.nav-contact:hover {
  color:var(--mint)
}
.nav-contact span {
  font-size:20px
}
.menu-toggle {
  display:none
}
/* Home */
.hero {
  background:var(--deep);
  color:#f1f6ed;
  overflow:hidden
}
.hero-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  align-items:center;
  min-height:640px;
  gap:20px;
  padding-top:45px;
  padding-bottom:45px
}
.hero-copy {
  position:relative;
  z-index:2
}
.hero .eyebrow {
  color:var(--mint);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:29px
}
.hero .eyebrow:before {
  content:'';
  width:5px;
  height:5px;
  background:var(--mint);
  border-radius:50%
}
.hero h1 {
  font-size:clamp(48px,5.7vw,84px);
  line-height:1.075;
  letter-spacing:-.057em
}
.hero h1 em {
  color:var(--mint)
}
.hero-copy>p:not(.eyebrow) {
  max-width:440px;
  font-size:16px;
  line-height:1.85;
  color:#b1c2b6;
  margin-top:30px
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:30px;
  margin-top:35px
}
.hero-link {
  display:flex;
  gap:18px;
  align-items:center;
  font-size:13px;
  color:#e5ece3
}
.molecule-stage {
  position:relative;
  min-width:0;
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:radial-gradient(ellipse,rgba(64,112,83,.17),transparent 70%)
}
.hero-molecule {
  width:100%;
  height:100%;
  object-fit:contain;
  position:relative;
  z-index:1;
  mix-blend-mode:screen;
  filter:grayscale(1) sepia(.6) hue-rotate(80deg) saturate(2);
  animation:molecule-float 12s ease-in-out infinite;
  opacity:.9
}
.orbital {
  position:absolute;
  border:1px solid #b8edcf1a;
  border-radius:50%;
  width:91%;
  height:91%
}
.orbital-two {
  width:114%;
  height:114%;
  border-style:dashed;
  opacity:.5
}
.molecule-stage:before,.molecule-stage:after {
  content:'';
  position:absolute;
  background:#b8edcf10
}
.molecule-stage:before {
  width:114%;
  height:1px
}
.molecule-stage:after {
  width:1px;
  height:114%
}
.stage-cross {
  position:absolute;
  color:#668777;
  font-size:23px;
  font-weight:400
}
.stage-cross.top {
  top:3%;
  right:3%
}
.stage-cross.bottom {
  bottom:3%;
  left:3%
}
.molecule-label {
  position:absolute;
  z-index:2;
  bottom:8%;
  left:3%;
  right:3%;
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid #a0b7a82e;
  background:#102c29d9;
  padding:12px 15px;
  color:#c9d9cd;
  font-size:8px;
  letter-spacing:.12em
}
.molecule-label>span:last-child {
  margin-left:auto;
  color:#6e8c79
}
.status-dot {
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--mint)
}
.visual-caption {
  position:absolute;
  bottom:0;
  right:3%;
  font-size:9px;
  color:#789183
}
.hero-bottom {
  display:flex;
  justify-content:space-between;
  padding-block:23px;
  border-top:1px solid #b8edcf26;
  font-size:9px;
  letter-spacing:.1em;
  color:#9db6a5;
  gap:20px
}
.hero-bottom i {
  padding-inline:14px;
  font-style:normal;
  color:#587565
}
.hero-bottom>a {
  color:#d8e5d9;
  font-size:10px;
  letter-spacing:0
}
.intro-section {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:10%;
  padding-top:115px;
  padding-bottom:75px
}
.intro-section h2 {
  font-size:clamp(32px,3.5vw,49px)
}
.intro-copy .lead {
  margin-bottom:24px
}
.intro-copy .text-link {
  margin-top:20px
}
.intro-copy>p:not(.lead) {
  font-size:15px
}
.advantage-strip {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  border-top:1px solid var(--line);
  padding-block:33px 85px;
  gap:40px
}
.advantage-strip>div {
  display:flex;
  flex-direction:column;
  gap:7px
}
.advantage-strip>div+div {
  border-left:1px solid var(--line);
  padding-left:40px
}
.advantage-strip strong {
  font-family:Manrope,sans-serif;
  font-weight:450;
  font-size:28px;
  letter-spacing:-.04em
}
.advantage-strip span {
  font-size:12px;
  color:var(--muted)
}
.applications-preview {
  background:var(--tint)
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:50px
}
.section-heading .eyebrow {
  margin-bottom:18px
}
.section-heading>.text-link {
  flex-shrink:0
}
.section-heading>p {
  max-width:380px;
  font-size:15px
}
.application-links>a {
  display:grid;
  grid-template-columns:45px 1fr 1fr 45px;
  align-items:center;
  gap:20px;
  border-top:1px solid #ced9ce;
  padding:33px 0;
  transition:padding .25s,background .25s
}
.application-links>a:last-child {
  border-bottom:1px solid #ced9ce
}
.application-links>a:hover {
  padding-inline:14px;
  background:#e1ebdf
}
.row-number {
  font-size:11px;
  letter-spacing:.05em;
  color:#75917d
}
.application-links h3 {
  font-size:26px
}
.application-links p {
  font-size:13px
}
.round-arrow {
  border:1px solid #bacabb;
  border-radius:50%;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  font-size:19px
}
.research-feature {
  display:grid;
  grid-template-columns:1fr 1fr;
  background:#eef2ea;
  min-height:490px
}
.feature-visual {
  background:var(--deep);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  padding:40px
}
.feature-visual>img {
  width:95%;
  max-height:380px;
  object-fit:contain;
  mix-blend-mode:screen;
  filter:grayscale(.6) hue-rotate(305deg)
}
.feature-visual>span {
  position:absolute;
  bottom:23px;
  left:30px;
  font-size:8px;
  letter-spacing:.13em;
  color:#8ba792
}
.feature-copy {
  padding:50px
}
.feature-copy .eyebrow {
  font-size:9px
}
.feature-copy h3 {
  font-size:35px;
  line-height:1.18;
  margin-bottom:22px
}
.feature-copy>p:not(.eyebrow):not(.fine-print) {
  font-size:14px
}
.research-stat {
  display:flex;
  align-items:center;
  gap:25px;
  border-top:1px solid #d0dccd;
  padding-top:20px;
  margin-top:25px
}
.research-stat>strong {
  font-size:46px;
  font-weight:450;
  font-family:Manrope,sans-serif;
  letter-spacing:-.05em;
  white-space:nowrap
}
.research-stat small {
  font-size:24px
}
.research-stat>p {
  font-size:10px;
  line-height:1.6
}
.feature-copy .text-link {
  margin-top:15px
}
.feature-copy .fine-print {
  font-size:10px;
  margin-top:18px
}
.company-band {
  background:var(--deep);
  padding-block:90px;
  color:#e9f1e7
}
.company-band>.wrap {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:10%
}
.company-band h2 {
  font-size:35px
}
.company-band .eyebrow {
  color:#91b49b
}
.company-band p {
  color:#b3c3b6;
  font-size:15px
}
.company-band .text-link {
  margin-top:20px;
  border-color:#5d7d66;
  color:var(--mint)
}
.cta {
  background:var(--mint);
  padding-block:70px
}
.cta-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px
}
.cta .eyebrow {
  font-size:9px;
  color:#426b55;
  margin-bottom:15px
}
.cta h2 {
  font-size:40px
}
.cta p:not(.eyebrow) {
  font-size:15px;
  margin-top:15px;
  color:#416651
}
.cta .button {
  flex-shrink:0;
  min-width:175px
}
/* Interior pages */
.page-intro {
  padding-top:90px;
  padding-bottom:70px;
  border-bottom:1px solid var(--line)
}
.page-intro h1 {
  max-width:1100px
}
.page-intro>.lead {
  margin-top:30px;
  max-width:680px;
  font-size:18px;
  color:var(--muted)
}
.split-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:8%;
  padding-block:85px 110px
}
.split-section h2 {
  margin-bottom:25px
}
.split-section p:not(.eyebrow) {
  font-size:15px
}
.split-section .lead {
  font-size:21px!important
}
.split-section .text-link {
  margin-top:24px
}
.dark-visual {
  background:var(--deep);
  aspect-ratio:1/1;
  display:flex;
  justify-content:center;
  align-items:center;
  position:relative;
  overflow:hidden
}
.dark-visual img {
  width:85%;
  height:85%;
  object-fit:contain;
  mix-blend-mode:screen
}
.dark-visual>span {
  position:absolute;
  bottom:22px;
  left:25px;
  right:20px;
  letter-spacing:.13em;
  font-size:8px;
  color:#9bb5a3
}
.tinted {
  background:var(--tint)
}
.capability-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 70px
}
.capability-grid article {
  padding:32px 0;
  border-top:1px solid #cfdacf
}
.capability-grid .row-number {
  display:block;
  margin-bottom:30px
}
.capability-grid h3 {
  margin-bottom:18px
}
.capability-grid p {
  font-size:15px;
  max-width:460px
}
.process-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  list-style:none;
  padding:0;
  counter-reset:steps;
  margin:50px 0 0
}
.process-list li {
  counter-increment:steps;
  border-top:1px solid var(--line);
  padding-top:30px
}
.process-list li:before {
  content:'0' counter(steps);
  display:block;
  color:#52715d;
  font-size:11px;
  margin-bottom:28px
}
.process-list h3 {
  font-size:24px;
  margin-bottom:15px
}
.process-list p {
  font-size:14px
}
.application-detail {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10%;
  align-items:center;
  padding-block:80px;
  border-bottom:1px solid var(--line)
}
.application-detail:last-of-type {
  border-bottom:0
}
.application-detail:nth-of-type(even) .application-text {
  order:2
}
.application-detail h2 {
  margin-bottom:25px
}
.application-detail .lead {
  font-size:19px
}
.application-detail p:not(.eyebrow):not(.lead) {
  font-size:15px
}
.application-detail .text-link {
  margin-top:22px
}
.application-visual {
  width:100%;
  max-width:470px;
  aspect-ratio:1/1;
  justify-self:center;
  overflow:hidden;
  border-radius:3px
}
.application-visual img {
  width:100%;
  height:100%;
  object-fit:cover
}
.research-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding-block:38px;
  border-bottom:1px solid var(--line)
}
.research-toolbar>p {
  font-size:9px;
  letter-spacing:.13em
}
.filters {
  display:flex;
  flex-wrap:wrap;
  gap:7px
}
.filters button {
  background:transparent;
  color:var(--muted);
  border:1px solid var(--line);
  padding:9px 15px;
  font-size:11px;
  border-radius:30px;
  transition:background .2s
}
.filters button[aria-pressed=true] {
  background:var(--ink);
  border-color:var(--ink);
  color:white
}
.filters button:hover {
  background:#d4e5d7;
  color:var(--ink)
}
.publication {
  display:grid;
  grid-template-columns:.45fr 1.7fr .7fr;
  gap:40px;
  padding-block:50px;
  border-bottom:1px solid var(--line);
  align-items:start
}
.publication[hidden] {
  display:none
}
.publication-meta {
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:11px;
  color:var(--muted)
}
.publication-meta span:first-child {
  font-size:25px;
  line-height:1.3;
  color:#50735d;
  font-family:Manrope,sans-serif
}
.publication h3 {
  font-size:29px;
  margin-bottom:20px
}
.publication-copy>p {
  font-size:14px
}
.publication-copy .paper-title {
  font-size:11px;
  color:#728174;
  margin-top:22px;
  font-style:italic
}
.publication-copy .text-link {
  margin-top:15px;
  font-size:12px
}
.publication-image {
  background:var(--deep);
  aspect-ratio:1/1;
  border-radius:3px;
  overflow:hidden
}
.publication-image img {
  width:100%;
  height:100%;
  object-fit:contain;
  mix-blend-mode:screen
}
.research-note {
  font-size:12px;
  max-width:800px;
  padding-block:32px 70px
}
.foundation-list {
  display:grid
}
.foundation-list a {
  padding-block:23px;
  border-top:1px solid #ccd9ca;
  display:flex;
  justify-content:space-between;
  gap:30px;
  font-size:15px
}
.program-intro {
  padding-block:75px 90px
}
.program-intro>.lead {
  font-size:26px;
  margin-bottom:45px
}
.two-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px
}
.two-columns article {
  border-top:1px solid var(--line);
  padding-top:30px
}
.two-columns h3 {
  margin-bottom:20px
}
.two-columns p:not(.eyebrow) {
  font-size:15px
}
.program-rows article {
  display:grid;
  grid-template-columns:45px 1fr 1fr;
  gap:30px;
  padding-block:30px;
  border-top:1px solid #cfd9cc;
  align-items:start
}
.program-rows h3 {
  font-size:25px
}
.program-rows p {
  font-size:14px
}
.program-rows+.fine-print {
  margin-top:30px
}
.editorial-callout {
  text-align:center
}
.editorial-callout h2 {
  font-size:52px
}
.editorial-callout .text-link {
  margin-top:25px
}
.about-statement {
  background:var(--deep);
  color:#e4efe3;
  padding-block:80px;
  margin-top:70px
}
.about-statement>.wrap {
  position:relative;
  padding-left:25%;
  padding-right:3%
}
.about-statement h2 {
  font-size:42px
}
.about-statement p {
  margin-top:25px;
  color:#adc2b1;
  max-width:690px;
  font-size:16px
}
.location-tag {
  position:absolute;
  left:0;
  top:5px;
  font-size:9px;
  letter-spacing:.1em;
  color:var(--mint)
}
.location-tag span {
  margin-left:10px
}
.founder {
  display:grid;
  grid-template-columns:.6fr 1.4fr;
  gap:9%;
  padding-block:55px;
  border-top:1px solid var(--line)
}
.founder h3 {
  font-size:35px;
  margin-bottom:14px
}
.founder p:not(.eyebrow) {
  font-size:15px
}
.founder .founder-role {
  font-size:11px!important;
  letter-spacing:.03em;
  color:#577861;
  margin-bottom:27px
}
.founder .text-link {
  margin-top:22px;
  font-size:13px
}
.founder-portrait {
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  align-self:start;
  border-radius:3px
}
.service-list {
  padding-bottom:80px
}
.service-list>article {
  display:grid;
  grid-template-columns:45px 1.7fr .6fr;
  gap:30px;
  padding-block:45px;
  border-bottom:1px solid var(--line)
}
.service-list h2 {
  font-size:30px;
  margin-bottom:20px
}
.service-list p:not(.eyebrow) {
  max-width:640px;
  font-size:15px
}
.service-tags {
  font-size:8px;
  margin-top:25px;
  margin-bottom:0
}
.service-link {
  align-self:center;
  justify-self:end;
  display:flex;
  align-items:center;
  gap:20px;
  font-size:12px;
  white-space:nowrap
}
.service-link>span {
  font-size:20px
}
.service-link:hover {
  color:#31815d
}
.split-copy {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:10%
}
.split-copy p:not(.eyebrow) {
  font-size:15px
}
.split-copy .text-link {
  margin-top:25px
}
.contact-layout {
  display:grid;
  grid-template-columns:1fr 1.35fr;
  gap:10%;
  padding-block:70px 100px
}
.contact-details h2 {
  font-size:37px;
  margin-bottom:24px
}
.contact-details>p:not(.eyebrow) {
  font-size:15px
}
.email-link {
  display:flex;
  align-items:center;
  gap:15px;
  font-size:15px;
  overflow-wrap:anywhere;
  border-bottom:1px solid var(--line);
  padding-bottom:15px;
  margin-top:28px
}
.email-link span {
  flex-shrink:0
}
.email-link:hover {
  color:#32805e
}
.contact-location {
  margin-top:70px
}
.contact-location .eyebrow {
  font-size:8px;
  margin-bottom:15px
}
.contact-location p {
  font-size:14px
}
.contact-form-panel {
  padding:40px;
  background:var(--tint)
}
.contact-form-panel h2 {
  font-size:27px;
  margin-bottom:12px
}
.contact-form-panel>p {
  font-size:13px
}
form {
  margin-top:32px
}
label {
  display:block;
  font-size:11px;
  font-weight:550;
  margin-bottom:7px
}
label span {
  font-size:10px;
  color:#6e7e6e;
  font-weight:400
}
input,select,textarea {
  width:100%;
  border:1px solid #cbd7c8;
  border-radius:2px;
  background:#f9fcf6;
  color:var(--ink);
  padding:11px 12px;
  margin:0 0 20px;
  min-height:46px;
  font-size:14px
}
textarea {
  resize:vertical;
  min-height:130px
}
input:focus,select:focus,textarea:focus {
  outline:2px solid #57846b;
  outline-offset:1px
}
textarea::placeholder {
  color:#7f8f7f;
  font-size:12px
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
form>.button {
  width:100%
}
form .fine-print {
  font-size:10px;
  margin-top:16px
}
#form-status {
  font-size:12px;
  margin-top:14px
}
noscript a {
  text-decoration:underline
}
/* Footer */
.site-footer {
  padding-block:65px 25px;
  background:#f0f3ed
}
.footer-top {
  display:flex;
  justify-content:space-between;
  gap:60px;
  margin-bottom:55px
}
.footer-brand {
  font-size:23px;
  font-family:Manrope,sans-serif;
  letter-spacing:-1px
}
.footer-brand span {
  display:block;
  font-size:12px;
  letter-spacing:0;
  color:var(--muted);
  margin-top:8px
}
.footer-top p {
  font-size:11px;
  margin-top:25px;
  line-height:1.8
}
.footer-nav {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:90px;
  row-gap:12px;
  align-content:start;
  font-size:12px
}
.footer-nav a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}
.footer-bottom {
  border-top:1px solid #d6dfd3;
  padding-top:22px;
  display:flex;
  justify-content:space-between;
  gap:25px;
  font-size:10px;
  color:#6b7d6d
}
.footer-bottom>a {
  color:var(--ink)
}
@keyframes molecule-float {
  0%,100% {
    transform:translateY(0) rotate(-5deg)
  }
  50% {
    transform:translateY(-12px) rotate(3deg)
  }
}
@media(min-width:1600px) {
  .hero-grid {
    min-height:740px
  }
}
@media(max-width:1150px) {
  .site-header nav {
    gap:16px
  }
  .site-header nav>a {
    font-size:11px
  }
  .brand>span {
    font-size:18px
  }
  .brand>img {
    width:28px
  }
  .site-header nav>.nav-contact {
    margin-left:0;
    padding:8px 13px
  }
  .nav-wrap {
    gap:20px
  }
  .hero-grid {
    min-height:590px
  }
  .hero h1 {
    font-size:clamp(47px,6vw,70px)
  }
  .feature-copy {
    padding:35px
  }
  .feature-copy h3 {
    font-size:30px
  }
  .research-stat {
    gap:15px
  }
  .research-stat>strong {
    font-size:38px
  }
  .service-link {
    white-space:normal
  }
  .publication {
    gap:25px;
    grid-template-columns:.4fr 1.6fr .65fr
  }
}
@media(max-width:950px) {
  .site-header .nav-wrap {
    min-height:78px
  }
  .brand>span {
    font-size:21px
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    gap:15px;
    padding:12px 0 12px 15px;
    border:0;
    background:none;
    font-size:12px;
    color:var(--ink);
    min-height:44px
  }
  .menu-icon {
    width:20px;
    height:12px;
    border-top:1px solid currentColor;
    border-bottom:1px solid currentColor;
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] .menu-icon {
    transform:rotate(-45deg);
    height:0;
    border-bottom:0
  }
  .site-header nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    padding:20px var(--gutter) 30px;
    background:var(--paper);
    box-shadow:0 20px 30px #0b211f0d;
    max-height:calc(100dvh - 78px);
    overflow:auto
  }
  .site-header nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    border-bottom:1px solid var(--line)
  }
  .site-header nav>a {
    font-size:16px;
    padding:12px 0;
    border-bottom:1px solid var(--line)
  }
  .site-header nav>a[aria-current=page]:after {
    display:none
  }
  .site-header nav>a[aria-current=page] {
    color:#338264
  }
  .site-header nav>.nav-contact {
    margin-top:20px;
    justify-content:space-between;
    padding:13px 18px
  }
  .hero-grid {
    grid-template-columns:1.1fr 1fr;
    min-height:560px;
    gap:0
  }
  .hero h1 {
    font-size:clamp(44px,6vw,58px)
  }
  .hero-copy>p:not(.eyebrow) {
    font-size:14px
  }
  .hero-actions {
    gap:20px;
    align-items:flex-start;
    flex-direction:column
  }
  .hero-actions .button {
    font-size:12px;
    min-height:50px;
    padding:13px 20px
  }
  .hero-bottom {
    font-size:8px
  }
  .hero-bottom i {
    padding-inline:7px
  }
  .section-pad {
    padding-block:80px
  }
  .intro-section {
    padding-top:80px;
    gap:8%
  }
  .intro-section h2 {
    font-size:33px
  }
  .intro-copy .lead {
    font-size:19px
  }
  .intro-copy .text-link {
    font-size:12px
  }
  .advantage-strip {
    gap:25px;
    padding-bottom:65px
  }
  .advantage-strip>div+div {
    padding-left:25px
  }
  .advantage-strip strong {
    font-size:23px
  }
  .application-links>a {
    grid-template-columns:25px 1fr 1fr 35px;
    gap:12px
  }
  .application-links h3 {
    font-size:22px
  }
  .application-links p {
    font-size:12px
  }
  .feature-copy {
    padding:30px
  }
  .feature-copy h3 {
    font-size:27px
  }
  .feature-copy>p:not(.eyebrow):not(.fine-print) {
    font-size:12px
  }
  .research-stat {
    flex-direction:column;
    align-items:flex-start;
    gap:5px
  }
  .research-stat p br {
    display:none
  }
  .company-band h2 {
    font-size:29px
  }
  .company-band>.wrap {
    gap:8%
  }
  .cta h2 {
    font-size:32px
  }
  .cta .eyebrow {
    font-size:8px
  }
  .cta p:not(.eyebrow) {
    font-size:13px
  }
  .page-intro {
    padding-top:65px;
    padding-bottom:55px
  }
  .split-section {
    gap:7%
  }
  .split-section h2 {
    font-size:32px
  }
  .capability-grid {
    gap:0 40px
  }
  .process-list {
    gap:25px
  }
  .process-list h3 {
    font-size:21px
  }
  .application-detail {
    gap:7%;
    padding-block:60px
  }
  .application-detail h2 {
    font-size:32px
  }
  .application-detail .lead {
    font-size:16px
  }
  .research-toolbar {
    align-items:flex-start;
    flex-direction:column;
    gap:15px
  }
  .publication {
    grid-template-columns:90px 1fr
  }
  .publication-image {
    display:none
  }
  .program-rows article {
    grid-template-columns:30px 1fr 1fr;
    gap:20px
  }
  .program-rows h3 {
    font-size:22px
  }
  .two-columns {
    gap:45px
  }
  .about-statement>.wrap {
    padding-left:0;
    padding-right:0
  }
  .location-tag {
    position:static;
    display:block;
    margin-bottom:25px
  }
  .about-statement h2 {
    font-size:36px
  }
  .founder {
    gap:7%;
    grid-template-columns:.65fr 1.35fr
  }
  .founder h3 {
    font-size:28px
  }
  .service-list>article {
    grid-template-columns:25px 1fr;
    gap:20px
  }
  .service-link {
    grid-column:2;
    justify-self:start;
    font-size:13px
  }
  .contact-layout {
    gap:6%;
    grid-template-columns:1fr 1.2fr
  }
  .contact-form-panel {
    padding:25px
  }
  .email-link {
    font-size:12px
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0
  }
  .footer-bottom {
    font-size:9px
  }
}
@media(max-width:650px) {
  :root {
    --gutter:24px
  }
  html {
    scroll-padding-top:95px
  }
  h1 {
    font-size:45px
  }
  h2 {
    font-size:32px
  }
  .eyebrow {
    font-size:9px;
    margin-bottom:20px
  }
  .hero-grid {
    grid-template-columns:1fr;
    padding-top:55px;
    padding-bottom:0;
    gap:5px
  }
  .hero h1 {
    font-size:clamp(44px,9.8vw,65px);
    max-width:500px
  }
  .hero-copy>p:not(.eyebrow) {
    font-size:14px;
    max-width:400px;
    margin-top:25px
  }
  .hero-actions {
    flex-direction:row;
    align-items:center;
    gap:25px;
    margin-top:28px
  }
  .hero-link {
    font-size:12px;
    gap:10px
  }
  .molecule-stage {
    width:100%;
    max-width:410px;
    justify-self:center;
    margin-top:10px;
    aspect-ratio:1/.88
  }
  .hero-molecule {
    width:90%;
    height:100%
  }
  .orbital-one {
    width:80%;
    height:90%
  }
  .orbital-two {
    width:98%;
    height:110%
  }
  .molecule-label {
    bottom:9%;
    left:3%;
    right:3%
  }
  .visual-caption {
    bottom:2%
  }
  .hero-bottom {
    flex-direction:column;
    gap:12px;
    padding-block:20px;
    font-size:7px
  }
  .hero-bottom>a {
    font-size:9px
  }
  .intro-section {
    grid-template-columns:1fr;
    gap:35px;
    padding-top:65px;
    padding-bottom:45px
  }
  .intro-section h2 {
    font-size:35px
  }
  .intro-copy .lead {
    font-size:21px
  }
  .intro-copy>p:not(.lead) {
    font-size:14px
  }
  .advantage-strip {
    grid-template-columns:1fr;
    padding-block:0 55px;
    gap:0;
    border-top:0
  }
  .advantage-strip>div {
    flex-direction:row;
    align-items:center;
    gap:20px;
    border-top:1px solid var(--line);
    padding-block:20px
  }
  .advantage-strip>div+div {
    border-left:0;
    padding-left:0
  }
  .advantage-strip strong {
    font-size:23px;
    min-width:145px
  }
  .advantage-strip span {
    font-size:11px
  }
  .section-pad {
    padding-block:65px
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:20px;
    margin-bottom:35px
  }
  .section-heading .text-link {
    font-size:12px
  }
  .application-links>a {
    grid-template-columns:25px 1fr 35px;
    padding-block:25px;
    gap:12px
  }
  .application-links h3 {
    font-size:24px
  }
  .application-links p {
    grid-column:2;
    grid-row:2;
    font-size:12px
  }
  .round-arrow {
    grid-column:3;
    grid-row:1/3;
    width:32px;
    height:32px;
    font-size:16px
  }
  .application-links .row-number {
    align-self:start;
    padding-top:5px
  }
  .research-feature {
    grid-template-columns:1fr
  }
  .feature-visual {
    padding:20px;
    min-height:290px;
    max-height:340px
  }
  .feature-visual>img {
    max-height:280px;
    width:85%
  }
  .feature-copy {
    padding:30px
  }
  .feature-copy h3 {
    font-size:30px
  }
  .feature-copy>p:not(.eyebrow):not(.fine-print) {
    font-size:14px
  }
  .research-stat {
    flex-direction:row;
    align-items:center;
    gap:25px
  }
  .research-stat>p {
    font-size:10px
  }
  .research-stat>strong {
    font-size:41px
  }
  .company-band {
    padding-block:60px
  }
  .company-band>.wrap {
    grid-template-columns:1fr;
    gap:30px
  }
  .company-band h2 {
    font-size:30px
  }
  .company-band p {
    font-size:14px
  }
  .cta {
    padding-block:50px
  }
  .cta-inner {
    align-items:flex-start;
    flex-direction:column;
    gap:25px
  }
  .cta h2 {
    font-size:33px
  }
  .cta p:not(.eyebrow) {
    font-size:14px
  }
  .cta .eyebrow {
    font-size:8px
  }
  .page-intro {
    padding-top:55px;
    padding-bottom:40px
  }
  .page-intro h1 {
    font-size:clamp(37px,8.7vw,52px)
  }
  .page-intro>.lead {
    font-size:16px;
    margin-top:25px
  }
  .split-section {
    grid-template-columns:1fr;
    padding-block:45px 65px;
    gap:40px
  }
  .split-section .dark-visual {
    max-height:370px
  }
  .capability-grid {
    grid-template-columns:1fr;
    gap:0
  }
  .capability-grid article {
    padding-block:25px
  }
  .capability-grid .row-number {
    margin-bottom:20px
  }
  .capability-grid h3 {
    font-size:26px
  }
  .capability-grid p {
    font-size:14px
  }
  .process-list {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:30px
  }
  .process-list li {
    padding-top:20px
  }
  .process-list li:before {
    margin-bottom:15px
  }
  .process-list h3 {
    font-size:25px
  }
  .application-detail {
    grid-template-columns:1fr;
    gap:30px;
    padding-block:45px
  }
  .application-detail:nth-of-type(even) .application-text {
    order:0
  }
  .application-detail h2 {
    font-size:32px
  }
  .application-detail .lead {
    font-size:18px
  }
  .application-visual {
    max-width:350px
  }
  .filters {
    gap:6px
  }
  .filters button {
    font-size:10px;
    padding:9px 12px
  }
  .research-toolbar {
    padding-block:25px
  }
  .publication {
    grid-template-columns:1fr;
    gap:22px;
    padding-block:35px
  }
  .publication-meta {
    flex-direction:row;
    align-items:center;
    gap:18px
  }
  .publication-meta span:first-child {
    font-size:21px
  }
  .publication-meta span:last-child {
    font-size:10px
  }
  .publication h3 {
    font-size:29px
  }
  .publication-copy>p {
    font-size:14px
  }
  .research-note {
    padding-bottom:45px
  }
  .foundation-list a {
    font-size:13px;
    gap:20px
  }
  .foundation-list a span {
    flex-shrink:0
  }
  .program-intro {
    padding-block:45px 60px
  }
  .two-columns {
    grid-template-columns:1fr;
    gap:30px
  }
  .two-columns h3 {
    font-size:29px
  }
  .program-rows article {
    grid-template-columns:25px 1fr;
    gap:12px;
    padding-block:25px
  }
  .program-rows h3 {
    font-size:25px
  }
  .program-rows article>p {
    grid-column:2;
    font-size:14px
  }
  .program-rows .row-number {
    padding-top:4px
  }
  .editorial-callout h2 {
    font-size:37px
  }
  .about-statement {
    margin-top:45px;
    padding-block:50px
  }
  .about-statement h2 {
    font-size:31px
  }
  .about-statement p {
    font-size:14px
  }
  .founder {
    grid-template-columns:1fr;
    gap:28px;
    padding-block:35px
  }
  .founder-portrait {
    max-width:380px
  }
  .founder h3 {
    font-size:30px
  }
  .founder p:not(.eyebrow) {
    font-size:14px
  }
  .service-list {
    padding-bottom:45px
  }
  .service-list>article {
    padding-block:32px;
    gap:14px
  }
  .service-list h2 {
    font-size:27px
  }
  .service-list p:not(.eyebrow) {
    font-size:14px
  }
  .service-tags {
    font-size:7px
  }
  .split-copy {
    grid-template-columns:1fr;
    gap:30px
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:45px;
    padding-block:45px 60px
  }
  .contact-details h2 {
    font-size:32px
  }
  .email-link {
    font-size:15px
  }
  .contact-location {
    margin-top:30px
  }
  .contact-form-panel {
    padding:25px 20px
  }
  .contact-form-panel h2 {
    font-size:25px
  }
  .form-row {
    grid-template-columns:1fr
  }
  .contact-form-panel input,.contact-form-panel select,.contact-form-panel textarea {
    font-size:16px
  }
  .site-footer {
    padding-top:45px
  }
  .footer-top {
    flex-direction:column;
    gap:35px;
    margin-bottom:40px
  }
  .footer-nav {
    column-gap:50px;
    row-gap:12px
  }
  .footer-bottom {
    flex-wrap:wrap;
    gap:15px
  }
  .footer-bottom>span:nth-child(2) {
    display:none
  }
  .footer-bottom>a {
    margin-left:auto
  }
  .footer-brand {
    font-size:24px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
/* Navigation remains usable if JavaScript is unavailable. */
@media(max-width:950px) {
  html.no-js .site-header {
    position:static
  }
  html.no-js .nav-wrap {
    flex-wrap:wrap;
    padding-block:20px
  }
  html.no-js .menu-toggle {
    display:none
  }
  html.no-js .site-header nav {
    position:static;
    display:flex;
    flex-wrap:wrap;
    flex-direction:row;
    gap:10px 20px;
    box-shadow:none;
    padding:10px 0;
    background:none;
    max-height:none
  }
  html.no-js .site-header nav>a {
    font-size:12px
  }
  html.no-js .site-header nav>.nav-contact {
    margin-top:0
  }
}
.no-js .filters {
  display:none
}
