:root {
  --paper:#f4f3ed;
  --white:#fff;
  --ink:#1d2923;
  --muted:#637067;
  --forest:#172a24;
  --forest-light:#233a30;
  --leaf:#d7e9bc;
  --line:#d5d9d0;
  --gutter:clamp(24px,5vw,88px);
  --sans:Arial,Helvetica,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,monospace
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:104px
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased
}

button,input,select,textarea {
  font:inherit
}

button,a {
  -webkit-tap-highlight-color:transparent
}

button {
  cursor:pointer
}

a {
  color:inherit;
  text-decoration:none
}

img {
  display:block;
  max-width:100%;
  object-fit:cover
}

button {
  color:inherit
}

h1,h2,h3,h4,p {
  margin:0
}

h1,h2,h3 {
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.055em
}

h1 {
  font-size:clamp(50px,7vw,108px)
}

h2 {
  font-size:clamp(36px,4.2vw,68px)
}

h3 {
  font-size:clamp(25px,2.5vw,38px)
}

p+p {
  margin-top:20px
}

p {
  max-width:70ch
}

::selection {
  background:var(--leaf);
  color:var(--forest)
}

:focus-visible {
  outline:2px solid var(--focus);
  outline-offset:6px
}

[hidden] {
  display:none!important
}

.skip-link {
  position:fixed;
  left:20px;
  top:-80px;
  z-index:100;
  padding:12px 20px;
  background:var(--leaf);
  color:var(--ink)
}

.skip-link:focus {
  top:14px
}

.eyebrow {
  font-family:var(--mono);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:11px;
  line-height:1.5
}

.section-pad {
  padding:100px var(--gutter)
}

.section-muted {
  background:var(--surface-soft)
}

.section-dark {
  background:var(--forest);
  color:var(--paper)
}

.lead {
  font-size:clamp(21px,2vw,28px);
  line-height:1.45;
  letter-spacing:-.025em
}

.small-note {
  font-size:13px;
  color:var(--muted)
}

.status-dot {
  display:inline-block;
  vertical-align:middle;
  width:6px;
  height:6px;
  margin-right:10px;
  border-radius:50%;
  background:var(--leaf)
}

.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:48px;
  margin-bottom:32px
}

.section-heading .eyebrow,h2+.lead {
  margin-bottom:28px
}

.section-heading-note {
  max-width:340px
}

.section-heading-note p {
  margin-bottom:22px
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:30px;
  padding:9px 0;
  border-bottom:1px solid currentColor;
  font-size:14px;
  line-height:1.5;
  transition:gap .2s,color .2s
}

.text-link:hover {
  gap:40px;
  color:var(--link-hover)
}

.section-dark .text-link:hover {
  color:var(--leaf)
}

.text-link span {
  font-size:20px;
  line-height:1
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:50px;
  min-height:56px;
  padding:15px 23px;
  border:1px solid var(--ink);
  font-size:14px;
  transition:background .2s,color .2s
}

.button-dark {
  color:var(--paper);
  background:var(--forest)
}

.button-dark:hover {
  background:var(--action-hover)
}

.button span {
  font-size:22px
}

.site-header {
  height:88px;
  padding:0 var(--gutter);
  display:flex;
  align-items:center;
  gap:40px;
  background:var(--paper);
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid var(--line)
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:16px;
  flex-shrink:0
}

.brand-mark {
  font-size:43px;
  letter-spacing:-4px;
  line-height:1;
  font-weight:700
}

.brand-dot {
  color:var(--accent)
}

.brand-name {
  font-size:10px;
  line-height:1.3;
  letter-spacing:.015em;
  border-left:1px solid var(--line);
  padding-left:16px
}

.desktop-nav {
  display:flex;
  gap:34px;
  margin-left:auto;
  font-size:13px
}

.desktop-nav a {
  position:relative;
  padding:12px 0
}

.desktop-nav a:after {
  content:"";
  position:absolute;
  bottom:5px;
  left:0;
  width:0;
  height:1px;
  background:var(--ink);
  transition:width .25s
}

.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after {
  width:100%
}

.header-contact {
  display:flex;
  gap:32px;
  align-items:center;
  font-size:13px;
  border-left:1px solid var(--line);
  padding-left:30px
}

.header-contact span {
  font-size:21px
}

.menu-toggle {
  display:none;
  border:0;
  background:none;
  padding:12px
}

.menu-toggle span {
  display:block;
  width:24px;
  height:1px;
  background:var(--ink);
  margin:6px 0;
  transition:transform .2s
}

.mobile-nav {
  display:none
}

.hero {
  position:relative;
  min-height:660px;
  height:calc(100svh - 88px);
  max-height:1050px;
  isolation:isolate;
  overflow:hidden;
  color:white
}

.hero-image {
  position:absolute;
  width:100%;
  height:100%;
  inset:0;
  z-index:-3;
  object-position:50% 46%;
  animation:hero-settle 1.6s ease-out
}

