/* CarbonCore production stylesheet. Generated by tools/build_css.py. */

/* ===== variables.css ===== */

:root  {
  --navy-950:#07101c;
  --navy-900:#0b1626;
  --navy-850:#101d2e;
  --navy-800:#142235;
  --stone-50:#faf9f6;
  --stone-100:#f4f2ee;
  --stone-150:#edeae4;
  --mist:#dde2e6;
  --graphite:#3a4652;
  --slate:#687786;
  --steel:#aeb7c0;
  --copper-500:#c66a2e;
  --copper-700:#a65326;
  --aqua-400:#47c9cc;
  --teal-700:#0f7f88;
  --white:#fff;
  --black:#05080d;
  --success:#347b55;
  --warning:#a56512;
  --danger:#9d3d3d;
  --font-sans:Inter,Aptos,"Helvetica Neue",Arial,sans-serif;
  --container:1240px;
  --gutter:clamp(1.25rem,4vw,4rem);
  --space-1:.375rem;
  --space-2:.75rem;
  --space-3:1rem;
  --space-4:1.5rem;
  --space-5:2rem;
  --space-6:3rem;
  --space-7:4.5rem;
  --space-8:6.5rem;
  --space-9:9rem;
  --radius-xs:3px;
  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;
  --shadow-sm:0 8px 24px rgba(7,16,28,.08);
  --shadow-lg:0 28px 80px rgba(7,16,28,.18);
  --ease:cubic-bezier(.2,.8,.2,1);
  --header-h:78px;
}

/* ===== base.css ===== */

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  background:var(--stone-100)
}

body {
  margin:0;
  font-family:var(--font-sans);
  color:var(--navy-900);
  background:var(--stone-100);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility
}

img,svg {
  display:block;
  max-width:100%
}

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

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

button {
  cursor:pointer
}

::selection {
  background:var(--aqua-400);
  color:var(--navy-900)
}

:focus-visible {
  outline:3px solid var(--aqua-400);
  outline-offset:4px
}

.skip-link {
  position:fixed;
  left:1rem;
  top:-100px;
  z-index:10000;
  background:var(--stone-100);
  color:var(--navy-900);
  padding:.75rem 1rem;
  border-radius:4px
}

.skip-link:focus {
  top:1rem
}

.container {
  width:min(calc(100% - (2 * var(--gutter))),var(--container));
  margin-inline:auto
}

.section {
  padding:var(--space-8) 0;
  position:relative
}

.section-sm {
  padding:var(--space-6) 0
}

.section-dark {
  background:var(--navy-900);
  color:var(--stone-100)
}

.section-ink {
  background:var(--navy-950);
  color:var(--stone-100)
}

.section-light {
  background:var(--stone-50)
}

.eyebrow {
  display:flex;
  align-items:center;
  gap:.8rem;
  margin:0 0 1.2rem;
  color:var(--copper-700);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase
}

.section-dark .eyebrow,.section-ink .eyebrow {
  color:var(--copper-500)
}

.eyebrow::before {
  content:"";
  width:34px;
  height:1px;
  background:currentColor
}

.display {
  font-size:clamp(3.2rem,7vw,7.8rem);
  line-height:.92;
  letter-spacing:-.055em;
  font-weight:650;
  margin:0
}

.h1 {
  font-size:clamp(2.75rem,6vw,6rem);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:650;
  margin:0
}

.h2 {
  font-size:clamp(2.1rem,4.4vw,4.2rem);
  line-height:1.02;
  letter-spacing:-.035em;
  font-weight:650;
  margin:0
}

.h3 {
  font-size:clamp(1.35rem,2.3vw,2.1rem);
  line-height:1.15;
  letter-spacing:-.025em;
  font-weight:650;
  margin:0
}

.h4 {
  font-size:1rem;
  line-height:1.3;
  letter-spacing:.03em;
  font-weight:700;
  margin:0
}

.lead {
  font-size:clamp(1.15rem,1.8vw,1.45rem);
  line-height:1.55;
  color:var(--graphite);
  max-width:760px
}

.section-dark .lead,.section-ink .lead {
  color:var(--steel)
}

.copy {
  max-width:680px;
  color:var(--graphite)
}

.section-dark .copy,.section-ink .copy {
  color:var(--steel)
}

.micro {
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700
}

.muted {
  color:var(--slate)
}

.section-dark .muted,.section-ink .muted {
  color:var(--steel)
}

.rule {
  border:0;
  border-top:1px solid rgba(58,70,82,.22);
  margin:0
}

.section-dark .rule,.section-ink .rule {
  border-color:rgba(221,226,230,.16)
}

.status {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border:1px solid rgba(15,127,136,.28);
  background:rgba(71,201,204,.09);
  color:var(--teal-700);
  padding:.4rem .7rem;
  border-radius:999px;
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:750
}

.section-dark .status,.section-ink .status {
  color:var(--aqua-400);
  border-color:rgba(71,201,204,.3)
}

.status::before {
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:currentColor
}

.prose h2 {
  font-size:clamp(2rem,4vw,3.6rem);
  line-height:1.05;
  letter-spacing:-.035em;
  margin:3.5rem 0 1.25rem
}

.prose h3 {
  font-size:1.45rem;
  margin:2.4rem 0 .8rem
}

.prose p,.prose li {
  color:var(--graphite);
  font-size:1.06rem
}

.prose p {
  max-width:780px
}

.prose blockquote {
  margin:2.5rem 0;
  padding:1.5rem 0 1.5rem 1.5rem;
  border-left:3px solid var(--copper-500);
  font-size:1.35rem;
  line-height:1.45;
  max-width:820px
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

/* ===== components.css ===== */

.site-header {
  height:var(--header-h);
  position:fixed;
  inset:0 0 auto;
  z-index:1000;
  transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
  border-bottom:1px solid transparent
}

.site-header.scrolled {
  background:rgba(7,16,28,.94);
  backdrop-filter:blur(14px);
  border-color:rgba(221,226,230,.12)
}

.header-inner {
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem
}

.brand img {
  width:270px;
  height:auto
}

.nav-list {
  display:flex;
  align-items:center;
  gap:1.4rem;
  list-style:none;
  padding:0;
  margin:0
}

.nav-link {
  color:rgba(244,242,238,.72);
  font-size:.79rem;
  font-weight:650;
  letter-spacing:.04em;
  transition:color .25s
}

.nav-link:hover,.nav-link.active {
  color:var(--stone-100)
}

.nav-link.active {
  position:relative
}

.nav-link.active::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-12px;
  height:2px;
  background:var(--copper-500)
}

.nav-cta {
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  border:1px solid rgba(244,242,238,.28);
  color:var(--stone-100);
  padding:.66rem .9rem;
  border-radius:3px;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.05em;
  transition:background .25s,border .25s
}

