.site-header { position: sticky; top: 0; z-index: 50; background: rgba(10, 10, 10, 0.88); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); transition: background var(--ease); }
.site-header.is-scrolled { background: rgba(10, 10, 10, 0.98); }
.header-inner { display: flex; align-items: center; min-height: 76px; gap: 2rem; }
.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand-logo { display: block; width: auto; height: 36px; max-width: 190px; object-fit: contain; object-position: left center; }
.brand-mark { display: none; }
.brand-name, .brand-name em { display: none; }
.main-nav { display: flex; gap: clamp(1rem, 2.7vw, 2.5rem); margin-left: auto; }
.main-nav a, .header-link { font-size: 0.83rem; text-decoration: none; }
.main-nav a { color: var(--muted); transition: color var(--ease); }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--ink); }
.header-link { border-bottom: 1px solid var(--ink); padding-bottom: 0.2rem; }
.header-link span { color: var(--accent); }
.mobile-menu-toggle, .mobile-menu { display: none; }
.hero { min-height: calc(100vh - 76px); border-bottom: 1px solid var(--line); }
.hero-inner { display: flex; min-height: calc(100vh - 76px); flex-direction: column; justify-content: space-between; padding: clamp(3rem, 8vw, 8rem) 0 2rem; }
.hero-meta, .hero-index { display: flex; justify-content: space-between; gap: 1rem; }
.hero-meta span:last-child { color: var(--ink); }
.hero h1 { margin: auto 0; padding: 8vh 0; }
.hero-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; border-top: 1px solid var(--line); padding-top: 1.25rem; }
.hero-bottom p { max-width: 470px; margin: 0; font-size: 1rem; }
.hero-links { display: flex; justify-content: flex-end; gap: 2rem; align-items: center; }
.hero-index { margin-top: 1.5rem; }
.editorial-grid { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 3fr); gap: clamp(2rem, 8vw, 9rem); }
.section-content { max-width: 900px; }
.section-content h2 { max-width: 900px; }
.section-content .intro-copy { margin-top: 2rem; }
.capabilities { background: var(--paper-deep); }
.capabilities > .container > .section-label { border-bottom: 1px solid var(--line); padding-bottom: 1rem; }
.capability-list { margin-top: 1rem; }
.capability-row { display: grid; grid-template-columns: 1fr 3fr 3rem; gap: 2rem; border-bottom: 1px solid var(--line); padding: clamp(2rem, 5vw, 4rem) 0; }
.capability-main h2 { font-size: clamp(2rem, 4vw, 4.5rem); }
.capability-main p { max-width: 590px; margin: 1.4rem 0 1.5rem; font-size: 1rem; }
.tag-list { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; max-width: 700px; }
.tag-list span { color: var(--muted); }
.tag-list span:not(:last-child)::after { content: "/"; color: var(--accent); margin-left: 1rem; }
.row-link { align-self: start; color: var(--accent); font-size: 1.7rem; text-decoration: none; transition: transform var(--ease); }
.row-link:hover, .row-link:focus-visible { transform: translate(4px, -4px); }
.dark-section { background: var(--dark); color: var(--paper); }
.dark-section { background: var(--dark); color: var(--text-primary); }
.dark-section p, .dark-section .section-label { color: rgba(244, 242, 237, 0.62); }
.dark-section h2 { color: var(--text-primary); }
.lifecycle-wrap { margin-top: clamp(5rem, 10vw, 9rem); }
.lifecycle-heading { color: rgba(244, 242, 237, 0.62); border-bottom: 1px solid var(--line-light); padding-bottom: 1rem; }
.lifecycle { display: grid; grid-template-columns: repeat(7, 1fr); list-style: none; margin: 0; padding: 1.25rem 0 0; }
.lifecycle li { display: grid; gap: 0.75rem; color: var(--paper); font-size: 0.9rem; }
.lifecycle li { display: grid; gap: 0.75rem; color: var(--text-secondary); font-size: 0.9rem; }
.lifecycle li + li { border-left: 1px solid var(--line-light); padding-left: 1rem; }
.lifecycle li span { color: var(--accent); font-family: var(--mono); font-size: 0.7rem; }
.delivery-index { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); margin-top: 4rem; }
.delivery-index div { display: grid; gap: 0.75rem; padding: 1rem 1rem 0 0; }
.delivery-index span { font-size: 0.65rem; }
.delivery-index strong { font-size: 0.95rem; font-weight: 500; }
.sectors-section { background: var(--paper-deep); }
.sector-list button { display: grid; grid-template-columns: 3rem 1fr 2rem; align-items: center; width: 100%; border: 0; border-bottom: 1px solid var(--line); background: none; color: var(--ink); padding: 1.1rem 0; text-align: left; font: inherit; font-size: clamp(1.35rem, 2.4vw, 2.4rem); cursor: pointer; transition: padding var(--ease), color var(--ease); }
.sector-list button span { color: var(--muted); font-family: var(--mono); font-size: 0.7rem; }
.sector-list button em { color: var(--accent); font-style: normal; text-align: right; opacity: 0; transform: translateX(-6px); transition: opacity var(--ease), transform var(--ease); }
.sector-list button:hover, .sector-list button:focus-visible { padding-left: 0.75rem; color: var(--accent); }
.sector-list button:hover em, .sector-list button:focus-visible em { opacity: 1; transform: none; }
.section-heading-row { display: flex; justify-content: space-between; gap: 2rem; border-bottom: 1px solid var(--line); padding-bottom: 1rem; }
.section-heading-row p { margin: 0; }
.project-row { display: grid; grid-template-columns: 1.1fr 2fr 1.1fr 2rem; gap: 1.5rem; align-items: center; width: 100%; border: 0; border-bottom: 1px solid var(--line); background: none; color: var(--ink); padding: 1.5rem 0; text-align: left; cursor: pointer; }
.project-row > span { color: var(--muted); font-size: 0.65rem; }
.project-row strong { font-size: 1.15rem; font-weight: 500; }
.project-row i { color: var(--accent); font-size: 1.4rem; font-style: normal; text-align: right; transition: transform var(--ease); }
.project-row small { display: none; grid-column: 2 / 4; color: var(--muted); font-size: 0.9rem; }
.project-row[aria-expanded="true"] small { display: block; }
.project-row[aria-expanded="true"] i { transform: rotate(45deg); }
.technical-section { background: var(--paper-deep); }
.technical-index { border-top: 1px solid var(--line); }
.technical-index div { display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; border-bottom: 1px solid var(--line); padding: 1.2rem 0; }
.technical-index span { color: var(--muted); font-family: var(--mono); font-size: 0.7rem; text-transform: uppercase; }
.technical-index strong { font-size: 1rem; font-weight: 500; }
.process-list { display: grid; grid-template-columns: repeat(7, 1fr); list-style: none; border-top: 1px solid var(--line); margin: 4rem 0 0; padding: 0; }
.process-list li { min-height: 220px; border-right: 1px solid var(--line); padding: 1rem; }
.process-list li:first-child { border-left: 1px solid var(--line); }
.process-list span { color: var(--accent); font-family: var(--mono); font-size: 0.7rem; }
.process-list h3 { margin-top: 5rem; font-size: 1.5rem; }
.process-list p { font-size: 0.85rem; }
.security-index { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--line-light); margin-top: 4rem; }
.security-index span { border-bottom: 1px solid var(--line-light); padding: 1rem 1rem 1rem 0; color: var(--paper); }
.security-index span { border-bottom: 1px solid var(--line-light); padding: 1rem 1rem 1rem 0; color: var(--text-primary); }
.document-list { border-top: 1px solid var(--line); margin-top: 3rem; }
.document-list a { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); padding: 1.2rem 0; text-decoration: none; font-size: 1.1rem; transition: padding var(--ease); }
.document-list em { color: var(--muted); font-family: var(--mono); font-size: 0.65rem; font-style: normal; }
.contact-section { background: var(--paper-deep); border-top: 1px solid var(--line); padding: clamp(6rem, 12vw, 12rem) 0; }
.contact-inner { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 3fr); gap: clamp(2rem, 8vw, 9rem); }
.contact-section .section-label { color: var(--muted); }
.contact-section h2 { max-width: 900px; color: var(--ink); font-size: clamp(3rem, 8vw, 8rem); }
.contact-section h2 a { text-decoration: none; }
.cursor { color: var(--paper); }
.contact-section p { max-width: 520px; margin-top: 2rem; color: var(--muted); font-size: 1.1rem; }
.contact-types { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; margin-top: 3rem; color: var(--muted); }
.contact-types span:not(:last-child)::after { content: "/"; color: var(--accent); margin-left: 1rem; }
.site-footer { background: var(--dark); color: var(--paper); padding: 3rem 0; }
.footer-inner { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 2rem; align-items: start; }
.brand--footer .brand-logo { height: 34px; }
.footer-inner p { margin-top: 1.25rem; color: rgba(244,242,237,0.5); }
.footer-contact { display: grid; gap: .35rem; margin-top: 1rem; color: var(--muted); font-family: var(--mono); font-size: .68rem; }
.footer-contact a, .footer-contact span { color: var(--muted); }
.footer-contact a:hover, .footer-contact a:focus-visible { color: var(--ink); }
.footer-inner nav { display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem; }
.footer-inner nav a, .footer-legal a { color: rgba(244,242,237,0.7); font-size: 0.85rem; text-decoration: none; }
.footer-inner nav a:hover, .footer-legal a:hover { color: var(--paper); }
.cursor { color: var(--text-primary); }
.footer-legal { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 1rem; }