.hero-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(var(--hero-rgb),.55),rgba(var(--hero-rgb),.03) 75%),linear-gradient(0deg,rgba(var(--hero-rgb),.85),rgba(var(--hero-rgb),.1) 68%);
  z-index:-2
}

.hero-content {
  height:100%;
  min-height:inherit;
  padding:56px var(--gutter) 52px;
  display:flex;
  flex-direction:column
}

.hero .eyebrow {
  color:var(--dark-text)
}

.hero h1 {
  font-size:clamp(64px,8.5vw,136px);
  max-width:1000px;
  line-height:.98;
  letter-spacing:-.065em;
  margin:auto 0 80px;
  text-wrap:balance
}

.hero-bottom {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:60px
}

.hero-bottom>p {
  max-width:390px;
  font-size:16px;
  line-height:1.6
}

.hero-explore {
  display:flex;
  gap:64px;
  align-items:center;
  border-top:1px solid #ffffff70;
  padding-top:20px;
  min-width:280px;
  font-size:13px
}

.hero-explore span {
  font-size:25px;
  transition:transform .25s
}

.hero-explore:hover span {
  transform:translateY(4px)
}

.hero-coordinate {
  position:absolute;
  right:var(--gutter);
  top:56px;
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:.1em;
  writing-mode:vertical-rl;
  opacity:.75
}

.intro,.principles {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:50px
}

.intro h2 {
  margin-bottom:35px
}

.intro .lead {
  max-width:700px
}

.intro-bottom {
  margin-top:40px;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:56px;
  align-items:end
}

.intro-bottom p {
  font-size:15px;
  color:var(--muted)
}

.intro-bottom .text-link {
  justify-self:start
}

.section-intro {
  max-width:600px;
  color:var(--dark-muted);
  font-size:16px
}

.product-tabs {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  border-bottom:1px solid var(--dark-line);
  margin-top:55px
}

.product-tabs button {
  text-align:left;
  padding:20px 12px 20px 0;
  border:0;
  border-bottom:2px solid transparent;
  background:transparent;
  color:var(--dark-muted);
  transition:color .2s,border-color .2s;
  font-size:16px
}

.product-tabs button span {
  font-family:var(--mono);
  font-size:10px;
  margin-right:18px
}

.product-tabs button[aria-selected=true] {
  color:var(--leaf);
  border-bottom-color:var(--leaf)
}

.product-tabs button:hover {
  color:white
}

.product-panel {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7%;
  padding-top:55px;
  min-height:470px
}

.product-copy {
  display:flex;
  flex-direction:column;
  align-items:flex-start
}

.product-copy .eyebrow {
  color:var(--leaf);
  margin-bottom:20px
}

.product-copy h3 {
  font-size:clamp(36px,4vw,60px);
  margin-bottom:24px
}

.product-copy>p:not(.eyebrow):not(.product-footnote) {
  font-size:16px;
  color:var(--dark-muted);
  max-width:460px;
  margin-bottom:20px
}

.product-copy .product-footnote {
  font-size:10px;
  font-family:var(--mono);
  color:var(--dark-muted);
  margin-top:auto;
  padding-top:30px;
  text-transform:uppercase;
  letter-spacing:.025em
}

.model-visual,.system-visual {
  min-height:380px;
  position:relative;
  overflow:hidden;
  background:var(--diagram-bg);
  border:1px solid var(--dark-line);
  padding:22px;
  color:var(--dark-text)
}

.model-visual {
  background-image:radial-gradient(color-mix(in srgb, var(--diagram-line) 28%, transparent) .7px,transparent .7px);
  background-size:15px 15px
}

.visual-caption {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-family:var(--mono);
  font-size:8px;
  letter-spacing:.1em;
  position:relative;
  z-index:3
}

.model-orbit {
  border:1px solid color-mix(in srgb, var(--diagram-line) 40%, transparent);
  border-radius:50%;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-45%)
}

.orbit-one {
  width:190px;
  height:190px
}

.orbit-two {
  width:320px;
  height:290px;
  transform:translate(-50%,-45%) rotate(-20deg)
}

.orbit-three {
  width:440px;
  height:210px;
  transform:translate(-50%,-45%) rotate(32deg)
}

.model-center {
  position:absolute;
  left:50%;
  top:52%;
  transform:translate(-50%,-50%);
  font-size:29px;
  line-height:1.1;
  text-align:center;
  white-space:nowrap
}

.model-center span {
  display:block;
  font-family:var(--mono);
  font-size:8px;
  letter-spacing:0;
  margin-top:11px;
  color:var(--dark-muted)
}

.model-node {
  position:absolute;
  font-family:var(--mono);
  font-size:9px;
  padding:7px 10px;
  border:1px solid var(--diagram-line);
  background:var(--diagram-surface);
  box-shadow:0 0 24px color-mix(in srgb, var(--diagram-accent) 14%, transparent)
}

.node-one {
  left:15%;
  top:27%
}

.node-two {
  right:16%;
  top:22%
}

.node-three {
  right:8%;
  top:48%
}

