:root{
  --font-body: "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-display: "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;

  --navy: #021437;
  --green: #1B9C54;
  --black: #0C0A0B;
  --white: #FFFFFF;

  --navy-75: #414F69;
  --navy-60: #677287;
  --navy-50: #80899B;
  --navy-20: #CCD0D7;
  --navy-10: #E6E8EB;
  --navy-5: #F2F3F5;
  --green-ink: #146B3D;
  --green-20: #D1EBDD;
  --green-12: #E4F3EA;
  --green-5: #F4FAF6;

  --ground: var(--white);
  --line: rgba(2,20,55,.16);
  --line-soft: var(--navy-10);
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grain-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grain-size: 180px 180px;

  --t-hero: clamp(2.75rem, 1.9rem + 2.8vw, 4rem);
  --t-h2: clamp(2rem, 1.5rem + 1.6vw, 2.5rem);
  --t-h3: clamp(1.375rem, 1.25rem + .4vw, 1.5rem);
  --t-lead: clamp(1.125rem, 1.05rem + .3vw, 1.25rem);
  --t-body: 1.0625rem;
  --t-small: .9375rem;
  --t-label: .8125rem;
  --t-nav: .9375rem;

  --container: 67rem;
  --container-wide: 74rem;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --section: clamp(4rem, 3rem + 3.5vw, 6.5rem);
  --r-frame: 1rem;
  --r-card: .625rem;
  --r-tile: .5rem;
  --r-btn: 999px;
  --hair: 1px;
  --rule: 1.5px;

  --ease: ease-in-out;
  --ease-big: cubic-bezier(.22,.48,.23,.92);
  --d-fast: .3s;
  --d-head: .4s;
  --d-media: .5s;
  --stagger: .3s;
}

*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top: 5rem; font-size: clamp(16px, 5.71px + 0.714vw, 20px) }
body{
  margin:0;
  font-family: var(--font-body);
  font-size: var(--t-body);
  line-height:1.6;
  font-weight:400;
  color: var(--navy);
  background: var(--ground);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
img,svg{ display:block; max-width:100% }
a{ color:inherit; text-decoration:none }
button{ font: inherit; color: inherit; background:none; border:0; padding:0; cursor:pointer }
h1,h2,h3,h4,p{ margin:0 }
h1,h2,h3,h4{ font-weight:600; line-height:1.15; letter-spacing:-.015em; text-wrap: balance }
ul,ol{ list-style:none; margin:0; padding:0 }
b, strong{ font-weight:600 }
cite{ font-style:normal }
:focus-visible{ outline: 2px solid var(--green); outline-offset: 3px }

.type-display{ font-family: var(--font-display); }
[hidden]{ display:none !important }

.ico{ width:1.25rem; height:1.25rem; flex:none; color: currentColor }

.illus{ display:flex; align-items:flex-start; gap:.4rem; font-size: var(--t-label); font-weight:500; line-height:1.5; color: var(--navy-60); margin-top: .75rem }
.illus svg{ width:1rem; height:1rem; flex:none; margin-top:.1rem }
.pending{
  display:inline-block; font-size: var(--t-label); line-height:1.4; color: var(--navy-75);
  border: 1px dashed var(--navy-50); border-radius: 6px; padding: .3rem .55rem; background: var(--white);
}

.container{ width:100%; max-width: var(--container); margin-inline:auto; padding-inline: var(--gutter) }
.container-read{ width:100%; max-width: calc(44rem + 2 * var(--gutter)); margin-inline:auto; padding-inline: var(--gutter) }
.container-wide{ width:100%; max-width: var(--container-wide); margin-inline:auto; padding-inline: var(--gutter) }

.section{ padding-block: var(--section) }
.section-head{ max-width: 46rem; margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem) }
.section-head.center{ text-align:center; margin-inline:auto }

.band{ position:relative; isolation:isolate; background: var(--green-5) var(--grain) 0 0 / var(--grain-size); border-block: 1px solid var(--green-12) }
.band-navy{ position:relative; isolation:isolate; background: var(--navy) var(--grain-light) 0 0 / var(--grain-size); color: var(--white) }
.band-navy .lead, .band-navy p{ color: rgba(255,255,255,.82) }
.band-navy h2, .band-navy h3{ color: var(--white) }
.pattern{ position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden }

.eyebrow{ font-size: var(--t-label); font-weight:500; line-height:1.4; color: var(--navy-60); margin-bottom: .75rem }
.h2{ font-size: var(--t-h2); line-height:1.15; font-weight:600; letter-spacing:-.015em }
.h3{ font-size: var(--t-h3); line-height:1.2; font-weight:600; letter-spacing:-.01em }
.lead{ font-size: var(--t-lead); line-height:1.5; color: var(--navy-75); margin-top: 1rem; text-wrap: pretty }
.foot{ font-size: var(--t-label); color: var(--navy-60); margin-top:.75rem; line-height:1.5 }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height: 3rem; padding: .7rem 1.4rem; border-radius: var(--r-btn);
  background: var(--navy); color: var(--white); border: var(--rule) solid var(--navy);
  font-size: var(--t-nav); font-weight:500; line-height:1.2; white-space:nowrap; cursor:pointer;
  transition: background-color var(--d-fast) var(--ease), border-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), transform var(--d-fast) var(--ease);
}
.btn:hover{ background: var(--green); border-color: var(--green); color: var(--navy); transform: translateY(-1px) }
.btn-ghost{ background: var(--white); color: var(--navy) }
.btn-ghost:hover{ background: var(--green-12); border-color: var(--navy); color: var(--navy) }
.btn-light{ background: var(--white); color: var(--navy); border-color: var(--white) }
.btn-light:hover{ background: var(--green); border-color: var(--green); color: var(--navy) }
.btn-sm{ min-height: 2.625rem; padding: .5rem 1.1rem }

.link{
  display:inline-flex; align-items:center; gap:.4rem; font-size: var(--t-nav); font-weight:500; color: var(--navy);
  padding-block: .15rem; border-bottom: var(--rule) solid transparent;
  transition: border-color var(--d-fast) var(--ease);
}
.link .arrow{ width:1.125rem; height:1.125rem; transition: transform var(--d-fast) var(--ease) }
.link:hover{ border-color: var(--green) }
.link:hover .arrow{ transform: translateX(3px) }
.band-navy .link{ color: var(--white) }

.legal a, .cookie p a, .form-note a, .prose a, .footer .company a{
  font-size: inherit; color: inherit;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em;
  text-decoration-color: var(--navy-50);
  transition: text-decoration-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease);
}
.legal a:hover, .cookie p a:hover, .form-note a:hover, .prose a:hover, .footer .company a:hover{ color: var(--green-ink); text-decoration-color: var(--green) }

