/* Shared color, typography and layout tokens. */
:root {
  --bg: #f7f9fc;
  --surface: #fff;
  --surface-alt: #eff4fb;
  --ink: #172a46;
  --muted: #52627a;
  --accent: #2457a6;
  --accent-soft: #e7effb;
  --line: #d7e1ee;
  --header-bg: rgba(247,249,252,.98);
  --header-height: 88px;
  --font: 'DM Sans',Arial,sans-serif;
  --mono: 'IBM Plex Mono',monospace;
  --radius: 12px;
}*,*::before,*::after {
  box-sizing:border-box;
}html {
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-height) + 16px);
}body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font);
  font-size: 1rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}button,a {
  -webkit-tap-highlight-color:transparent;
}button {
  font:inherit;
}a {
  color:inherit;
  text-decoration:none;
}button:focus-visible,a:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px;
}::selection {
  background:var(--accent-soft);
  color:var(--ink);
}h1,h2,h3,h4,p {
  margin:0;
}h1,h2,h3,h4 {
  font-weight:550;
  line-height:1.15;
  letter-spacing:-.04em;
}svg {
  display:block;
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}.container {
  width:min(1160px,calc(100% - 80px));
  margin-inline:auto;
}.mono,.eyebrow {
  font-family:var(--mono);
  font-size: 0.75rem;
  font-weight:400;
  line-height:1.6;
  letter-spacing:.065em;
}.eyebrow {
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--accent);
  margin-bottom:24px;
}.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  var(--surface)-space:nowrap;
  border:0;
}.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  z-index:200;
  padding:12px 18px;
  background:var(--ink);
  color:var(--surface);
  transform:translateY(-150%);
  border-radius:6px;
}.skip-link:focus {
  transform:translateY(0);
}.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:var(--header-bg);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
}.nav-inner {
  height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}.brand {
  display:inline-flex;
  align-items:center;
  gap:13px;
  font-size: 0.875rem;
  font-weight:600;
  letter-spacing:-.025em;
  line-height:1.25;
  flex-shrink:0;
}.brand-mark {
  font-size: 2rem;
  font-weight:700;
  letter-spacing:-.095em;
  padding:0 3px 5px 0;
}.brand-mark span {
  color:var(--accent);
}.brand-sub {
  display:block;
  color:var(--muted);
  font-size: 0.75rem;
  letter-spacing:.015em;
  font-weight:400;
  margin-top:5px;
}.nav-links {
  display:flex;
  align-items:center;
  gap:30px;
  font-size: 0.875rem;
  color:var(--muted);
}.nav-links>a {
  display:inline-flex;
  align-items:center;
  gap:24px;
  min-height:44px;
  transition:color .18s;
}.nav-links>a:hover {
  color:var(--accent);
}.nav-links .nav-contact {
  border:1px solid var(--line);
  padding:0 18px;
  border-radius:6px;
  color:var(--ink);
  margin-left:10px;
}.nav-contact:hover {
  background:var(--accent-soft);
}.menu-toggle {
  display:none;
  border:1px solid var(--line);
  padding:10px 14px;
  background:var(--surface);
  border-radius:6px;
  color:var(--ink);
  min-height:44px;
  cursor:pointer;
}.menu-toggle[hidden] {
  display:none;
}.hero {
  display:grid;
  grid-template-columns:1.25fr 1fr;
  align-items:center;
  gap:64px;
  padding-block:88px 76px;
}.hero h1 {
  font-size: clamp(2.625rem,4.9vw,4.125rem);
  font-weight:550;
  line-height:1.08;
  letter-spacing:-.06em;
  margin-bottom:28px;
}.hero h1>span {
  color:var(--accent);
}.hero-intro {
  font-size: 1rem;
  color:var(--muted);
  max-width:455px;
  line-height:1.85;
}.hero-intro strong {
  color:var(--ink);
  font-weight:550;
}.hero-actions {
  display:flex;
  align-items:center;
  gap:27px;
  margin-top:32px;
  flex-wrap:wrap;
}.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  min-height:48px;
  padding:13px 20px;
  border-radius:6px;
  font-size: 0.875rem;
  font-weight:500;
  transition:background .18s,transform .18s;
}.button-primary {
  background:var(--ink);
  color:var(--surface);
}.button-primary:hover {
  background:var(--accent);
  transform:translateY(-2px);
}.button>span {
  font-size: 1.0625rem;
  line-height:1;
}.text-link {
  display:inline-flex;
  align-items:center;
  gap:15px;
  min-height:44px;
  font-size: 0.875rem;
  font-weight:500;
}.text-link>span[aria-hidden] {
  transition:transform .18s;
}.text-link:hover {
  color:var(--accent);
}.text-link:hover>span[aria-hidden] {
  transform:translate(3px,-2px);
}.hero-location {
  display:flex;
  gap:10px;
  align-items:center;
  font-size: 0.75rem;
  color:var(--muted);
  margin-top:36px;
}.location-mark {
  color:var(--accent);
  font-size: 1rem;
}.separator {
  margin-inline:5px;
  color:var(--muted);
}.status-dot {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
  flex-shrink:0;
}.engineering-visual {
  position:relative;
  padding:26px 28px 20px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface-alt);
  overflow:hidden;
}.visual-top {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--muted);
  margin-bottom:28px;
}.visual-top .mono {
  font-size: 0.75rem;
  letter-spacing:.08em;
}.visual-cross {
  font-size: 1.375rem;
  line-height:1;
  font-weight:400;
  color:var(--muted);
}.visual-orbit {
  position:absolute;
  width:430px;
  height:430px;
  border:1px solid var(--line);
  border-radius:50%;
  left:40px;
  top:30px;
  pointer-events:none;
}.visual-orbit::before,.visual-orbit::after {
  content:'';
  position:absolute;
  inset:40px;
  border:1px solid var(--line);
  border-radius:50%;
}.visual-orbit::after {
  inset:85px;
}.system-layer {
  position:relative;
  display:flex;
  gap:16px;
  align-items:center;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:9px;
  padding:16px;
  box-shadow:0 5px 12px rgba(23,42,70,.025);
}.layer-interface {
  margin-right:24px;
}.layer-logic {
  margin-left:16px;
  margin-right:8px;
}.layer-platform {
  margin-left:32px;
}.layer-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  background:var(--surface-alt);
  border:1px solid var(--line);
  border-radius:9px;
  color:var(--accent);
  flex-shrink:0;
}.layer-caption {
  display:block;
  font-family:var(--mono);
  font-size: 0.75rem;
  color:var(--muted);
  letter-spacing:.06em;
  margin-bottom:5px;
}.system-layer strong {
  display:block;
  font-size: 0.8125rem;
  font-weight:550;
  line-height:1.4;
  letter-spacing:-.02em;
}.layer-detail {
  display:block;
  font-size: 0.75rem;
  color:var(--muted);
  margin-top:5px;
  line-height:1.5;
}.layer-connector {
  position:relative;
  z-index:1;
  height:24px;
  margin-left:65px;
}.layer-connector span {
  display:block;
  width:1px;
  height:24px;
  background:var(--line);
}.layer-connector span::after {
  content:'';
  position:absolute;
  bottom:1px;
  left:-2px;
  width:5px;
  height:5px;
  background:var(--line);
  border-radius:50%;
}.visual-bottom {
  position:relative;
  display:flex;
  align-items:center;
  gap:7px;
  justify-content:space-between;
  margin-top:26px;
  font-size: 0.75rem;
  color:var(--muted);
}.visual-bottom>span:nth-child(2) {
  margin-right:auto;
}.visual-dot {
  width:5px;
  height:5px;
  border:1px solid var(--muted);
  border-radius:50%;
}.visual-bottom .mono {
  font-size: 0.75rem;
}.technology-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding-block:25px;
  border-block:1px solid var(--line);
}.strip-label {
  font-size: 0.75rem;
  letter-spacing:.08em;
  color:var(--muted);
  flex-shrink:0;
}.technology-strip>div {
  display:flex;
  flex-wrap:wrap;
  gap:36px;
  align-items:center;
  font-size: 0.8125rem;
  font-weight:500;
  color:var(--muted);
  letter-spacing:-.025em;
}.section {
  padding-block:100px;
}.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:60px;
  margin-bottom:40px;
}.section-heading .eyebrow {
  margin-bottom:14px;
}h2 {
  font-size: clamp(1.875rem,3.2vw,2.625rem);
  line-height:1.18;
  letter-spacing:-.045em;
}.section-heading>p {
  max-width:310px;
  font-size: 1rem;
  line-height:1.8;
  color:var(--muted);
  margin-bottom:4px;
}.project-card {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--surface);
}.project-story {
  padding:36px 38px;
}.project-label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:28px;
}.project-label .mono {
  font-size: 0.75rem;
  color:var(--muted);
}.project-status {
  font-size: 0.75rem;
  border-radius:4px;
  border:1px solid var(--line);
  color:var(--accent);
  background:var(--accent-soft);
  padding:3px 8px;
}.project-story h3 {
  font-size: 3.5rem;
  font-weight:600;
  letter-spacing:-.06em;
  line-height:1;
}.project-story h3>span {
  color:var(--accent);
}.project-subtitle {
  font-size: 1.125rem;
  font-weight:500;
  letter-spacing:-.025em;
  margin-top:14px;
}.project-description {
  color:var(--muted);
  font-size: 1rem;
  line-height:1.85;
  margin-top:17px;
}.project-facts {
  margin-block:23px;
  display:grid;
  gap:10px;
  font-size: 0.75rem;
}.project-facts>div {
  display:grid;
  grid-template-columns:88px 1fr;
  gap:10px;
}.project-facts dt {
  color:var(--muted);
}.project-facts dd {
  margin:0;
}.project-tech {
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:0.75rem;
  line-height:1.7;
}.project-tech p {
  margin:0;
}.project-tech .project-tech-label {
  margin-top:10px;
  font-family:var(--mono);
  font-size:0.625rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}.tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:15px;
}.tags>span {
  background:var(--surface-alt);
  border:1px solid var(--line);
  border-radius:4px;
  padding:3px 8px;
  font-family:var(--mono);
  font-size: 0.75rem;
  color:var(--accent);
}.project-tech .tags {
  gap:5px;
  margin:6px 0 0;
}.project-tech .tags>span {
  padding:2px 6px;
  font-size:0.6875rem;
  color:var(--muted);
}.technical-details {
  margin-top:24px;
  border-top:1px solid var(--line);
  font-size:0.875rem;
}.technical-details summary {
  padding-block:14px;
  min-height:44px;
  color:var(--accent);
  font-weight:500;
  cursor:pointer;
  overflow-wrap:anywhere;
}.technical-details summary:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px;
}.technical-content {
  padding-block:0 8px;
  color:var(--muted);
  max-width:720px;
  line-height:1.8;
}.technical-content .tags {
  margin-block:14px 0;
}.project-preview {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:var(--surface-alt);
  padding:42px 30px 24px;
  min-width:0;
}.preview-window {
  width:100%;
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:10px;
  box-shadow:0 18px 36px rgba(23,42,70,.07);
  overflow:hidden;
}.preview-toolbar {
  display:flex;
  align-items:center;
  gap:16px;
  padding:15px 20px;
  border-bottom:1px solid var(--line);
  background:var(--surface);
}.preview-brand {
  font-size: 1.5rem;
  line-height:1;
  font-weight:650;
  letter-spacing:-.06em;
}.preview-brand>span {
  color:var(--accent);
}.preview-toolbar>.mono {
  font-size: 0.75rem;
  color:var(--accent);
  margin-left:auto;
}.preview-avatar {
  display:flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:50%;
  font-size: 0.75rem;
  background:var(--accent-soft);
  color:var(--accent);
}.preview-body {
  padding:24px 22px 17px;
}.preview-greeting {
  font-size: 1.125rem;
  font-weight:550;
  letter-spacing:-.035em;
}.preview-support {
  font-size: 0.75rem;
  color:var(--muted);
  margin-top:4px;
}.module-picker {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:5px;
  margin-block:20px;
}.module-button {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  padding:10px 3px;
  border:1px solid var(--line);
  background:var(--surface-alt);
  border-radius:6px;
  color:var(--accent);
  font-size: 0.75rem;
  cursor:pointer;
  min-height:64px;
  transition:background .16s,border-color .16s,color .16s;
}.module-button>span {
  font-size: 1.125rem;
  line-height:1;
}.module-button:hover {
  border-color:var(--accent);
  background:var(--surface-alt);
}.module-button[aria-selected=true] {
  border-color:var(--accent);
  background:var(--accent-soft);
  color:var(--accent);
}.module-content {
  border:1px solid var(--line);
  border-radius:7px;
  padding:16px 14px;
  min-height:250px;
}.module-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}.module-heading h4 {
  font-size: 0.9375rem;
  font-weight:550;
  letter-spacing:-.025em;
}.module-chip {
  font-size: 0.75rem;
  border-radius:3px;
  background:var(--accent-soft);
  color:var(--accent);
  padding:3px 6px;
  var(--surface)-space:nowrap;
}.module-description {
  font-size: 0.75rem;
  line-height:1.7;
  color:var(--muted);
  margin-top:8px;
  margin-bottom:10px;
  min-height:37px;
}.demo-row {
  display:flex;
  align-items:center;
  gap:9px;
  padding-block:10px;
  border-top:1px solid var(--line);
}.demo-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border:1px solid var(--accent-soft);
  background:var(--surface-alt);
  border-radius:6px;
  color:var(--muted);
  font-size: 0.75rem;
  flex-shrink:0;
}.demo-row>div {
  min-width:0;
}.demo-row strong {
  display:block;
  font-size: 0.75rem;
  font-weight:500;
  line-height:1.4;
}.demo-row>div>span {
  display:block;
  font-size: 0.75rem;
  color:var(--accent);
  margin-top:3px;
  line-height:1.4;
}.demo-status {
  font-size: 0.75rem;
  color:var(--accent);
  background:var(--accent-soft);
  border-radius:3px;
  margin-left:auto;
  padding:3px 5px;
  var(--surface)-space:nowrap;
}.preview-footer {
  display:flex;
  align-items:center;
  gap:6px;
  border-top:1px solid var(--line);
  padding-top:12px;
  margin-top:14px;
  font-size: 0.75rem;
  color:var(--muted);
}.preview-footer .status-dot {
  width:4px;
  height:4px;
}.preview-note {
  font-size: 0.75rem;
  color:var(--muted);
  margin-top:18px;
}.project-capabilities {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:42px;
  margin-top:32px;
}.project-capabilities>div {
  position:relative;
  padding-left:30px;
}.capability-number {
  position:absolute;
  left:0;
  top:2px;
  font-size: 0.75rem;
  color:var(--accent);
}.project-capabilities h3 {
  font-size: 0.8125rem;
  font-weight:550;
  letter-spacing:-.02em;
  margin-bottom:9px;
}.project-capabilities p {
  font-size: 1rem;
  color:var(--muted);
  line-height:1.85;
}.services-section {
  background:var(--surface-alt);
  border-block:1px solid var(--line);
}.services-section .section {
  padding-block:80px;
}.service-list {
  border-top:1px solid var(--line);
}.service-row {
  display:grid;
  grid-template-columns:30px 1fr 220px;
  align-items:start;
  gap:22px;
  padding-block:30px;
  border-bottom:1px solid var(--line);
}.service-number {
  font-size: 0.75rem;
  color:var(--muted);
  margin-top:7px;
}.service-row h3 {
  font-size: 1.4375rem;
  letter-spacing:-.035em;
}.service-row p {
  max-width:520px;
  font-size: 1rem;
  color:var(--muted);
  line-height:1.85;
  margin-top:10px;
}.service-specialty {
  align-self:center;
  font-family:var(--mono);
  font-size: 0.75rem;
  color:var(--muted);
  text-align:right;
  line-height:1.8;
}.service-cta {
  margin-top:23px;
}.about-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  border-bottom:1px solid var(--line);
}.about-heading .eyebrow {
  margin-bottom:18px;
}.signature {
  font-size: 1.5625rem;
  font-weight:550;
  letter-spacing:-.05em;
  margin-top:45px;
}.signature>span {
  color:var(--accent);
}.signature-caption {
  font-size: 0.75rem;
  color:var(--muted);
  margin-top:4px;
}.about-copy {
  padding-top:30px;
}.about-copy>p {
  font-size: 1rem;
  color:var(--muted);
  line-height:1.95;
  margin-bottom:17px;
}.about-copy .about-lead {
  font-size: 1.3125rem;
  line-height:1.6;
  color:var(--ink);
  letter-spacing:-.03em;
  margin-bottom:22px;
}.about-principles {
  display:grid;
  gap:8px;
  padding-block:17px 20px;
  border-top:1px solid var(--line);
  margin-top:25px;
  font-size: 0.75rem;
}.about-principles>span::before {
  content:'+';
  color:var(--accent);
  margin-right:13px;
  font-family:var(--mono);
}.process-section {
  padding-block:65px 90px;
}.process-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:33px;
}.process-heading .eyebrow {
  margin:0;
  font-size: 0.75rem;
}.process-heading h2 {
  font-size: 1.5625rem;
}.process-list {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px;
  margin:0;
  padding:0;
}.process-list li {
  border-top:1px solid var(--line);
  padding-top:20px;
}.process-list .mono {
  font-size: 0.75rem;
  color:var(--accent);
}.process-list h3 {
  font-size: 0.875rem;
  letter-spacing:-.02em;
  margin-top:12px;
}.process-list p {
  font-size: 1rem;
  color:var(--muted);
  line-height:1.85;
  margin-top:9px;
}.contact-section {
  background:var(--surface-alt);
  border-block:1px solid var(--line);
}.contact-inner {
  display:grid;
  grid-template-columns:1.7fr 1fr;
  gap:100px;
  padding-block:75px 80px;
}.contact-section .eyebrow {
  font-size: 0.75rem;
  margin-bottom:22px;
}.contact-section h2 {
  font-size: clamp(2rem,3.4vw,2.75rem);
  line-height:1.22;
}.contact-section h2>span {
  color:var(--accent);
}.contact-inner>div>p:not(.eyebrow) {
  color:var(--accent);
  max-width:410px;
  font-size: 1rem;
  line-height:1.9;
  margin-block:20px 25px;
}.contact-email {
  display:block;
  max-width:100%;
  width:max-content;
  font-size: 0.875rem;
  color:var(--muted);
  margin-top:17px;
  overflow-wrap:anywhere;
}.contact-email:hover {
  text-decoration:underline;
  text-underline-offset:4px;
}.contact-details {
  display:flex;
  flex-direction:column;
  justify-content:center;
}.contact-details>a,.contact-details>div {
  display:block;
  border-bottom:1px solid var(--line);
  padding-block:19px;
}.contact-details>div:last-child {
  border-bottom:0;
}.contact-details .mono {
  display:block;
  color:var(--muted);
  font-size: 0.75rem;
  letter-spacing:.07em;
  margin-bottom:6px;
}.contact-details strong {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size: 1rem;
  font-weight:500;
  letter-spacing:-.025em;
}.contact-details strong>span {
  font-size: 1.125rem;
  color:var(--muted);
}.contact-details>a>span:last-child,.contact-details>div>span:last-child {
  display:block;
  font-size: 0.875rem;
  color:var(--muted);
  margin-top:5px;
}.contact-details>a:hover strong {
  color:var(--accent);
}.site-footer {
  padding-block:35px 21px;
}.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-bottom:27px;
  border-bottom:1px solid var(--line);
}.footer-top .brand {
  font-size: 0.75rem;
}.footer-top .brand-mark {
  font-size: 1.625rem;
}.footer-top>p {
  color:var(--muted);
  font-size: 0.75rem;
}.back-to-top {
  display:flex;
  align-items:center;
  gap:14px;
  font-size: 0.75rem;
  min-height:44px;
  color:var(--muted);
}.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding-top:15px;
  font-size: 0.75rem;
  color:var(--muted);
}.footer-bottom nav {
  display:flex;
  gap:21px;
  flex-wrap:wrap;
}.footer-bottom a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}.footer-bottom a:hover,.back-to-top:hover {
  color:var(--accent);
}.footer-operator {
  font-size: 0.75rem;
  color:var(--muted);
  margin-top:5px;
}.document-page .wrap {
  width:min(880px,calc(100% - 48px));
  margin-inline:auto;
  padding-block:70px;
}.document-page nav,.document-page footer {
  padding:18px 24px;
  border-bottom:1px solid var(--line);
}.document-page footer {
  border-top:1px solid var(--line);
  border-bottom:0;
  color:var(--muted);
  font-size: 0.75rem;
}.document-page .nav-inner,.document-page .footer-inner {
  max-width:880px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  flex-wrap:wrap;
  height:auto;
}.document-page a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:4px;
}.document-page .brand {
  text-decoration:none;
  font-size: 0.875rem;
}.document-page .links {
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  font-size: 0.75rem;
}.document-page .links a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}.document-page h1 {
  font-size: clamp(1.875rem,5vw,2.875rem);
  line-height:1.15;
  margin-bottom:18px;
}.document-page h2 {
  font-size: 1.25rem;
  margin:32px 0 12px;
  color:var(--ink);
  letter-spacing:-.025em;
}.document-page p,.document-page li {
  color:var(--muted);
  margin-bottom:12px;
  font-size: 1rem;
  line-height:1.9;
  overflow-wrap:anywhere;
}.document-page ul,.document-page ol {
  padding-left:22px;
}.document-page .meta {
  color:var(--muted);
  font-family:var(--mono);
  font-size: 0.75rem;
  margin-bottom:32px;
}.document-page .box {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:8px;
  padding:24px;
  margin:26px 0;
}.document-page .box p:last-child {
  margin-bottom:0;
}.document-page strong {
  color:var(--ink);
  font-weight:550;
}