.node-four {
  right:13%;
  bottom:20%
}

.node-five {
  left:5%;
  top:59%
}

.node-six {
  left:32%;
  bottom:17%
}

.visual-bottom {
  position:absolute;
  bottom:19px;
  left:22px;
  right:22px;
  font-family:var(--mono);
  font-size:8px;
  letter-spacing:.02em;
  color:var(--dark-muted)
}

.system-step {
  display:flex;
  gap:20px;
  align-items:center;
  padding:16px;
  background:var(--diagram-surface);
  border:1px solid var(--dark-line)
}

.system-step>span {
  font:10px var(--mono);
  color:var(--leaf)
}

.system-step small {
  display:block;
  font-size:10px;
  color:var(--dark-muted);
  margin-top:4px
}

.system-visual .visual-caption {
  margin-bottom:30px
}

.flow-arrow {
  display:block;
  text-align:center;
  color:var(--diagram-accent);
  line-height:1.4
}

.core-stack {
  padding:0 14px
}

.core-stack>div {
  padding:15px 18px;
  border:1px solid var(--diagram-line);
  background:var(--diagram-surface);
  margin-bottom:9px
}

.core-stack>div:nth-child(2) {
  margin-left:12px
}

.core-stack>div:nth-child(3) {
  margin-left:24px
}

.core-stack>div:nth-child(4) {
  margin-left:36px;
  background:var(--diagram-accent);
  color:var(--ink)
}

.offerings-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:23px;
  margin-top:50px
}

.offering-image {
  height:330px;
  position:relative;
  overflow:hidden
}

.offering-image:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,transparent 60%,#0005)
}

.offering-image img {
  width:100%;
  height:100%;
  transition:transform .7s ease,filter .7s ease;
  filter:saturate(.72)
}

.offering-card:hover img {
  transform:scale(1.045);
  filter:saturate(1)
}

.card-number {
  position:absolute;
  top:17px;
  left:17px;
  color:white;
  font:10px var(--mono);
  z-index:1
}

.card-arrow {
  position:absolute;
  bottom:0;
  right:0;
  background:var(--leaf);
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  z-index:1;
  font-size:24px;
  transition:background .2s
}

.offering-card:hover .card-arrow {
  background:white
}

.offering-card h3 {
  font-size:25px;
  letter-spacing:-.035em;
  margin:23px 0 12px
}

.offering-card p {
  font-size:14px;
  color:var(--muted);
  line-height:1.6
}

.mariposa-feature {
  display:grid;
  grid-template-columns:1.08fr 1fr;
  background:var(--surface-feature)
}

.mariposa-image {
  position:relative;
  min-height:650px;
  overflow:hidden
}

.mariposa-image img {
  width:100%;
  height:100%;
  position:absolute;
  object-position:44% center;
  filter:saturate(.65)
}

.image-caption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:45px 30px 23px;
  font-size:11px;
  color:white;
  background:linear-gradient(transparent,rgba(var(--hero-rgb),.7))
}

.mariposa-copy {
  padding:70px var(--gutter) 30px 65px;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}

.mariposa-copy .eyebrow {
  margin-bottom:30px
}

.mariposa-copy h2 {
  margin-bottom:28px
}

.mariposa-copy>p:not(.eyebrow) {
  font-size:15px;
  margin-bottom:22px;
  max-width:380px
}

.location-label {
  margin-top:auto;
  border-top:1px solid var(--line);
  padding-top:25px;
  width:100%;
  font:9px var(--mono);
  letter-spacing:.04em;
  display:flex;
  justify-content:space-between
}

.principle-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
  margin:45px 0 35px
}

.principle-grid article {
  border-top:1px solid var(--line);
  padding-top:20px
}

.principle-grid article>span {
  font:10px var(--mono);
  color:var(--muted)
}

.principle-grid h3 {
  font-size:21px;
  letter-spacing:-.035em;
  margin:25px 0 15px
}

.principle-grid p {
  font-size:14px;
  color:var(--muted)
}

.closing-cta {
  background:var(--leaf)
}

.closing-cta>.eyebrow {
  margin-bottom:30px
}

.closing-cta>div {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:50px
}

.closing-cta h2 {
  font-size:clamp(39px,5.5vw,84px)
}

.site-footer {
  padding:65px var(--gutter) 24px;
  background:var(--footer-bg);
  color:var(--footer-text)
}

.footer-top {
  display:grid;
  grid-template-columns:1fr 1.15fr .8fr 1.2fr;
  gap:45px;
  padding-bottom:65px
}

.footer-top .brand {
  align-self:start
}

.footer-top .brand-name {
  border-color:var(--footer-line)
}

.footer-top>p {
  font-size:17px;
  line-height:1.5
}

.footer-top>div a {
  display:block;
  font-size:12px;
  margin-top:10px;
  color:var(--footer-muted)
}

.footer-top .eyebrow {
  font-size:9px;
  color:var(--footer-muted);
  margin-bottom:20px
}