.frame{ background: var(--white); border: 1px solid var(--line); border-radius: var(--r-frame) }
.card{ background: var(--white); border: 1px solid var(--line); border-radius: var(--r-frame); padding: 1.25rem 1.5rem }
.mat{ position:relative; isolation:isolate; background: var(--green-5) var(--grain) 0 0 / var(--grain-size); border: 1px solid var(--green-12); border-radius: var(--r-frame); padding: clamp(1rem, .75rem + 1vw, 1.5rem) }

.nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  gap: 2rem; height: 4.5rem; padding-inline: var(--gutter);
  background-color: transparent; border-bottom: 1px solid transparent;
  transition: background-color var(--d-fast) var(--ease), border-color var(--d-fast) var(--ease);
}
.js .nav.is-scrolled{ background-color: var(--white); border-bottom-color: var(--navy-10) }
@keyframes nav-settle{ to{ background-color: var(--white); border-bottom-color: var(--navy-10) } }
@supports (animation-timeline: scroll()){
  .js .nav{ transition:none; animation: nav-settle linear both; animation-timeline: scroll(root); animation-range: 0 6rem }
}
.nav-left{ display:flex; align-items:center; gap: clamp(1.5rem, 4vw, 4rem) }
.brand{ display:inline-flex; align-items:center; gap:.6rem; padding-block:.25rem }
.brand .logo{ display:block; height: 2.25rem; width:auto }
.brand .mark{ width: 2.125rem; height: 1.1875rem; color: var(--navy); flex:none }
.brand .wordmark{ font-size: .9375rem; line-height:1; letter-spacing:.02em; white-space:nowrap }
.brand .wordmark b{ font-weight:600; letter-spacing:.06em }
.nav-links{ display:flex; gap: 1.75rem; font-size: var(--t-nav); font-weight:500 }
.nav-links a{ padding-block:.25rem; border-bottom: var(--rule) solid transparent; transition: border-color var(--d-fast) var(--ease) }
.nav-links a:hover, .nav-links a[aria-current="page"]{ border-color: var(--green) }
.nav-right{ display:flex; align-items:center; gap:.5rem }
.nav-toggle{ display:none; align-items:center; justify-content:center; width:2.75rem; height:2.75rem; padding:0; border:0; border-radius:50%; background:transparent; color: var(--navy); cursor:pointer; transition: background-color var(--d-fast) var(--ease) }
.nav-toggle:hover{ background: var(--green-12) }
.nav-toggle svg{ width:1.5rem; height:1.5rem }
.nav-toggle{ position:relative }
.nav-toggle svg{ position:absolute; top:50%; left:50%; margin: -.75rem 0 0 -.75rem; transition: opacity var(--d-fast) var(--ease), transform var(--d-fast) var(--ease-big) }
.nav-toggle .i-close{ opacity:0; transform: rotate(-90deg) scale(.6) }
.nav.is-open .nav-toggle .i-menu{ opacity:0; transform: rotate(90deg) scale(.6) }
.nav.is-open .nav-toggle .i-close{ opacity:1; transform:none }

.hero h1{ font-size: var(--t-hero); line-height:1.05; letter-spacing:-.025em; max-width: 13ch }
.hero-sub{ margin-top: 1.25rem; font-size: var(--t-lead); font-weight:500; line-height:1.4; max-width: 30ch }

.figure{ position:relative; width:100%; margin-inline:auto }

.hero .pattern{ -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent); mask-image: linear-gradient(to bottom, #000 55%, transparent) }
.hero{ position:relative; isolation:isolate; margin-top: -4.5rem; padding: calc(4.5rem + clamp(3rem, 2rem + 4vw, 6rem)) 0 clamp(3rem, 2rem + 4vw, 6rem) }
.hero h1{ max-width:none }
.hero h1 span{ display:block }
.hero h1 span + span{ color: var(--green) }
.hero-row{ display:grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 4vw, 4rem); align-items:center; margin-top: clamp(2rem, 1.5rem + 2vw, 3.5rem) }
.hero-sub{ margin-top:0 }
.hero-text .lead{ max-width: 30rem }
.hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap: 1rem 1.5rem; margin-top: 2rem }
.hero-figure{ min-width:0; margin-right: calc(-1 * var(--gutter)) }

.proof-grid{ display:grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items:start }
.proof-copy{ position:sticky; top: 7rem }
.proof-panel{ min-width:0 }

.method{ padding-block: var(--section) }
.method-grid{ display:grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items:center }
.method-figure .figure{ max-width: 32rem }
.stages{ border-top: 1px solid var(--green-20) }
.stage{ display:grid; grid-template-columns: .625rem minmax(7rem, 9rem) minmax(0, 1fr); gap: 0 1rem; align-items:baseline; padding: 1.125rem 0; border-bottom: 1px solid var(--green-20) }
.stage::before{ content:""; width:.625rem; height:.625rem; border-radius:50%; border: var(--rule) solid var(--navy); transform: translateY(-1px); transition: background-color var(--d-fast) var(--ease), border-color var(--d-fast) var(--ease) }
.stage.is-current::before{ background: var(--green); border-color: var(--green) }
.stage-name{ font-size: var(--t-lead); font-weight:600; line-height:1.3 }
.stage-line{ color: var(--navy-75); line-height:1.5 }

.owned-grid{ display:grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: clamp(2rem, 5vw, 5rem); align-items:start }
.owned-tabs{ display:flex; flex-direction:column; padding-block: 12vh }
.owned-tab{
  display:grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: .375rem 1rem; align-content:center; text-align:left;
  min-height: 50vh; padding: 2rem 0; color: var(--navy-60); transition: color var(--d-fast) var(--ease);
}
.owned-icon{ width:2.25rem; height:2.25rem; grid-row: 1 / 3; margin-top: .125rem }
.owned-line{ grid-column: 2; line-height:1.5; max-width: 30ch }
.owned-tab.active, .owned-tab:hover{ color: var(--navy) }
.owned-tab.active .owned-line{ color: var(--navy-75) }
.owned-note{ display:none }
.owned-stick{ align-self:stretch }
.owned-visual{ position:sticky; top: max(5.5rem, calc(50vh - 19rem)) }
.owned-panels{ display:grid }
.owned-panel{ grid-area: 1 / 1; min-width:0; transition: opacity var(--d-fast) var(--ease) }
.js .owned-panel{ opacity:0; visibility:hidden; transition: opacity var(--d-fast) var(--ease), visibility 0s linear var(--d-fast) }
.js .owned-panel.active{ opacity:1; visibility:visible; transition: opacity var(--d-fast) var(--ease) }
.owned-panel .table th, .owned-panel .table td{ padding-block: .55rem }
.govern{ display:grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 1rem; align-items:start }