.nav-cta:hover {
  background:var(--stone-100);
  color:var(--navy-900);
  border-color:var(--stone-100)
}

.mobile-nav {
  display:none
}

.menu-toggle {
  display:none;
  width:44px;
  height:44px;
  border:1px solid rgba(244,242,238,.25);
  background:transparent;
  color:var(--stone-100);
  border-radius:3px;
  position:relative
}

.menu-toggle span,.menu-toggle::before,.menu-toggle::after {
  content:"";
  position:absolute;
  width:20px;
  height:1.5px;
  background:currentColor;
  left:11px;
  transition:.25s var(--ease)
}

.menu-toggle::before {
  top:14px
}

.menu-toggle span {
  top:21px
}

.menu-toggle::after {
  top:28px
}

.menu-toggle[aria-expanded="true"]::before {
  transform:translateY(7px) rotate(45deg)
}

.menu-toggle[aria-expanded="true"] span {
  opacity:0
}

.menu-toggle[aria-expanded="true"]::after {
  transform:translateY(-7px) rotate(-45deg)
}

.progress-line {
  position:fixed;
  top:0;
  left:0;
  height:2px;
  width:0;
  background:var(--copper-500);
  z-index:2000
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  min-height:52px;
  padding:.85rem 1.2rem;
  border:1px solid transparent;
  border-radius:3px;
  font-size:.79rem;
  font-weight:750;
  letter-spacing:.07em;
  text-transform:uppercase;
  transition:transform .25s var(--ease),background .25s,color .25s,border .25s
}

.btn:hover {
  transform:translateY(-2px)
}

.btn-primary {
  background:var(--copper-500);
  color:var(--navy-950)
}

.btn-primary:hover {
  background:#d57a3b
}

.btn-secondary {
  border-color:rgba(244,242,238,.35);
  color:var(--stone-100);
  background:transparent
}

.btn-secondary:hover {
  border-color:var(--stone-100);
  background:rgba(244,242,238,.07)
}

.btn-dark {
  background:var(--navy-900);
  color:var(--stone-100)
}

.btn-quiet {
  border-color:rgba(11,22,38,.2);
  color:var(--navy-900);
  background:transparent
}

.btn-arrow::after {
  content:"↗";
  font-size:1rem
}

.button-row {
  display:flex;
  gap:.8rem;
  flex-wrap:wrap
}

.grid-2 {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(2rem,6vw,6rem)
}

.grid-3 {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:rgba(58,70,82,.18);
  border:1px solid rgba(58,70,82,.18)
}

.section-dark .grid-3,.section-ink .grid-3 {
  background:rgba(221,226,230,.14);
  border-color:rgba(221,226,230,.14)
}

.grid-4 {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem
}

.card {
  background:var(--stone-50);
  padding:clamp(1.4rem,3vw,2.5rem);
  border:1px solid rgba(58,70,82,.16)
}

.section-dark .card,.section-ink .card {
  background:var(--navy-850);
  border-color:rgba(221,226,230,.12)
}

.card-index {
  display:block;
  color:var(--copper-700);
  font-size:.72rem;
  letter-spacing:.18em;
  font-weight:800;
  margin-bottom:3rem
}

.section-dark .card-index,.section-ink .card-index {
  color:var(--copper-500)
}

.card p {
  color:var(--graphite);
  margin-bottom:0
}

.section-dark .card p,.section-ink .card p {
  color:var(--steel)
}

.icon-card img {
  width:32px;
  height:32px;
  margin-bottom:3rem
}

.section-dark .icon-card img,.section-ink .icon-card img {
  filter:invert(1) sepia(0) saturate(0) brightness(1.5)
}

.metric {
  padding:1.5rem 0;
  border-top:1px solid rgba(58,70,82,.2)
}

.metric-value {
  font-size:clamp(2rem,4vw,4rem);
  font-weight:650;
  letter-spacing:-.04em;
  line-height:1
}

.metric-label {
  font-size:.78rem;
  color:var(--slate);
  margin-top:.6rem
}

.feature-list {
  list-style:none;
  padding:0;
  margin:2rem 0 0
}

.feature-list li {
  display:grid;
  grid-template-columns:30px 1fr;
  gap:.8rem;
  padding:1rem 0;
  border-top:1px solid rgba(58,70,82,.18)
}

.feature-list li::before {
  content:"";
  width:8px;
  height:8px;
  margin-top:.55rem;
  border:2px solid var(--copper-500);
  border-radius:50%
}

.section-dark .feature-list li,.section-ink .feature-list li {
  border-color:rgba(221,226,230,.13)
}

.steps {
  counter-reset:step;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  border-top:1px solid rgba(58,70,82,.2)
}

.step {
  counter-increment:step;
  padding:2rem 1.4rem 2.2rem;
  border-right:1px solid rgba(58,70,82,.18);
  min-height:260px;
  position:relative;
  transition:background .3s
}

.step:first-child {
  border-left:1px solid rgba(58,70,82,.18)
}

.step:hover,.step.active {
  background:var(--stone-50)
}

.step::before {
  content:"0" counter(step);
  display:block;
  color:var(--copper-700);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.16em;
  margin-bottom:3rem
}

.step p {
  color:var(--slate);
  font-size:.92rem
}

.step-line {
  height:2px;
  background:var(--mist);
  position:absolute;
  left:1.4rem;
  right:1.4rem;
  bottom:1.3rem
}

.step-line::before {
  content:"";
  display:block;
  width:22%;
  height:100%;
  background:var(--copper-500);
  transition:width .4s var(--ease)
}

.step:hover .step-line::before,.step.active .step-line::before {
  width:100%
}

.tag-list {
  display:flex;
  gap:.5rem;
  flex-wrap:wrap
}

.tag {
  border:1px solid rgba(58,70,82,.2);
  padding:.5rem .7rem;
  font-size:.73rem;
  letter-spacing:.06em;
  color:var(--graphite);
  border-radius:999px
}

.section-dark .tag,.section-ink .tag {
  border-color:rgba(221,226,230,.2);
  color:var(--steel)
}

.quote {
  font-size:clamp(2rem,4vw,4rem);
  line-height:1.08;
  letter-spacing:-.035em;
  max-width:1000px;
  margin:0
}

.quote strong {
  color:var(--copper-500)
}

.technical-frame {
  border:1px solid rgba(221,226,230,.15);
  background:var(--navy-950);
  box-shadow:var(--shadow-lg);
  position:relative;
  overflow:hidden
}

.technical-frame::before {
  content:"ILLUSTRATIVE TECHNICAL MODEL";
  position:absolute;
  z-index:2;
  top:1rem;
  right:1rem;
  color:var(--aqua-400);
  font-size:.62rem;
  letter-spacing:.15em
}