.footer-bottom {
  border-top:1px solid var(--footer-line);
  padding-top:23px;
  display:flex;
  justify-content:space-between;
  gap:25px;
  font-size:10px;
  color:var(--footer-muted)
}

.page-hero {
  padding-top:80px;
  padding-bottom:80px
}

.page-hero .eyebrow {
  margin-bottom:30px
}

.page-hero h1 {
  max-width:1100px
}

.page-hero .lead {
  max-width:740px;
  margin-top:35px;
  color:var(--muted)
}

.anchor-nav {
  display:flex;
  flex-wrap:wrap;
  gap:16px 40px;
  margin-top:48px;
  border-top:1px solid var(--line);
  padding-top:20px;
  font-size:13px
}

.anchor-nav a:hover {
  color:var(--link-hover)
}

.split {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:9%
}

.split .eyebrow {
  margin-bottom:30px
}

.split h2 {
  font-size:clamp(35px,4vw,60px)
}

.split h2+p {
  margin-top:30px
}

.body-copy p:not(.lead) {
  font-size:16px;
  color:var(--muted)
}

.body-copy .lead {
  margin-bottom:28px
}

.section-dark .body-copy p:not(.lead) {
  color:var(--dark-muted)
}

.architecture-strip {
  padding-top:50px;
  padding-bottom:55px
}

.architecture-grid {
  display:grid;
  grid-template-columns:1fr 40px 1.3fr 40px 1fr;
  gap:28px;
  align-items:center;
  margin-top:40px
}

.architecture-grid a>span {
  font:9px var(--mono);
  color:var(--leaf);
  letter-spacing:.06em
}

.architecture-grid h2 {
  font-size:37px;
  margin:15px 0
}

.architecture-grid p {
  font-size:12px;
  color:var(--dark-muted)
}

.architecture-grid a:hover h2 {
  color:var(--leaf)
}

.architecture-arrow {
  font-size:30px;
  color:var(--diagram-accent)
}

.editorial-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
  margin-top:65px
}

.editorial-grid article {
  border-top:1px solid var(--line);
  padding-top:25px
}

.editorial-grid h3 {
  font-size:26px;
  line-height:1.2;
  margin:22px 0
}

.editorial-grid p:not(.eyebrow) {
  font-size:15px;
  color:var(--muted)
}

.section-dark .editorial-grid p:not(.eyebrow) {
  color:var(--dark-muted)
}

.rule-list {
  list-style:none;
  padding:0;
  margin:30px 0
}

.rule-list li {
  padding:20px 0;
  border-top:1px solid var(--line);
  font-size:15px
}

.rule-list li strong {
  font-weight:500
}

.section-dark .rule-list li {
  border-color:var(--dark-line);
  color:var(--dark-muted)
}

.section-dark .rule-list li strong {
  color:var(--paper)
}

.feature-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:8%
}

.feature-row>img {
  width:100%;
  height:620px;
  filter:saturate(.7)
}

.feature-row .eyebrow {
  margin-bottom:25px
}

.feature-row h2 {
  margin-bottom:30px
}

.feature-row .lead {
  margin-bottom:25px
}

.feature-row p:not(.lead):not(.eyebrow):not(.small-note) {
  color:var(--muted);
  font-size:15px
}

.feature-row .text-link {
  margin-top:25px
}

.feature-row:nth-child(even) {
  background:var(--surface-soft)
}

.image-wide {
  width:100%;
  max-height:600px;
  object-fit:cover
}

.inquiry-form {
  max-width:760px;
  width:100%
}

.inquiry-form label {
  display:block;
  font-size:13px;
  margin:0 0 8px
}

.inquiry-form input,.inquiry-form select,.inquiry-form textarea {
  display:block;
  border:1px solid var(--muted);
  background:transparent;
  border-radius:0;
  width:100%;
  padding:12px 14px;
  color:var(--ink);
  margin-bottom:25px
}

.inquiry-form textarea {
  min-height:160px;
  resize:vertical
}

.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}

.form-status {
  margin-top:20px;
  font-size:14px
}

.contact-details {
  margin-top:35px
}

.contact-details a {
  overflow-wrap:anywhere
}

.inquiry-form button:disabled {
  cursor:not-allowed;
  opacity:.5
}

.page-hero+.image-wide {
  max-height:560px
}

.feature-row>div>p+p {
  margin-top:20px
}

.report-actions {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin-top:30px
}

@keyframes hero-settle {
  from {
    transform:scale(1.04)
  }
  to {
    transform:scale(1)
  }
}

