/* The Agile Engineer — shared public-site design system. */
:root {
  --ink:#142b36;
  --muted:#586771;
  --paper:#f7f7f2;
  --white:#fff;
  --orange:#c34e1b;
  --line:#dce1dc;
  --navy:#122b37;
  --radius:6px;
}

* {
  box-sizing:border-box;
}

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

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

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

button,input,textarea {
  font:inherit;
}

img {
  display:block;
  max-width:100%;
  height:auto;
}

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

a,button {
  touch-action:manipulation;
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:3px solid var(--orange);
  outline-offset:5px;
}

a:hover {
  color:var(--orange);
}

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

h1,h2,h3 {
  font-weight:600;
  line-height:1.12;
  letter-spacing:-.045em;
}

h1 {
  font-size:clamp(2.6rem,4.4vw,4.25rem);
}

h1>span {
  color:#667971;
}

h2 {
  font-size:clamp(2rem,3vw,3rem);
}

h3 {
  font-size:1.3rem;
  letter-spacing:-.025em;
}

p {
  color:var(--muted);
}

.container {
  width:min(1220px,calc(100% - 96px));
  margin-inline:auto;
}

.orange {
  color:var(--orange);
}

.section {
  padding:100px 0;
}

.eyebrow {
  font-size:.69rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:24px;
}

.lead {
  font-size:1.2rem;
  line-height:1.6;
}

.skip-link {
  position:fixed;
  left:16px;
  top:-100px;
  z-index:30;
  background:white;
  padding:12px;
}

.skip-link:focus {
  top:12px;
}

.site-header {
  height:100px;
  border-bottom:1px solid var(--line);
  background:rgba(247,247,242,.97);
  position:sticky;
  top:0;
  z-index:20;
}

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

.brand {
  display:flex;
  align-items:center;
  gap:13px;
  font-size:17px;
  font-weight:700;
  letter-spacing:-.045em;
  line-height:1.08;
}

.brand-second {
  display:block;
  font-size:22px;
}

.brand-mark {
  position:relative;
  display:grid;
  place-content:center;
  grid-auto-flow:column;
  font-size:26px;
  letter-spacing:-.12em;
  border:1px solid #b5c1bb;
  border-radius:50%;
  width:49px;
  height:49px;
  padding-right:4px;
}

.brand-mark>span {
  color:var(--orange);
}

.brand-mark i {
  position:absolute;
  right:0;
  top:1px;
  width:8px;
  height:8px;
  background:var(--orange);
  border:2px solid var(--paper);
  border-radius:50%;
}

nav {
  display:flex;
  align-items:center;
  gap:34px;
  font-size:.83rem;
  font-weight:600;
}

nav a[aria-current] {
  color:var(--orange);
}

.nav-contact {
  border:1px solid #b7c1bd;
  border-radius:var(--radius);
  padding:10px 19px;
}

.nav-contact span {
  margin-left:22px;
}

.hero {
  padding-top:76px;
}

.hero-grid {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:64px;
  align-items:center;
}

.hero-copy .eyebrow {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.65rem;
}

.status-dot {
  display:inline-block;
  flex-shrink:0;
  width:7px;
  height:7px;
  background:var(--orange);
  border-radius:50%;
}

.hero-copy h1 {
  margin-bottom:26px;
}

.hero-copy .lead {
  max-width:430px;
  color:var(--ink);
  margin-bottom:18px;
}

.hero-description {
  max-width:480px;
  font-size:.94rem;
}

.actions {
  display:flex;
  flex-wrap:wrap;
  gap:26px;
  align-items:center;
  margin-top:32px;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  border:1px solid var(--orange);
  border-radius:var(--radius);
  padding:14px 21px;
  background:var(--orange);
  color:white;
  font-size:.82rem;
  font-weight:600;
  cursor:pointer;
  transition:background .2s,transform .2s;
}

.button:hover {
  background:#a43d12;
  border-color:#a43d12;
  color:white;
  transform:translateY(-2px);
}

