.hero{background:var(--navy-deep);color:var(--white);isolation:isolate;min-height:min(820px,100svh);overflow:hidden;position:relative}.hero::before{background:linear-gradient(120deg,transparent 30%,rgba(0,124,138,.26),transparent 70%);content:"";inset:-20%;position:absolute;transform:rotate(-15deg);z-index:-1;animation:heroShift 18s ease-in-out infinite alternate}.hero-grid{background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:76px 76px;mask-image:linear-gradient(to bottom,black,transparent 80%);inset:0;opacity:.55;position:absolute;z-index:-1}.hero-glow{background:radial-gradient(circle,rgba(0,198,232,.19),transparent 65%);height:550px;position:absolute;right:-120px;top:10%;width:550px;z-index:-1}.hero-content{padding-bottom:100px;padding-top:clamp(185px,23vh,255px)}.hero h1{color:var(--white);max-width:900px}.hero-lead{color:var(--white);font-size:clamp(1.25rem,2vw,1.65rem);font-weight:500;margin:28px 0 14px}.hero-copy{color:rgba(255,255,255,.7);max-width:630px}.hero-actions{display:flex;gap:14px;margin-top:35px}.scroll-cue{align-items:center;bottom:28px;color:rgba(255,255,255,.55);display:flex;font-size:.65rem;font-weight:700;gap:10px;letter-spacing:.1em;position:absolute;text-transform:uppercase}.scroll-cue span{background:var(--cyan);height:1px;width:38px}.capabilities{background:var(--paper)}.capability-grid{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}.capability{border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-height:245px;padding:29px;transition:background var(--ease),transform var(--ease)}.capability:nth-child(3n){border-right:0}.capability:hover{background:var(--white);transform:translateY(-3px)}.capability span,.pillar b{color:var(--teal);font-size:.72rem;font-weight:800;letter-spacing:.09em}.capability h3{margin:37px 0 12px}.capability p,.pillar p{font-size:.93rem}.why{background:var(--white)}.pillar-grid{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}.pillar{border-right:1px solid var(--line);padding:30px 25px 20px}.pillar:last-child{border:0}.pillar h3{margin:42px 0 12px}.process-section{background:var(--navy);color:var(--white)}.process-section h2{color:var(--white)}.process-list{counter-reset:process;display:grid;grid-template-columns:repeat(4,1fr);position:relative}.process-list::before{background:rgba(255,255,255,.25);content:"";height:1px;left:0;position:absolute;right:0;top:18px}.process-list::after{background:var(--cyan);content:"";height:1px;left:0;position:absolute;top:18px;transform:scaleX(0);transform-origin:left;transition:transform 1.5s ease;right:0}.process-list.in-view::after{transform:scaleX(1)}.process-list li{padding:0 28px 0 0;position:relative}.process-list li:not(:first-child){padding-left:24px}.process-list span{align-items:center;background:var(--navy);border:1px solid var(--cyan);color:var(--white);display:flex;font-size:.72rem;font-weight:800;height:37px;justify-content:center;position:relative;width:37px}.process-list h3{color:var(--white);margin:29px 0 11px}.process-list p{color:rgba(255,255,255,.64);font-size:.9rem}.expertise{background:var(--paper)}.expertise-layout{display:grid;gap:60px;grid-template-columns:1fr 1.25fr}.expertise-copy{color:var(--slate);font-size:1.18rem;max-width:640px}.expertise-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:33px}.expertise-list li{border:1px solid #cbd5e1;color:var(--navy);font-size:.79rem;font-weight:700;padding:9px 13px}.about-layout{display:grid;gap:12%;grid-template-columns:1fr 1fr}.about-content p{color:var(--slate);font-size:1.1rem;margin-bottom:17px}.stats{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);margin-top:72px}.stats div{border-right:1px solid var(--line);display:flex;flex-direction:column;padding:24px 18px}.stats div:first-child{padding-left:0}.stats div:last-child{border:0}.stats strong{color:var(--navy);font-size:clamp(1.2rem,2vw,1.7rem);letter-spacing:-.04em}.stats span{color:var(--muted);font-size:.76rem;font-weight:600}.contact{background:var(--navy-deep);padding:clamp(72px,9vw,125px) 0}.contact-layout{display:grid;gap:10%;grid-template-columns:1fr 1fr}.contact h2{color:var(--white);margin:12px 0 21px}.contact-copy>p:not(.eyebrow){color:rgba(255,255,255,.68);font-size:1.08rem;max-width:420px}.contact-links{align-items:center;display:flex;gap:22px;margin-top:34px}.contact-links>a:not(.button){color:var(--white);font-size:.87rem;font-weight:650}.contact-form{display:flex;flex-direction:column;gap:17px}.form-row{display:grid;gap:15px;grid-template-columns:1fr 1fr}.site-footer{background:#06182c;color:rgba(255,255,255,.65);padding-top:55px}.footer-top{display:grid;gap:40px;grid-template-columns:1.4fr 1fr .7fr;padding-bottom:54px}.footer-brand{width:150px}.footer-top p{color:var(--cyan);font-size:.68rem;font-weight:800;letter-spacing:.1em;margin-top:18px}.footer-top nav,.footer-top address{display:flex;flex-direction:column;font-size:.84rem;font-style:normal;gap:11px}.footer-top a:hover{color:var(--cyan)}.footer-bottom{border-top:1px solid rgba(255,255,255,.13);display:flex;font-size:.73rem;justify-content:space-between;padding-bottom:23px;padding-top:23px}.footer-bottom a{color:var(--white)}

/* Logo-inspired architectural mark, reserved for the visual half of the hero. */
.hero-mark { inset: 13% -3% auto auto; opacity: .78; pointer-events: none; position: absolute; width: min(50vw, 710px); z-index: -1; }
.hero-mark svg { height: auto; overflow: visible; width: 100%; }
.hero-mark path { stroke: url(#hero-line); stroke: rgba(0, 198, 232, .56); stroke-linecap: round; stroke-width: 1.35; }
.hero-mark .hero-mark-fine { stroke: rgba(255, 255, 255, .18); stroke-width: .75; }
.hero-mark circle { fill: var(--cyan); opacity: .8; }
.hero-mark::before { background: radial-gradient(circle, rgba(0, 198, 232, .13), transparent 68%); content: ""; inset: 5% 3%; position: absolute; z-index: -1; }

.capability { overflow: hidden; position: relative; }
.capability::before { background: var(--cyan); content: ""; height: 3px; left: 29px; position: absolute; top: 0; transform: scaleX(0); transform-origin: left; transition: transform var(--ease); width: 42px; }
.capability h3 { transition: transform var(--ease); }
.capability h3::after { color: var(--teal); content: "↗"; display: inline-block; font-size: .9em; margin-left: 9px; opacity: 0; transform: translate(-7px, 4px); transition: opacity var(--ease), transform var(--ease); }
.capability:hover::before { transform: scaleX(1); }
.capability:hover h3 { transform: translateX(4px); }
.capability:hover h3::after { opacity: 1; transform: translate(0, 0); }
.capability:hover span { color: var(--cyan); }

.pillar { min-height: 218px; position: relative; transition: background var(--ease), transform var(--ease); }
.pillar::after { background: var(--cyan); bottom: 0; content: ""; height: 2px; left: 25px; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform var(--ease); width: 34px; }
.pillar b { display: block; font-size: .76rem; }
.pillar h3 { font-size: 1.42rem; transition: color var(--ease), transform var(--ease); }
.pillar:hover { background: var(--paper); transform: translateY(-3px); }
.pillar:hover::after { transform: scaleX(1); }
.pillar:hover h3 { color: var(--teal); transform: translateX(3px); }

.process-list { margin-top: 8px; }
.process-list li { min-height: 174px; }

.expertise-list { border-top: 1px solid #cbd5e1; display: grid; gap: 0; grid-template-columns: repeat(2, 1fr); }
.expertise-list li { align-items: center; background: transparent; border: 0; border-bottom: 1px solid #cbd5e1; display: flex; font-size: .84rem; gap: 13px; min-height: 57px; padding: 12px 16px; transition: background var(--ease), color var(--ease), padding var(--ease); }
.expertise-list li::before { color: var(--teal); content: counter(technology, decimal-leading-zero); counter-increment: technology; font-size: .65rem; font-weight: 800; letter-spacing: .06em; }
.expertise-list { counter-reset: technology; }
.expertise-list li:nth-child(odd) { border-right: 1px solid #cbd5e1; }
.expertise-list li:hover { background: rgba(0, 124, 138, .07); color: var(--teal); padding-left: 21px; }

.stats { border-top-color: #cbd5e1; }
.stats div { min-height: 104px; justify-content: center; transition: background var(--ease); }
.stats div:hover { background: var(--paper); }
.stats strong { font-size: clamp(1.2rem, 1.8vw, 1.58rem); }
.stats span { letter-spacing: .015em; }

.contact-links { gap: 26px; }
.contact-links > a:not(.button) { border-bottom: 1px solid rgba(0, 198, 232, .55); padding-bottom: 3px; transition: color var(--ease), border-color var(--ease); }
.contact-links > a:not(.button):hover { border-color: var(--white); color: var(--cyan); }
.contact-details { display: grid; gap: 20px; margin-top: 34px; max-width: 430px; }
.contact-details div { border-top: 1px solid rgba(255, 255, 255, .16); padding-top: 11px; }
.contact-details dt { color: var(--cyan); font-size: .68rem; font-weight: 800; letter-spacing: .1em; margin-bottom: 5px; text-transform: uppercase; }
.contact-details dd { color: rgba(255, 255, 255, .82); font-size: .91rem; line-height: 1.55; margin: 0; }
.contact-details a { color: var(--white); transition: color var(--ease); }
.contact-details a:hover { color: var(--cyan); }
.field input, .field textarea { border-color: rgba(255, 255, 255, .3); }
.field input:hover, .field textarea:hover { border-color: rgba(0, 198, 232, .62); }

.footer-brand { background: transparent; border: 0; box-shadow: none; padding: 0; width: 166px; }
.footer-brand img { height: auto; object-fit: contain; width: 100%; }
.hero-mark path { stroke: url(#hero-line); }

/* Final layout polish: intentionally selective to retain the page rhythm. */
@media (min-width: 768px) {
  .contact-layout { align-items: center; }

  .hero {
    min-height: min(740px, 88svh);
  }

  .hero-content {
    padding-bottom: 76px;
    padding-top: clamp(168px, 19vh, 218px);
  }
}

.hero-copy {
  color: rgba(255, 255, 255, .76);
  font-size: 1.035rem;
  line-height: 1.72;
}

.capabilities {
  padding-bottom: clamp(68px, 8vw, 112px);
  padding-top: clamp(70px, 8.5vw, 118px);
}

.capabilities .section-heading {
  margin-bottom: clamp(42px, 4vw, 54px);
}

.capability {
  min-height: 222px;
}

.capability p,
.pillar p {
  font-size: .96rem;
  line-height: 1.62;
}

.why {
  padding-bottom: clamp(76px, 8.5vw, 120px);
  padding-top: clamp(76px, 8.5vw, 120px);
}

.why .section-heading-split {
  align-items: center;
  gap: clamp(32px, 7vw, 110px);
  justify-content: flex-start;
  margin-bottom: clamp(44px, 5vw, 60px);
}

.why .section-heading-split > p {
  border-left: 2px solid rgba(0, 124, 138, .35);
  line-height: 1.65;
  max-width: 390px;
  padding-left: 20px;
}

.process-section {
  padding-bottom: clamp(78px, 9vw, 122px);
  padding-top: clamp(78px, 9vw, 122px);
}

.expertise {
  padding-bottom: clamp(76px, 8.5vw, 120px);
  padding-top: clamp(76px, 8.5vw, 120px);
}

.expertise-list {
  margin-top: 43px;
}

.about {
  padding-bottom: clamp(78px, 8.5vw, 122px);
  padding-top: clamp(78px, 8.5vw, 122px);
}

.about-content p {
  line-height: 1.68;
}

.stats {
  margin-top: clamp(52px, 5vw, 64px);
}

.contact {
  padding-bottom: clamp(76px, 8.5vw, 112px);
  padding-top: clamp(76px, 8.5vw, 112px);
}

.field input,
.field textarea {
  background: rgba(255, 255, 255, .075);
  border-color: rgba(255, 255, 255, .34);
}

.contact-form {
  gap: 19px;
}

.footer-top {
  align-items: start;
  padding-bottom: 48px;
}

@keyframes heroShift {
  from { transform: translate(-2%, -1%) rotate(-15deg); }
  to { transform: translate(2%, 1%) rotate(-15deg); }
}