.technical-frame img {
  width:100%
}

.decision-panel {
  border-left:4px solid var(--copper-500);
  padding:1.7rem 1.8rem;
  background:rgba(198,106,46,.08)
}

.decision-panel .micro {
  color:var(--copper-700);
  margin-bottom:.65rem
}

.data-bars {
  display:grid;
  gap:1.2rem
}

.data-row {
  display:grid;
  grid-template-columns:150px 1fr 52px;
  align-items:center;
  gap:1rem;
  font-size:.82rem
}

.bar {
  height:7px;
  background:var(--mist);
  position:relative;
  overflow:hidden;
  border-radius:999px
}

.bar span {
  display:block;
  height:100%;
  background:var(--teal-700)
}

.data-row.risk .bar span {
  background:var(--copper-700)
}

.cta-panel {
  display:grid;
  grid-template-columns:1.3fr .7fr;
  align-items:end;
  gap:3rem;
  padding:clamp(2rem,6vw,5rem);
  background:var(--navy-900);
  color:var(--stone-100);
  position:relative;
  overflow:hidden
}

.cta-panel::after {
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  right:-220px;
  top:-220px;
  border:1px solid rgba(71,201,204,.28);
  border-radius:50%;
  box-shadow:0 0 0 50px rgba(71,201,204,.04),0 0 0 100px rgba(71,201,204,.025)
}

.cta-panel p {
  color:var(--steel)
}

.site-footer {
  background:var(--navy-950);
  color:var(--stone-100);
  padding:var(--space-7) 0 var(--space-4)
}

.footer-grid {
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:3rem
}

.footer-brand img {
  width:290px;
  margin-bottom:1.4rem
}

.footer-brand p {
  color:var(--steel);
  max-width:400px
}

.footer-title {
  font-size:.7rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--copper-500);
  font-weight:750;
  margin-bottom:1rem
}

.footer-links {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.7rem
}

.footer-links a {
  color:var(--steel);
  font-size:.9rem
}

.footer-links a:hover {
  color:var(--stone-100)
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:2rem;
  margin-top:4rem;
  padding-top:1.2rem;
  border-top:1px solid rgba(221,226,230,.12);
  color:#7f8b96;
  font-size:.72rem;
  letter-spacing:.05em
}

.reveal {
  opacity:0;
  transform:translateY(26px);
  transition:opacity .7s var(--ease),transform .7s var(--ease)
}

.reveal.visible {
  opacity:1;
  transform:none
}

.accordion {
  border-top:1px solid rgba(58,70,82,.2)
}

.accordion-item {
  border-bottom:1px solid rgba(58,70,82,.2)
}

.accordion-button {
  width:100%;
  display:grid;
  grid-template-columns:60px 1fr auto;
  gap:1rem;
  align-items:center;
  text-align:left;
  background:transparent;
  border:0;
  padding:1.4rem 0;
  color:var(--navy-900)
}

.accordion-button .num {
  color:var(--copper-700);
  font-size:.74rem;
  font-weight:750
}

.accordion-button::after {
  content:"+";
  font-size:1.5rem;
  font-weight:300
}

.accordion-button[aria-expanded="true"]::after {
  content:"−"
}

.accordion-panel {
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .35s var(--ease)
}

.accordion-panel>div {
  overflow:hidden
}

.accordion-button[aria-expanded="true"]+.accordion-panel {
  grid-template-rows:1fr
}

.accordion-content {
  padding:0 0 1.6rem 60px;
  color:var(--graphite);
  max-width:850px
}

.form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.2rem
}

.field {
  display:grid;
  gap:.45rem
}

.field.full {
  grid-column:1/-1
}

.field label {
  font-size:.74rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--graphite)
}

.field input,.field textarea,.field select {
  width:100%;
  border:1px solid #c9d0d6;
  background:#fff;
  color:var(--navy-900);
  padding:.9rem 1rem;
  border-radius:3px;
  min-height:50px
}

.field textarea {
  min-height:150px;
  resize:vertical
}

.field-hint {
  font-size:.78rem;
  color:var(--slate)
}

.form-status {
  margin-top:1rem;
  min-height:24px;
  color:var(--teal-700);
  font-size:.9rem
}

.article-card {
  display:flex;
  flex-direction:column;
  min-height:420px;
  padding:2rem;
  border:1px solid rgba(58,70,82,.17);
  background:var(--stone-50);
  transition:transform .3s var(--ease),box-shadow .3s
}

.article-card:hover {
  transform:translateY(-6px);
  box-shadow:var(--shadow-sm)
}

.article-card .meta {
  display:flex;
  justify-content:space-between;
  color:var(--slate);
  font-size:.7rem;
  letter-spacing:.1em;
  text-transform:uppercase
}

.article-card h3 {
  margin:4rem 0 1rem
}

.article-card p {
  color:var(--graphite)
}

.article-card .read {
  margin-top:auto;
  font-size:.76rem;
  font-weight:750;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--copper-700)
}

.kicker-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem
}

.kicker {
  padding:1.3rem;
  border-top:2px solid var(--copper-500);
  background:rgba(255,255,255,.45)
}

.kicker .micro {
  color:var(--copper-700)
}

.logo-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  flex-wrap:wrap;
  padding:1.5rem 0;
  color:var(--slate);
  font-size:.74rem;
  letter-spacing:.1em;
  text-transform:uppercase
}

.page-index {
  position:fixed;
  right:1.2rem;
  bottom:1.2rem;
  z-index:30;
  background:rgba(7,16,28,.86);
  color:var(--steel);
  padding:.6rem .8rem;
  border:1px solid rgba(221,226,230,.12);
  font-size:.65rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  backdrop-filter:blur(8px)
}

/* ===== pages.css ===== */

.hero {
  min-height:100svh;
  background:var(--navy-950);
  color:var(--stone-100);
  display:flex;
  align-items:flex-end;
  padding:calc(var(--header-h) + 6rem) 0 4rem;
  position:relative;
  overflow:hidden
}

.hero-grid {
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:clamp(2rem,5vw,6rem);
  align-items:center
}

.hero-copy {
  position:relative;
  z-index:2
}

.hero .display {
  max-width:760px
}

.hero .display span {
  color:var(--copper-500)
}

.hero-sub {
  font-size:clamp(1.05rem,1.6vw,1.32rem);
  color:var(--steel);
  max-width:660px;
  margin:2rem 0
}

.hero-meta {
  display:flex;
  gap:2rem;
  flex-wrap:wrap;
  margin-top:3.3rem;
  padding-top:1.2rem;
  border-top:1px solid rgba(221,226,230,.14)
}

.hero-meta div {
  min-width:140px
}