.text-link {
  display:inline-flex;
  gap:16px;
  align-items:center;
  font-size:.82rem;
  font-weight:600;
  border-bottom:1px solid #a7b3ac;
  padding:8px 0;
}

.engineering-panel {
  min-width:0;
  background:var(--navy);
  color:#d6e0e0;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 16px 40px #142b3610;
}

.panel-top {
  display:flex;
  justify-content:space-between;
  padding:23px 26px;
  font-family:monospace;
  font-size:9px;
  letter-spacing:.12em;
  color:#a9bbc2;
}

.schematic {
  height:325px;
  position:relative;
  background-image:linear-gradient(#a1c0ca08 1px,transparent 1px),linear-gradient(90deg,#a1c0ca08 1px,transparent 1px);
  background-size:25px 25px;
  overflow:hidden;
}

.orbit {
  position:absolute;
  left:50%;
  top:50%;
  border:1px solid #789ba52d;
  border-radius:50%;
  transform:translate(-50%,-50%);
}

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

.orbit-two {
  width:310px;
  height:310px;
  border-style:dashed;
}

.core {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:144px;
  height:144px;
  border:1px solid #789ba55c;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#193440;
  box-shadow:0 0 50px #496d6e20;
}

.core>span {
  font-size:64px;
  letter-spacing:-.08em;
  line-height:1.1;
}

.core .orange {
  color:#ff9056;
}

.core small {
  font-size:7px;
  letter-spacing:.11em;
  margin-top:11px;
}

.node {
  position:absolute;
  background:#ec8650;
  width:9px;
  height:9px;
  border:2px solid #142b36;
  border-radius:50%;
  box-shadow:0 0 0 5px #e98e5520;
}

.node-one {
  top:53px;
  left:50%;
}

.node-two {
  top:197px;
  left:calc(50% + 95px);
}

.node-three {
  top:213px;
  left:calc(50% - 96px);
}

.diagram-label {
  position:absolute;
  font-size:9px;
  font-family:monospace;
  letter-spacing:.025em;
  color:#f6a372;
  background:var(--navy);
  padding:7px 9px;
  border:1px solid #4e69764d;
  border-radius:3px;
}

.diagram-label span {
  margin-left:6px;
  color:#c6d3d7;
}

.label-one {
  top:28px;
  left:18px;
}

.label-two {
  right:14px;
  top:188px;
}

.label-three {
  left:15px;
  bottom:39px;
}

.schematic-cross {
  position:absolute;
  font:18px monospace;
  color:#52747c;
}

.cross-one {
  top:38px;
  right:33px;
}

.cross-two {
  bottom:35px;
  left:38px;
}

.panel-bottom {
  padding:19px 25px;
  border-top:1px solid #ffffff12;
  font-size:10px;
  display:flex;
  align-items:center;
  gap:9px;
  color:#b5c5cb;
}

.panel-bottom>span:last-child {
  margin-left:auto;
  font-size:18px;
  color:#ed915d;
}

.credentials {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  padding-block:34px;
  margin-top:66px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.credentials>div {
  display:flex;
  align-items:center;
  gap:16px;
  padding-left:28px;
  border-left:1px solid var(--line);
}

.credentials>div:first-child {
  border:0;
  padding-left:0;
}

.credentials strong {
  font-size:1.6rem;
  letter-spacing:-.05em;
  white-space:nowrap;
}

.credentials span {
  font-size:.75rem;
  max-width:140px;
  line-height:1.5;
}

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

.section-heading>p {
  max-width:380px;
  font-size:.9rem;
}

.expertise-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}

.expertise-card {
  padding:29px 30px 25px;
  background:#fff8;
}

.expertise-card+.expertise-card {
  border-left:1px solid var(--line);
}

.card-number {
  font:10px monospace;
  letter-spacing:.09em;
  color:var(--muted);
}

.line-icon {
  font-size:36px;
  line-height:1;
  margin:30px 0 21px;
  color:var(--orange);
}

.expertise-card h3 {
  margin-bottom:16px;
}

.expertise-card p {
  font-size:.88rem;
}

.card-tag {
  display:block;
  margin-top:32px;
  padding-top:18px;
  border-top:1px solid var(--line);
  font-size:.68rem;
  color:var(--muted);
}

.featured-service {
  display:flex;
  gap:22px;
  align-items:center;
  padding:28px 30px;
  margin-top:22px;
  border:1px solid #d6dcd4;
  background:#ebeee6;
  border-radius:var(--radius);
}

.featured-service .eyebrow {
  display:block;
  margin-bottom:8px;
  font-size:.6rem;
}

.featured-service h3 {
  font-size:1.12rem;
}

.featured-service p {
  font-size:.8rem;
  margin-top:7px;
}

.service-symbol {
  font-size:32px;
  color:var(--orange);
}

.service-link {
  margin-left:auto;
  white-space:nowrap;
  font-size:.75rem;
  font-weight:600;
}

.service-link span {
  padding-left:20px;
}

.about-section {
  background:#eeefe8;
}

.about-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:100px;
  align-items:start;
}