@media(min-width:1440px){.hero {
  padding-block:100px 90px;
}}

@media(max-width:1100px){.hero {
  gap:35px;
}.hero h1 {
  font-size: 3.25rem;
}.hero-actions {
  gap:15px;
}.engineering-visual {
  padding:22px 18px;
}.system-layer {
  gap:11px;
  padding:14px 11px;
}.layer-interface {
  margin-right:12px;
}.layer-platform {
  margin-left:22px;
}.layer-caption {
  font-size: 0.75rem;
}.system-layer strong {
  font-size: 0.75rem;
}.layer-detail {
  font-size: 0.75rem;
}.technology-strip>div {
  gap:22px;
}.project-story {
  padding:30px;
}.project-preview {
  padding:30px 22px;
}.service-row {
  grid-template-columns:25px 1fr 170px;
}.about-section {
  gap:65px;
}.contact-inner {
  gap:60px;
}}

@media(max-width:900px){.container {
  width:calc(100% - 48px);
}.hero {
  gap:28px;
  padding-block:65px 55px;
}.hero h1 {
  font-size: 2.8125rem;
}.hero-intro {
  font-size: 1rem;
}.hero .eyebrow {
  font-size: 0.75rem;
}.engineering-visual {
  padding:20px 14px;
}.layer-icon {
  width:31px;
  height:31px;
}.layer-icon svg {
  width:19px;
  height:19px;
}.layer-interface {
  margin-right:8px;
}.layer-logic {
  margin-left:8px;
}.layer-platform {
  margin-left:16px;
}.visual-top .mono {
  font-size: 0.75rem;
}.visual-bottom {
  font-size: 0.75rem;
}.technology-strip {
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}.technology-strip>div {
  justify-content:space-between;
  width:100%;
  gap:15px;
}.section {
  padding-block:75px;
}.project-card {
  grid-template-columns:1fr;
}.preview-window {
  max-width:520px;
}.project-story {
  padding:25px;
}.project-label {
  flex-wrap:wrap;
  margin-bottom:22px;
}.project-facts>div {
  grid-template-columns:1fr;
  gap:1px;
}.project-preview {
  padding:22px 14px;
}.preview-body {
  padding:20px 12px 14px;
}.preview-toolbar {
  padding:13px 14px;
}.module-content {
  padding:14px 10px;
}.module-button {
  font-size: 0.75rem;
}.module-chip {
  font-size: 0.75rem;
}.demo-status {
  font-size: 0.75rem;
}.project-capabilities {
  gap:20px;
}.service-row {
  grid-template-columns:20px 1fr;
}.service-specialty {
  grid-column:2;
  text-align:left;
  align-self:start;
}.service-row h3 {
  font-size: 1.375rem;
}.about-section {
  gap:45px;
}.process-list {
  gap:20px;
}.contact-inner {
  grid-template-columns:1.5fr 1fr;
  gap:45px;
}.footer-top>p {
  display:none;
}.footer-bottom {
  align-items:flex-start;
  flex-direction:column;
  gap:2px;
}.footer-operator {
  margin-top:12px;
}}