@keyframes panel-enter {
  from {
    opacity:.3;
    transform:translateY(8px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}

.product-panel:not([hidden]) {
  animation:panel-enter .4s ease-out
}

@media(min-width:1600px) {
  .section-pad {
    padding-top:125px;
    padding-bottom:125px
  }
  .hero-bottom>p {
    max-width:470px;
    font-size:19px
  }
  .offering-image {
    height:420px
  }
  .hero-content {
    padding-top:70px;
    padding-bottom:65px
  }
}

@media(max-width:1100px) {
  .site-header {
    gap:24px
  }
  .desktop-nav {
    gap:23px
  }
  .hero {
    min-height:640px
  }
  .hero h1 {
    font-size:9vw
  }
  .intro,.principles {
    grid-template-columns:1fr 2.7fr;
    gap:30px
  }
  .intro-bottom {
    gap:30px
  }
  .product-panel {
    gap:40px
  }
  .offerings-grid {
    gap:18px
  }
  .offering-image {
    height:280px
  }
  .mariposa-copy {
    padding:55px 35px 30px
  }
  .mariposa-image {
    min-height:610px
  }
  .footer-top {
    grid-template-columns:1fr 1fr;
    gap:40px
  }
  .architecture-grid {
    gap:18px
  }
  .architecture-grid h2 {
    font-size:30px
  }
  .feature-row>img {
    height:560px
  }
}

@media(max-width:760px) {
  html {
    scroll-padding-top:88px
  }
  .section-pad {
    padding:65px var(--gutter)
  }
  .site-header {
    height:76px;
    gap:18px
  }
  .brand-mark {
    font-size:36px
  }
  .brand-name {
    font-size:9px;
    padding-left:12px
  }
  .brand {
    gap:12px
  }
  .desktop-nav {
    display:none
  }
  .header-contact {
    border:0;
    padding:0;
    margin-left:auto;
    font-size:12px;
    gap:14px
  }
  .menu-toggle {
    display:block;
    padding-right:0
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.5px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg)
  }
  .mobile-nav:not([hidden]) {
    display:flex;
    position:absolute;
    top:76px;
    left:0;
    right:0;
    background:var(--paper);
    padding:20px var(--gutter) 30px;
    flex-direction:column;
    border-bottom:1px solid var(--line);
    box-shadow:0 20px 30px #0002
  }
  .mobile-nav a {
    padding:15px 0;
    font-size:25px;
    border-bottom:1px solid var(--line)
  }
  .hero {
    height:calc(100svh - 76px);
    min-height:690px;
    max-height:900px
  }
  .hero-content {
    padding-top:34px;
    padding-bottom:32px
  }
  .hero h1 {
    font-size:clamp(56px,10.5vw,80px);
    margin:100px 0 62px;
    letter-spacing:-.055em
  }
  .hero-coordinate {
    display:none
  }
  .hero-image {
    object-position:59% center
  }
  .hero-bottom {
    flex-direction:column-reverse;
    align-items:flex-start;
    gap:30px;
    margin-top:auto
  }
  .hero-bottom>p {
    font-size:15px;
    max-width:380px
  }
  .hero-explore {
    min-width:100%;
    justify-content:space-between;
    padding-top:17px
  }
  .intro,.principles {
    grid-template-columns:1fr;
    gap:28px
  }
  .intro h2 {
    margin-bottom:28px
  }
  .intro-bottom {
    grid-template-columns:1fr;
    gap:24px;
    margin-top:28px
  }
  .intro-bottom p {
    max-width:520px
  }
  .section-heading {
    display:block
  }
  .section-heading h2 {
    margin-bottom:25px
  }
  .section-heading .eyebrow {
    margin-bottom:20px
  }
  .section-heading-note {
    max-width:440px
  }
  .product-tabs {
    margin-top:35px;
    grid-template-columns:1.75fr .7fr .7fr
  }
  .product-tabs button {
    font-size:12px;
    padding:15px 8px 15px 0
  }
  .product-tabs button span {
    display:block;
    font-size:9px;
    margin-bottom:8px
  }
  .product-panel {
    grid-template-columns:1fr;
    gap:30px;
    padding-top:30px
  }
  .product-copy h3 {
    font-size:44px
  }
  .product-copy .product-footnote {
    font-size:9px;
    padding-top:20px
  }
  .model-visual,.system-visual {
    min-height:370px
  }
  .offerings-grid {
    grid-template-columns:1fr 1fr;
    gap:35px 18px;
    margin-top:35px
  }
  .offering-image {
    height:250px
  }
  .offering-card h3 {
    font-size:23px;
    margin:18px 0 10px
  }
  .offering-card p {
    font-size:13px
  }
  .mariposa-feature {
    grid-template-columns:1fr
  }
  .mariposa-image {
    min-height:420px
  }
  .mariposa-copy {
    padding:45px var(--gutter) 30px
  }
  .mariposa-copy h2 {
    font-size:52px
  }
  .mariposa-copy>p:not(.eyebrow) {
    max-width:500px
  }
  .location-label {
    margin-top:40px
  }
  .principle-grid {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:35px
  }
  .principle-grid article {
    display:grid;
    grid-template-columns:35px 1fr;
    column-gap:20px
  }
  .principle-grid article>span {
    grid-row:span 2;
    padding-top:4px
  }
  .principle-grid h3 {
    margin:0 0 12px;
    font-size:24px
  }
  .principle-grid p {
    grid-column:2
  }
  .closing-cta>div {
    display:block
  }
  .closing-cta .button {
    margin-top:32px
  }
  .site-footer {
    padding-top:45px
  }
  .footer-top {
    gap:30px 18px;
    padding-bottom:40px
  }
  .footer-top>p {
    font-size:14px
  }
  .footer-bottom {
    flex-wrap:wrap;
    gap:15px
  }
  .footer-bottom>span:nth-child(2) {
    display:none
  }
  .footer-bottom>a {
    margin-left:auto
  }
  .page-hero h1 {
    font-size:clamp(44px,8vw,70px)
  }
  .page-hero .lead {
    margin-top:28px
  }
  .split {
    grid-template-columns:1fr;
    gap:30px
  }
  .split .eyebrow {
    margin-bottom:20px
  }
  .architecture-grid {
    grid-template-columns:1fr;
    gap:18px
  }
  .architecture-arrow {
    transform:rotate(90deg);
    justify-self:start;
    margin-left:8px
  }
  .architecture-grid h2 {
    font-size:38px;
    margin:9px 0
  }
  .architecture-grid p {
    font-size:14px
  }
  .architecture-grid {
    margin-top:30px
  }
  .editorial-grid {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:45px
  }
  .editorial-grid h3 {
    font-size:27px;
    margin:15px 0
  }
  .feature-row {
    grid-template-columns:1fr;
    gap:38px
  }
  .feature-row>img {
    height:400px
  }
  .image-wide {
    max-height:400px
  }
  .anchor-nav {
    gap:18px 30px;
    font-size:12px
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0
  }
}

@media(max-width:420px) {
  .brand-name {
    display:none
  }
  .site-header {
    gap:23px
  }
  .hero {
    min-height:680px
  }
  .hero h1 {
    font-size:56px;
    margin-top:85px;
    margin-bottom:42px
  }
  .hero .eyebrow {
    font-size:9px
  }
  .offering-image {
    height:215px
  }
  .offering-card h3 {
    font-size:21px
  }
  .card-number {
    left:12px;
    top:12px;
    font-size:9px
  }
  .offering-card p {
    font-size:12px
  }
  .card-arrow {
    width:36px;
    height:36px
  }
  .product-tabs button {
    font-size:11px
  }
  .product-panel {
    gap:28px
  }
  .model-node {
    font-size:8px;
    padding:6px
  }
  .node-one {
    left:7%
  }
  .node-two {
    right:9%
  }
  .node-three {
    right:2%
  }
  .node-five {
    left:2%
  }
  .node-four {
    right:7%
  }
  .model-center {
    font-size:25px
  }
  .model-visual {
    min-height:335px
  }
  .footer-top .brand-name {
    display:block
  }
  .footer-top>p {
    font-size:13px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}

/* Shared editorial spacing across inner pages. */
h2.section-heading {
  display:block
}

.body-copy h3 {
  font-size:27px;
  margin:0 0 18px
}

.body-copy p+h3 {
  margin-top:36px
}

.body-copy .text-link {
  margin-top:24px
}

.page-hero>.button {
  margin-top:32px
}

.section-dark .button {
  color:var(--paper);
  border-color:var(--diagram-accent);
  margin-top:28px
}

.section-dark .button:hover {
  color:var(--ink);
  background:var(--leaf)
}

.editorial-grid .text-link {
  margin-top:22px
}

.contact-details {
  margin-bottom:32px
}

.contact-details+.image-wide {
  height:240px;
  filter:saturate(.6)
}

.inquiry-form .small-note[role=status] {
  margin-top:20px;
  max-width:50ch
}

.section-dark .editorial-grid article {
  border-color:var(--dark-line)
}

.section-dark>h2.section-heading {
  margin-top:25px
}

.page-hero>.small-note {
  margin-top:24px
}

.feature-row:where(:not(.section-pad)) {
  background:transparent
}

@keyframes section-arrive {
  from {
    opacity:.65;
    transform:translateY(16px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}

@media(prefers-reduced-motion:no-preference) {
  .is-in-view {
    animation:section-arrive .65s ease-out both
  }
}

.anchor-alias {
  position: absolute;
  width: 0;
  height: 0;
  pointer-events: none;
}
.site-header {
  background: var(--paper);
}
@media (max-width: 420px) {
  .node-four {
    right: 3%;
    bottom: 25%;
  }
  .node-six {
    left: 18%;
    bottom: 12%;
  }
}

/* Purpose leads the narrative; the product system supports it. */
.brand-library { position: absolute; width: 0; height: 0; overflow: hidden; }
.brand { gap: 12px; }
.brand-symbol { width: 48px; height: 48px; flex: 0 0 48px; color: currentColor; }
.brand-symbol svg { display: none; width: 100%; height: 100%; }
.brand-wordmark { display: flex; flex-direction: column; gap: 2px; font-size: 14px; font-weight: 500; line-height: 1.13; letter-spacing: -.025em; }
.desktop-nav { gap: 26px; }
.values-section { display: grid; grid-template-columns: .85fr 1.4fr; gap: 8%; }
.values-heading h2 { margin: 28px 0; font-size: clamp(34px,3.3vw,54px); }
.values-heading > p:not(.eyebrow) { font-size: 16px; color: var(--muted); max-width: 290px; }
.values-heading .text-link { margin-top: 32px; }
.values-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px 40px; }
.values-grid article { border-top: 1px solid var(--line); padding-top: 20px; }
.principle-number { font: 10px var(--mono); color: var(--muted); }
.values-grid h3 { margin: 24px 0 18px; font-size: 25px; letter-spacing: -.035em; line-height: 1.15; }
.values-grid p { font-size: 15px; color: var(--muted); line-height: 1.65; }
.about-values { margin-top: 58px; gap: 40px 70px; }
.hero h1 { font-size: clamp(60px,7.5vw,120px); }
@media (max-width: 1000px) {
  .site-header { gap: 22px; }
  .desktop-nav { gap: 18px; font-size: 12px; }
  .header-contact { padding-left: 20px; gap: 18px; }
  .brand-wordmark { font-size: 12px; }
  .values-section { grid-template-columns: 1fr; gap: 40px; }
  .values-heading > p:not(.eyebrow) { max-width: 100%; }
}
@media (max-width: 900px) {
  .site-header { height: 76px; }
  .desktop-nav { display: none; }
  .header-contact { border: 0; padding: 0; margin-left: auto; }
  .menu-toggle { display: block; padding-right: 0; }
  .mobile-nav:not([hidden]) { display: flex; position: absolute; top: 76px; left: 0; right: 0; background: var(--paper); padding: 20px var(--gutter) 30px; flex-direction: column; border-bottom: 1px solid var(--line); box-shadow: 0 20px 30px #0002; }
  .mobile-nav a { padding: 15px 0; font-size: 25px; border-bottom: 1px solid var(--line); }
}
@media (max-width: 600px) {
  .values-grid { grid-template-columns: 1fr; gap: 30px; }
  .values-grid article { display: grid; grid-template-columns: 28px 1fr; column-gap: 16px; }
  .principle-number { grid-row: span 2; padding-top: 4px; }
  .values-grid h3 { margin: 0 0 14px; font-size: 25px; }
  .values-grid p { grid-column: 2; }
  .brand-symbol { width: 38px; height: 38px; flex-basis: 38px; }
  .brand-wordmark { font-size: 11px; }
  .brand { gap: 7px; }
  .site-header { gap: 14px; }
  .header-contact { font-size: 11px; gap: 8px; }
  .hero h1 { font-size: clamp(45px,9vw,60px); line-height: 1.03; }
}
@media (max-width: 360px) {
  .site-header .brand-wordmark { font-size: 10px; }
  .site-header { gap: 10px; }
  .header-contact span { display: none; }
  .brand-symbol { width: 34px; height: 34px; flex-basis: 34px; }
  .hero h1 { font-size: 45px; }
}

@media (max-width: 600px) { .hero h1 br { display: none; } }

/* International research and integrated building evidence. */
.international-section { border-bottom:1px solid var(--line) }
.credentials-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin-top:60px }
.credentials-grid article { display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid var(--line);padding-top:26px }
.credential-name { font-size:clamp(20px,2.2vw,32px);letter-spacing:-.04em;margin-bottom:34px }
.credentials-grid .eyebrow { color:var(--muted);margin:0 0 20px }
.credentials-grid h3 { font-size:clamp(27px,2.7vw,40px);margin-bottom:22px;line-height:1.1 }
.credentials-grid p:not(.eyebrow):not(.credential-name) { color:var(--muted);font-size:15px;margin:0 0 25px }
.credentials-grid .text-link { margin-top:auto }
.international-detail article { display:flex;flex-direction:column;align-items:flex-start;border-color:var(--dark-line) }
.international-detail .eyebrow { color:var(--leaf) }
.international-detail .text-link { margin-top:auto }
.international-detail p:not(.eyebrow) { margin-bottom:25px }
.research-context-grid { grid-template-columns:repeat(2,minmax(0,1fr));margin-top:40px }
.research-context-grid .text-link { margin-top:25px }
.capability-bridge { border-top:1px solid var(--dark-line);margin-top:45px;padding-top:38px;display:grid;grid-template-columns:1fr 1fr;gap:7% }
.capability-bridge .eyebrow { color:var(--leaf);margin-bottom:15px }
.capability-bridge h3 { font-size:36px }
.capability-bridge p:not(.eyebrow) { color:var(--dark-muted);font-size:15px }
.capability-bridge .text-link { margin-top:22px }
.development-label { display:inline-block;border:1px solid var(--line);font:10px/1.5 var(--mono);letter-spacing:.03em;padding:10px 13px;margin-top:30px;text-transform:uppercase;color:var(--muted) }
.building-evidence { display:grid;grid-template-columns:1.55fr 64px 1fr;gap:20px;align-items:center;margin-top:60px }
.evidence-observations { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px }
.evidence-observations article { border:1px solid var(--line);padding:24px;background:var(--paper) }
.evidence-observations svg { display:block;width:100%;height:140px;stroke:var(--accent);stroke-width:1.5;margin:20px 0;overflow:visible }
.evidence-dash { stroke-dasharray:3 5;opacity:.6 }
.evidence-observations h3 { font-size:23px;line-height:1.15;letter-spacing:-.04em;min-height:2.3em }
.evidence-observations p { font-size:13px;color:var(--muted);margin-top:15px }
.evidence-join { display:flex;justify-content:center;font-size:26px;color:var(--muted) }
.evidence-result { background:var(--forest);color:var(--dark-text);padding:32px;align-self:stretch;display:flex;flex-direction:column;justify-content:center }
.evidence-result .eyebrow { color:var(--leaf) }
.evidence-result h3 { font-size:clamp(30px,3vw,44px);margin:32px 0 22px }
.evidence-result p:not(.eyebrow) { color:var(--dark-muted);font-size:14px }
.evidence-caption { font:9px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--dark-muted);margin-top:36px }
.building-next { display:flex;align-items:center;justify-content:space-between;gap:35px;margin-top:35px }
.building-next p { max-width:600px;font-size:15px;color:var(--muted) }
.building-next .text-link { flex-shrink:0 }
.pilot-reference { font-size:13px!important }
.pilot-reference a { text-decoration:underline;text-underline-offset:3px }
.pilot-reference a:hover { color:var(--link-hover) }
.page-hero .report-edition { margin-top:24px;color:var(--muted) }
@media(max-width:1000px) {
  .building-evidence { grid-template-columns:1fr }
  .evidence-join { justify-content:center;gap:18px;line-height:1 }
  .evidence-join span:last-child { transform:rotate(90deg) }
  .evidence-result { padding:32px }
  .evidence-result h3 { margin:20px 0 }
  .evidence-result h3 br { display:none }
  .credentials-grid { gap:24px }
}
@media(max-width:760px) {
  .credentials-grid,.research-context-grid { grid-template-columns:1fr;gap:38px;margin-top:38px }
  .credential-name { font-size:27px;margin-bottom:22px }
  .credentials-grid h3 { font-size:32px }
  .credentials-grid h3 br { display:none }
  .capability-bridge { grid-template-columns:1fr;gap:25px;margin-top:35px;padding-top:30px }
  .capability-bridge h3 { font-size:32px }
  .building-evidence { margin-top:38px }
  .evidence-observations { gap:12px }
  .evidence-observations article { padding:18px }
  .evidence-observations svg { height:105px;margin:15px 0 }
  .evidence-observations h3 { font-size:20px }
  .evidence-result h3 { font-size:32px }
  .building-next { display:block }
  .building-next .text-link { margin-top:20px }
}
@media(max-width:420px) {
  .evidence-observations { grid-template-columns:1fr }
  .evidence-observations svg { height:120px }
  .evidence-observations h3 { min-height:0 }
  .evidence-result { padding:25px }
}


/* Keep the vertical signature steady while its final theme changes. */
.hero-coordinate { white-space:nowrap }
.hero-theme { display:inline-block;inline-size:17ch;vertical-align:top;transition:opacity .24s ease }
.hero-theme.is-changing { opacity:0 }
@media(prefers-reduced-motion:reduce) { .hero-theme { transition:none } }

/* A compact vector arrow keeps the contact cue consistent across devices. */
.header-contact-icon { display:block;width:14px;height:14px;flex:none }
@media (max-width: 900px) {
  .site-header .header-contact {
    display:inline-flex;
    flex-shrink:0;
    min-height:44px;
    gap:5px;
    font-size:12px;
    font-weight:500;
    line-height:1.2;
    letter-spacing:0;
    white-space:nowrap;
  }
  .header-contact-icon { width:12px;height:12px }
}
@media (max-width:360px) {
  .site-header .header-contact { gap:0 }
}


/* One compact arrow family for links, review controls, and explanatory diagrams. */
.site-arrow {
  display:inline-block;
  width:14px;
  height:14px;
  flex:0 0 auto;
  vertical-align:-2px;
}
.site-arrow-wrap:not(.card-arrow):not(.flow-arrow):not(.architecture-arrow) {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:inherit;
  line-height:1;
  vertical-align:middle;
}
.card-arrow .site-arrow { width:16px;height:16px }
.flow-arrow { display:flex;align-items:center;justify-content:center;min-height:24px }
.architecture-arrow { display:inline-flex;align-items:center;justify-content:center;line-height:1 }
.architecture-arrow .site-arrow,.evidence-join .site-arrow { width:18px;height:18px }
.anchor-nav a,.footer-bottom > a { display:inline-flex;align-items:center;gap:8px }
.review-open .site-arrow,.review-image-footer .site-arrow { width:12px;height:12px }
@media(max-width:900px) { .header-contact .site-arrow { width:12px;height:12px } }