.portrait-wrap {
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
}

.portrait-wrap img {
  width:100%;
  aspect-ratio:1/1.12;
  object-fit:cover;
  object-position:center top;
}

.portrait-caption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  background:linear-gradient(transparent,#0c1a22ed);
  padding:70px 25px 22px;
  color:#fff;
  display:flex;
  flex-direction:column;
}

.portrait-caption span:first-child {
  font-size:1.25rem;
}

.portrait-caption span:last-child {
  font-size:.72rem;
  color:#d7e0e2;
}

.about-copy {
  padding-block:13px;
}

.about-copy h2 {
  margin-bottom:26px;
}

.about-copy p:not(.eyebrow) {
  margin-bottom:20px;
  font-size:.94rem;
}

.about-copy p.lead {
  font-size:1.2rem;
  color:var(--ink);
}

.contact-section {
  background:var(--navy);
  color:white;
}

.contact-grid {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:90px;
}

.contact-section .eyebrow {
  color:#a5b9bd;
}

.contact-section h2 {
  font-size:clamp(2.2rem,3.4vw,3.3rem);
  margin-bottom:26px;
}

.contact-section p {
  color:#b6c5cb;
  font-size:.92rem;
}

.contact-section .orange {
  color:#f3955e;
}

.contact-email {
  display:inline-block;
  margin-top:30px;
  border-bottom:1px solid #73888f;
  font-size:.98rem;
  padding-bottom:10px;
}

.contact-email span {
  margin-left:20px;
}

.contact-note {
  font-size:.68rem;
  color:#adbec4;
  margin-top:38px;
  display:flex;
  align-items:center;
  gap:9px;
}

.contact-form {
  background:#1c3541;
  border:1px solid #39505a;
  padding:32px;
  border-radius:var(--radius);
}

.contact-form h3 {
  margin-bottom:28px;
  font-size:1.2rem;
}

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

.form-row>div {
  min-width:0;
}

label {
  display:block;
  font-size:.72rem;
  font-weight:600;
  margin-bottom:8px;
}

input,textarea {
  width:100%;
  border:1px solid #536872;
  background:#142c38;
  color:white;
  border-radius:4px;
  padding:12px;
  font-size:.8rem;
  margin-bottom:20px;
}

textarea {
  resize:vertical;
  min-height:125px;
}

input::placeholder,textarea::placeholder {
  color:#a9bbc4;
  opacity:1;
}

.form-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.form-footer p {
  font-size:.65rem;
  max-width:135px;
}

.form-footer .button {
  gap:18px;
  white-space:nowrap;
}

.site-footer {
  padding:32px 0;
}

.footer-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px;
}

.footer-brand {
  font-size:.95rem;
  font-weight:700;
  letter-spacing:-.04em;
}