.hero-meta strong {
  display:block;
  color:var(--stone-100);
  font-size:.9rem
}

.hero-meta span {
  font-size:.72rem;
  color:#7f8b96
}

.hero-visual {
  position:relative;
  z-index:1
}

.hero-visual::before {
  content:"";
  position:absolute;
  inset:10% -10% 15% 10%;
  background:radial-gradient(circle,rgba(71,201,204,.13),transparent 68%);
  filter:blur(20px)
}

.hero-visual img {
  position:relative;
  max-height:73vh;
  margin-left:auto;
  border:1px solid rgba(221,226,230,.12)
}

.hero-scroll {
  position:absolute;
  bottom:1.2rem;
  right:var(--gutter);
  font-size:.63rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#7f8b96;
  writing-mode:vertical-rl
}

.hero-scroll::after {
  content:"";
  display:block;
  width:1px;
  height:54px;
  background:var(--copper-500);
  margin:.8rem auto 0
}

.page-hero {
  background:var(--navy-950);
  color:var(--stone-100);
  padding:calc(var(--header-h) + 7rem) 0 5rem;
  position:relative;
  overflow:hidden
}

.page-hero::after {
  content:"";
  position:absolute;
  inset:auto -15% -55% 35%;
  height:500px;
  border:1px solid rgba(71,201,204,.16);
  border-radius:50%;
  box-shadow:0 0 0 60px rgba(71,201,204,.025),0 0 0 120px rgba(71,201,204,.015)
}

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

.page-hero .lead {
  margin-top:2rem
}

.page-hero-footer {
  display:flex;
  justify-content:space-between;
  gap:2rem;
  align-items:end;
  margin-top:5rem;
  padding-top:1.4rem;
  border-top:1px solid rgba(221,226,230,.15)
}

.page-hero-footer p {
  margin:0;
  color:var(--steel);
  max-width:620px
}

.manifesto {
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:6rem;
  align-items:start
}

.manifesto .h2 {
  position:sticky;
  top:120px
}

.capability-map {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:rgba(58,70,82,.18)
}

.capability {
  background:var(--stone-100);
  padding:2rem;
  min-height:220px
}

.capability h3 {
  margin-top:2.5rem
}

.capability p {
  color:var(--graphite)
}

.split-visual {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,6vw,7rem);
  align-items:center
}

.sticky-copy {
  position:sticky;
  top:120px
}

.industry-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:rgba(58,70,82,.16)
}

.industry-card {
  background:var(--stone-50);
  padding:2rem;
  min-height:260px;
  display:flex;
  flex-direction:column
}

.industry-card .sector {
  color:var(--copper-700);
  font-size:.72rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:750
}

.industry-card h3 {
  margin-top:3rem
}

.industry-card p {
  color:var(--graphite)
}

.industry-card a {
  margin-top:auto;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:750
}

.service-table {
  border-top:1px solid rgba(58,70,82,.2)
}

.service-row {
  display:grid;
  grid-template-columns:.55fr 1.2fr 1.1fr .7fr;
  gap:2rem;
  padding:1.7rem 0;
  border-bottom:1px solid rgba(58,70,82,.2);
  align-items:start
}

.service-row.header {
  font-size:.7rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:750;
  color:var(--slate);
  padding:.8rem 0
}

.service-row strong {
  font-size:1.1rem
}

.service-row p {
  margin:0;
  color:var(--graphite)
}

.storage-layers {
  display:grid;
  gap:.8rem
}

.layer {
  display:grid;
  grid-template-columns:120px 1fr 140px;
  align-items:center;
  gap:1rem;
  padding:1rem 1.2rem;
  background:var(--navy-850);
  border:1px solid rgba(221,226,230,.1)
}

.layer .depth {
  color:var(--aqua-400);
  font-size:.72rem;
  letter-spacing:.12em
}

.layer .state {
  text-align:right;
  color:var(--steel);
  font-size:.78rem
}

.layer.highlight {
  border-color:var(--copper-500);
  box-shadow:inset 3px 0 var(--copper-500)
}

.principles {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2rem
}

.principle {
  border-top:2px solid var(--copper-500);
  padding-top:1.3rem
}

.principle p {
  color:var(--graphite)
}

.team-grid {
  display:grid;
  grid-template-columns:1.1fr repeat(2,.95fr);
  gap:1rem
}

.team-lead,.team-card {
  background:var(--stone-50);
  border:1px solid rgba(58,70,82,.15);
  padding:2rem;
  min-height:420px
}

.team-lead {
  background:var(--navy-900);
  color:var(--stone-100)
}

.team-lead p {
  color:var(--steel)
}

.person-placeholder {
  height:165px;
  background:linear-gradient(145deg,var(--navy-800),var(--navy-950));
  border:1px solid rgba(221,226,230,.1);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--steel);
  font-size:.7rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:2rem
}

.team-card .person-placeholder {
  background:var(--mist);
  border-color:#c9d0d6;
  color:var(--slate)
}

.contact-shell {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:clamp(3rem,7vw,8rem)
}

.contact-aside {
  position:sticky;
  top:120px;
  align-self:start
}

.contact-direct {
  display:grid;
  gap:.7rem;
  margin-top:2rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(58,70,82,.2)
}

.contact-direct a {
  font-weight:650
}

.legal-note {
  padding:1rem 1.2rem;
  border:1px solid rgba(166,83,38,.3);
  background:rgba(198,106,46,.08);
  color:var(--graphite);
  font-size:.9rem
}

.article-hero {
  padding-bottom:3rem
}

.article-meta {
  display:flex;
  gap:2rem;
  flex-wrap:wrap;
  color:var(--steel);
  font-size:.75rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-top:3rem
}

.article-body {
  display:grid;
  grid-template-columns:220px 1fr;
  gap:clamp(3rem,7vw,8rem)
}

.article-aside {
  position:sticky;
  top:120px;
  align-self:start
}

.article-aside .tag {
  display:inline-flex;
  margin:.25rem .15rem .25rem 0
}

.insight-number {
  font-size:clamp(6rem,15vw,14rem);
  line-height:.75;
  color:rgba(58,70,82,.08);
  font-weight:700;
  letter-spacing:-.08em
}

.not-found {
  min-height:100vh;
  background:var(--navy-950);
  color:var(--stone-100);
  display:grid;
  place-items:center;
  text-align:center;
  padding:2rem
}

/* ===== responsive.css ===== */