.solutions-grid{ display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.5rem, 1vw, 1rem); margin-inline: -1.25rem }
.solution{
  position:relative; isolation:isolate; display:flex; flex-direction:column; gap: .5rem; height:100%;
  padding: 1.75rem 1.25rem 1.5rem; border-radius: var(--r-frame); border: 1px solid transparent;
  transition: background-color var(--d-fast) var(--ease), border-color var(--d-fast) var(--ease);
}
.solution::before{ content:""; position:absolute; top:0; left:1.25rem; right:1.25rem; height: var(--rule); background: var(--navy); transition: background-color var(--d-fast) var(--ease) }
.solution:hover, .solution:focus-visible{ background: var(--green-5) var(--grain) 0 0 / var(--grain-size); border-color: var(--green-12) }
.solution:hover::before, .solution:focus-visible::before{ background: var(--green) }
.solution-icon{ width:2.25rem; height:2.25rem; margin-bottom: .75rem; color: var(--navy) }
.solution-line{ color: var(--navy-75); line-height:1.5; text-wrap: pretty }
.solution-arrow{ width:1.25rem; height:1.25rem; margin-top:auto; padding-top: 1rem; box-sizing:content-box; color: var(--navy); transition: transform var(--d-fast) var(--ease) }
.solution:hover .solution-arrow, .solution:focus-visible .solution-arrow{ transform: translateX(4px) }
.solutions-link{ margin-top: clamp(2rem, 1.5rem + 2vw, 3rem) }

.founder-band{ padding-block: var(--section) }
.founder-band-grid{ display:grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(2rem, 6vw, 6rem); align-items:center }
.founder-band-copy .h2{ max-width: 18ch }
.founder-band-copy .lead{ max-width: 34rem }
.founder-band-name{ margin-top: 1.5rem; max-width: 36rem; color: var(--navy-75) }
.founder-band-name b{ color: var(--navy) }
.founder-band-copy .link{ margin-top: 1.75rem }
.founder-band-photo{ max-width: 26rem; width:100%; justify-self:end }

.faq-grid{ display:grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(1.5rem, 5vw, 5rem); align-items:start }
.faq-grid > .h2{ margin-bottom:0; position:sticky; top: 7rem }
.faq-list{ border-top: 1px solid var(--navy-10) }

.cta-band{ padding-block: clamp(5rem, 4rem + 5vw, 9rem) }
.cta-band .h2{ max-width: 16ch; font-size: var(--t-hero); line-height:1.05; letter-spacing:-.025em }
.cta-band .btn{ margin-top: 2.25rem }

.portrait-mat{ position:relative; padding: 0 1.25rem 1.25rem 0 }
.portrait-mat::before{ content:""; position:absolute; inset: 1.25rem 0 0 1.25rem; background: var(--green-12) var(--grain) 0 0 / var(--grain-size); border-radius: var(--r-frame) }
.portrait-mat img{ position:relative; width:100%; height:auto; aspect-ratio: 4 / 5; object-fit:cover; object-position: 50% 12%; border-radius: var(--r-frame); background: var(--green-20) }

.cta{ padding-block: var(--section) }
.cta .h2{ max-width: 20ch }
.cta .btn{ margin-top: 1.5rem }

.faq h2{ font-size: var(--t-h2); margin-bottom: 1.5rem }
.faq-item{ border-bottom: 1px solid var(--navy-10) }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  text-align:left; padding: 1.5rem 0; font-size: var(--t-lead); font-weight:500; line-height:1.4;
}
.faq-q .plus{ width: 20px; height:20px; position:relative; flex:none; transition: transform var(--d-fast) var(--ease) }
.faq-q .plus::before, .faq-q .plus::after{ content:""; position:absolute; background: var(--navy); left:50%; top:50%; transform: translate(-50%,-50%); border-radius: 1px }
.faq-q .plus::before{ width:18px; height: var(--rule) }
.faq-q .plus::after{ width: var(--rule); height:18px }
.faq-item.open .faq-q .plus{ transform: rotate(45deg) }
.faq-a{ display:grid; grid-template-rows: 1fr; transition: grid-template-rows var(--d-fast) var(--ease) }
.faq-a > div{ overflow:hidden }
.faq-a p{ padding: 0 0 1.5rem; max-width: 60ch; color: var(--navy-75) }
.js .faq-a{ grid-template-rows: 0fr }
.js .faq-item.open .faq-a{ grid-template-rows: 1fr }

.footer{ border-top: 1px solid var(--navy-10); padding: 3rem var(--gutter) 3rem }
.footer-card{ max-width: calc(var(--container-wide) - 2 * var(--gutter)); margin-inline:auto; padding-inline: 0; display:grid; grid-template-columns: 1fr auto; gap: 2rem 4rem }
.footer .brand .logo{ height: 1.875rem }
.footer .signoff{ margin-top: auto; padding-top: 2.5rem; font-weight:500 }
.footer-links{ display:flex; flex-direction:column; gap: .75rem; font-size: var(--t-nav); font-weight:500; min-width: 10rem }
.footer-links a{ align-self:flex-start; border-bottom: var(--rule) solid transparent; transition: border-color var(--d-fast) var(--ease) }
.footer-links a:hover{ border-color: var(--green) }
.footer .company{ grid-column: 1 / -1; font-size: var(--t-label); line-height:1.5; color: var(--navy-60); border-top:1px solid var(--navy-10); padding-top: 1.25rem }
.footer .company-reg{ display:block; margin-top:.35rem }
.divider{ display:none }

.page-hero{ position:relative; isolation:isolate; margin-top: -4.5rem; padding: calc(4.5rem + clamp(3rem, 2rem + 4vw, 6rem)) 0 clamp(3rem, 2rem + 4vw, 5rem) }
.page-hero .pattern{ -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent); mask-image: linear-gradient(to bottom, #000 55%, transparent) }
.page-hero .lead{ max-width: 40rem; margin-top: 1.5rem }
.page-title{ font-size: var(--t-hero); line-height:1.05; font-weight:600; letter-spacing:-.025em }
.page-title > span{ display:block }
.page-title > span + span{ color: var(--green) }
.page-head{ max-width: 50rem }
.page-head .page-title{ max-width: 16ch }
.page-head .lead{ max-width: 40rem; margin-top: 1.5rem }

.method-row{ display:flex; align-items:center; flex-wrap:wrap; gap: .75rem 1.25rem; margin-top: 2rem }
.method-name{ font-size: var(--t-label); font-weight:600; color: var(--navy-75); white-space:nowrap }
.sol-index{ margin-top: clamp(2.5rem, 2rem + 2vw, 3.5rem) }
.sol-index ul{ display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.75rem, 1.5vw, 1.5rem) }
.sol-jump{ display:flex; align-items:center; gap: .75rem; padding-top: 1rem; border-top: var(--rule) solid var(--navy); font-weight:500; line-height:1.3; color: var(--navy); transition: border-color var(--d-fast) var(--ease) }
.sol-jump svg{ width:1.5rem; height:1.5rem; flex:none }
.sol-jump:hover, .sol-jump:focus-visible{ border-color: var(--green) }
.sol-section{ padding-block: var(--section); scroll-margin-top: 4.5rem }
.page-hero + .sol-section{ padding-top: clamp(1rem, 2vw, 2rem) }
.sol{ display:grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 5rem); align-items:center }
.sol-section.band .sol{ grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) }
.sol-section.band .sol-copy{ order: 2 }
.sol-section.band .mat{ background: var(--white); border-color: var(--green-20) }
.sol-icon{ display:block; width:2.25rem; height:2.25rem; margin-bottom: 1rem; color: var(--navy) }
.sol-copy .lead{ max-width: 34rem }
.sol-list{ margin-top: 1.75rem; border-top: 1px solid var(--navy-10) }
.sol-list li{
  display:grid; grid-template-columns: 1.125rem 1fr; gap: .75rem; align-items:baseline;
  padding: .875rem 0; border-bottom: 1px solid var(--navy-10); font-size: var(--t-body); line-height:1.5;
}
.sol-list li i{ width:.625rem; height:.625rem; border-radius:50%; border: var(--rule) solid var(--navy); transform: translateY(-1px) }
.sol-start{ display:flex; align-items:center; flex-wrap:wrap; gap: .5rem; margin-top: 1.5rem; font-size: var(--t-label); font-weight:500; color: var(--navy-60) }
.sol-visual{ min-width:0 }