@media(max-width:700px){:root {
  --header-height:75px;
}.container {
  width:calc(100% - 40px);
}.nav-inner {
  height:75px;
}.brand {
  font-size: 0.75rem;
  gap:10px;
}.brand-sub {
  font-size: 0.75rem;
}.brand-mark {
  font-size: 1.8125rem;
}.nav-links {
  gap:17px;
  font-size: 0.875rem;
}.nav-links .nav-contact {
  margin-left:0;
  padding:0 11px;
}.hero {
  grid-template-columns:1fr;
  gap:42px;
  padding-block:55px 45px;
}.hero h1 {
  font-size: clamp(2.4375rem,7.8vw,3.4375rem);
}.hero .eyebrow {
  font-size: 0.75rem;
}.hero-intro {
  font-size: 1rem;
  max-width:490px;
}.hero-actions {
  gap:22px;
}.hero-location {
  margin-top:28px;
}.engineering-visual {
  max-width:480px;
  width:100%;
  justify-self:center;
  padding:24px 30px;
}.system-layer {
  padding:17px;
  gap:15px;
}.layer-interface {
  margin-right:25px;
}.layer-logic {
  margin-left:14px;
  margin-right:10px;
}.layer-platform {
  margin-left:29px;
}.layer-icon {
  width:39px;
  height:39px;
}.layer-icon svg {
  width:24px;
  height:24px;
}.layer-caption {
  font-size: 0.75rem;
}.system-layer strong {
  font-size: 0.8125rem;
}.layer-detail {
  font-size: 0.75rem;
}.visual-top .mono {
  font-size: 0.75rem;
}.visual-bottom {
  font-size: 0.75rem;
}.technology-strip {
  padding-block:22px;
}.technology-strip>div {
  justify-content:flex-start;
  gap:15px 26px;
  font-size: 0.75rem;
}.section {
  padding-block:65px;
}.section-heading {
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  margin-bottom:30px;
}.section-heading>p {
  max-width:380px;
  font-size: 1rem;
}.project-card {
  grid-template-columns:1fr;
}.project-story {
  padding:30px;
}.project-label {
  justify-content:space-between;
}.project-facts>div {
  grid-template-columns:88px 1fr;
  gap:12px;
}.project-preview {
  padding:32px 30px 22px;
}.preview-window {
  max-width:440px;
}.preview-body {
  padding:24px 20px 18px;
}.module-button {
  font-size: 0.75rem;
  min-height:68px;
}.module-content {
  min-height:265px;
  padding:17px 15px;
}.module-heading h4 {
  font-size: 0.9375rem;
}.module-chip {
  font-size: 0.75rem;
}.module-description {
  font-size: 0.75rem;
}.demo-row {
  padding-block:12px;
}.demo-row strong {
  font-size: 0.75rem;
}.demo-row>div>span {
  font-size: 0.75rem;
}.demo-status {
  font-size: 0.75rem;
}.preview-footer {
  font-size: 0.75rem;
}.preview-note {
  font-size: 0.75rem;
}.project-capabilities {
  grid-template-columns:1fr;
  gap:23px;
}.project-capabilities h3 {
  font-size: 0.875rem;
}.services-section .section {
  padding-block:65px;
}.service-row {
  gap:16px;
  padding-block:25px;
}.service-row p {
  font-size: 1rem;
}.service-specialty {
  font-size: 0.75rem;
  margin-top:-4px;
}.about-section {
  grid-template-columns:1fr;
  gap:27px;
}.signature {
  margin-top:25px;
}.about-copy {
  padding-top:0;
}.about-copy .about-lead {
  font-size: 1.3125rem;
}.process-section {
  padding-block:45px 65px;
}.process-heading {
  align-items:flex-start;
  flex-direction:column;
  gap:12px;
}.process-list {
  grid-template-columns:1fr 1fr;
  gap:25px;
}.contact-inner {
  grid-template-columns:1fr;
  gap:30px;
  padding-block:60px 45px;
}.contact-section h2 {
  font-size: 2.375rem;
}.contact-details {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}.contact-details>a,.contact-details>div {
  border-top:1px solid var(--line);
  border-bottom:0;
}.contact-details>div:last-child {
  grid-column:1/-1;
  padding-block:15px;
}.footer-top {
  gap:10px;
}.footer-top .brand {
  font-size: 0.75rem;
}.footer-bottom nav {
  gap:6px 17px;
}.document-page .wrap {
  padding-block:45px;
}.document-page .box {
  padding:20px;
}}