@media(max-width:1120px) {
  .nav-list {
    gap:.9rem
  }

  .nav-link {
    font-size:.72rem
  }

  .brand img {
    width:235px
  }

  .grid-4,.industry-grid {
    grid-template-columns:repeat(2,1fr)
  }

  .steps {
    grid-template-columns:repeat(3,1fr)
  }

  .step:nth-child(4),.step:nth-child(5) {
    border-top:1px solid rgba(58,70,82,.18)
  }

  .footer-grid {
    grid-template-columns:1.4fr repeat(2,1fr)
  }

  .footer-grid>div:last-child {
    grid-column:2
  }

  .hero-grid {
    grid-template-columns:1.1fr .9fr
  }

  .service-row {
    grid-template-columns:.45fr 1fr 1fr
  }

  .service-row>*:last-child {
    display:none
  }

  .team-grid {
    grid-template-columns:1fr 1fr
  }

  .team-lead {
    grid-column:1/-1
  }

}

@media(max-width:900px) {
  :root {
    --header-h:70px
  }

  .desktop-nav {
    display:none
  }

  .menu-toggle {
    display:block
  }

  .mobile-nav {
    display:block;
    position:fixed;
    inset:var(--header-h) 0 auto;
    background:var(--navy-950);
    border-top:1px solid rgba(221,226,230,.12);
    padding:1rem var(--gutter) 2rem;
    transform:translateY(-120%);
    opacity:0;
    visibility:hidden;
    transition:.35s var(--ease)
  }

  .mobile-nav.open {
    transform:none;
    opacity:1;
    visibility:visible
  }

  .mobile-nav .nav-list {
    display:grid;
    gap:0
  }

  .mobile-nav .nav-link {
    display:block;
    padding:1rem 0;
    border-bottom:1px solid rgba(221,226,230,.1);
    font-size:1rem
  }

  .mobile-nav .nav-cta {
    margin-top:1rem
  }

  .hero {
    padding-top:calc(var(--header-h) + 4rem)
  }

  .hero-grid,.split-visual,.manifesto,.contact-shell,.article-body {
    grid-template-columns:1fr
  }

  .hero-visual {
    order:-1
  }

  .hero-visual img {
    max-height:44vh;
    width:100%;
    object-fit:cover
  }

  .hero .display {
    font-size:clamp(3.2rem,11vw,6.5rem)
  }

  .manifesto .h2,.sticky-copy,.contact-aside,.article-aside {
    position:static
  }

  .grid-3 {
    grid-template-columns:1fr
  }

  .steps {
    grid-template-columns:1fr
  }

  .step {
    min-height:210px;
    border-left:1px solid rgba(58,70,82,.18);
    border-top:1px solid rgba(58,70,82,.18)
  }

  .step:first-child {
    border-top:0
  }

  .cta-panel {
    grid-template-columns:1fr
  }

  .footer-grid {
    grid-template-columns:1fr 1fr
  }

  .footer-brand {
    grid-column:1/-1
  }

  .footer-grid>div:last-child {
    grid-column:auto
  }

  .page-hero-footer {
    align-items:start;
    flex-direction:column
  }

  .capability-map {
    grid-template-columns:1fr
  }

  .service-row {
    grid-template-columns:.5fr 1fr
  }

  .service-row>*:nth-child(3) {
    display:none
  }

  .principles {
    grid-template-columns:1fr
  }

  .article-card {
    min-height:340px
  }

  .article-card h3 {
    margin-top:2rem
  }

}

@media(max-width:640px) {
  :root {
    --gutter:1.1rem;
    --space-8:4.5rem;
    --space-9:6rem
  }

  .brand img {
    width:220px
  }

  .display {
    font-size:clamp(3rem,14vw,5rem)
  }

  .h1 {
    font-size:clamp(2.7rem,13vw,4.6rem)
  }

  .h2 {
    font-size:clamp(2.1rem,10vw,3.4rem)
  }

  .hero-meta {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.2rem
  }

  .hero-scroll,.page-index {
    display:none
  }

  .button-row {
    align-items:stretch
  }

  .button-row .btn {
    width:100%
  }

  .grid-2,.grid-4,.industry-grid,.kicker-grid,.team-grid,.form-grid {
    grid-template-columns:1fr
  }

  .team-lead {
    grid-column:auto
  }

  .footer-grid {
    grid-template-columns:1fr
  }

  .footer-brand {
    grid-column:auto
  }

  .footer-grid>div:last-child {
    grid-column:auto
  }

  .footer-bottom {
    flex-direction:column
  }

  .service-row {
    grid-template-columns:1fr;
    gap:.4rem
  }

  .service-row.header {
    display:none
  }

  .service-row>*:nth-child(3),.service-row>*:last-child {
    display:block
  }

  .service-row strong {
    margin-top:.7rem
  }

  .data-row {
    grid-template-columns:110px 1fr 42px
  }

  .layer {
    grid-template-columns:90px 1fr
  }

  .layer .state {
    display:none
  }

  .article-body {
    display:block
  }

  .article-aside {
    margin-bottom:2rem
  }

  .accordion-button {
    grid-template-columns:40px 1fr auto
  }

  .accordion-content {
    padding-left:40px
  }

  .hero-sub {
    margin:1.4rem 0
  }

  .hero-meta {
    margin-top:2.2rem
  }

  .section {
    padding:4.5rem 0
  }

  .page-hero {
    padding-top:calc(var(--header-h) + 4.5rem)
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  *,*::before,*::after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important
  }

  .reveal {
    opacity:1;
    transform:none
  }

}

/* ===== v02.css ===== */

:root {
  --navy-950:#07111f;
  --navy-900:#0B1626;
  --navy-850:#102033;
  --navy-800:#16283a;
  --stone-50:#f7f7f5;
  --stone-100:#E6E8EB;
  --stone-150:#d9dde1;
  --mist:#d5dade;
  --graphite:#3A4652;
  --slate:#667582;
  --steel:#7C9AA8;
  --copper-500:#C36A2E;
  --copper-700:#9e4e25;
  --aqua-400:#7C9AA8;
  --teal-700:#597887;
  --container:1320px;
  --header-h:86px;
}

html {
  background:var(--navy-950)
}

body {
  background:var(--stone-50);
  letter-spacing:.005em
}

::selection {
  background:var(--copper-500);
  color:#fff
}

:focus-visible {
  outline-color:var(--copper-500)
}

.site-header {
  height:var(--header-h)
}

.site-header.scrolled {
  background:rgba(7,17,31,.96);
  border-color:rgba(230,232,235,.12)
}

.brand img {
  width:288px
}

.nav-list {
  gap:1.65rem
}

.nav-link {
  font-size:.72rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:600
}

.nav-cta {
  border-color:var(--copper-500);
  padding:.72rem 1.05rem;
  text-transform:uppercase;
  letter-spacing:.09em
}

.nav-cta:hover {
  background:var(--copper-500);
  border-color:var(--copper-500);
  color:#fff
}

.progress-line {
  background:var(--copper-500)
}

.eyebrow {
  color:var(--copper-500);
  letter-spacing:.2em
}