.about-title{ max-width: 20ch }
.founder-section, .values-section{ padding-block: var(--section) }
.founder{ display:grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 6rem); align-items:center }
.founder-photo-col{ max-width: 26rem; width:100% }
.founder-quote{ margin:0; font-size: var(--t-h3); line-height:1.4; font-weight:500; letter-spacing:-.01em; text-wrap: pretty; max-width: 40rem }
.founder-name{ margin-top: 1.5rem; font-weight:600 }
.founder-role{ color: var(--navy-75) }
.founder-bio{ margin-top: 1rem; color: var(--navy-75); max-width: 38rem; text-wrap: pretty }
.founder-copy .founder-points, .founder-copy .sectors{ max-width: 40rem }
.founder-points{ margin-top: 1rem }
.founder-points li{ padding: .625rem 0 }
.sectors{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top: 1rem }
.sectors li{ font-size: var(--t-label); font-weight:500; line-height:1.2; color: var(--navy); border:1px solid var(--navy-20); border-radius: 999px; padding: .45rem .8rem; background: var(--white) }

.story{ display:grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items:start }
.tension span{ display:block }
.tension span:last-child{ color: var(--green) }
.story-copy .lead{ margin-top:0 }
.story-copy .lead + .lead{ margin-top: 1rem }
.points-head{ margin-top: clamp(3.5rem, 3rem + 3vw, 5.5rem); font-size: var(--t-h3); line-height:1.3; font-weight:600; max-width: 30ch }
.points{ display:grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); margin-top: 1.75rem }
.point{ border-top: var(--rule) solid var(--navy); padding-top: 1.25rem }
.point-title{ font-size: var(--t-lead); font-weight:600; line-height:1.3 }
.point p:not(.point-title){ margin-top: .5rem; color: var(--navy-75); text-wrap: pretty }
.stats{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: clamp(2.5rem, 2rem + 2vw, 4rem) }
.values-section .value{ border-top-color: var(--green-20) }
.stat{ background: var(--green-5) var(--grain) 0 0 / var(--grain-size); border: 1px solid var(--green-12); border-radius: var(--r-frame); padding: clamp(1.25rem, 1rem + 1.5vw, 2rem) }
.stat-figure{ font-size: var(--t-hero); line-height:1; font-weight:600; letter-spacing:-.025em }
.stat-label{ margin-top: .75rem; color: var(--navy-75); max-width: 30ch }
.stat-source{ margin-top: .5rem; font-size: var(--t-label); font-weight:500; color: var(--navy-60) }

.values-head{ margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem) }
.values{ display:grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2.5rem, 2rem + 2vw, 3.5rem) clamp(2rem, 4vw, 4rem) }
.value{ padding-top: 1.5rem; border-top: 1px solid var(--navy-10) }
.value-icon{ width: 2.25rem; height: 2.25rem; color: var(--navy) }
.value-title{ margin-top: 1.25rem; font-size: var(--t-h3); line-height:1.25; font-weight:600 }
.value-text{ margin-top: .625rem; color: var(--navy-75); max-width: 34ch; text-wrap: pretty }

.contact-section{ padding-block: var(--section) }
.contact-grid{ display:grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 6vw, 6rem); align-items:start }
.contact-form{ background: var(--white); border: 1px solid var(--green-20); border-radius: var(--r-frame); padding: clamp(1.5rem, 1rem + 2.5vw, 3rem) }
.contact-direct{ border-bottom: 1px solid var(--green-20) }
.contact-row{ display:grid; grid-template-columns: 6.5rem 1fr; gap: 1rem; padding: 1.25rem 0; border-top: 1px solid var(--green-20) }
.contact-row dt{ font-size: var(--t-label); font-weight:500; color: var(--navy-60); line-height: 1.7rem }
.contact-row dd{ grid-column: 2; margin:0; line-height:1.6 }
.contact-row dd + dd{ margin-top: .75rem }
.contact-row dd b{ font-weight:600; display:block }
.contact-row dd span{ color: var(--navy-75) }
.contact-row a:not(.link){ border-bottom: 1px solid var(--navy-20); transition: border-color var(--d-fast) var(--ease) }
.contact-row a:not(.link):hover{ border-color: var(--green) }
.contact-row .link{ font-size: var(--t-body) }
.copy{ display:none; align-items:center; justify-content:center; width:2.25rem; height:2.25rem; margin: -.375rem 0 -.375rem .5rem; padding:0; vertical-align:middle; border:0; border-radius:50%; background:transparent; color: var(--navy-75); cursor:pointer; transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease) }
.js .copy{ display:inline-flex }
.copy svg{ width:1.25rem; height:1.25rem }
.copy .i-copied{ display:none }
.copy:hover{ background: var(--green-12); color: var(--navy) }
.copy.is-copied{ color: var(--green-ink) }
.copy.is-copied .i-copy{ display:none }
.copy.is-copied .i-copied{ display:block }
.copy-note{ margin-left:.25rem; vertical-align:middle; font-size: var(--t-label); font-weight:500; color: var(--green-ink) }