@media(max-width:500px){.menu-toggle:not([hidden]) {
  display:flex;
  align-items:center;
  gap:15px;
  font-size: 0.75rem;
}.nav-links {
  display:none;
  position:absolute;
  top:75px;
  left:0;
  right:0;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
  padding:15px 20px 22px;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  box-shadow:0 12px 18px rgba(23,42,70,.035);
}.nav-links.is-open {
  display:flex;
}.nav-links>a {
  padding:7px 8px;
  font-size: 0.875rem;
  justify-content:space-between;
}.nav-links .nav-contact {
  margin-top:5px;
  padding-inline:12px;
}.hero .eyebrow {
  font-size: 0.75rem;
  letter-spacing:.04em;
  gap:7px;
}.hero h1 {
  font-size: clamp(2.1875rem,8.4vw,2.625rem);
}.hero-actions {
  gap:12px 20px;
}.hero-actions .text-link {
  font-size: 0.875rem;
}.hero-location {
  font-size: 0.75rem;
  gap:8px;
}.engineering-visual {
  padding:22px 17px;
}.system-layer {
  padding:15px 12px;
  gap:11px;
}.layer-interface {
  margin-right:13px;
}.layer-platform {
  margin-left:17px;
}.layer-logic {
  margin-left:8px;
  margin-right:5px;
}.system-layer strong {
  font-size: 0.75rem;
}.layer-caption {
  font-size: 0.75rem;
}.layer-detail {
  font-size: 0.75rem;
}.layer-icon {
  width:34px;
  height:34px;
}.layer-icon svg {
  width:21px;
  height:21px;
}.visual-bottom {
  font-size: 0.75rem;
}.project-story {
  padding:25px;
}.project-story h3 {
  font-size: 3.125rem;
}.project-subtitle {
  font-size: 1.0625rem;
}.project-preview {
  padding:26px 17px 20px;
}.preview-body {
  padding:20px 14px 15px;
}.module-picker {
  grid-template-columns:repeat(2,1fr);
}.module-button {
  font-size: 0.75rem;
  min-height:48px;
  flex-direction:row;
  justify-content:center;
  gap:10px;
}.module-content {
  padding:15px 10px;
}.module-heading h4 {
  font-size: 0.8125rem;
}.module-chip {
  font-size: 0.75rem;
}.module-description {
  font-size: 0.75rem;
}.demo-row strong {
  font-size: 0.75rem;
}.demo-row>div>span {
  font-size: 0.75rem;
}.demo-status {
  font-size: 0.75rem;
}.preview-footer {
  font-size: 0.75rem;
}.service-row h3 {
  font-size: 1.25rem;
}.process-list {
  gap:22px 20px;
}.process-list h3 {
  font-size: 0.8125rem;
}.process-list p {
  font-size: 1rem;
}.contact-section h2 {
  font-size: 2rem;
}.contact-section .eyebrow {
  font-size: 0.75rem;
}.contact-details strong {
  font-size: 0.9375rem;
}.contact-details>a>span:last-child {
  font-size: 0.75rem;
}.footer-top .brand {
  gap:9px;
}.back-to-top {
  font-size: 0.75rem;
  gap:7px;
}}