.eyebrow::before {
  width:24px
}

.status,.section-dark .status,.section-ink .status {
  color:var(--copper-500);
  border-color:rgba(195,106,46,.35);
  background:rgba(195,106,46,.08)
}

.display,.h1,.h2,.h3 {
  font-weight:620
}

.display {
  text-transform:uppercase;
  letter-spacing:-.03em;
  line-height:.96
}

.h1 {
  letter-spacing:-.032em
}

.h2 {
  letter-spacing:-.028em
}

.btn {
  border-radius:0;
  min-height:48px;
  font-size:.7rem;
  letter-spacing:.11em
}

.btn-primary {
  background:transparent;
  color:var(--stone-50);
  border-color:var(--copper-500)
}

.btn-primary:hover {
  background:var(--copper-500);
  color:#fff
}

.btn-secondary {
  border-color:rgba(230,232,235,.35)
}

.btn-dark {
  background:var(--navy-900);
  color:#fff
}

.btn-quiet {
  border-color:rgba(11,22,38,.25)
}

.section {
  padding:clamp(5rem,8vw,8.5rem) 0
}

.section-light {
  background:#f5f5f3
}

.section-dark {
  background:var(--navy-900)
}

.section-ink {
  background:var(--navy-950)
}

.card,.capability,.industry-card,.article-card,.team-lead,.team-card {
  border-radius:0;
  box-shadow:none
}

.card-index {
  color:var(--copper-500)
}

.hero {
  min-height:900px;
  align-items:center;
  padding:calc(var(--header-h) + 4rem) 0 3rem;
  background:var(--navy-950)
}

.hero::before {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:42%;
  background:url('../images/contour-field.svg') center bottom/cover no-repeat;
  opacity:.34;
  pointer-events:none
}

.hero-grid {
  grid-template-columns:minmax(0,1.04fr) minmax(420px,.96fr);
  gap:clamp(3rem,6vw,7rem)
}

.hero .display {
  font-size:clamp(3.4rem,6.3vw,6.85rem);
  max-width:820px
}

.hero .display span {
  color:var(--copper-500)
}

.hero-sub {
  font-size:clamp(1rem,1.35vw,1.25rem);
  max-width:590px;
  line-height:1.65;
  margin:2.2rem 0 2rem
}

.hero-claim {
  font-size:clamp(1.1rem,1.7vw,1.45rem);
  color:var(--stone-50);
  margin:0 0 1rem
}

.hero-visual {
  margin-top:1.5rem
}

.hero-visual::before {
  background:radial-gradient(circle,rgba(124,154,168,.12),transparent 68%)
}

.hero-visual img {
  border:1px solid rgba(230,232,235,.1);
  max-height:720px;
  width:100%
}

.hero-scroll {
  right:1.5rem;
  color:#71808d
}

.hero-scroll::after {
  background:var(--copper-500)
}

.home-intro {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:clamp(3rem,8vw,9rem);
  align-items:start
}

.home-intro .lead {
  margin-top:0
}

.pillar-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(230,232,235,.16);
  border-bottom:1px solid rgba(230,232,235,.16)
}

.pillar {
  padding:2.6rem 2rem 2.8rem;
  border-right:1px solid rgba(230,232,235,.13);
  min-height:310px
}

.pillar:last-child {
  border-right:0
}

.pillar img {
  width:48px;
  height:48px;
  margin-bottom:3rem
}

.pillar .micro {
  color:var(--copper-500);
  display:block;
  margin-bottom:.9rem
}

.pillar h3 {
  font-size:1.18rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:.85rem
}

.pillar p {
  color:var(--steel);
  font-size:.92rem;
  line-height:1.65;
  margin:0
}

.lifecycle-shell {
  display:grid;
  grid-template-columns:.68fr 1.32fr;
  gap:clamp(3rem,7vw,8rem);
  align-items:start
}

.lifecycle-list {
  border-top:1px solid rgba(58,70,82,.22)
}

.lifecycle-item {
  display:grid;
  grid-template-columns:54px 1fr auto;
  gap:1.4rem;
  align-items:center;
  padding:1.35rem 0;
  border-bottom:1px solid rgba(58,70,82,.18)
}

.lifecycle-item .number {
  color:var(--copper-500);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em
}

.lifecycle-item h3 {
  font-size:1rem;
  text-transform:uppercase;
  letter-spacing:.07em;
  margin:0
}

.lifecycle-item p {
  color:var(--slate);
  font-size:.86rem;
  margin:.25rem 0 0
}

.lifecycle-item .arrow {
  color:var(--copper-500);
  font-size:1.2rem
}

.anchor-split {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(3rem,7vw,8rem);
  align-items:center
}

.anchor-copy {
  max-width:620px
}

.anchor-visual {
  border:1px solid rgba(230,232,235,.12);
  background:var(--navy-950)
}

.operating-strip {
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid rgba(58,70,82,.18)
}

.operating-strip article {
  padding:2.4rem 2.5rem
}

.operating-strip article+article {
  border-left:1px solid rgba(58,70,82,.18)
}

.operating-strip .micro {
  color:var(--copper-500)
}

.operating-strip h3 {
  margin:.8rem 0;
  font-size:1.25rem
}

.operating-strip p {
  margin:0;
  color:var(--graphite)
}

.cta-panel {
  background:var(--navy-950);
  border-top:1px solid rgba(230,232,235,.12);
  border-bottom:1px solid rgba(230,232,235,.12);
  padding:clamp(2.5rem,6vw,5.5rem)
}

.cta-panel::after {
  border-color:rgba(195,106,46,.26);
  box-shadow:0 0 0 50px rgba(195,106,46,.025),0 0 0 100px rgba(195,106,46,.012)
}

.page-hero {
  background:var(--navy-950);
  padding-top:calc(var(--header-h) + 7rem)
}

.page-hero::after {
  inset:auto 0 -10% 0;
  height:300px;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:url('../images/contour-field.svg') center bottom/cover no-repeat;
  opacity:.28
}

.page-hero .container {
  position:relative;
  z-index:1
}

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

.icon-card img {
  filter:none!important;
  width:42px;
  height:42px
}

.technical-frame::before {
  color:var(--copper-500)
}

.data-row .bar span {
  background:var(--steel)
}

.site-footer {
  padding:4rem 0 1.7rem
}

.footer-grid {
  grid-template-columns:1.6fr repeat(3,.72fr);
  gap:2.5rem
}

.footer-brand img {
  width:270px
}

.footer-brand p {
  max-width:360px;
  font-size:.86rem
}

.footer-bottom {
  margin-top:3rem
}

