/* ===========================================================
   Neoclease - brand system
   navy  #024C7B   (primary / "clease")
   red   #BC2A25   (accent / "neo")
   =========================================================== */

:root{
  --navy: #024C7B;
  --navy-dark: #01324F;
  --navy-tint: #EAF1F6;
  --red: #BC2A25;
  --red-dark: #96201C;
  --red-tint: #FBEAE9;
  --ink: #1A2530;
  --ink-soft: #4E5B67;
  --paper: #FFFFFF;
  --paper-soft: #F6F8FA;
  --line: #E3E9ED;
  --radius: 14px;
  --shadow: 0 4px 24px rgba(2,32,54,0.08);
  --shadow-lg: 0 12px 48px rgba(2,32,54,0.14);
  --maxw: 1160px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
html, body{ overflow-x: hidden; max-width: 100%; }
body{
  margin:0;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
h1,h2,h3,h4{ font-weight: 700; letter-spacing: -0.01em; margin: 0 0 .5em; color: var(--navy-dark); }
h2{ font-size: clamp(22px, 2.2vw, 28px); line-height: 1.2; }
p{ margin: 0 0 1em; }
.container{ max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(20px, 4vw, 44px); }
.eyebrow{
  display:inline-block; font-size: 13px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--red); margin-bottom: 14px;
}
.section{ padding: 88px 0; }
.section--tight{ padding: 64px 0; }
.section--soft{ background: var(--paper-soft); }
/* Collapse doubled whitespace where two sections share a background (no color change to justify the gap) */
.section:not(.section--soft):not(.section--navy) + .section:not(.section--soft):not(.section--navy),
.section--soft + .section--soft{ padding-top: 0; }
.section--navy{
  background: linear-gradient(160deg, var(--navy-dark) 0%, var(--navy) 60%, #036094 100%);
  color: #DCE8F0;
}
.section--navy h1, .section--navy h2, .section--navy h3{ color: #fff; }
.section--navy .eyebrow{ color: #F2F5F7; position: relative; padding-left: 14px; }
.section--navy .eyebrow::before{ content:""; position:absolute; left:0; top:2px; bottom:2px; width:3px; border-radius:2px; background: var(--red); }
.section--navy p.lede{ color: rgba(255,255,255,.82); }
.center{ text-align:center; }
.lede{ font-size: 19px; color: var(--ink-soft); max-width: 720px; }
.center .lede{ margin-left:auto; margin-right:auto; }

/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 14px 26px; border-radius: 999px; font-weight: 700; font-size: 13px;
  text-transform: uppercase; letter-spacing: .08em;
  border: 2px solid transparent; cursor:pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space: nowrap;
}
.btn:hover{ transform: translateY(-1px); }
.btn--primary{ background: var(--red); color:#fff; box-shadow: 0 6px 20px rgba(188,42,37,.25); }
.btn--primary:hover{ background: var(--red-dark); }
.btn--outline{ background: transparent; border-color: var(--navy); color: var(--navy); }
.btn--outline:hover{ background: var(--navy); color:#fff; }
.btn--ghost-light{ background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.35); color:#fff; }
.btn--ghost-light:hover{ background: var(--red); border-color: var(--red); color:#fff; }
.btn-row{ display:flex; gap:14px; flex-wrap: wrap; }
.center .btn-row{ justify-content:center; }

/* header / nav */
.site-header{
  position: sticky; top:0; z-index: 100;
  background: rgba(255,255,255,.92); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; gap: 20px; padding-top: 14px; padding-bottom: 14px; }
.nav__logo{ flex-shrink:0; }
.nav__logo img{ height: 30px; display:block; }
.nav__links{ display:flex; align-items:center; gap: 26px; list-style:none; margin:0; padding:0; }
.nav__cta{ flex-shrink:0; }
.nav__links a{ font-size: 15px; font-weight: 600; color: var(--ink-soft); padding: 6px 0; border-bottom: 2px solid transparent; }
.nav__links a:hover, .nav__links a.active{ color: var(--navy); border-color: var(--red); }
.nav__cta{ display:flex; align-items:center; gap: 18px; }
.nav__toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; z-index:201; }
.nav__toggle span{ display:block; width:24px; height:2px; background: var(--navy); margin:5px 0; border-radius:2px; transition: transform .2s ease, opacity .2s ease; }
.nav__toggle.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav__toggle.open span:nth-child(2){ opacity:0; }
.nav__toggle.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* Contact lives in the nav__cta button on desktop; this dropdown-only item is revealed at mobile widths */
.nav__mobile-contact{ display:none; }

/* switch to the hamburger before the horizontal nav gets cramped */
@media (max-width: 1100px){
  .nav{ position: relative; }
  .nav__toggle{ display:block; }
  /* hide the standalone Contact button (outline or red primary) on mobile - Contact lives in the dropdown instead */
  .nav__cta .btn{ display:none; }
  .nav__mobile-contact{ display:block; }
  /* compact dropdown card anchored under the hamburger - does not take over the screen */
  .nav__links{
    position: absolute; top: calc(100% + 12px); right: 0;
    width: min(240px, calc(100vw - 40px));
    flex-direction: column; align-items: stretch; gap: 2px;
    margin: 0; padding: 8px;
    background: #fff; border: 1px solid var(--line);
    border-radius: 14px; box-shadow: var(--shadow-lg);
    opacity: 0; transform: translateY(-8px);
    visibility: hidden; pointer-events: none;
    transition: opacity .18s ease, transform .18s ease, visibility .18s;
    z-index: 200;
  }
  .nav__links.open{ opacity:1; transform:none; visibility:visible; pointer-events:auto; }
  .nav__links li{ width:100%; }
  .nav__links a{
    display:block; width:100%; padding: 12px 14px; border-radius: 10px;
    font-size: 16px; font-weight:600; color: var(--ink); border:none;
  }
  .nav__links a:hover, .nav__links a.active{ background: var(--navy-tint); color: var(--navy); }
}

/* hero */
.hero{
  position: relative; overflow:hidden;
  background: linear-gradient(160deg, var(--navy-dark) 0%, var(--navy) 60%, #036094 100%);
  color: #fff; padding: 56px 0 66px;
}
.hero .container{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items:center; }
.hero h1{ color:#fff; font-size: clamp(32px, 4vw, 48px); line-height:1.1; margin-bottom: 18px; }
.hero p.lede{ color: rgba(255,255,255,.82); font-size: 18px; }
.hero .eyebrow{ color: #F2F5F7; position: relative; padding-left: 14px; }
.hero .eyebrow::before{ content:""; position:absolute; left:0; top:2px; bottom:2px; width:3px; border-radius:2px; background: var(--red); }
@media (max-width: 900px){ .hero .container{ grid-template-columns: 1fr; } }

/* interior page header - text top-aligned (first line starts at the same vertical point
   as the Home hero); min-height keeps the navy block the same size on every page */
.page-head{ padding: 56px 0 66px; min-height: 320px; box-sizing: border-box; }
.page-head > .container{ width: 100%; }
.page-head h1{ color:#fff; margin:0 0 14px; font-size: clamp(28px, 3vw, 38px); line-height:1.15; max-width:760px; }
.page-head p.lede{ margin:0; max-width:640px; }
@media (max-width: 600px){ .page-head{ padding: 44px 0 48px; min-height: 0; } }
/* Tighten the gap between the navy header (page-head or home hero) and the first content section */
.page-head + .section,
.hero + .section{ padding-top: 64px; }
@media (max-width: 600px){ .page-head + .section,
.hero + .section{ padding-top: 40px; } }

/* decorative helix */
.helix-wrap{ display:flex; align-items:center; justify-content:flex-end; }
.helix-wrap svg{ width: 100%; height: auto; max-width: 320px; }
/* once the hero collapses to one column the helix would sit alone on its own line - hide it rather than leave an awkward large graphic */
@media (max-width: 900px){ .helix-wrap{ display:none; } }

/* value bar */
.value-bar{ display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 48px; }
.value-card{
  background:#fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px 26px;
  border: 1px solid var(--line);
}
.value-card .icon{ width:42px; height:42px; margin-bottom:14px; }
.value-card h3{ font-size: 18px; margin-bottom:6px; }
.value-card p{ font-size: 14.5px; color: var(--ink-soft); margin:0; }
@media (max-width: 800px){ .value-bar{ grid-template-columns: 1fr; margin-top: 26px; } }

/* grid helpers */
.grid-2{ display:grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items:center; }
.grid-3{ display:grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
@media (max-width: 900px){ .grid-2{ grid-template-columns:1fr; gap:34px; } .grid-3{ grid-template-columns:1fr; } }

/* feature card */
.card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 30px; box-shadow: var(--shadow); }
.card h3{ font-size:19px; }
.diff-head{ display:flex; align-items:center; gap:14px; min-height:46px; margin-bottom:20px; }
.diff-head h3{ font-size:17px; line-height:1.25; }
@media (max-width:900px){ .diff-head{ min-height:0; margin-bottom:16px; } }
.card p{ color:var(--ink-soft); font-size:15px; margin:0; }
.card p.diff-eyebrow{ font-size:14px; font-weight:600; color:var(--ink); margin:2px 0 0; line-height:1.4; min-height:2.8em; }
.diff-stats{ display:flex; flex-wrap:wrap; gap:22px 30px; margin-top:14px; padding-top:0; }
.diff-stats--center{ justify-content:center; text-align:center; }
.diff-stats--row{ flex-wrap:nowrap; gap:26px; }
.diff-stats--row .diff-stat{ min-width:0; }
.diff-stats--row .diff-stat__num{ font-size:27px; }
.diff-stat__num{ font-size:32px; font-weight:800; color:var(--navy); line-height:1.02; letter-spacing:-.015em; }
.diff-stat__num .u{ font-size:16px; font-weight:700; color:var(--ink-soft); margin-left:3px; letter-spacing:0; }
.diff-stat__label{ font-size:12.5px; color:var(--ink-soft); margin-top:6px; line-height:1.35; }
.card p.diff-foot{ font-size:10px; font-weight:400; color:var(--ink-soft); opacity:.75; margin:30px 0 0; line-height:1.55; }
@media (max-width:900px){ .diff-stat__num{ font-size:28px; } }
.values-row{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px 40px; margin-top:26px; }
.values-row__item{ display:flex; flex-direction:column; align-items:center; max-width:170px; }
.values-row__name{ font-size:15px; font-weight:700; color:var(--ink); letter-spacing:.01em; }
.values-row__desc{ font-size:13px; color:var(--ink-soft); margin-top:2px; line-height:1.4; }
@media (max-width:700px){ .values-row{ gap:18px 24px; } }
#values .eyebrow{ font-size:17px; }
.values-row--lg{ gap:20px 52px; margin-top:34px; }
.values-row--lg .values-row__item{ max-width:190px; }
.values-row--lg .values-row__name{ font-size:18px; }
.values-row--lg .values-row__desc{ font-size:14.5px; margin-top:4px; }
.icon-badge{
  width:48px; height:48px; border-radius: 12px; display:flex; align-items:center; justify-content:center;
  background: var(--navy-tint); color: var(--navy); margin-bottom:16px;
}
.icon-badge.red{ background: var(--red-tint); color: var(--red); }
.icon-badge svg{ width:24px; height:24px; }

/* pipeline / stage gate */
.stage-gate{ display:flex; align-items:stretch; gap:0; margin: 48px 0 14px; }
.stage{
  flex:1; position:relative; padding: 26px 20px 22px; text-align:center;
  border-top: 4px solid var(--line); background: var(--paper-soft);
}
.stage:first-child{ border-radius: var(--radius) 0 0 var(--radius); }
.stage:last-child{ border-radius: 0 var(--radius) var(--radius) 0; }
.stage + .stage{ border-left: 1px solid var(--line); }
.stage .stage-num{ font-size:12px; font-weight:700; letter-spacing:.08em; color: var(--ink-soft); text-transform:uppercase; }
.stage h4{ margin: 8px 0 4px; font-size:16px; color: var(--navy-dark); }
.stage p{ font-size:13px; color: var(--ink-soft); margin:0; }
.stage--done{ border-top-color: var(--navy); }
.stage--done .stage-num{ color: var(--navy); }
.stage.active{ background:#fff; border-top-color: var(--red); box-shadow: var(--shadow); z-index:1; }
.stage.active .stage-num{ color: var(--red); }
.stage.active::after{
  content:"Current stage"; position:absolute; bottom:-30px; left:50%; transform:translateX(-50%);
  font-size:12px; font-weight:700; color:#fff; background: var(--red); padding:4px 12px; border-radius: 999px; white-space:nowrap;
}
@media (max-width: 800px){
  .stage-gate{ flex-direction:column; }
  .stage{ border-radius:0 !important; border-top:1px solid var(--line); border-left:none !important; }
  .stage:first-child{ border-radius: var(--radius) var(--radius) 0 0 !important; }
  .stage:last-child{ border-radius: 0 0 var(--radius) var(--radius) !important; }
  .stage.active{ border-left: 4px solid var(--red) !important; border-top:1px solid var(--line); }
  .stage.active::after{ display:none; }
}

.program-card{
  display:grid; grid-template-columns: 220px 1fr; gap: 30px; background:#fff; border:1px solid var(--line);
  border-radius: var(--radius); padding: 30px; box-shadow: var(--shadow); align-items:center;
}
.program-card .target-badge{
  width:100%; aspect-ratio:1; border-radius:50%; background: radial-gradient(circle at 30% 30%, #ffffff22, transparent), linear-gradient(140deg, var(--navy), var(--red));
  display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:15px; text-align:center; padding: 10px;
}
@media (max-width: 720px){ .program-card{ grid-template-columns:1fr; text-align:center; } .program-card .target-badge{ max-width:160px; margin:0 auto; } }

.pill{ display:inline-block; font-size:12.5px; font-weight:700; padding:4px 12px; border-radius:999px; background: var(--navy-tint); color: var(--navy); letter-spacing:.02em; }
.pill.red{ background: var(--red-tint); color: var(--red); }

/* news cards */
.news-card{
  display:block; padding:0; overflow:hidden; text-decoration:none; color:inherit;
  transition: box-shadow .15s ease, transform .15s ease;
}
.news-card:hover{ box-shadow: 0 14px 32px rgba(2,32,54,0.14); transform: translateY(-3px); }
.news-card .news-card__img{
  aspect-ratio: 1 / 1; width:100%; background-size:cover; background-position:center; background-color: var(--navy-tint);
  border-bottom:1px solid var(--line);
}
.news-card .news-card__body{ padding:24px 26px 28px; }
.news-card .news-card__body h3{ margin-top:14px; }
.news-card .news-card__body p{ margin-bottom:0; }
.news-card .news-card__meta{ font-size:13px; color:var(--ink-soft); margin-top:12px; }
#updates{ padding-bottom:40px; }
#share{ padding-top:48px; }
.news-more{ text-align:left; margin-top:36px; }
.text-link{ display:inline-flex; align-items:center; gap:8px; font-size:19px; font-weight:600; color:var(--ink-soft); text-decoration:underline; text-underline-offset:4px; }
.text-link:hover{ color:var(--navy); }
.text-link svg{ width:20px; height:20px; }

/* article (native news post) */
.article{ padding: 40px 0 72px; }
.article > .container{ max-width: 760px; }
.article__back{ display:inline-flex; align-items:center; gap:8px; font-size:19px; font-weight:600; color: var(--ink-soft); text-decoration:none; margin-bottom: 28px; }
.article__back:hover{ color: var(--navy); }
.article__back svg{ width:20px; height:20px; }
.article__meta{ display:flex; align-items:center; gap:14px; margin-bottom:16px; flex-wrap:wrap; }
.article__meta .article__read{ font-size:13px; color: var(--ink-soft); }
.article h1{ font-size: clamp(28px, 3.4vw, 40px); line-height:1.18; margin:0 0 14px; }
.article__byline{ font-size:14px; color: var(--ink-soft); margin: 0 0 30px; }
.article__cover{ margin: 0 0 34px; border-radius: var(--radius); overflow:hidden; border:1px solid var(--line); background: var(--navy-tint); }
.article__cover img{ width:100%; height: clamp(240px, 38vw, 420px); object-fit:cover; display:block; }
.article__body{ font-size:17px; line-height:1.75; color: var(--ink); }
.article__body p{ margin: 0 0 20px; }
.article__body h2{ font-size:24px; line-height:1.3; margin: 36px 0 14px; }
.article__body h3{ font-size:19px; line-height:1.35; margin: 30px 0 12px; }
.article__body ul, .article__body ol{ margin: 0 0 20px; padding-left: 22px; }
.article__body li{ margin-bottom: 8px; }
.article__body a{ color: var(--navy); font-weight:600; border-bottom:1px solid var(--navy); }
.article__body a:hover{ color: var(--red); border-color: var(--red); }
.article__body blockquote{ margin: 26px 0; padding: 4px 0 4px 22px; border-left:3px solid var(--red); font-size:19px; line-height:1.6; color: var(--ink-soft); font-style:italic; }
.article__source{ margin-top: 40px; padding-top: 22px; border-top:1px solid var(--line); font-size:14px; color: var(--ink-soft); }
.article__source a{ color: var(--navy); font-weight:600; }

/* team */
.team-card{ text-align:center; }
.avatar{
  width:132px; height:132px; border-radius:50%; margin: 0 auto 18px; display:flex; align-items:center;
  justify-content:center; color:#fff; font-weight:800; font-size:34px; letter-spacing:.02em;
  overflow:hidden;
}
.avatar img{ width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.team-card h3{ font-size:18px; margin-bottom:2px; }
.team-card .role{ font-size:13.5px; color:var(--red); font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:14px; }
.team-card p{ font-size:14.5px; color:var(--ink-soft); text-align:left; }
.team-card a.link{ font-size:13.5px; font-weight:700; color:var(--navy); border-bottom:1px solid var(--navy); }

/* logos strip */
.logo-strip{ display:flex; flex-wrap:wrap; gap: 40px; align-items:center; justify-content:center; opacity:.75; }
.logo-chip{
  font-weight:700; color: var(--ink-soft); font-size:15px; letter-spacing:.03em; border:1px solid var(--line);
  padding: 10px 20px; border-radius: 10px; background:#fff;
}
/* sponsor / supporter logo strip (scrolling marquee) */
.logo-marquee{
  margin-top: 44px; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.logo-track{ display: flex; align-items: center; gap: 72px; width: max-content; animation: logo-scroll 46s linear infinite; }
.logo-track img{ height: 60px; width: auto; flex: none; opacity: .9; }
.logo-marquee:hover .logo-track{ animation-play-state: paused; }
@keyframes logo-scroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }
@media (max-width: 720px){ .logo-track{ gap: 48px; } .logo-track img{ height: 46px; } }
@media (prefers-reduced-motion: reduce){
  .logo-marquee{ -webkit-mask-image:none; mask-image:none; }
  .logo-track{ animation: none; flex-wrap: wrap; justify-content: center; gap: 32px 48px; width: auto; }
}

/* uniform body text: match secondary paragraphs to the lede (team decision) */
.lede ~ p{ font-size: 19px; color: var(--ink-soft); max-width: 720px; }

/* investors */
.stat-row{ display:grid; grid-template-columns: repeat(4,1fr); gap: 22px; text-align:center; }
.stat{ padding: 10px; }
.stat .num{ font-size: 34px; font-weight:800; color: var(--navy); }
.stat .label{ font-size:13.5px; color:var(--ink-soft); }
@media (max-width: 800px){ .stat-row{ grid-template-columns: repeat(2,1fr); } }

.contact-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
.contact-tile{
  border:1px solid var(--line); border-radius: var(--radius); padding: 26px 22px; background:#fff;
  transition: box-shadow .15s ease, transform .15s ease;
}
.contact-tile:hover{ box-shadow: var(--shadow); transform: translateY(-2px); }
.contact-tile h4{ margin-bottom:4px; font-size:16px; }
.contact-tile p{ font-size:13.5px; color:var(--ink-soft); margin-bottom:14px; }
@media (max-width: 800px){ .contact-grid{ grid-template-columns: 1fr; } }

/* form */
.form-wrap{ background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 34px; box-shadow: var(--shadow); }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap:16px; margin-bottom:16px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-size:13px; font-weight:700; color:var(--ink-soft); }
.field input, .field select, .field textarea{
  border:1px solid var(--line); border-radius:10px; padding: 12px 14px; font-size:15px; font-family:inherit; color:var(--ink);
  background: var(--paper-soft);
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--navy); outline-offset:1px; background:#fff; }
@media (max-width: 640px){ .form-row{ grid-template-columns:1fr; } }

/* CTA banner (contained card - kept for any inline use) */
.cta-banner{
  background: linear-gradient(120deg, var(--navy-dark), var(--navy)); color:#fff; border-radius: 24px;
  padding: 56px 48px; text-align:center; position:relative; overflow:hidden;
}
.cta-banner h2{ color:#fff; }
.cta-banner p{ color: rgba(255,255,255,.82); }

/* CTA divider - full-bleed navy strip used as the last section before the footer */
.cta-divider{
  background: linear-gradient(120deg, var(--navy-dark), var(--navy)); color:#fff;
  text-align:center; padding: 76px 0;
}
.cta-divider h2{ color:#fff; }
.cta-divider p{ color: rgba(255,255,255,.82); }

/* contact page - fill the first screen so the footer sits below a clean scroll instead of peeking in */
#contact-form{ min-height: calc(100vh - 73px); display:flex; align-items:center; }

/* footer */
.site-footer{ background: var(--navy-dark); color: rgba(255,255,255,.7); padding: 56px 0 26px; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 40px; }
.footer-grid h4{ color:#fff; font-size:14px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:14px; }
.footer-grid ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.footer-grid a{ font-size:14.5px; color: rgba(255,255,255,.7); }
.footer-grid a:hover{ color:#fff; }
.footer-logo{ display:inline-block; margin-bottom:14px; }
.footer-logo img{ height:30px; display:block; margin:0; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; }
@media (max-width: 800px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }

/* keep anchor links (e.g. science.html#pipeline) clear of the sticky header */
[data-toc]{ scroll-margin-top: 90px; }
/* #pipeline targets the section's inner content, so it lands just under the header
   instead of below the section's top padding */
#pipeline{ scroll-margin-top: 84px; }

/* mobile spacing */
@media (max-width: 600px){
  .container{ padding: 0 20px; }
  /* shrink the logo so it stays in proportion with the hamburger on small screens */
  .nav__logo img{ height: 22px; }
  .section{ padding: 56px 0; }
  .section--tight{ padding: 44px 0; }
  .hero{ padding: 40px 0 48px; }
  .cta-divider{ padding: 56px 0; }
  .cta-banner{ padding: 40px 24px; }
}

/* misc */
.divider{ height:1px; background: var(--line); margin: 64px 0; }
.tag-list{ display:flex; flex-wrap:wrap; gap:10px; }
.list-check{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:14px; }
.list-check li{ display:flex; gap:12px; align-items:flex-start; color:var(--ink-soft); }
.list-check li svg{ flex:none; width:20px; height:20px; color: var(--red); margin-top:2px; }

/* ---- Platform closed-loop engine (science page) ---- */
.loopcard{ background:#F6F9FC; border:1px solid var(--line); border-radius:18px; padding:20px 18px 14px; position:relative; box-shadow:0 12px 34px rgba(2,76,123,.07); }
.loopwrap{ position:relative; max-width:900px; margin:0 auto; }
.loopsvg{ width:100%; height:auto; display:block; overflow:visible; }
.loop-ring{ fill:none; stroke:#CBDBE6; stroke-width:2; stroke-dasharray:5 7; }
.lnode{ cursor:pointer; }
.lnode rect{ fill:#fff; stroke:var(--c,#8FC4E2); stroke-width:2; transition:.35s; }
.lnode text.t{ font-weight:800; font-size:16.5px; fill:#122C3D; }
.lnode text.n{ font-size:11px; font-weight:800; letter-spacing:.1em; fill:var(--c,#8FC4E2); }
.lnode.on rect{ fill:var(--c,#0E6FB0); stroke:var(--c,#0E6FB0); filter:drop-shadow(0 5px 14px rgba(18,44,61,.22)); }
.lnode.on text.n{ fill:var(--c,#8FC4E2); }
.lnode.on text.t{ fill:#fff; }
.lnode .ic{ stroke:var(--c,#8FC4E2); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.lnode .icf{ fill:var(--c,#8FC4E2); stroke:none; }
.lnode.on .ic{ stroke:#fff; }
.lnode.on .icf{ fill:#fff; }
.loophub{ position:absolute; left:50%; top:47%; transform:translate(-50%,-50%); width:30%; max-width:270px; text-align:center; pointer-events:none; }
.loop-editor{ width:100%; display:block; filter:drop-shadow(0 6px 16px rgba(18,44,61,.14)); animation:editorSpin 50s linear infinite; }
@keyframes editorSpin{ to{ transform:rotate(360deg); } }
.loop-cap{ text-align:center; max-width:680px; margin:2px auto 10px; line-height:1.4; min-height:82px; display:flex; flex-direction:column; align-items:center; gap:4px; }
.loop-cap .k{ font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--red); }
.loop-cap b{ color:var(--ink); font-size:21px; font-weight:700; line-height:1.25; }
.loop-cap #hubD{ font-size:13.5px; color:var(--ink-soft); line-height:1.5; }
.loop-points{ list-style:none; margin:-60px auto 30px; padding:0; max-width:720px; display:flex; flex-wrap:wrap; justify-content:center; gap:14px; position:relative; }
.loop-points li{ flex:1 1 150px; max-width:186px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; padding:11px 11px; background:#fff; border:1px solid var(--line); border-radius:11px; }
.lp-ic{ width:32px; height:32px; border-radius:50%; background:var(--red-tint); display:flex; align-items:center; justify-content:center; flex:none; }
.lp-ic svg{ width:17px; height:17px; stroke:var(--red); stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.lp-txt{ display:flex; flex-direction:column; gap:1px; }
.lp-txt b{ font-size:12.5px; color:var(--ink); font-weight:700; }
.lp-txt em{ font-style:normal; font-size:11px; color:var(--ink-soft); line-height:1.3; }
@media(max-width:720px){ .loop-points{ margin:12px auto 6px; } .loop-points li{ flex:1 1 140px; } }
.loop-highlights{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px; margin:14px auto 0; max-width:640px; }
.loop-highlights > span:not(.sep){ font-weight:600; font-size:15px; color:var(--ink-soft); }
.loop-highlights .sep{ width:7px; height:7px; border-radius:50%; background:var(--red); flex:none; }
.loop-controls{ display:flex; align-items:center; gap:10px; justify-content:center; margin-top:16px; }
.loop-controls button{ background:transparent; color:var(--ink-soft); border:1px solid var(--line); border-radius:8px; padding:5px 12px; font-size:12px; font-weight:600; cursor:pointer; text-transform:none; letter-spacing:normal; }
.loop-controls button:hover{ background:#F2F5F7; color:var(--ink); }
.loop-controls .hint{ color:var(--ink-soft); font-size:11.5px; }
.loop-foot{ text-align:center; font-size:12.5px; color:var(--ink-soft); margin:-40px auto 2px; max-width:760px; }
@media(max-width:720px){ .loop-foot{ margin-top:8px; } }
.loop-foot b{ color:var(--red); }
@media(max-width:720px){ .loophub{ width:44%; } .loophub p{ display:none; } }
@media (prefers-reduced-motion: reduce){ .loop-editor{ animation:none; } }

/* ---- Video modal (How it works) ---- */
.video-modal{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:24px; }
.video-modal.open{ display:flex; }
.video-modal__backdrop{ position:absolute; inset:0; background:rgba(10,20,30,.72); backdrop-filter:blur(2px); }
.video-modal__dialog{ position:relative; width:min(960px,100%); background:#000; border-radius:14px; box-shadow:0 24px 60px rgba(0,0,0,.4); overflow:hidden; }
.video-modal__player{ width:100%; display:block; aspect-ratio:16/9; background:#000; }
.video-modal__close{ position:absolute; top:10px; right:10px; z-index:2; width:38px; height:38px; border-radius:50%; border:none; background:rgba(255,255,255,.92); color:var(--ink); font-size:24px; line-height:1; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.35); display:flex; align-items:center; justify-content:center; }
.video-modal__close:hover{ background:var(--red); color:#fff; }
@media(max-width:560px){ .video-modal{ padding:14px; } .video-modal__close{ top:8px; right:8px; } }