.form{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 1rem }
.field{ display:flex; flex-direction:column; gap: .45rem; min-width:0 }
.field.full{ grid-column: 1 / -1 }
.field label{ font-size: var(--t-label); font-weight:500; color: var(--navy); line-height:1.3 }
.field label .opt{ color: var(--navy-60); font-weight:400 }
.input{
  width:100%; min-height: 3.25rem; padding: .8rem 1rem;
  font: inherit; font-size: var(--t-body); line-height:1.4; color: var(--navy);
  background: var(--white); border: 1px solid var(--navy-50); border-radius: var(--r-card);
  transition: border-color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease);
}
.input::placeholder{ color: var(--navy-60) }
.input:hover{ border-color: var(--navy) }
.input:focus-visible{ outline:none; border-color: var(--green); box-shadow: 0 0 0 3px var(--green-12) }
textarea.input{ min-height: 8.5rem; resize: vertical }
select.input{
  appearance:none; -webkit-appearance:none; cursor:pointer; padding-right: 2.75rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23021437' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m19 9l-7 6l-7-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position: right 1rem center; background-size: 1.125rem;
}
.form-foot{ grid-column: 1 / -1; display:flex; align-items:center; gap: 1rem; flex-wrap:wrap; margin-top: .5rem }
.form-note{ grid-column: 1 / -1; font-size: var(--t-label); line-height:1.5; color: var(--navy-60) }
.field-hint{ font-size: var(--t-label); color: var(--navy-60) }
.air-nav{ position:static; justify-content:flex-start; background: var(--white) }
.air-head{ padding: clamp(2.5rem, 2rem + 3vw, 4.5rem) 0 clamp(2rem, 1.5rem + 2vw, 3rem) }
.air-head .lead{ max-width: 38rem; margin-top: 1.25rem }
.air-section{ padding-block: clamp(2rem, 1.5rem + 3vw, 4.5rem) }
.air-card{ max-width: 44rem; background: var(--white); border: 1px solid var(--green-20); border-radius: var(--r-frame); padding: clamp(1.5rem, 1rem + 2.5vw, 3rem) }
.err{ display:none; margin-bottom: 1.5rem; padding: .875rem 1rem; border: 1px solid #E3B4AC; border-radius: var(--r-card); background: #FBF1EF; color: #8A2E1F; font-size: var(--t-body); line-height:1.5 }
.err.show{ display:block }
.consent{ grid-column: 1 / -1; display:flex; gap: .75rem; align-items:flex-start; padding: 1rem; border: 1px solid var(--navy-20); border-radius: var(--r-card); cursor:pointer }
.consent input{ flex:none; width: 1.125rem; height: 1.125rem; margin-top: .2rem; accent-color: var(--green) }
.consent span{ color: var(--navy-75); line-height:1.55 }
.consent a{ color: var(--navy); text-decoration: underline; text-decoration-color: var(--navy-50); text-underline-offset: 2px }
.consent a:hover{ text-decoration-color: var(--green) }
.btn:disabled{ opacity:.6; cursor:not-allowed; transform:none }
.thanks{ display:none; text-align:center; padding-block: 1.5rem }
.thanks.show{ display:block }
.thanks .tick{ width: 3.5rem; height: 3.5rem; margin: 0 auto 1.25rem; border-radius:50%; display:grid; place-items:center; background: var(--green-12); color: var(--green-ink) }
.thanks .tick svg{ width: 1.625rem; height: 1.625rem }
.thanks p{ margin: .625rem auto 0; max-width: 34ch; color: var(--navy-75) }
.air-footer{ padding: 1.75rem 0; border-top: 1px solid var(--navy-10); font-size: var(--t-label); line-height:1.6; color: var(--navy-60) }
.air-footer a{ color: var(--navy-60); text-decoration: underline; text-decoration-color: var(--navy-20); text-underline-offset: 2px }
.air-footer a:hover{ color: var(--navy) }
.air-signoff{ margin-top: .5rem; font-weight:600; letter-spacing: .08em; color: var(--navy) }
.air-test{ position:fixed; right: 1rem; bottom: 1rem; z-index: 60; padding: .5rem .875rem; border-radius: 999px; background: var(--navy); color: var(--white); font-size: var(--t-label); font-weight:500 }

.legal{ max-width: 44rem }
.legal-hero{ padding-bottom: clamp(1.5rem, 1rem + 2vw, 2.5rem) }
.legal-hero .legal-date{ margin-top: 1.25rem }
.legal-section{ padding-bottom: var(--section) }
.legal > h2:first-child{ margin-top: 0 }
.legal h2{ font-size: var(--t-lead); font-weight:600; margin-top: 2.5rem; margin-bottom: .625rem }
.legal h3{ font-size: var(--t-body); font-weight:600; margin-top: 1.75rem; margin-bottom: .375rem }
.legal p{ color: var(--navy-75); line-height:1.65; margin-top: .75rem }
.legal .lead{ margin-bottom: 1.5rem }
.legal ul{ margin-top: .75rem; padding-left: 1.25rem; list-style: disc }
.legal li{ color: var(--navy-75); line-height:1.65; margin-top: .5rem; padding-left: .25rem }
.legal-date{ font-size: var(--t-label); font-weight:500; color: var(--navy-60) }
.legal-note{ margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--navy-10); font-size: var(--t-label); color: var(--navy-60) }

.cookie{
  position: fixed; left: var(--gutter); right: var(--gutter); bottom: var(--gutter); z-index: 50;
  display:flex; align-items:center; justify-content:space-between; gap: 1.5rem; flex-wrap:wrap;
  max-width: 44rem; margin-inline:auto; padding: 1.25rem 1.5rem;
  background: var(--white); border:1px solid var(--navy-20); border-radius: var(--r-frame);
}
.cookie p{ color: var(--navy-75); flex:1 1 18rem; margin:0 }
.cookie .cookie-actions{ display:flex; align-items:center; gap: 1rem; flex-wrap:wrap }
@media (max-width: 30rem){ .cookie{ padding: 1rem } }

.screen{ border:1px solid var(--line); border-radius: var(--r-card); background: var(--white); overflow:hidden; min-width:0 }
.screen-bar{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  min-height: 2.875rem; padding-inline: 1rem; border-bottom: 1px solid var(--navy-10); background: var(--white);
}
.screen-bar .brand .logo{ height: 1.5rem }
.stepper{ display:flex; align-items:center; gap:.5rem; font-size: var(--t-label); font-weight:500; color: var(--navy-60) }
.stepper .step{ display:inline-flex; align-items:center; gap:.4rem; white-space:nowrap }
.stepper .step i{ width:.5rem; height:.5rem; border-radius:50%; border: var(--rule) solid currentColor }
.stepper .step.active{ color: var(--navy) }
.stepper .step.active i{ background: var(--green); border-color: var(--green) }
.stepper .rule{ width: clamp(14px, 3vw, 40px); min-width: .5rem; flex-shrink:1; height:1px; background: var(--navy-20) }
.screen-bar .stepper{ min-width:0 }
.screen-body{ padding: clamp(1rem, 2.5vw, 1.5rem); background: var(--navy-5) }
.screen-label{
  display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  font-size: var(--t-label); font-weight:500; color: var(--navy-60); margin-bottom: 1rem;
}
.screen-label b{ font-weight:500 }
.layer-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: .75rem }
.layer{ border:1px solid var(--line); border-radius: var(--r-tile); background: var(--white); padding: .875rem 1rem .75rem; transition: border-color var(--d-fast) var(--ease) }
.layer .name{ display:flex; align-items:center; gap:.5rem; font-size: var(--t-label); font-weight:500; color: var(--navy-75); line-height:1.3 }
.layer .name i{ width:.5rem; height:.5rem; border-radius:50%; border: var(--rule) solid var(--navy); flex:none }
.layer .count{ font-size: 1.5rem; font-weight:600; line-height:1.1; margin-top:.35rem; letter-spacing:-.01em }
.layer.active{ border-color: var(--green-20); background: var(--green-5) }
.layer.active .name i{ background: var(--green); border-color: var(--green) }
.layer:hover{ border-color: var(--navy) }

.chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom: 1rem }
.chip{ display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--navy-20); border-radius: 999px; padding:.4rem .75rem; font-size: var(--t-label); font-weight:500; line-height:1; background: var(--white); color: var(--navy-75) }
.chip b{ font-weight:600; color: var(--navy) }
.chip.active{ border-color: var(--green-20); background: var(--green-12); color: var(--green-ink) }
.chip.active b{ color: var(--green-ink) }
.tag{ display:inline-flex; align-items:center; font-size: var(--t-label); font-weight:500; line-height:1; padding:.4rem .6rem; border-radius: 999px; border:1px solid var(--navy-20); color: var(--navy); background: var(--white); white-space:nowrap }
.tag.strong{ background: var(--green-12); border-color: var(--green-20); color: var(--green-ink) }
.tag.weak{ border-style: dashed; border-color: var(--navy-50); color: var(--navy-75) }
.tag.filled{ background: var(--navy); border-color: var(--navy); color: var(--white) }
.badge{ display:inline-flex; align-items:center; gap:.35rem; background: var(--green-12); color: var(--green-ink); border-radius: 999px; font-size: var(--t-label); font-weight:500; line-height:1; padding: .45rem .7rem }
.badge svg{ width:1rem; height:1rem }

.table{ width:100%; border-collapse:collapse; font-size: var(--t-small); background: var(--white); border:1px solid var(--line); border-radius: var(--r-card); overflow:hidden }
.table th, .table td{ text-align:left; padding: .7rem .9rem; border-bottom: 1px solid var(--navy-10); vertical-align:top }
.table th{ font-weight:500; font-size: var(--t-label); color: var(--navy-60) }
.table tr:last-child td{ border-bottom:0 }
.table td.muted{ color: var(--navy-60) }
.table td.num{ font-variant-numeric: tabular-nums }
.table tr.sel td{ background: var(--green-5) }
.table tr.sel td.muted{ color: var(--navy-75) }

.rows{ background: var(--white); border:1px solid var(--line); border-radius: var(--r-card); overflow:hidden }
.row{ display:grid; grid-template-columns: .75rem minmax(0,1fr) auto; gap: .75rem; align-items:center; padding:.65rem .9rem; border-bottom:1px solid var(--navy-10) }
.row:last-child{ border-bottom:0 }
.row i{ width:.625rem; height:.625rem; border-radius:50%; border: var(--rule) solid var(--navy); background: var(--white) }
.row i.weak{ border-style: dashed }
.row .n{ font-size: var(--t-small); font-weight:500; line-height:1.35 }
.row .m{ font-size: var(--t-label); color: var(--navy-60); line-height:1.4; margin-top:.1rem }
.steps{ background: var(--white); border:1px solid var(--line); border-radius: var(--r-card); padding:.25rem 0 }
.stepr{ display:grid; grid-template-columns: 1.75rem 1fr; gap:.75rem; padding:.7rem .9rem; border-bottom:1px solid var(--navy-10); align-items:start }
.stepr:last-child{ border-bottom:0 }
.stepr .no{ width:1.625rem; height:1.625rem; border:1px solid var(--navy-20); border-radius:50%; display:grid; place-items:center; color: var(--navy-60) }
.stepr .no i{ width:.5rem; height:.5rem; border-radius:50%; border: var(--rule) solid currentColor }
.stepr .n{ font-size: var(--t-small); font-weight:500; line-height:1.3 }
.stepr .m{ font-size: var(--t-label); color: var(--navy-60) }
.stepr.active .no{ border-color: var(--green-20); background: var(--green-5); color: var(--green-ink) }
.stepr.active .no i{ background: var(--green); border-color: var(--green) }