.footer-inner p,.footer-inner small {
  font-size:.65rem;
  color:var(--muted);
}

.page-intro {
  padding-bottom:62px;
  background:#eeefe8;
}

.back-link {
  display:block;
  font-size:.8rem;
  margin-bottom:40px;
  color:var(--muted);
}

.page-intro .lead {
  margin-top:25px;
  max-width:650px;
}

.prose p {
  margin-top:22px;
  font-size:.96rem;
}

.prose h3 {
  margin-top:32px;
}

.prose .button {
  margin-top:30px;
}

.service-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
}

.product-image {
  margin-top:40px;
  background:#fff;
  border-radius:var(--radius);
  padding:20px;
}

.process {
  padding:34px;
  background:#eeefe8;
  border:1px solid var(--line);
  border-radius:var(--radius);
}

.process ol {
  list-style:none;
  counter-reset:steps;
  padding:0;
  margin:30px 0 0;
}

.process li {
  position:relative;
  counter-increment:steps;
  padding:0 0 25px 45px;
}

.process li:last-child {
  padding-bottom:0;
}

.process li:before {
  content:counter(steps,decimal-leading-zero);
  position:absolute;
  left:0;
  top:0;
  color:var(--orange);
  font:13px monospace;
}

.process h3 {
  font-size:1rem;
}

.process p {
  font-size:.85rem;
  margin-top:10px;
}

.success-page {
  text-align:center;
  min-height:75vh;
}

.success-page h1 {
  margin-bottom:28px;
}

.success-page p {
  margin:20px auto;
  max-width:640px;
}

.success-page .button {
  margin-top:20px;
}

.success-icon {
  display:inline-grid;
  place-items:center;
  background:#e8eee5;
  border:1px solid #c7d6c3;
  color:#3f6451;
  font-size:32px;
  border-radius:50%;
  width:72px;
  height:72px;
  margin-bottom:20px;
}

.flash {
  border:1px solid #e99f76;
  padding:12px;
  margin-bottom:20px;
}

@media(min-width:1500px) {
  .hero {
    padding-top:95px;
  }
  .hero-grid {
    gap:90px;
  }
  .schematic {
    height:365px;
  }
}