/* Footer stays at the bottom on short pages without becoming a fixed overlay. */
body {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
body > main { flex: 1 0 auto; }
body > .site-header,
body > .site-footer { flex: 0 0 auto; }

.footer-copyright {
  width: min(var(--container), calc(100% - 2rem));
  margin: 1.35rem auto 0;
  padding-top: .9rem;
  border-top: 1px solid rgba(255,255,255,.08);
  text-align: center;
  color: rgba(244,242,237,.48);
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .035em;
}
.footer-copyright a,
.footer-copyright a:visited {
  color: rgba(244,242,237,.82);
  font-weight: 600;
  text-decoration: none;
}
.footer-copyright a:hover,
.footer-copyright a:focus-visible { color: #fff; }

/* Homepage system-momentum visual. Illustrative, not a data claim. */
.momentum-section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: clamp(4.5rem, 9vw, 8.5rem) 0;
  border-top: 1px solid rgba(255,255,255,.09);
  border-bottom: 1px solid rgba(255,255,255,.09);
  background:
    radial-gradient(circle at 76% 38%, rgba(48,137,83,.105), transparent 34%),
    radial-gradient(circle at 20% 90%, rgba(25,87,55,.06), transparent 28%),
    #090b0a;
}
.momentum-section::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  right: -180px;
  top: -180px;
  border-radius: 50%;
  pointer-events: none;
  z-index: -1;
  filter: blur(80px);
  background: rgba(62,157,96,.075);
  animation: momentumAmbient 15s ease-in-out infinite alternate;
}
.momentum-grid {
  display: grid;
  grid-template-columns: minmax(260px,.8fr) minmax(0,1.55fr);
  gap: clamp(2rem,6vw,6.5rem);
  align-items: center;
}
.momentum-copy h2 {
  margin-top: 1.35rem;
  max-width: 600px;
  font-size: clamp(2.3rem,4.3vw,5.15rem);
}
.momentum-copy > p {
  margin-top: 1.5rem;
  max-width: 520px;
  font-size: 1rem;
  line-height: 1.65;
}
.momentum-steps {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1.2rem;
  margin-top: 2rem;
}
.momentum-steps span { color: var(--text-muted); }
.momentum-steps span:not(:last-child)::after {
  content: " →";
  margin-left: 1rem;
  color: rgba(108,210,142,.72);
}
.momentum-visual {
  position: relative;
  min-width: 0;
  padding: 1rem 1rem .7rem;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(4,9,6,.46);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
.momentum-chart-head,
.momentum-chart-foot {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: rgba(244,242,237,.48);
}
.momentum-chart {
  display: block;
  width: 100%;
  height: auto;
  margin: .7rem 0 .15rem;
}
.momentum-gridlines path {
  fill: none;
  stroke: rgba(255,255,255,.065);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.momentum-area {
  fill: url(#momentumFill);
  opacity: 0;
  animation: momentumArea 1.1s ease .55s forwards;
}
.momentum-line {
  fill: none;
  stroke: url(#momentumLine);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  filter: drop-shadow(0 0 8px rgba(88,183,123,.16));
  animation: momentumDraw 2.2s cubic-bezier(.22,.61,.36,1) .25s forwards;
}
.momentum-nodes circle {
  fill: #0b120e;
  stroke: #78ce96;
  stroke-width: 2;
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  animation: momentumNode .5s ease forwards;
}
.momentum-nodes circle:nth-child(1){animation-delay: .8s}
.momentum-nodes circle:nth-child(2){animation-delay: 1.15s}
.momentum-nodes circle:nth-child(3){animation-delay: 1.45s}
.momentum-nodes circle:nth-child(4){animation-delay: 1.75s}
.momentum-nodes circle:nth-child(5){animation-delay: 2.05s}

/* Hero growth visual: capability progression, intentionally non-financial. */
.hero { min-height: calc(100vh - 76px); overflow: hidden; }
.hero-inner { gap: clamp(2rem,4vw,4rem); }
.hero-main { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:clamp(2.5rem,6vw,6rem); align-items:center; margin:auto 0; }
.hero-copy h1 { margin:0; padding:0; font-size:clamp(3.6rem,6.2vw,7.3rem); max-width:11.5ch; }
.hero-lead { margin-top:1.75rem; max-width:620px; font-size:clamp(1rem,1.35vw,1.18rem); line-height:1.62; color:var(--text-secondary); }
.hero-copy .hero-links { justify-content:flex-start; margin-top:1.7rem; }
.hero-bottom { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
.hero-proof { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.55rem 1rem; color:var(--text-muted); }
.hero-proof span:not(:last-child)::after { content:" /"; margin-left:1rem; color:rgba(91,177,119,.72); }
.hero-growth { position:relative; min-height:460px; border:1px solid rgba(255,255,255,.11); background:radial-gradient(circle at 78% 18%,rgba(49,136,82,.15),transparent 32%),linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008)); overflow:hidden; isolation:isolate; }
.hero-growth::before { content:""; position:absolute; width:280px; height:280px; right:-90px; top:-100px; border-radius:50%; background:rgba(64,164,99,.11); filter:blur(72px); pointer-events:none; }
.hero-growth__head,.hero-growth__foot { position:absolute; left:1rem; right:1rem; display:flex; justify-content:space-between; gap:1rem; z-index:4; color:rgba(245,245,242,.47); font-size:.61rem; }
.hero-growth__head { top:1rem; }
.hero-growth__foot { bottom:.9rem; }
.growth-lanes { position:absolute; inset:52px 0 42px; display:grid; grid-template-columns:repeat(4,1fr); }
.growth-lanes i { border-left:1px solid rgba(255,255,255,.055); }
.growth-lanes i:last-child { border-right:1px solid rgba(255,255,255,.055); }
.growth-path { position:absolute; inset:70px 22px 74px; z-index:1; }
.growth-path svg { width:100%; height:100%; overflow:visible; }
.growth-path path { fill:none; stroke:url(#unused); stroke:#69c88a; stroke-width:2.2; stroke-linecap:round; vector-effect:non-scaling-stroke; opacity:.72; filter:drop-shadow(0 0 7px rgba(75,175,109,.2)); stroke-dasharray:1; stroke-dashoffset:1; animation:growthPathDraw 2.3s cubic-bezier(.22,.61,.36,1) .2s forwards; }
.growth-path::after { content:""; position:absolute; left:2%; right:0; bottom:5%; height:62%; background:linear-gradient(180deg,rgba(75,175,109,.085),transparent); clip-path:polygon(0 86%,18% 72%,36% 62%,54% 43%,72% 31%,100% 0,100% 100%,0 100%); opacity:.7; }
.growth-node { position:absolute; width:9px; height:9px; border-radius:50%; border:2px solid #77d298; background:#0b100d; z-index:3; opacity:0; transform:scale(.4); animation:growthNodeIn .45s ease forwards; box-shadow:0 0 0 6px rgba(74,171,107,.055); }
.growth-node--1 { left:16%; top:72%; animation-delay:.7s; }
.growth-node--2 { left:37%; top:56%; animation-delay:1.05s; }
.growth-node--3 { left:66%; top:35%; animation-delay:1.45s; }
.growth-node--4 { right:1%; top:10%; animation-delay:1.9s; }
.growth-stage { position:absolute; z-index:3; display:grid; gap:.18rem; padding:.7rem .75rem; background:rgba(7,11,8,.72); border-top:1px solid rgba(255,255,255,.11); backdrop-filter:blur(8px); min-width:125px; }
.growth-stage small { color:#70c98f; font-size:.58rem; }
.growth-stage strong { font-size:.88rem; font-weight:500; color:var(--text-primary); }
.growth-stage span { font-size:.67rem; color:var(--text-muted); line-height:1.35; }
.growth-stage--1 { left:4%; bottom:72px; }
.growth-stage--2 { left:28%; bottom:126px; }
.growth-stage--3 { right:20%; top:116px; }
.growth-stage--4 { right:3%; top:61px; }
@keyframes growthPathDraw { to { stroke-dashoffset:0; } }
@keyframes growthNodeIn { to { opacity:1; transform:scale(1); } }