.ask{ border:1px solid var(--line); border-radius: var(--r-card); background: var(--white); overflow:hidden }
.ask-bar{ display:flex; align-items:center; justify-content:space-between; min-height:3.25rem; padding-inline:1.5rem; background: var(--white); border-bottom:1px solid var(--navy-10) }
.ask-bar .title{ font-weight:600; font-size: var(--t-small) }
.ask-input{ display:flex; align-items:center; gap: .75rem; border:1px solid var(--navy-50); border-radius: var(--r-card); background: var(--white); padding: .3125rem .3125rem .3125rem 1rem; min-height: 3rem }
.ask-q{ flex:1; font-size: var(--t-body) }
.btn-mini{ display:inline-flex; align-items:center; background: var(--navy); color: var(--white); font-size: var(--t-label); font-weight:500; padding: .55rem .9rem; border-radius: var(--r-btn); line-height:1 }
.ask-scroll{ height: 26rem; overflow-y:auto; scrollbar-gutter: stable; padding: 1.75rem 1.5rem; background: var(--navy-5); scrollbar-width: thin; scrollbar-color: var(--navy-20) transparent }
.ask-scroll.is-faded{ -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 2.5rem); mask-image: linear-gradient(to bottom, transparent 0, #000 2.5rem) }
.ask-thread{ display:flex; flex-direction:column; justify-content:flex-end; min-height:100% }
.ask-msg{ align-self:flex-end; max-width: 80%; margin-top: 3rem; background: var(--white); border:1px solid var(--navy-20); border-radius: 14px 14px 4px 14px; padding: .7rem 1.1rem; line-height:1.4 }
.ask-thread > .ask-msg:first-child{ margin-top:0 }
.ask-answer, .ask-refusal, .ask-checking{ margin-top: 1.75rem }
.ask-lines{ list-style:none; margin:0; padding:0 }
.ask-lines li + li{ margin-top: 1.5rem }
.ask-lines .al{ display:block; line-height:1.5 }
.ask-lines .src{ display:flex; align-items:center; gap:.4rem; margin-top:.3rem; font-size: var(--t-label); font-weight:500; line-height:1.3; color: var(--navy-60) }
.ask-lines .src svg{ width:1rem; height:1rem; flex:none }
.ask-refusal .a{ margin-top: 1rem; line-height:1.5; max-width: 46ch }
.ask-composer{ padding: 1rem 1.5rem 1.125rem; border-top:1px solid var(--navy-10); background: var(--white) }
.ask-composer .ask-q{ color: var(--navy-75) }
.ask-composer .ask-q:empty::before{ content: "Ask the model a question"; color: var(--navy-60) }
.btn-send{ flex:none; width:2.25rem; height:2.25rem; border-radius: 50%; background: var(--navy); color: var(--white); display:grid; place-items:center; opacity:.35; transition: opacity var(--d-fast) var(--ease) }
.btn-send svg{ width:1.125rem; height:1.125rem }
.ask.is-typing .btn-send{ opacity:1 }
.dotsep{ color: var(--navy-60) }
.ask-checking{ font-size: var(--t-small); color: var(--navy-60); display:inline-flex; align-items:center; gap:.5rem }
.ask-checking i{ width:.5rem; height:.5rem; border-radius:50%; background: var(--green) }
.ask-status{ display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; font-size: var(--t-label); font-weight:500; color: var(--navy-75) }
.ask-answer .ask-status{ margin-top: 1.75rem }

.js [data-reveal="headline"]{ opacity:0; filter: blur(10px); transform: translateY(.5rem); transition: opacity var(--d-head) var(--ease), filter var(--d-head) var(--ease), transform var(--d-head) var(--ease); transition-delay: var(--delay, 0s) }
.js [data-reveal="headline"].is-in{ opacity:1; filter:none; transform:none }
main{ overflow-x: clip }
.js .geo{ opacity:0; transition: opacity .8s var(--ease) }
.js .geo.is-drawn{ opacity:1 }
.js [data-reveal="media"]{ opacity:0; filter: blur(10px); transform: scale(1.2); transition: opacity var(--d-media) var(--ease), filter var(--d-media) var(--ease), transform var(--d-media) var(--ease) }
.js [data-reveal="media"].is-in{ opacity:1; filter:none; transform:none }
.js [data-reveal="rise"]{ opacity:0; transform: translateY(2rem); transition: opacity var(--d-media) var(--ease), transform var(--d-media) var(--ease) }
.js [data-reveal="rise"].is-in{ opacity:1; transform:none }
.js [data-reveal="stagger"] > *{ opacity:0; filter: blur(3px); transform: translateY(2.5em); transition: opacity var(--d-media) var(--ease), filter var(--d-media) var(--ease), transform var(--d-media) var(--ease); transition-delay: calc(var(--i, 0) * var(--stagger)) }
.js [data-reveal="stagger"].is-in > *{ opacity:1; filter:none; transform:none }

@keyframes rise{ from{ opacity:0; transform: translateY(2.5em) } to{ opacity:1; transform:none } }
@keyframes hero-exit{ to{ opacity:0; filter: blur(10px); transform: translateY(-.75rem) } }
@supports (animation-timeline: view()){
  .js [data-reveal="stagger"][data-scrub] > *{
    transition:none; opacity:1; filter:none; transform:none; will-change: transform, opacity;
    animation: rise linear both;
    animation-timeline: view();
    animation-range: cover calc(8% + var(--i, 0) * 2.5%) cover calc(24% + var(--i, 0) * 2.5%);
  }
}
@supports (animation-timeline: scroll()){
  @media (min-width: 961px){
    .js .hero-copy{
      animation: hero-exit linear both;
      animation-timeline: scroll(root);
      animation-range: 12vh 48vh;
    }
  }
}

.ask-checking{ display:none }
.js .ask [data-step]{ display:none }
.js .ask [data-step].on{ display:block; animation: ask-rise var(--d-media) var(--ease-big) both }
.js .ask .ask-checking.on{ display:inline-flex }
.js .ask .ask-answer.on li, .js .ask .ask-answer.on .ask-status, .js .ask .ask-refusal.on .a{ animation: ask-rise .6s var(--ease-big) both }
.js .ask .ask-answer.on li:nth-child(2){ animation-delay: .45s }
.js .ask .ask-answer.on li:nth-child(3){ animation-delay: .9s }
.js .ask .ask-answer.on .ask-status{ animation-delay: 1.35s }
.js .ask .ask-refusal.on .a{ animation-delay: .45s }
.js .ask .ask-checking.on i{ animation: ask-pulse 1.2s var(--ease) infinite }
.ask-send-press{ transform: scale(.88) }
.btn-send{ transition: opacity var(--d-fast) var(--ease), transform .15s var(--ease) }
@keyframes ask-rise{ from{ opacity:0; transform: translateY(8px) } to{ opacity:1; transform:none } }
@keyframes ask-pulse{ 0%, 100%{ opacity:1; transform: scale(1) } 50%{ opacity:.35; transform: scale(.7) } }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto }
  .js [data-reveal], .js [data-reveal] > *,
  .js .ask [data-step], .js .ask li, .js .ask .ask-status, .js .ask .a, .js .ask .ask-checking i, .js .hero-copy{ opacity:1 !important; filter:none !important; transform:none !important; transition:none !important; animation:none !important }
  .js .nav{ animation:none !important; transition:none !important }
  .js .nav .nav-links, .js .nav .nav-links a, .nav-toggle svg{ transition:none !important }
  .js .geo{ transition:none !important }
  .link .arrow, .btn, .faq-q .plus, .faq-a, .input, .layer, .owned-panel, .owned-tab, .stage::before, .solution, .solution::before, .solution-arrow{ transition:none !important }
  .btn:hover{ transform:none }
}