@media(max-width:1050px) {
  .container {
    width:calc(100% - 64px);
  }
  .hero-grid {
    gap:35px;
    grid-template-columns:1.15fr 1fr;
  }
  h1 {
    font-size:3rem;
  }
  .hero-copy .eyebrow {
    font-size:.56rem;
  }
  .about-grid,.contact-grid,.service-grid {
    gap:50px;
  }
  .credentials>div {
    gap:12px;
    padding-left:20px;
  }
  .credentials strong {
    font-size:1.35rem;
  }
  .credentials span {
    font-size:.65rem;
  }
  .expertise-card {
    padding:24px;
  }
  .service-link {
    white-space:normal;
    min-width:110px;
  }
  .contact-form {
    padding:24px;
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .form-footer {
    align-items:flex-start;
    flex-direction:column;
  }
  .footer-inner p {
    display:none;
  }
}

@media(max-width:760px) {
  html {
    scroll-padding-top:130px;
  }
  .container {
    width:calc(100% - 40px);
  }
  .site-header {
    height:auto;
  }
  .header-inner {
    padding:17px 0;
    flex-wrap:wrap;
    gap:16px;
  }
  .brand {
    font-size:14px;
  }
  .brand-second {
    font-size:18px;
  }
  .brand-mark {
    width:40px;
    height:40px;
    font-size:23px;
  }
  nav {
    gap:20px;
    font-size:.72rem;
  }
  .nav-contact {
    padding:8px 12px;
  }
  .nav-contact span {
    margin-left:10px;
  }
  .hero {
    padding-top:42px;
  }
  .hero-grid {
    grid-template-columns:1fr;
    gap:40px;
  }
  h1 {
    font-size:clamp(2.45rem,8vw,3.7rem);
  }
  .hero-copy .eyebrow {
    font-size:.58rem;
  }
  .hero-description,.hero-copy .lead {
    max-width:100%;
  }
  .hero-copy .lead {
    font-size:1.13rem;
  }
  .actions {
    gap:18px;
  }
  .engineering-panel {
    max-width:100%;
    width:100%;
  }
  .schematic {
    height:300px;
  }
  .credentials {
    margin-top:35px;
    padding-block:25px;
    gap:18px;
  }
  .credentials>div {
    flex-direction:column;
    align-items:flex-start;
    padding-left:18px;
    gap:7px;
  }
  .credentials strong {
    font-size:1.15rem;
  }
  .credentials span {
    font-size:.64rem;
  }
  .section {
    padding:60px 0;
  }
  .section-heading {
    display:block;
    margin-bottom:30px;
  }
  .section-heading>p {
    margin-top:22px;
    max-width:100%;
  }
  .expertise-grid {
    grid-template-columns:1fr;
  }
  .expertise-card+.expertise-card {
    border-left:0;
    border-top:1px solid var(--line);
  }
  .line-icon {
    margin:20px 0;
  }
  .card-tag {
    margin-top:20px;
  }
  .featured-service {
    flex-wrap:wrap;
    padding:24px;
    gap:16px;
  }
  .featured-service>div:nth-child(2) {
    flex:1;
    min-width:200px;
  }
  .service-link {
    margin-left:0;
    width:100%;
  }
  .about-grid,.contact-grid,.service-grid {
    grid-template-columns:1fr;
    gap:35px;
  }
  .portrait-wrap {
    max-width:430px;
  }
  .portrait-wrap img {
    aspect-ratio:1;
  }
  .about-copy {
    padding:0;
  }
  .form-row {
    grid-template-columns:1fr 1fr;
    gap:15px;
  }
  .form-footer {
    flex-direction:row;
    align-items:center;
  }
  .footer-inner {
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }
  .page-intro {
    padding-top:40px;
  }
  .back-link {
    margin-bottom:30px;
  }
  .process {
    padding:26px;
  }
  .success-page h1 {
    font-size:2.7rem;
  }
}

@media(max-width:440px) {
  nav {
    width:100%;
    justify-content:space-between;
    gap:12px;
  }
  .header-inner {
    gap:13px;
  }
  .nav-contact {
    border:0;
    padding:0;
  }
  .hero-copy .eyebrow {
    letter-spacing:.09em;
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .form-footer {
    flex-direction:column;
    align-items:stretch;
  }
  .form-footer p {
    max-width:none;
  }
  .credentials {
    gap:8px;
  }
  .credentials>div {
    padding-left:10px;
  }
  .credentials strong {
    font-size:1.05rem;
  }
  .label-two {
    right:5px;
  }
  .label-one {
    left:9px;
  }
  .label-three {
    left:9px;
  }
  .contact-email {
    font-size:.9rem;
  }
  .contact-form {
    padding:23px;
  }
}

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


/* Email-gated CV request section. */
.cv-section { background: #eeefe8; }
.cv-section h1, .cv-section h2 { margin-bottom: 26px; }
.cv-section .lead { margin-bottom: 20px; }
.cv-form {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 32px;
  min-width: 0;
}
.cv-form h3 { margin-bottom: 16px; }
.cv-description { font-size: .9rem; margin-bottom: 24px; }
.cv-form input { background: white; color: var(--ink); border-color: #91a29b; font-size: 1rem; }
.cv-form input::placeholder { color: var(--muted); }
.cv-privacy { font-size: .78rem; margin-bottom: 24px; }
.cv-help { font-size: .75rem; margin-top: 16px; }
.cv-error { border-left: 3px solid var(--orange); padding: 12px; margin-bottom: 20px; color: #8b3210; }
.cv-honeypot { display: none; }
@media (max-width: 440px) {
  .cv-form { padding: 23px; }
  .cv-form .button { width: 100%; gap: 12px; }
}
