@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/dm-sans-9fea608a947e.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/dm-sans-9fea608a947e.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/dm-sans-9fea608a947e.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Libre Caslon Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/libre-caslon-display-84267e937417.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Site styles */
.flow-mask { mask-type: alpha; }
.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 100;
  padding: 12px 20px;
  background: #f4f2ee;
  color: #0a2037;
  transform: translateY(-160%);
}
.skip-link:focus { transform: none; }
a:focus-visible, button:focus-visible { outline: 3px solid #00778a; outline-offset: 5px; }
input:focus-visible, textarea:focus-visible { outline: 2px solid #00778a; outline-offset: 3px; }
.dark-section :focus-visible, .site-header :focus-visible { outline-color: #ff9432; }
main:focus { outline: none; }
.motion-control {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: 4px 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #8cabb9;
  cursor: pointer;
}
.motion-control:hover, .motion-control:focus-visible { color: #d5e4eb; background: rgba(156,207,222,.08); }
.motion-icon-play, .motion-control[data-paused="true"] .motion-icon-pause { display: none; }
.motion-control[data-paused="true"] .motion-icon-play { display: block; }
.motion-control[hidden] { display: none; }
.motion-paused .mobile-stage, .motion-paused .mobile-flow-connector:before,
.motion-paused .scroll-cue span, .flow-idle .mobile-stage, .flow-idle .mobile-flow-connector:before {
  animation-play-state: paused;
}
.error-page { min-height: 100svh; display: grid; place-items: center; padding: 80px 24px; }
.error-page > div { max-width: 800px; }
.error-page .wordmark { margin-bottom: 60px; }
.error-page h1 { font-size: clamp(2.5rem, 7vw, 6rem); }
.error-page .eyebrow { color: #9db6c9; }
.footer-meta { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px 18px; }
.footer a, .footer button { color: inherit; }
.footer button { font: inherit; padding: 0; background: none; border: 0; text-decoration: underline; cursor: pointer; min-height: 32px; }
.consent-banner, .consent-dialog { color: #0a2037; background: #f4f2ee; border: 1px solid #a7b3bc; border-radius: 6px; box-shadow: 0 12px 48px rgba(0,0,0,.3); font-size: .9rem; line-height: 1.6; }
.consent-banner { position: fixed; z-index: 100; left: 50%; bottom: 16px; transform: translateX(-50%); width: min(1040px, calc(100% - 32px)); padding: 24px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; max-height: calc(100svh - 32px); overflow-y: auto; }
.consent-banner[hidden] { display: none; }
.consent-banner h2, .consent-dialog h2 { font-family: 'DM Sans', Arial, sans-serif; font-size: 1.1rem; font-weight: 600; letter-spacing: 0; line-height: 1.4; margin: 0 0 8px; }
.consent-banner p { margin: 0; }
.consent-banner a, .consent-dialog a, .info-page a { color: #005d70; text-decoration: underline; text-underline-offset: 3px; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.consent-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 11px 17px; border: 1px solid #0a2037; border-radius: 4px; background: #0a2037; color: #fff; font: inherit; font-size: .85rem; cursor: pointer; text-decoration: none; }
.consent-button:hover { background: #173c53; }
.consent-button:disabled { opacity: .55; cursor: not-allowed; }
.consent-dialog { width: min(600px, calc(100% - 32px)); max-height: calc(100svh - 32px); padding: 28px; }
.consent-dialog::backdrop { background: rgba(3,19,34,.65); }
.consent-close { background: transparent; border: 0; color: #0a2037; padding: 10px 0; min-height: 44px; font: inherit; text-decoration: underline; cursor: pointer; margin-top: 8px; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.info-header .shell { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.contact-back { color: #b9cbd6; font-size: .8rem; }
.info-header .wordmark img { width: min(190px, 36vw); height: auto; }
.contact-back span { margin-left: 8px; }
.contact-page { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(36px, 7vw, 100px); padding-top: 90px; padding-bottom: 90px; align-items: start; }
.contact-intro h1 { font-size: clamp(3.6rem, 6.5vw, 6rem); line-height: 1.02; margin-bottom: 28px; }
.contact-intro > p { max-width: 360px; color: #4e6171; }
.contact-intro .contact-context { font-size: .85rem; margin-top: 38px; }
.contact-form { background: #fff; border: 1px solid #d9dfdf; border-radius: 6px; padding: clamp(24px, 3vw, 40px); min-width: 0; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-field { margin-bottom: 22px; min-width: 0; }
.contact-field label { display: block; margin-bottom: 8px; color: #18344a; font-size: .85rem; font-weight: 500; }
.contact-field label span { color: #61717c; font-weight: 400; font-size: .75rem; }
.contact-field input, .contact-field textarea { display: block; width: 100%; min-height: 46px; padding: 11px 12px; border: 1px solid #9baab2; border-radius: 3px; background: #fcfcfb; color: #0a2037; font: inherit; font-size: 1rem; }
.contact-field textarea { resize: vertical; min-height: 140px; }
.contact-hint, .contact-privacy { font-size: .75rem; line-height: 1.6; color: #526577; }
.contact-hint { margin-top: 8px; }
.contact-privacy { margin-bottom: 22px; }
.contact-privacy a { text-decoration: underline; text-underline-offset: 3px; color: #005d70; }
.contact-submit { border: 1px solid #0a2037; background: #0a2037; color: #fff; font: inherit; cursor: pointer; }
.contact-submit:hover { background: #17475b; }
.contact-submit:disabled { opacity: .65; cursor: wait; }
.contact-status { font-size: .85rem; margin-top: 16px; line-height: 1.6; }
.contact-status:empty { display: none; }
.contact-status[data-state="error"] { color: #9c3029; }
.contact-status[data-state="success"] { color: #17604e; }
.contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media(max-width: 720px) {
  .contact-page { grid-template-columns: 1fr; padding-top: 52px; padding-bottom: 56px; }
  .contact-intro h1 { font-size: clamp(3.2rem, 12vw, 4.5rem); }
  .contact-intro .contact-context { margin-top: 20px; }
  .contact-back { font-size: .7rem; }
  .contact-fields { grid-template-columns: 1fr; gap: 0; }
}
.info-header { padding: 28px 0; }
.info-page { max-width: 880px; padding-top: 64px; padding-bottom: 80px; }
.info-page h1 { font-size: clamp(3rem, 7vw, 5rem); margin-bottom: 32px; }
.info-page h2 { font-size: clamp(1.8rem, 4vw, 2.5rem); line-height: 1.1; margin: 40px 0 20px; }
.info-page li { margin-bottom: 12px; }
.draft-notice { border: 1px solid #a26725; border-left-width: 4px; padding: 20px; background: #fff6e9; margin-bottom: 28px; }
.draft-notice p { margin: 8px 0 0; }
.review-placeholders { padding-left: 22px; }
@media (max-width: 900px) { .footer-meta { justify-content: flex-start; } .consent-banner { grid-template-columns: 1fr; gap: 16px; } }
@media (max-width: 560px) { .consent-banner { padding: 20px; } .consent-actions { display: grid; grid-template-columns: 1fr 1fr; } .consent-button { padding: 11px 10px; } .consent-dialog { padding: 24px 20px; } }
@media (max-width: 900px) {
  html:not(.js-ready) .site-header { position: relative; height: auto; flex-direction: column; align-items: flex-start; gap: 16px; background: #06192c; padding: 24px 4.5vw; }
  html:not(.js-ready) .nav { display: flex; flex-wrap: wrap; gap: 20px; }
  html:not(.js-ready) .menu-button { display: none; }
}
:root {
  --navy:#06192c;
  --navy2:#031322;
  --stone:#f4f2ee;
  --white:#fff;
  --ink:#0a2037;
  --muted:#5c6c7d;
  --teal:#00a9bd;
  --orange:#ff7900;
  --line:rgba(8,31,54,.14)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  font-family:'DM Sans',Arial,sans-serif;
  color:var(--ink);
  background:var(--stone);
  font-size:16px;
  line-height:1.55
}
h1,h2,h3,p {
  margin-top:0
}
h1,h2,h3 {
  font-family:'Libre Caslon Display',Georgia,serif;
  font-weight:400;
  line-height:.98;
  letter-spacing:-.025em
}
h1 {
  font-size:clamp(3.6rem,6.3vw,7.1rem);
  max-width:850px;
  margin-bottom:28px
}
h2 {
  font-size:clamp(2.8rem,4.7vw,5.2rem);
  margin-bottom:28px
}
h3 {
  font-size:2rem;
  margin-bottom:10px
}
.shell {
  width:min(1380px,calc(100% - 9vw));
  margin:0 auto
}
.dark-section {
  background:var(--navy);
  color:#fff
}
.light-section {
  background:var(--stone)
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.25em;
  font-size:.72rem;
  font-weight:600;
  margin-bottom:18px;
  color:#526577
}
.dark-section .eyebrow {
  color:#9db6c9
}
.site-header {
  position:fixed;
  z-index:50;
  top:0;
  left:0;
  width:100%;
  height:86px;
  padding:0 4.5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:white;
  transition:.35s ease
}
.site-header.scrolled {
  height:70px;
  background:rgba(6,25,44,.88);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,.08)
}
.wordmark {
  font-size:1.15rem;
  letter-spacing:.48em;
  color:inherit;
  text-decoration:none;
  white-space:nowrap
}
.nav {
  display:flex;
  align-items:center;
  gap:34px
}
.nav a {
  color:inherit;
  text-decoration:none;
  font-size:.84rem
}
.nav-cta {
  border:1px solid rgba(255,255,255,.65);
  border-radius:999px;
  padding:10px 22px
}
.menu-button {
  display:none;
  background:none;
  border:0
}
.hero {
  min-height:100vh;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center
}
.hero-inner {
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding-top:90px;
  min-height:100vh
}
.hero-copy {
  display:flex;
  flex-direction:column;
  align-items:center
}
.hero-copy h1 {
  max-width:1000px
}
.hero-copy p {
  font-size:1.15rem;
  max-width:720px;
  color:#c9d4dd;
  margin-bottom:34px
}
.button {
  display:inline-flex;
  align-items:center;
  gap:16px;
  text-decoration:none;
  border-radius:999px;
  padding:13px 25px;
  font-size:.9rem;
  transition:.25s
}
.button:hover {
  transform:translateY(-2px)
}
.button-outline {
  color:white;
  border:1px solid rgba(255,255,255,.62)
}
.button-outline:hover {
  border-color:var(--teal);
  box-shadow:0 0 28px rgba(0,169,189,.18)
}
.scroll-cue {
  position:absolute;
  z-index:3;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:#8ba0b2
}
.scroll-cue span {
  display:inline-block;
  margin-left:8px;
  animation:bob 1.7s ease-in-out infinite
}
@keyframes bob {
  50% {
    transform:translateY(5px)
  }
}
.section {
  padding:120px 0
}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9vw;
  align-items:start
}
.section-intro>p,.section-intro>div>p {
  font-size:1.08rem;
  color:#4d6174;
  padding-top:32px
}
.capabilities {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:65px;
  border-top:1px solid var(--line)
}
.capability {
  padding:48px 50px 0 0;
  min-height:300px
}
.capability+ .capability {
  border-left:1px solid var(--line);
  padding-left:50px
}
.capability p {
  color:#52677a;
  max-width:350px
}
.intelligence {
  position:relative;
  overflow:hidden
}
.intelligence:before {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 75% 45%,rgba(0,169,189,.08),transparent 28%)
}
.intelligence-grid {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:7vw;
  align-items:center
}
.intelligence p {
  color:#c0ced8;
  max-width:510px
}
.team-section {
  background:#ece9e3;
  padding:120px 0
}
.team-heading {
  margin-bottom:60px
}
.team-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6vw
}
.person {
  display:block
}
.person:hover img {
  transform:scale(1.025);
  filter:saturate(1) contrast(1)
}
.person h3 {
  font-size:1.75rem;
  margin-bottom:5px
}
.role {
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.13em;
  color:#526577;
  margin-bottom:18px
}
.person p {
  font-size:.92rem;
  color:#4e6171
}
.contact {
  position:relative;
  overflow:hidden;
  padding:110px 0 90px
}
.contact-grid {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10vw;
  align-items:center
}
.contact h2 {
  max-width:700px;
  margin-bottom:0
}
.contact-copy p {
  color:#c0ced8;
  max-width:550px;
  margin-bottom:28px
}
.footer {
  border-top:1px solid rgba(255,255,255,.1);
  padding:28px 0;
  color:#92a6b6;
  font-size:.74rem
}
.footer-inner {
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:30px
}
.footer .wordmark {
  color:#fff;
  font-size:.9rem
}
.reveal-ready .reveal {
  opacity:0;
  transform:translateY(28px);
  transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)
}
.reveal-ready .reveal.is-visible {
  opacity:1;
  transform:none
}
.delay-1 {
  transition-delay:.12s
}
.delay-2 {
  transition-delay:.24s
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  .reveal-ready .reveal {
    opacity:1;
    transform:none;
    transition:none
  }
  .scroll-cue span {
    animation:none
  }
}
@media(max-width:900px) {
  .nav {
    display:none
  }
  .menu-button {
    display:block;
    width:44px;
    height:44px
  }
  .menu-button span {
    display:block;
    width:22px;
    height:1px;
    background:#fff;
    margin:6px
  }
  .nav.open {
    display:flex;
    position:absolute;
    top:70px;
    left:0;
    width:100%;
    background:var(--navy);
    padding:24px 4.5vw;
    flex-direction:column;
    align-items:flex-start
  }
  .split,.intelligence-grid,.contact-grid {
    grid-template-columns:1fr
  }
  .hero {
    padding:120px 0 70px
  }
  .capabilities,.team-grid {
    grid-template-columns:1fr
  }
  .capability+.capability {
    border-left:0;
    padding-left:0
  }
  .capability {
    border-bottom:1px solid var(--line);
    padding-bottom:35px
  }
  .person {
    display:block
  }
  .footer-inner {
    grid-template-columns:1fr;
    gap:12px
  }
}
@media(max-width:560px) {
  .shell {
    width:min(100% - 40px,1380px)
  }
  h1 {
    font-size:3.2rem
  }
  h2 {
    font-size:2.8rem
  }
  .section {
    padding:85px 0
  }
  .person {
    grid-template-columns:1fr
  }
  .team-grid {
    gap:70px
  }
}
/* V3 refinements */
.hero-copy {
  max-width:1080px;
  margin:auto
}
.hero-copy h1 {
  max-width:1080px
}
.hero:after {
  content:"";
  position:absolute;
  width:70vw;
  height:55vw;
  left:50%;
  top:42%;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(20,65,91,.23),transparent 62%);
  pointer-events:none
}
.hero-inner {
  z-index:2
}
/* Data and intelligence flow */
.intelligence-grid {
  grid-template-columns:minmax(275px,.64fr) minmax(0,1.36fr);
  gap:4.5vw
}
.intelligence-visual {
  position:relative;
  margin:0;
  width:100%;
  min-width:0;
  isolation:isolate
}
.intelligence-visual:before {
  content:"";
  position:absolute;
  inset:9% 11%;
  background:radial-gradient(ellipse,rgba(0,169,189,.12),transparent 68%);
  filter:blur(26px);
  pointer-events:none
}
.flow-svg {
  position:relative;
  display:block;
  width:100%;
  height:auto;
  overflow:visible
}
.flow-svg text {
  font-family:'DM Sans',Arial,sans-serif;
  fill:#aabcc9;
  font-size:11px;
  letter-spacing:.01em
}
.flow-svg .flow-heading text {
  font-size:10px;
  letter-spacing:.19em;
  fill:#d9e6ec;
  font-weight:600
}
.flow-svg .flow-grid path {
  stroke:rgba(255,255,255,.035);
  stroke-width:1;
  fill:none
}
.flow-svg .source-labels text {
  fill:#c3d2dc;
  font-size:12px
}
.flow-svg .wire {
  stroke-linecap:round;
  opacity:.64
}
.flow-svg .wire.teal {
  stroke:#00a9bd
}
.flow-svg .wire.orange {
  stroke:#ff7900
}
.flow-svg .wire.white {
  stroke:#d5e1e8
}
.flow-svg .wire.faint {
  stroke:#7ca7b5;
  opacity:.18;
  stroke-width:1
}
.flow-svg .source-dots circle,.flow-svg .outcome-dots circle {
  filter:drop-shadow(0 0 6px currentColor)
}
.flow-svg .teal-dot {
  fill:#00a9bd;
  color:#00a9bd
}
.flow-svg .orange-dot {
  fill:#ff7900;
  color:#ff7900
}
.flow-svg .white-dot {
  fill:#dce8ef;
  color:#dce8ef
}
.flow-svg .pane {
  stroke:url(#paneEdge);
  stroke-width:1.1;
  filter:drop-shadow(0 12px 12px rgba(0,0,0,.3))
}
.flow-svg .pane-middle {
  stroke:#39bacb;
  stroke-width:1.4;
  filter:drop-shadow(0 0 10px rgba(0,169,189,.18))
}
.flow-svg .layer-depth {
  fill:url(#paneDepth);
  stroke:rgba(134,197,212,.25);
  stroke-width:.65
}
.flow-svg .layer-spines {
  fill:none;
  stroke:rgba(144,205,219,.2);
  stroke-width:.8;
  stroke-dasharray:3 5
}
.flow-svg .layer-contours {
  fill:none;
  stroke:rgba(185,227,235,.25);
  stroke-width:.8
}
.flow-svg .layer-contours .core-contour {
  stroke:#55d6df;
  stroke-opacity:.55
}
.flow-svg .layer-detail {
  fill:none;
  stroke:rgba(133,202,216,.19);
  stroke-width:.7
}
.flow-svg .outcomes .outcome-title {
  fill:#e7f0f4;
  font-size:10px;
  letter-spacing:.085em;
  font-weight:600
}
.flow-svg .outcomes .teal-text {
  fill:#16c0d1
}
.flow-svg .outcomes .orange-text {
  fill:#ff9432
}
.flow-svg .outcomes text:not(.outcome-title) {
  font-size:10px
}
.flow-highlight {
  pointer-events:none
}
@media(max-width:900px) {
  .intelligence-grid {
    grid-template-columns:1fr;
    gap:32px
  }
  .intelligence-visual {
    max-width:830px;
    margin:auto
  }
}
@media(max-width:560px) {
  .intelligence-visual {
    width:calc(100% + 20px);
    margin-left:-10px
  }
  .flow-svg .source-labels text,.flow-svg .outcomes text:not(.outcome-title) {
    font-size:12px
  }
  .flow-svg .flow-heading text,.flow-svg .outcomes .outcome-title {
    font-size:10.5px
  }
}
@media(prefers-reduced-motion:reduce) {
  .flow-highlight {
    display:none
  }
}
/* Dedicated vector wordmark */
.wordmark {
  display:inline-flex;
  align-items:center;
  line-height:1;
  letter-spacing:normal
}
.wordmark img {
  display:block;
  width:190px;
  height:auto
}
.footer .wordmark img {
  width:150px
}
@media(max-width:560px) {
  .wordmark img {
    width:166px
  }
  .footer .wordmark img {
    width:145px
  }
}
/* Align each capability from label through description after removing icons. */
.capabilities {
  align-items:stretch
}
.capability {
  display:flex;
  flex-direction:column;
  padding-top:44px
}
.capability .eyebrow {
  margin-bottom:15px
}
.capability h3 {
  min-height:2em
}
.capability p {
  margin-bottom:0
}
@media(max-width:900px) {
  .capability h3 {
    min-height:0
  }
}
/* Keep fixed navigation clear of section headings and anchor targets. */
html {
  scroll-padding-top:94px
}
@media(max-width:900px) {
  .nav.open {
    top:100%
  }
  .capabilities {
    margin-top:42px
  }
  .capability {
    min-height:0;
    padding-top:30px;
    padding-bottom:30px
  }
}
/* A readable,compact rendering of the intelligence flow on narrow screens. */
.mobile-intelligence {
  display:none
}
@media(max-width:640px) {
  .flow-svg {
    display:none
  }
  .intelligence-visual {
    width:100%;
    margin:0
  }
  .mobile-intelligence {
    position:relative;
    display:grid;
    gap:0;
    padding:18px 14px;
    border:1px solid rgba(156,207,222,.18);
    background:linear-gradient(145deg,#0a2b40,#061e32);
    border-radius:4px;
    color:#dce8ef
  }
  .mobile-stage {
    min-width:0;
    padding:16px;
    border:1px solid rgba(156,207,222,.15);
    border-radius:3px;
    animation:mobileStageGlow 7s ease-in-out infinite
  }
  .mobile-core {
    animation-delay:2.1s
  }
  .mobile-stage-outcomes {
    animation-delay:3.7s
  }
  .mobile-flow-label {
    font-size:.68rem;
    line-height:1.4;
    letter-spacing:.16em;
    font-weight:600;
    color:#dce8ef
  }
  .mobile-data-list {
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:16px 0 2px;
    padding:0;
    list-style:none
  }
  .mobile-data-list li {
    font-size:.78rem;
    line-height:1.35;
    color:#c7d7df;
    border:1px solid rgba(163,205,216,.2);
    padding:7px 9px;
    border-radius:2px
  }
  .mobile-flow-connector {
    position:relative;
    height:44px;
    margin:18px 0 18px 24px;
    border-left:1px solid rgba(0,169,189,.4)
  }
  .mobile-flow-connector:before {
    content:"";
    position:absolute;
    inset:0 auto 4px -2px;
    width:3px;
    background:linear-gradient(180deg,transparent 0%,rgba(0,209,225,.3) 25%,#d5ffff 50%,rgba(0,209,225,.3) 75%,transparent 100%) no-repeat;
    background-size:100% 44px;
    filter:drop-shadow(0 0 5px #00a9bd);
    animation:mobileFlowHighlight 7s linear infinite both
  }
  .mobile-flow-connector:after {
    content:"";
    position:absolute;
    left:-4px;
    bottom:4px;
    width:7px;
    height:7px;
    border-right:1px solid var(--teal);
    border-bottom:1px solid var(--teal);
    transform:rotate(45deg)
  }
  .mobile-flow-connector-after-core:before {
    animation-delay:2.1s
  }
  .mobile-core {
    background:linear-gradient(130deg,rgba(0,169,189,.14),rgba(4,33,50,.72))
  }
  .mobile-core .mobile-flow-label {
    color:white;
    text-align:center
  }
  .mobile-core p {
    font-size:.82rem;
    margin:10px 0 0;
    color:#b5cbd5;
    line-height:1.5
  }
  .mobile-outcomes {
    display:grid;
    gap:14px;
    margin:14px 0 0;
    padding:0;
    list-style:none
  }
  .mobile-outcomes li {
    padding-left:13px;
    border-left:2px solid var(--teal)
  }
  .mobile-outcomes li:nth-child(2) {
    border-color:var(--orange)
  }
  .mobile-outcomes li:nth-child(3) {
    border-color:#dce8ef
  }
  .mobile-outcomes strong {
    display:block;
    font-size:.67rem;
    line-height:1.45;
    letter-spacing:.11em;
    color:white
  }
  .mobile-outcomes span {
    display:block;
    margin-top:3px;
    font-size:.81rem;
    line-height:1.45;
    color:#b5cbd5
  }
}
@keyframes mobileFlowHighlight {
  0% {
    background-position:0 -44px;
    opacity:0
  }
  8% {
    opacity:1
  }
  32% {
    background-position:0 44px;
    opacity:1
  }
  40%,100% {
    background-position:0 44px;
    opacity:0
  }
}
@keyframes mobileStageGlow {
  0%,40%,100% {
    border-color:rgba(156,207,222,.15);
    box-shadow:0 0 0 rgba(0,169,189,0)
  }
  12%,24% {
    border-color:rgba(0,209,225,.65);
    box-shadow:0 0 22px rgba(0,169,189,.16),inset 0 0 18px rgba(0,169,189,.08)
  }
}
@media(prefers-reduced-motion:reduce) {
  .mobile-stage {
    animation:none
  }
  .mobile-flow-connector:before {
    animation:none;
    background-position:0 0;
    opacity:.6
  }
}
/* Founders without portraits: equal columns,shared top line,hairline between. */
.team-section {
  padding-bottom:80px
}
.team-heading {
  margin-bottom:48px
}
.team-grid {
  grid-template-columns:1fr 1fr;
  gap:0;
  border-top:1px solid var(--line);
  align-items:stretch
}
.person {
  display:block;
  padding:40px 56px 0 0
}
.person+.person {
  border-left:1px solid var(--line);
  padding:40px 0 0 56px
}
.person h3 {
  margin-bottom:8px
}
.person .role {
  margin-bottom:10px
}
.person-link {
  display:inline-block;
  margin:16px 0 0;
  font-size:.78rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#526577;
  text-decoration:none;
  border-bottom:1px solid rgba(85,112,134,.4)
}
.person-link:hover {
  color:var(--ink)
}
.person p {
  max-width:36em;
  margin-bottom:0
}
@media(max-width:900px) {
  .team-grid {
    grid-template-columns:1fr;
    gap:0
  }
  .person,.person+.person {
    border-left:0;
    padding:32px 0 8px
  }
  .person+.person {
    border-top:1px solid var(--line);
    margin-top:8px;
    padding-top:32px
  }
}
/* Keep the hero centered within one viewport,including on short mobile screens. */
.hero {
  padding:0;
  min-height:100svh
}
.hero-inner {
  width:min(1380px,calc(100% - 9vw));
  min-height:100svh;
  padding:110px 0
}
.hero-copy {
  width:100%;
  margin:0 auto;
  text-align:center
}
.hero-copy h1 {
  width:100%;
  text-wrap:balance
}
.hero-copy p {
  width:100%;
  text-wrap:pretty
}
h2,h3 {
  text-wrap:balance
}
.split,.contact-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.section-intro>p,.contact-copy p {
  text-wrap:pretty
}
.button {
  justify-content:center;
  min-height:48px
}
.person {
  padding-right:clamp(28px,4vw,56px)
}
.person+.person {
  padding-left:clamp(28px,4vw,56px)
}
@media(max-width:900px) {
  .split,.contact-grid {
    grid-template-columns:1fr;
    gap:32px
  }
  .section-intro>p,.section-intro>div>p {
    padding-top:0;
    margin-bottom:0
  }
  .section-intro h2 {
    margin-bottom:0
  }
  .team-section {
    padding-top:85px
  }
  .contact {
    padding:85px 0
  }
  .person,.person+.person {
    padding-left:0;
    padding-right:0
  }
}
@media(max-width:560px) {
  .hero-inner {
    width:calc(100% - 40px);
    padding:110px 0
  }
  .hero-copy h1 {
    font-size:clamp(2.5rem,10vw,3.2rem);
    line-height:1.05;
    margin-bottom:24px
  }
  .hero-copy p {
    font-size:1rem;
    line-height:1.65;
    margin-bottom:28px
  }
  h2 {
    font-size:clamp(2.25rem,8.5vw,2.8rem);
    line-height:1.05
  }
  .capability {
    padding-right:0
  }
  .team-heading {
    margin-bottom:32px
  }
}