@media(max-width:1120px) {
  .pillar-grid {
    grid-template-columns:repeat(2,1fr)
  }

  .pillar:nth-child(2) {
    border-right:0
  }

  .pillar:nth-child(-n+2) {
    border-bottom:1px solid rgba(230,232,235,.13)
  }

}

@media(max-width:900px) {
  .hero {
    min-height:auto;
    padding-top:calc(var(--header-h) + 5rem)
  }

  .hero-grid,.home-intro,.lifecycle-shell,.anchor-split {
    grid-template-columns:1fr
  }

  .hero-visual {
    order:initial
  }

  .hero-visual img {
    max-height:none;
    object-fit:contain
  }

  .hero .display {
    font-size:clamp(3rem,11vw,5.7rem)
  }

  .footer-grid {
    grid-template-columns:1fr 1fr
  }

  .footer-brand {
    grid-column:1/-1
  }

}

@media(max-width:640px) {
  .brand img {
    width:230px
  }

  .hero {
    padding-bottom:2.5rem
  }

  .hero .display {
    font-size:clamp(2.75rem,13vw,4.6rem)
  }

  .hero-sub {
    font-size:1rem
  }

  .hero-visual {
    margin-top:1rem
  }

  .pillar-grid {
    grid-template-columns:1fr
  }

  .pillar {
    min-height:auto;
    border-right:0;
    border-bottom:1px solid rgba(230,232,235,.13);
    padding:2rem 0
  }

  .pillar:nth-child(-n+2) {
    border-bottom:1px solid rgba(230,232,235,.13)
  }

  .pillar img {
    margin-bottom:1.5rem
  }

  .lifecycle-item {
    grid-template-columns:40px 1fr auto;
    gap:.75rem
  }

  .operating-strip {
    grid-template-columns:1fr
  }

  .operating-strip article+article {
    border-left:0;
    border-top:1px solid rgba(58,70,82,.18)
  }

  .footer-grid {
    grid-template-columns:1fr
  }

  .footer-brand {
    grid-column:auto
  }

}

@media(prefers-reduced-motion:no-preference) {
  #route-path {
    stroke-dasharray:8 9;
    animation:routeflow 8s linear infinite
  }

  @keyframes routeflow {
    to {
      stroke-dashoffset:-136
    }

  }

}

.hero .display {
  font-size:clamp(3.25rem,5.2vw,5.35rem);
  max-width:760px
}

.hero .display .hero-line {
  display:block;
  white-space:nowrap;
  color:var(--stone-50)
}

.hero .display .hero-accent {
  color:var(--copper-500)
}

.reveal {
  opacity:1;
  transform:none
}

html.motion-ready .reveal {
  opacity:0;
  transform:translateY(26px)
}

html.motion-ready .reveal.visible {
  opacity:1;
  transform:none
}

@media(max-width:900px) {
  .hero .display {
    font-size:clamp(3.1rem,9.2vw,4.85rem)
  }

}

@media(max-width:640px) {
  .hero .display {
    font-size:clamp(2.75rem,12.2vw,3.45rem)
  }

  .hero .display .hero-line {
    white-space:nowrap
  }

}

@media(max-width:900px) {
  .hero-grid {
    grid-template-columns:minmax(0,1fr)
  }

  .hero-copy,.hero-visual {
    min-width:0;
    width:100%
  }

}

@media(max-width:640px) {
  .hero .display {
    font-size:clamp(2.25rem,9.85vw,2.4rem)
  }

  .hero .eyebrow {
    display:block;
    max-width:100%;
    font-size:.64rem;
    line-height:1.6;
    letter-spacing:.15em;
    overflow-wrap:anywhere
  }

  .hero .eyebrow::before {
    display:inline-block;
    margin-right:.65rem;
    vertical-align:middle
  }

}

/* Boutique design refinements */

:root {
  --container:1240px;
  --header-h:88px
}

body {
  letter-spacing:.002em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility
}

.site-header {
  backdrop-filter:blur(14px);
  background:rgba(7,17,31,.82)
}

.nav-list {
  gap:1.35rem
}

.nav-link {
  font-size:.69rem;
  letter-spacing:.12em
}

.nav-cta {
  padding:.78rem 1rem
}

.section {
  padding:clamp(5.75rem,8vw,9rem) 0
}

.hero {
  min-height:96vh;
  padding-top:calc(var(--header-h) + 5rem);
  padding-bottom:4rem
}

.hero-grid {
  grid-template-columns:minmax(0,.98fr) minmax(340px,.82fr);
  gap:clamp(4rem,7vw,8rem)
}

.hero-copy {
  max-width:640px
}

.hero .display {
  max-width:700px;
  line-height:.93
}

.hero-sub {
  max-width:620px;
  color:rgba(230,232,235,.86)
}

.hero-visual img {
  max-height:680px;
  border-color:rgba(230,232,235,.08)
}

.hero-scroll {
  display:none
}

.page-hero .h1,.page-hero .lead,.manifesto .lead,.manifesto .copy,.home-intro .lead,.home-intro .copy,.anchor-copy .lead,.anchor-copy .copy {
  max-width:68ch
}

.page-hero .container {
  max-width:1080px
}

.home-intro,.manifesto,.split-visual,.grid-2,.anchor-split,.lifecycle-shell {
  gap:clamp(4rem,8vw,9.5rem)
}

.pillar-grid {
  gap:0;
  border-top:1px solid rgba(230,232,235,.12);
  border-bottom:1px solid rgba(230,232,235,.12)
}

.pillar {
  padding:3rem 2.1rem 3.25rem;
  min-height:360px;
  background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,0))
}

.pillar h3 {
  font-size:1.1rem;
  line-height:1.35
}

.pillar p {
  font-size:.95rem;
  color:rgba(214,221,225,.88)
}

.capability,.industry-card,.article-card,.principle,.card,.team-lead,.team-card {
  border:1px solid rgba(58,70,82,.14);
  background:rgba(255,255,255,.66)
}

.section-dark .card,.section-ink .card,.section-dark .capability,.section-dark .article-card,.section-dark .team-card,.section-dark .team-lead {
  background:rgba(255,255,255,.02);
  border-color:rgba(230,232,235,.12)
}

.service-table {
  border-top:1px solid rgba(58,70,82,.2)
}

.service-row {
  padding:1.5rem 0;
  border-bottom:1px solid rgba(58,70,82,.16)
}

.service-row strong {
  display:block;
  font-size:1rem;
  line-height:1.45;
  color:var(--navy-950)
}

.section-dark .service-row strong {
  color:#fff
}

.service-row p {
  margin:.15rem 0;
  color:var(--graphite)
}

.lifecycle-item {
  padding:1.55rem 0
}

.lifecycle-item p {
  max-width:42ch;
  line-height:1.6
}

.anchor-visual,.technical-frame,.decision-panel,.cta-panel {
  border-radius:0;
  border:1px solid rgba(230,232,235,.1)
}