@media (max-width: 1100px){
  .layer-grid{ grid-template-columns: repeat(2, 1fr) }
}
@media (max-width: 960px){
  .story, .points{ grid-template-columns: 1fr }
  .portrait-mat{ max-width: 28rem }
  .ask-scroll{ height:auto; overflow:visible }
  .js .ask [data-step]:not(.ask-checking){ display:block; visibility:hidden }
  .js .ask [data-step].on{ visibility:visible }
  .contact-grid{ grid-template-columns: 1fr }
  .sol, .sol-section.band .sol{ grid-template-columns: 1fr }
  .sol-section.band .sol-copy{ order: 0 }
  .sol-index ul{ grid-template-columns: repeat(2, minmax(0, 1fr)) }
  .founder{ grid-template-columns: 1fr }
  .founder .portrait-mat{ max-width: 24rem }
  .values{ grid-template-columns: repeat(2, 1fr) }
  .steps{ display:none }
  .hero-row, .proof-grid, .method-grid, .owned-grid, .founder-band-grid, .faq-grid, .govern{ grid-template-columns: minmax(0, 1fr) }
  .proof-copy, .faq-grid > .h2{ position:static }
  .hero-figure{ margin-right:0 }
  .owned-tabs{ flex-direction:row; gap:4px; width:100%; max-width: 30rem; margin-inline:auto; padding:4px; border:1px solid var(--navy-20); border-radius:999px; background: var(--white) }
  .owned-tab{ flex:1; display:flex; align-items:center; justify-content:center; gap:.4rem; min-height: 2.75rem; padding: .5rem .75rem; border-radius:999px; color: var(--navy-75); transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease) }
  .owned-tab .owned-icon{ width:1.25rem; height:1.25rem; margin:0; flex:none }
  .owned-tab .h3{ font-size: var(--t-small); font-weight:600; line-height:1.2 }
  .owned-tab .owned-line{ position:absolute; width:1px; height:1px; overflow:hidden; clip: rect(0 0 0 0); white-space:nowrap }
  .owned-tab:hover{ color: var(--navy); background: var(--green-12) }
  .owned-tab.active, .owned-tab.active:hover{ color: var(--white); background: var(--navy) }
  .owned-grid{ row-gap:0 }
  .owned-note{ display:block; max-width: 30rem; margin: 1rem auto 0; text-align:center; line-height:1.5; color: var(--navy-75); min-height: 3em }
  .owned-visual{ position:static; margin-top: 1.25rem }
  .solutions-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.5rem }
  .founder-band-photo{ justify-self:start; max-width: 24rem }
}
@media (max-width: 800px){
  .nav-links{ display:none }
  .js .nav-toggle{ display:inline-flex }
  .js .nav.is-open{ background-color: var(--white) !important; border-bottom-color: var(--navy-10) !important }
  .js .nav .nav-links{ display:flex; flex-direction:column; gap:0; position:absolute; top:100%; left:0; right:0; padding: .25rem var(--gutter) 1.5rem; background: var(--white); border-bottom: 1px solid var(--navy-10); box-shadow: 0 1.5rem 2rem -1.5rem rgba(2, 20, 55, .18); font-size: var(--t-lead);
    visibility:hidden; opacity:0; transform: translateY(-.5rem); clip-path: inset(0 0 100% 0);
    transition: clip-path .22s var(--ease), opacity .22s var(--ease), transform .22s var(--ease), visibility 0s linear .22s }
  .js .nav.is-open .nav-links{ visibility:visible; opacity:1; transform:none; clip-path: inset(0 0 -3rem 0);
    transition: clip-path var(--d-head) var(--ease-big), opacity var(--d-fast) var(--ease), transform var(--d-head) var(--ease-big), visibility 0s }
  .js .nav .nav-links a{ padding-block: 1rem; border-bottom: 1px solid var(--navy-10); opacity:0; transform: translateY(-.375rem); transition: opacity .15s var(--ease), transform .15s var(--ease), color var(--d-fast) var(--ease) }
  .js .nav.is-open .nav-links a{ opacity:1; transform:none; transition: opacity var(--d-fast) var(--ease) calc(.08s + var(--i, 0) * .05s), transform var(--d-head) var(--ease-big) calc(.08s + var(--i, 0) * .05s), color var(--d-fast) var(--ease) }
  .js .nav .nav-links a:nth-child(2){ --i:1 }
  .js .nav .nav-links a:nth-child(3){ --i:2 }
  .js .nav .nav-links a[aria-current="page"]{ color: var(--green-ink); border-bottom-color: var(--navy-10) }
  .js .nav .nav-links a:last-child{ border-bottom:0 }
  .stepper .step:not(.active), .stepper .rule{ display:none }
  .method-row .stepper .step:not(.active){ display:inline-flex }
}
@media (max-width: 700px){
  .footer-card{ grid-template-columns: 1fr }
  .form{ grid-template-columns: 1fr }
  .stats, .values{ grid-template-columns: 1fr }
  .solutions-grid{ grid-template-columns: 1fr }
  .stage{ grid-template-columns: .625rem minmax(0, 1fr); row-gap: .25rem }
  .stage-line{ grid-column: 2 }
}
@media (max-width: 520px){
  .nav{ gap: 1rem }
  .nav .btn{ padding-inline: 1rem; min-height: 2.625rem }
  .brand .logo{ height: 1.875rem }
  .table th:nth-child(3), .table td:nth-child(3){ display:none }
}
@media (max-width: 700px){
  :root{ --section: 3rem }
  .mat{ padding: .5rem }
  .screen-body{ padding: .875rem }
  .screen-label{ flex-wrap:wrap; gap: .25rem .75rem; margin-bottom: .75rem }
  .ask-bar{ padding-inline: 1rem }
  .ask-scroll{ height: 24rem; overflow-y:auto; padding: 1.25rem 1rem }
  .ask-msg{ max-width: 88%; margin-top: 1.75rem; padding: .6rem .9rem; font-size: var(--t-small) }
  .ask-answer, .ask-refusal, .ask-checking{ margin-top: 1rem }
  .ask-lines li + li{ margin-top: 1rem }
  .ask-lines .al, .ask-refusal .a{ font-size: var(--t-small) }
  .ask-q{ font-size: var(--t-small) }
  .chips{ gap: .375rem; margin-bottom: .75rem }
  .chip{ padding: .35rem .6rem }
  .table:not(:has(.num)) thead{ display:none }
  .table:not(:has(.num)) tr{ display:flex; flex-wrap:wrap; align-items:center; gap: .35rem .6rem; padding: .75rem .9rem; border-bottom: 1px solid var(--navy-10) }
  .table:not(:has(.num)) tr:last-child{ border-bottom:0 }
  .table:not(:has(.num)) tr.sel{ background: var(--green-5) }
  .table:not(:has(.num)) td{ display:block; padding:0; border:0; background:none }
  .table:not(:has(.num)) tr{ align-items:flex-start }
  .table:not(:has(.num)) td:first-child{ flex: 1 1 0; min-width:0; font-weight:500 }
  .table:not(:has(.num)) td:has(.tag){ order:1 }
  .table:not(:has(.num)) td.muted{ order:2; flex-basis:100%; font-size: var(--t-label) }
  .row{ grid-template-columns: .75rem minmax(0,1fr) auto; grid-template-areas: "dot name tag" ". meta meta"; align-items:start; row-gap: .15rem }
  .row > div{ display:contents }
  .row > i{ grid-area: dot; margin-top: .4rem }
  .row .n{ grid-area: name }
  .row .m{ grid-area: meta; margin-top:0 }
  .row > .tag{ grid-area: tag }
  .solutions-grid{ row-gap:0 }
  .solution{ display:grid; grid-template-columns: 1.75rem minmax(0,1fr) auto; grid-template-areas: "icon title arrow" ". line arrow"; gap: .25rem .875rem; padding: 1.25rem }
  .solution-icon{ grid-area: icon; width:1.75rem; height:1.75rem; margin:0 }
  .solution .h3{ grid-area: title }
  .solution-line{ grid-area: line }
  .solution-arrow{ grid-area: arrow; align-self:center; margin:0; padding:0 }
  .values{ gap:0 }
  .value{ display:grid; grid-template-columns: 1.75rem minmax(0,1fr); grid-template-areas: "icon title" ". text"; gap: .375rem .875rem; padding-block: 1.5rem }
  .value-icon{ grid-area: icon; width:1.75rem; height:1.75rem }
  .value-title{ grid-area: title; margin-top:0; align-self:center }
  .value-text{ grid-area: text; margin-top:0 }
  .hero-figure{ width:100%; max-width: 20rem; margin-inline:auto }
  .copy{ width:2.75rem; height:2.75rem; margin: -.625rem -.25rem -.625rem .25rem }
  .contact-row{ grid-template-columns: minmax(0,1fr); gap: .25rem }
  .contact-row dd{ grid-column: 1 }
  .contact-row dd:has(.copy){ display:flex; align-items:center; flex-wrap:nowrap }
  .footer .company .sep{ display:none }
  .footer .company .brk{ display:block }
  .footer .company a.brk{ width:fit-content; margin-block: .35rem .1rem }
}