@media(prefers-reduced-motion:reduce){html {
  scroll-behavior:auto;
}*,*::before,*::after {
  animation:none!important;
  transition:none!important;
}.button-primary:hover {
  transform:none;
}}[hidden] {
  display: none !important;
}:where(a, button, [tabindex]) {
  scroll-margin-block: calc(var(--header-height) + 16px) 16px;
}.brand {
  min-height: 44px;
}.button-primary {
  background: var(--accent);
}.button-primary:hover {
  background: var(--ink);
}.text-link, .contact-email {
  text-decoration: underline;
  text-underline-offset: 5px;
}.contact-email {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}.module-button {
  position: relative;
  min-width: 44px;
}.module-button[aria-selected=true] {
  border-width: 2px;
  padding: 9px 2px;
  font-weight: 600;
}.module-button[aria-selected=true]::after {
  content: '';
  position: absolute;
  bottom: 4px;
  width: 14px;
  height: 2px;
  background: currentColor;
}.module-content {
  margin: 0;
}.module-content + .module-content {
  margin-top: 16px;
}.module-content[role=tabpanel] {
  margin-top: 0;
}.preview-window {
  max-width: 560px;
}.demo-row > div {
  flex: 1;
}.demo-status {
  overflow-wrap: anywhere;
  white-space: normal;
  text-align: center;
  max-width: 28%;
}.document-page footer a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