.operating-strip {
  border-top:1px solid rgba(58,70,82,.18);
  border-bottom:1px solid rgba(58,70,82,.18);
  border-left:0;
  border-right:0
}

.cta-panel {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  align-items:center;
  gap:2rem;
  background:linear-gradient(180deg,rgba(7,17,31,.98),rgba(7,17,31,.94))
}

.cta-panel .button-row {
  justify-content:flex-end
}

.footer-brand p {
  max-width:420px;
  color:rgba(214,221,225,.8)
}

.article-card .meta {
  letter-spacing:.08em;
  text-transform:uppercase
}

.article-card h3 {
  font-size:1.3rem;
  line-height:1.32
}

.contact-shell {
  gap:clamp(3rem,7vw,7rem)
}

.field label {
  letter-spacing:.04em
}

input,textarea,select {
  border-radius:0
}

@media(max-width:1000px) {
  .cta-panel {
    grid-template-columns:1fr
  }

  .cta-panel .button-row {
    justify-content:flex-start
  }

}

@media(max-width:900px) {
  .hero {
    min-height:auto;
    padding-top:calc(var(--header-h) + 4rem)
  }

  .hero-grid {
    grid-template-columns:1fr;
    gap:2.5rem
  }

  .hero-copy {
    max-width:none
  }

  .page-hero .container {
    max-width:none
  }

  .pillar {
    min-height:auto
  }

  .home-intro,.manifesto,.split-visual,.grid-2,.anchor-split,.lifecycle-shell {
    gap:2.5rem
  }

}

/* ===== production.css ===== */

/* CarbonCore production refinements */

body.nav-open  {
  overflow: hidden;
}

.team-grid-production  {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
}

.team-grid-production .team-lead, .team-grid-production .team-card:not(.team-card--specialist)  {
  grid-column: span 4;
}

.team-grid-production .team-card--specialist  {
  grid-column: span 3;
}

.team-grid-production .team-card--wide  {
  grid-column: span 6;
}

.team-grid-production .team-lead, .team-grid-production .team-card  {
  min-height: 390px;
}

.team-grid-production .team-lead  {
  background: var(--navy-900);
  border-color: rgba(230, 232, 235, .16);
  color: var(--stone-100);
}

.team-grid-production .team-lead p  {
  color: var(--stone-150);
}

.team-grid-production .team-lead .person-monogram  {
  background: transparent;
  color: var(--stone-50);
}

.person-monogram  {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  margin-bottom: 2rem;
  border: 1px solid rgba(195, 106, 46, .55);
  background: var(--navy-900);
  color: var(--stone-50);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .14em;
}

.section-light .person-monogram  {
  background: transparent;
  color: var(--navy-950);
}

.team-role  {
  margin: .35rem 0 1rem;
  color: var(--copper-700);
  font-size: .76rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.team-contact  {
  display: inline-block;
  margin-top: 1.15rem;
  color: var(--copper-700);
  font-size: .78rem;
  letter-spacing: .04em;
}

.contact-direct  {
  display: flex;
  flex-direction: column;
  gap: .7rem;
}

.contact-direct a  {
  font-weight: 600;
}

.prose a  {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.prose h2  {
  margin-top: 2.4rem;
}

.technical-frame::before  {
  content: "ILLUSTRATIVE TECHNICAL MODEL";
}

.mt-08  {
  margin-top: .8rem;
}

.mt-1  {
  margin-top: 1rem;
}

.mt-13  {
  margin-top: 1.3rem;
}

.mt-15  {
  margin-top: 1.5rem;
}

.mt-2  {
  margin-top: 2rem;
}

.mt-3  {
  margin-top: 3rem;
}

.mt-5  {
  margin-top: 5rem;
}

.split-heading  {
  align-items: end;
  margin-bottom: 3rem;
}

.text-copper  {
  color: var(--copper-500);
}

.text-copper-dark  {
  color: var(--copper-700);
}

.text-steel  {
  color: var(--steel);
}

.centered-copy  {
  margin-inline: auto;
}

.hero-rule  {
  width: 48px;
  height: 3px;
  margin: 2.2rem 0 1.5rem;
  background: var(--copper-500);
}

.page-error-title  {
  margin: 2rem 0 1rem;
}

.bar-w-51  {
  width: 51%;
}

.bar-w-68  {
  width: 68%;
}

.bar-w-76  {
  width: 76%;
}

.bar-w-84  {
  width: 84%;
}

.bar-w-92  {
  width: 92%;
}

[hidden]  {
  display: none !important;
}

.mobile-nav[aria-hidden="true"]  {
  visibility: hidden;
}

.mobile-nav[aria-hidden="false"]  {
  visibility: visible;
}

.menu-toggle:focus-visible, .accordion-button:focus-visible  {
  outline: 3px solid var(--copper-500);
  outline-offset: 4px;
}

.nav-link[aria-current="page"]  {
  color: var(--stone-100);
}

img  {
  height: auto;
}

.noscript-nav  {
  position: relative;
  z-index: 900;
  padding: calc(var(--header-h) + 1rem) var(--gutter) 1rem;
  background: var(--navy-950);
  color: var(--stone-100);
}

.noscript-nav a  {
  display: inline-block;
  margin: .25rem 1rem .25rem 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)))  {
  .site-header  {
    background: rgba(7, 17, 31, .97);
  }

}

@media (max-width: 1120px)  {
  .team-grid-production  {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .team-grid-production > .team-lead,   .team-grid-production > .team-card:not(.team-card--specialist),   .team-grid-production > .team-card--specialist,   .team-grid-production > .team-card--wide  {
    grid-column: span 1;
  }

}

@media (max-width: 900px)  {
  .mobile-nav  {
    max-height: calc(100dvh - var(--header-h));
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .split-heading  {
    align-items: start;
  }

}

@media (max-width: 640px)  {
  .team-grid-production  {
    grid-template-columns: 1fr;
  }

  .team-grid-production .team-lead,   .team-grid-production .team-card  {
    min-height: auto;
  }

  .person-monogram  {
    width: 60px;
    height: 60px;
    margin-bottom: 1.3rem;
  }

}

@media (prefers-reduced-motion: reduce)  {
  .btn:hover,   .article-card:hover  {
    transform: none;
  }

}

@media print  {
  .site-header,   .mobile-nav,   .noscript-nav,   .site-footer,   .button-row  {
    display: none !important;
  }

  body  {
    background: #fff;
    color: #000;
  }

  .page-hero,   .section,   .section-light,   .section-dark,   .section-ink  {
    padding: 1.5rem 0;
    background: #fff !important;
    color: #000 !important;
  }

  a  {
    text-decoration: none;
  }

}