@media (max-width: 1100px) {.hero .eyebrow {
  font-size: 0.6875rem;
}.module-picker {
  grid-template-columns: repeat(2,1fr);
}.module-button {
  flex-direction: row;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
}.module-button[aria-selected=true] {
  padding: 9px 2px;
}
}

@media (max-width: 700px) {.contact-details {
  grid-template-columns: 1fr;
  gap: 0;
}.technology-strip > div {
  justify-content: flex-start;
}.section-heading > p {
  max-width: none;
}.project-facts > div {
  grid-template-columns: 1fr;
  gap: 2px;
}.project-label {
  align-items: flex-start;
  flex-direction: column;
}.visual-bottom > .mono {
  display: none;
}.module-heading {
  align-items: flex-start;
  flex-wrap: wrap;
}.module-description {
  min-height: 0;
}.module-content {
  min-height: 0;
}
}

@media (max-width: 500px) {.engineering-visual {
  padding-inline: 16px;
}.system-layer {
  gap: 10px;
}.layer-interface, .layer-logic, .layer-platform {
  margin-inline: 0;
}.layer-icon {
  width: 30px;
  height: 30px;
}.module-picker {
  gap: 8px;
}.demo-row {
  flex-wrap: wrap;
}.demo-row > div {
  flex-basis: calc(100% - 40px);
}.demo-status {
  margin-left: 35px;
  max-width: 100%;
}.process-list {
  grid-template-columns: 1fr;
}
}

@media (forced-colors: active) {a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid Highlight;
}.module-button[aria-selected=true] {
  border-color: Highlight;
}
}

@media (max-width: 500px) {
  .no-js .nav-inner { height: auto; min-height: 75px; flex-wrap: wrap; padding-block: 16px; gap: 8px; }
  .no-js .nav-links { display: flex; position: static; flex-direction: row; flex-wrap: wrap; padding: 0; border: 0; box-shadow: none; width: 100%; gap: 8px; }
  .no-js .nav-links > a { padding: 4px; font-size: 0.875rem; }
  .no-js .nav-links .nav-contact { border: 0; margin: 0; padding: 4px; }
  .no-js { --header-height: 144px; }
}

:where(a, button, [tabindex]):focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.module-picker { display: flex; flex-wrap: wrap; gap: 8px; }
.module-button { flex: 1 1 auto; }
.system-layer > div { min-width: 0; }
@media (max-width: 500px) {
  .nav-inner { height: auto; min-height: 75px; flex-wrap: wrap; padding-block: 12px; gap: 8px; }
  .nav-links { top: 100%; }
  .no-js .site-header { position: relative; }
  .no-js { --header-height: 0px; }
}

:where(h1,h2,h3,h4,p,dd,a,button) { overflow-wrap: anywhere; }
.brand { max-width: 100%; }
.brand > span:last-child { min-width: 0; }
.brand-mark { flex-shrink: 0; }
.hero-location { flex-wrap: wrap; }
.strip-label { max-width: 100%; }
.module-button { flex-wrap: wrap; overflow-wrap: anywhere; }

:where(.hero,.project-card,.about-section,.contact-inner) > div { min-width: 0; }
.contact-email { display: block; width: auto; max-width: 100%; padding-block: 8px; }
.preview-toolbar { flex-wrap: wrap; }
.module-chip { white-space: normal; max-width: 100%; overflow-wrap: anywhere; }
.footer-top { flex-wrap: wrap; }
