:root {
  --blue: #0b318f;
  --electric: #164cff;
  --deep: #071c56;
  --ink: #091126;
  --mineral: #f3f6fb;
  --aluminium: #bec8d6;
  --sand: #d7cdbe;
  --white: #fff;
  --body: "Manrope", Arial, sans-serif;
  --display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --container: 1280px;
  --gutter: clamp(20px, 4vw, 64px);
  --header: 74px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --duration-press: 140ms;
  --duration-ui: 180ms;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--mineral);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
  font-family: var(--display);
  font-weight: 600;
  line-height: .93;
  text-transform: uppercase;
}
h2 { font-size: clamp(3.2rem, 6vw, 6.8rem); letter-spacing: -.035em; }
.container { width: min(calc(100% - (var(--gutter) * 2)), var(--container)); margin-inline: auto; }
.visually-hidden {
  position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important;
  margin: -1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important;
}
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 200; padding: 10px 16px; background: #fff; color: var(--blue); transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--header);
  background: #fff;
  border-bottom: 1px solid rgba(9,17,38,.08);
  transition: background-color var(--duration-ui) var(--ease-out), border-color var(--duration-ui) var(--ease-out), box-shadow var(--duration-ui) var(--ease-out);
}
.site-header.is-scrolled {
  background: rgba(255,255,255,.76);
  border-color: rgba(255,255,255,.5);
  box-shadow: 0 12px 38px rgba(7,28,86,.13);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
}
.nav-shell { width: min(calc(100% - (var(--gutter) * 2)), var(--container)); height: 100%; margin: auto; display: grid; grid-template-columns: 190px 1fr; align-items: center; gap: 28px; }
.brand { width: 134px; }
.brand img, .footer-brand img { width: 100%; height: auto; }
.desktop-nav { display: flex; justify-content: flex-end; gap: clamp(22px, 3vw, 48px); }
.desktop-nav a, .mobile-nav a, .site-footer nav a { font-size: .83rem; font-weight: 600; text-decoration: none; }
.desktop-nav a { padding: 10px 0; border-bottom: 2px solid transparent; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { color: var(--electric); border-color: currentColor; }
.nav-actions { display: none; align-items: center; justify-content: flex-end; }
.menu-toggle { display: none; width: 44px; height: 44px; place-items: center; border: 1px solid #ccd4e3; background: #fff; cursor: pointer; transition: transform var(--duration-press) var(--ease-out), border-color var(--duration-ui) var(--ease-out); }
.menu-toggle:active { transform: scale(.97); }
.menu-toggle img { width: 22px; }
.mobile-nav { position: absolute; inset: var(--header) 0 auto; padding: 24px var(--gutter) 30px; background: #fff; border-top: 1px solid #e1e6ef; box-shadow: 0 24px 35px rgba(7,28,86,.12); }
.mobile-nav[hidden] { display: none; }
.mobile-nav a:not(.button) { display: block; padding: 13px 0; border-bottom: 1px solid #e7ebf2; }
.mobile-nav .button { margin-top: 20px; }

.button { position: relative; isolation: isolate; overflow: hidden; min-height: 48px; padding: 12px 20px; border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 18px; color: #fff; background: var(--blue); font-size: .78rem; font-weight: 700; line-height: 1; text-decoration: none; cursor: pointer; transition: background-color var(--duration-ui) ease, color var(--duration-ui) ease, border-color var(--duration-ui) ease, transform var(--duration-press) var(--ease-out); }
.button > * { position: relative; z-index: 1; }
.button::after { content: ""; position: absolute; z-index: 0; inset: -35% auto -35% -32%; width: 28%; background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.3), rgba(255,255,255,0)); opacity: 0; transform: skewX(-18deg) translate3d(-160%, 0, 0); pointer-events: none; }
.button:hover { background: #092875; }
.button:active { transform: scale(.97); }
.button:focus-visible, .text-link:focus-visible, .menu-toggle:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #68a1ff; outline-offset: 3px; }
.button--bright { background: var(--electric); }
.button--bright:hover { background: #0d3cdc; }
.icon { width: 19px; height: 19px; flex: 0 0 auto; }
.icon--light { filter: brightness(0) invert(1); }

.hero { position: relative; isolation: isolate; min-height: min(860px, calc(100svh - var(--header))); display: flex; align-items: stretch; overflow: hidden; color: #fff; background: #071c56; }
.hero::before { content: ""; position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(3,16,48,.84) 0%, rgba(3,16,48,.7) 25%, rgba(3,16,48,.4) 43%, rgba(3,16,48,.12) 59%, transparent 76%), linear-gradient(180deg, rgba(3,16,48,.08), transparent 52%, rgba(3,16,48,.25)); }
.hero::after { content: none; }
.hero-picture { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; overflow: hidden; }
.hero-picture::after { content: none; }
.hero-picture img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.035) translate3d(0, 0, 0); transform-origin: center; transition: transform 180ms var(--ease-out); will-change: transform; }
.hero-word { position: absolute; z-index: 3; top: 14px; right: 3.2%; color: rgba(255,255,255,.025); -webkit-text-stroke: 1px rgba(255,255,255,.16); font: 600 clamp(8rem, 18vw, 19rem)/.82 var(--display); letter-spacing: -.04em; white-space: nowrap; pointer-events: none; }
.hero-content { position: relative; z-index: 5; display: flex; align-items: center; padding-block: 72px; }
.hero-copy { position: relative; width: min(610px, 44vw); }
.eyebrow { width: fit-content; margin-bottom: 20px; padding-bottom: 10px; color: rgba(255,255,255,.9); border-bottom: 1px solid rgba(166,196,240,.58); font-size: .75rem; font-weight: 600; letter-spacing: .025em; text-transform: uppercase; }
.hero h1 { max-width: 610px; margin-bottom: 28px; font-size: clamp(3.35rem, 4.8vw, 5.5rem); line-height: .88; letter-spacing: -.035em; text-shadow: 0 3px 28px rgba(3,16,48,.48); }
.hero-title-line { display: block; }
.hero-lead { max-width: 500px; margin-bottom: 30px; color: rgba(255,255,255,.92); font-size: clamp(1rem, 1.3vw, 1.2rem); text-shadow: 0 2px 18px rgba(3,16,48,.58); }
.hero-actions { display: flex; align-items: center; gap: 28px; }
.text-link { display: inline-flex; align-items: center; gap: 13px; padding-block: 10px; font-size: .8rem; font-weight: 700; text-decoration: none; border-bottom: 1px solid transparent; }
.text-link:hover { border-color: currentColor; }
.text-link--light { color: #fff; }
.proof-line { position: relative; width: fit-content; margin: 34px 0 0; padding-top: 15px; font-size: .72rem; font-weight: 600; text-shadow: 0 2px 14px rgba(3,16,48,.7); }
.proof-line::before { content: ""; position: absolute; top: 0; left: 0; width: min(190px, 48%); height: 1px; background: linear-gradient(90deg, var(--electric), rgba(166,196,240,.24)); }

html.motion-ready .hero-picture {
  clip-path: inset(0 0 0 16%);
  opacity: .76;
  transform: translate3d(2.5%, 0, 0);
  transition: clip-path 720ms var(--ease-out), opacity 520ms var(--ease-out), transform 720ms var(--ease-out);
}
html.motion-ready .hero-copy > * {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition: opacity 420ms var(--ease-out), transform 420ms var(--ease-out);
}
html.motion-ready .hero h1 {
  clip-path: inset(0 0 100% 0);
  transform: translate3d(0, 16px, 0);
  transition: clip-path 620ms var(--ease-out), opacity 460ms var(--ease-out), transform 620ms var(--ease-out);
}
html.motion-ready .hero-title-line { opacity: 0; transform: translate3d(0, 22px, 0); transition: opacity 460ms var(--ease-out), transform 620ms var(--ease-out); }
html.motion-ready.motion-entered .hero-picture { clip-path: inset(0); opacity: 1; transform: translate3d(0, 0, 0); }
html.motion-ready.motion-entered .hero-copy > * { opacity: 1; transform: translate3d(0, 0, 0); }
html.motion-ready.motion-entered .hero h1 { clip-path: inset(0); }
html.motion-ready.motion-entered .hero-title-line { opacity: 1; transform: translate3d(0, 0, 0); }
html.motion-ready .hero-title-line:nth-child(1) { transition-delay: 120ms; }
html.motion-ready .hero-title-line:nth-child(2) { transition-delay: 175ms; }
html.motion-ready .hero-title-line:nth-child(3) { transition-delay: 230ms; }
html.motion-ready .hero-copy > :nth-child(1) { transition-delay: 80ms; }
html.motion-ready .hero-copy > :nth-child(2) { transition-delay: 120ms; }
html.motion-ready .hero-copy > :nth-child(3) { transition-delay: 220ms; }
html.motion-ready .hero-copy > :nth-child(4) { transition-delay: 280ms; }
html.motion-ready .hero-copy > :nth-child(5) { transition-delay: 340ms; }

html.motion-ready .motion-reveal {
  clip-path: inset(0 10% 0 0);
  opacity: .9;
  transition: clip-path 420ms var(--ease-out), opacity 320ms var(--ease-out);
}
html.motion-ready .motion-reveal.is-revealed { clip-path: inset(0); opacity: 1; }

.project-fit { position: relative; min-height: 700px; padding: 92px 0 46px; overflow: hidden; background: #f7f8fa; }
.project-fit::before { content: ""; position: absolute; inset: 0; opacity: .36; pointer-events: none; background-image: linear-gradient(rgba(11,49,143,.075) 1px, transparent 1px), linear-gradient(90deg, rgba(11,49,143,.075) 1px, transparent 1px); background-size: 88px 88px; mask-image: linear-gradient(90deg, #000, transparent 58%); }
.fit-grid { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(500px, 1.1fr); gap: clamp(50px, 6vw, 96px); align-items: center; }
.fit-copy { position: relative; z-index: 2; }
.section-kicker { margin-bottom: 16px; color: var(--blue); font-size: .73rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fit-grid h2 { max-width: 650px; margin-bottom: 26px; color: var(--blue); font-size: clamp(4.2rem, 6.1vw, 6.9rem); }
.section-lead { max-width: 620px; margin-bottom: 18px; color: #303a4f; font-size: 1.02rem; }
.fit-support { max-width: 610px; margin-bottom: 0; color: #596275; font-size: .9rem; }
.fit-record { width: min(360px, 100%); margin-top: 36px; padding: 18px 22px 17px; display: grid; grid-template-columns: 1fr auto; gap: 2px 24px; color: #fff; border-left: 4px solid var(--electric); background: var(--deep); box-shadow: 18px 18px 0 rgba(11,49,143,.08); }
.fit-record span { color: #a9c4f2; font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fit-record strong { grid-row: span 2; align-self: center; color: #fff; font: 600 3.2rem/.8 var(--display); }
.fit-record p { margin: 6px 0 0; color: rgba(255,255,255,.72); font-size: .68rem; }
.fit-gallery { position: relative; isolation: isolate; min-height: 530px; display: grid; grid-template-columns: minmax(0, 1.42fr) minmax(190px, .8fr); grid-template-rows: 1fr 1fr; gap: 8px; padding: 8px; background: linear-gradient(145deg, var(--electric) 0 36%, var(--blue) 36% 100%); box-shadow: 22px 22px 0 #dfe5ee, 22px 22px 0 1px rgba(11,49,143,.18); }
.fit-gallery::before { content: ""; position: absolute; z-index: -1; inset: -18px 22% 38% -18px; border-top: 1px solid rgba(22,76,255,.42); border-left: 1px solid rgba(22,76,255,.42); pointer-events: none; }
.fit-frame { position: relative; min-height: 0; margin: 0; overflow: hidden; isolation: isolate; color: #fff; background: var(--deep); }
.fit-frame::after { content: ""; position: absolute; z-index: 2; inset: 0; border: 1px solid rgba(255,255,255,.18); pointer-events: none; transition: border-color 260ms var(--ease-out); }
.fit-frame--main { grid-row: 1 / 3; }
.fit-frame > img { width: 100%; height: 100%; min-height: 0; object-fit: cover; transition: transform 520ms var(--ease-out), filter 320ms var(--ease-out); }
.fit-frame--main > img { object-position: center 54%; }
.fit-frame--equipment > img { object-position: center 43%; }
.fit-frame--components > img { object-position: 58% center; }
.fit-frame figcaption { position: absolute; z-index: 3; inset: auto 0 0; padding: 52px 18px 16px; background: linear-gradient(180deg, transparent, rgba(7,28,86,.94)); }
.fit-frame figcaption span, .fit-frame figcaption strong { display: block; }
.fit-frame figcaption span { margin-bottom: 6px; color: #a9c4f2; font-size: .61rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fit-frame figcaption strong { font-size: .76rem; line-height: 1.35; }
.outcomes { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 54px; border-block: 1px solid #b7c2d1; }
.outcome { min-height: 94px; padding: 20px 28px; display: flex; align-items: center; gap: 17px; color: var(--blue); border-left: 1px solid #aeb9ca; background: rgba(247,248,250,.82); }
.outcome:first-child { border-left: 0; }
.outcome-index { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; aspect-ratio: 1; border: 1px solid var(--blue); border-radius: 50%; transition: background-color var(--duration-ui) ease, transform var(--duration-ui) var(--ease-out); }
.outcome-index img { width: 18px; height: 18px; }
.outcome > span:last-child { display: grid; gap: 4px; }
.outcome strong { font-size: .76rem; text-transform: uppercase; }
.outcome small { color: #596275; font-size: .68rem; font-weight: 500; line-height: 1.45; }

.system-section { position: relative; padding: clamp(76px, 7vw, 112px) 0 clamp(82px, 7vw, 118px); color: #fff; background: var(--deep); overflow: hidden; }
.system-section::before { content: ""; position: absolute; inset: 0; opacity: .2; background-image: linear-gradient(rgba(116,157,223,.34) 1px, transparent 1px), linear-gradient(90deg, rgba(116,157,223,.34) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, #000 0 72%, transparent); }
.system-section::after { content: ""; position: absolute; width: 58vw; aspect-ratio: 1; right: -22vw; top: -30vw; border-radius: 50%; background: radial-gradient(circle, rgba(22,76,255,.2), transparent 68%); pointer-events: none; }
.system-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(300px, .96fr) minmax(360px, 1.08fr) minmax(250px, .82fr); gap: clamp(28px, 3.2vw, 52px); align-items: center; }
.system-copy { position: relative; z-index: 3; }
.system-copy h2 { margin-bottom: 24px; font-size: clamp(3.3rem, 5vw, 5.8rem); letter-spacing: -.025em; }
.system-copy p { color: rgba(255,255,255,.82); }
.system-copy .qualifier { margin-top: 27px; color: #fff; font-size: .76rem; }
.system-visual { position: relative; z-index: 2; margin: 0; }
.system-stage { position: relative; isolation: isolate; padding: 12px 48px 50px 12px; }
.system-stage::before { content: ""; position: absolute; z-index: -1; inset: 0 36px 38px 0; border: 1px solid rgba(127,177,255,.54); background: linear-gradient(145deg, rgba(22,76,255,.22), rgba(7,28,86,.28)); }
.system-stage::after { content: ""; position: absolute; z-index: 3; left: -15px; top: 16%; width: 74px; height: 1px; background: var(--electric); box-shadow: 0 8px 0 rgba(127,177,255,.45); pointer-events: none; }
.image-frame { position: relative; padding: 8px; overflow: hidden; background: var(--aluminium); border: 1px solid #e2e7ee; box-shadow: 0 26px 70px rgba(0,0,0,.34); }
.image-frame::after { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(255,255,255,.3); pointer-events: none; }
.image-frame img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; transition: transform 280ms var(--ease-out); }
.system-detail { position: absolute; z-index: 4; width: 39%; aspect-ratio: 4/5; right: 0; bottom: 0; padding: 5px; overflow: hidden; background: var(--electric); box-shadow: 0 20px 44px rgba(2,12,42,.42); transform: translate3d(0,0,0); transition: transform 280ms var(--ease-out); }
.system-detail img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.system-visual figcaption { max-width: calc(100% - 48px); margin: 10px 0 0 12px; color: rgba(255,255,255,.62); font-size: .65rem; }
.callout-list { margin: 0; padding: 0; list-style: none; }
.callout-list li { position: relative; min-height: 64px; padding: 20px 12px 20px 48px; display: flex; align-items: center; gap: 13px; border-bottom: 1px solid rgba(188,209,238,.3); transition: background-color 220ms var(--ease-out), transform 220ms var(--ease-out); }
.callout-list li::before { content: ""; position: absolute; left: -82px; top: 50%; width: 108px; height: 1px; background: linear-gradient(90deg, var(--electric), #7aa2e6); transform-origin: right center; transition: transform 260ms var(--ease-out); }
.callout-list li::after { content: ""; position: absolute; left: -86px; top: calc(50% - 3px); width: 7px; height: 7px; border: 1px solid #8ab8ff; border-radius: 50%; background: var(--deep); }
.callout-list span { color: #84aeef; font: 600 .72rem var(--display); }
.callout-list strong { font-size: .82rem; }

.applications { position: relative; min-height: 660px; display: flex; color: #fff; background: #06152f; overflow: hidden; }
.applications-background, .applications-wash { position: absolute; inset: 0; width: 100%; height: 100%; }
.applications-background { object-fit: cover; object-position: center; }
.applications-wash { background: rgba(2,15,39,.68); }
.applications-content { position: relative; z-index: 2; padding-block: 72px 35px; }
.applications-intro { width: min(660px, 52%); }
.applications-intro h2 { margin-bottom: 18px; font-size: clamp(4rem, 6.8vw, 7.1rem); }
.applications-intro p { max-width: 570px; color: rgba(255,255,255,.78); }
.application-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 38px; }
.application-item { position: relative; min-height: 390px; display: block; overflow: hidden; color: #fff; border: 1px solid rgba(116,157,223,.7); background: #0b2148; text-decoration: none; cursor: pointer; }
.application-photo { width: 100%; height: 100%; object-fit: cover; }
.application-item::after { content: ""; position: absolute; inset: 36% 0 0; background: linear-gradient(180deg, rgba(4,20,48,0), rgba(4,20,48,.92) 38%, rgba(4,20,48,.98)); }
.application-copy { position: absolute; z-index: 2; inset: auto 18px 18px; }
.application-copy .icon { margin-bottom: 12px; }
.application-copy h3 { margin-bottom: 8px; font-size: 1.6rem; }
.application-copy p { margin: 0; color: rgba(255,255,255,.74); font-size: .71rem; }
.application-cta { min-height: 44px; margin-top: 12px; display: inline-flex; align-items: center; gap: 10px; color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .02em; }
.application-cta img { width: 17px; height: 17px; filter: brightness(0) invert(1); transition: transform .2s ease; }
.application-item:focus-visible { outline: 3px solid #8ab8ff; outline-offset: 4px; }
.disclosure { margin: 20px 0 0; color: rgba(255,255,255,.62); font-size: .64rem; }

@media (hover: hover) and (pointer: fine) {
  .button:hover { transform: translateY(-1px); }
  .button:hover::after { opacity: .82; transform: skewX(-18deg) translate3d(560%, 0, 0); transition: transform 220ms var(--ease-out), opacity 90ms ease; }
  .button:hover:active { transform: scale(.97); }
  .application-item:hover .application-cta img { transform: translate(3px, -3px); }
  .application-photo { filter: grayscale(1); transition: filter 240ms ease, transform 280ms cubic-bezier(.23,1,.32,1); }
  .application-item:hover .application-photo { filter: grayscale(0); transform: scale(1.025); }
  .fit-frame:hover > img { transform: scale(1.032); filter: saturate(1.08) contrast(1.025); }
  .fit-frame:hover::after { border-color: rgba(127,177,255,.82); }
  .system-stage:hover .image-frame img { transform: scale(1.022); }
  .system-stage:hover .system-detail { transform: translate3d(-4px,-4px,0); }
  .callout-list li:hover { background: rgba(22,76,255,.1); transform: translateX(4px); }
  .callout-list li:hover::before { transform: scaleX(1.12); }
  .outcome:hover .outcome-index { background: var(--blue); transform: translateY(-2px); }
  .outcome:hover .outcome-index img { filter: brightness(0) invert(1); }
  .project-reference:hover img { transform: scale(1.025); }
  .project-reference:hover figcaption::before { transform: scaleX(1); }
}

.project-references { position: relative; padding: 88px 0 72px; color: #fff; background: var(--ink); overflow: hidden; }
.project-references::before { content: ""; position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(127,177,255,.22) 1px, transparent 1px), linear-gradient(90deg, rgba(127,177,255,.22) 1px, transparent 1px); background-size: 92px 92px; mask-image: linear-gradient(180deg, #000, transparent 72%); pointer-events: none; }
.project-references-word { position: absolute; top: -28px; right: -1.5%; color: rgba(127,177,255,.07); font: 600 clamp(9rem, 20vw, 22rem)/.78 var(--display); letter-spacing: -.055em; }
.project-references-shell { position: relative; }
.project-references-heading { position: relative; z-index: 2; display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: 48px; margin-bottom: 36px; }
.project-references-heading .eyebrow { grid-column: 1/-1; margin-bottom: -24px; color: #8ab8ff; }
.project-references-heading h2 { max-width: 910px; margin: 0; font-size: clamp(4.1rem, 7.4vw, 8rem); }
.project-references-heading > p:last-child { max-width: 420px; margin: 0 0 8px; color: rgba(255,255,255,.68); }
.project-reference-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 18px; padding-top: 16px; border-top: 1px solid rgba(138,184,255,.32); }
.project-reference-count { display: flex; align-items: baseline; gap: 3px; margin: 0; color: rgba(255,255,255,.45); font: 500 .82rem var(--body); letter-spacing: .08em; }
.project-reference-count [data-project-current] { color: #fff; font: 600 2.25rem/.8 var(--display); letter-spacing: -.02em; }
.project-reference-actions { display: flex; gap: 8px; }
.project-reference-button { display: grid; width: 48px; height: 48px; padding: 0; place-items: center; color: #fff; background: rgba(13,45,121,.72); border: 1px solid rgba(138,184,255,.52); cursor: pointer; transition: background-color var(--duration-ui) var(--ease-out), border-color var(--duration-ui) var(--ease-out), transform var(--duration-press) var(--ease-out); }
.project-reference-button img { width: 20px; filter: brightness(0) invert(1); }
.project-reference-button--previous img { transform: rotate(180deg); }
.project-reference-button:hover, .project-reference-button:focus-visible { background: var(--electric); border-color: #8ab8ff; outline: none; }
.project-reference-button:focus-visible { box-shadow: 0 0 0 3px rgba(138,184,255,.35); }
.project-reference-button:active { transform: scale(.96); }
.project-reference-button:disabled { opacity: .34; cursor: default; }
.project-reference-button:disabled:hover { background: rgba(13,45,121,.72); border-color: rgba(138,184,255,.52); }
.project-reference-button--toggle[aria-pressed="true"] { background: rgba(138,184,255,.18); }
.project-reference-viewport { position: relative; overflow-x: auto; overscroll-behavior-x: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; touch-action: pan-x; }
.project-reference-viewport::-webkit-scrollbar { display: none; }
.project-reference-viewport:focus-visible { outline: 2px solid #8ab8ff; outline-offset: 5px; }
.project-reference-track { display: flex; gap: 14px; width: max-content; padding: 0 1px 8px; }
.project-reference { position: relative; flex: 0 0 clamp(340px, 34vw, 460px); min-width: 0; margin: 0; display: grid; grid-template-rows: auto minmax(112px, auto); overflow: hidden; scroll-snap-align: start; scroll-snap-stop: always; background: #092465; border: 1px solid rgba(138,184,255,.48); }
.project-reference::after { content: none; }
.project-reference img { width: 100%; height: auto; aspect-ratio: 5 / 6; object-fit: cover; object-position: center; transition: transform 280ms var(--ease-out); }
.project-reference figcaption { position: relative; z-index: 2; min-height: 112px; padding: 15px 20px 18px; display: grid; align-content: center; gap: 8px; color: #fff; background: #071c56; border-top: 1px solid rgba(138,184,255,.6); }
.project-reference figcaption::before { content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 2px; background: var(--electric); transform: scaleX(.16); transform-origin: left center; transition: transform 260ms var(--ease-out); }
.project-reference figcaption span { display: flex; align-items: center; gap: 10px; min-width: 0; color: #8ab8ff; }
.project-reference figcaption small { font: 600 .75rem var(--display); letter-spacing: .06em; }
.project-reference figcaption em { overflow: hidden; font: 600 .62rem var(--body); letter-spacing: .13em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.project-reference figcaption strong { max-width: 95%; font: 600 clamp(1.35rem, 2.15vw, 1.85rem)/1 var(--display); text-transform: uppercase; letter-spacing: -.015em; }
.project-references-disclosure { margin: 18px 0 0; color: rgba(255,255,255,.57); font-size: .65rem; }

.delivery { position: relative; padding: 76px 0 68px; overflow: hidden; background: #f2f4f7; }
.delivery-word { position: absolute; left: 5%; top: -18px; color: rgba(10,38,100,.07); font: 600 clamp(9rem, 23vw, 23rem)/.8 var(--display); }
.delivery-content { position: relative; }
.delivery-heading { max-width: 690px; }
.delivery-heading h2 { margin-bottom: 22px; color: var(--blue); font-size: clamp(3.8rem, 6.4vw, 6.8rem); }
.delivery-heading p { max-width: 620px; color: #465064; }
.delivery-path { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin: 60px 0 0; padding: 0; list-style: none; }
.delivery-path::before { content: ""; position: absolute; top: 64px; left: 8%; right: 8%; height: 2px; background: #8a9bb8; }
.delivery-path::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 63px;
  left: 8%;
  width: 17%;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(22,76,255,0), rgba(22,76,255,.48) 34%, #164cff 66%, rgba(104,161,255,0));
  box-shadow: 0 0 12px rgba(22,76,255,.28);
  opacity: .88;
  transform: translate3d(-110%, 0, 0);
  will-change: transform;
  animation: delivery-flow 5.2s linear infinite;
  animation-play-state: paused;
  pointer-events: none;
}
.delivery-path.is-in-view::after { animation-play-state: running; }
.delivery-path li { position: relative; z-index: 1; min-width: 0; padding: 0 6px; text-align: center; }
.delivery-path li:not(:last-child)::after { content: ">"; position: absolute; right: -5px; top: 10px; color: var(--blue); font-size: 1.2rem; }
.delivery-path img { width: 38px; height: 38px; margin: 0 auto 34px; }
.delivery-path h3 { margin-bottom: 9px; color: var(--deep); font-family: var(--body); font-size: .78rem; text-transform: none; line-height: 1.25; }
.delivery-path p { width: min(100%, 176px); margin: 0 auto; color: #667087; font-size: .68rem; line-height: 1.42; text-wrap: balance; }
.delivery-path h3::before { content: ""; position: absolute; top: 58px; left: calc(50% - 7px); width: 12px; height: 12px; border: 2px solid var(--blue); border-radius: 50%; background: #f2f4f7; }

@keyframes delivery-flow {
  0% { transform: translate3d(-110%, 0, 0); opacity: 0; }
  10% { opacity: .88; }
  88% { opacity: .88; }
  100% { transform: translate3d(455%, 0, 0); opacity: 0; }
}

.evidence { position: relative; padding: 68px 0 52px; color: #fff; background: var(--deep); overflow: hidden; }
.evidence-grid { position: relative; display: grid; grid-template-columns: .62fr 1.08fr .7fr; gap: clamp(32px, 4vw, 58px); align-items: center; }
.evidence-kicker { margin: 0 0 16px; color: #8fb4ef; font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.evidence h2 { max-width: 470px; margin: 0; font-size: clamp(3.6rem, 5vw, 5.7rem); }
.evidence-heading > p:last-child { max-width: 390px; margin: 25px 0 0; color: rgba(255,255,255,.72); font-size: .78rem; }
.evidence table { width: 100%; border-collapse: collapse; font-size: .78rem; }
.evidence th, .evidence td { padding: 24px 10px; border-bottom: 1px solid rgba(210,221,239,.45); vertical-align: middle; text-align: left; }
.evidence th { width: 44%; color: #fff; font-weight: 500; }
.evidence th strong, .evidence th span, .evidence td span { display: block; }
.evidence th strong { margin-bottom: 7px; color: #fff; font: 700 2rem/1 var(--display); letter-spacing: .02em; }
.evidence th span { color: #9cb8e3; font-size: .68rem; }
.evidence td { color: #fff; }
.certificate-number { font-weight: 700; }
.certificate-date { margin-top: 7px; color: rgba(255,255,255,.66); font-size: .68rem; }
.evidence-certificates { position: relative; min-height: 520px; width: calc(100% + 55px); margin: 0; justify-self: end; }
.evidence-certificates::before { content: ""; position: absolute; z-index: 5; inset: -8px auto -8px -2px; width: 52%; background: linear-gradient(90deg, var(--deep) 0%, rgba(7,28,86,.84) 24%, rgba(7,28,86,0) 100%); pointer-events: none; }
.certificate-sheet { position: absolute; width: min(76%, 290px); height: auto; border: 1px solid rgba(255,255,255,.5); box-shadow: 0 24px 55px rgba(0,0,0,.34); background: #f6f1df; }
.certificate-sheet--quality { z-index: 4; top: 46px; right: 0; transform: rotate(1deg); }
.certificate-sheet--environment { z-index: 3; top: 10px; right: 18%; transform: rotate(-3deg); opacity: .9; }

.manufacturing { background: #f5f5f3; }
.manufacturing-grid { min-height: 450px; display: grid; grid-template-columns: .58fr .7fr .72fr; align-items: center; gap: 44px; }
.manufacturing-image { align-self: stretch; margin: 0; transform: translateX(calc((100vw - min(100vw - (var(--gutter) * 2), var(--container))) / -2)); width: calc(100% + max(var(--gutter), (100vw - var(--container))/2)); overflow: hidden; }
.manufacturing-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.manufacturing-copy h2 { margin-bottom: 23px; color: var(--blue); font-size: clamp(3.2rem, 5.1vw, 5.4rem); }
.manufacturing-copy p { color: #4d5669; font-size: .8rem; }
.manufacturing-points { margin: 0; padding: 0; list-style: none; }
.manufacturing-points li { position: relative; padding: 18px 14px 18px 46px; color: var(--deep); border-bottom: 1px solid #9babc2; background-color: transparent; font-size: .8rem; font-weight: 700; transition: color 200ms ease, border-color 200ms ease, background-color 200ms ease; }
.manufacturing-points li::before { content: ""; position: absolute; left: 0; top: calc(50% - 7px); width: 10px; height: 10px; border: 2px solid var(--electric); border-radius: 50%; background: transparent; transform: scale(1); transform-origin: center; transition: transform 240ms cubic-bezier(.23,1,.32,1), background-color 180ms ease, border-color 180ms ease, box-shadow 240ms ease; }

@media (hover: hover) and (pointer: fine) {
  .manufacturing-points li:hover { color: var(--electric); border-color: rgba(22,76,255,.5); background-color: rgba(22,76,255,.035); }
  .manufacturing-points li:hover::before { border-color: var(--electric); background-color: var(--electric); transform: scale(.64); box-shadow: 0 0 0 6px rgba(22,76,255,.1); }
}

.project-brief { position: relative; padding: 62px 0 52px; color: #fff; background: var(--electric); overflow: hidden; }
.project-brief::before { content: ""; position: absolute; left: -80px; bottom: -130px; width: 310px; height: 310px; border: 28px solid rgba(190,200,214,.9); transform: rotate(9deg); }
.brief-grid { position: relative; display: grid; grid-template-columns: .62fr 1.38fr; gap: 60px; }
.brief-copy h2 { margin-bottom: 24px; font-size: clamp(4rem, 6.4vw, 6.8rem); }
.brief-copy p { max-width: 380px; color: rgba(255,255,255,.84); }
.brief-form { min-width: 0; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; }
.field { min-width: 0; }
.field label { display: block; margin-bottom: 6px; font-size: .68rem; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; min-height: 45px; padding: 10px 12px; color: var(--ink); background: #fff; border: 2px solid transparent; border-radius: 0; transition: border-color 150ms var(--ease-out), background-color 150ms var(--ease-out); }
.field textarea { min-height: 92px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #b8d1ff; }
.field [aria-invalid="true"] { border-color: #821925; background: #fff7f7; }
.field-error { min-height: 17px; margin: 4px 0 0; color: #fff1a8; font-size: .66rem; font-weight: 600; }
.form-error-summary { margin-bottom: 20px; padding: 14px 18px; color: #55111a; background: #fff4d7; border-left: 5px solid #8e1a28; }
.form-error-summary h3 { margin-bottom: 8px; font-family: var(--body); font-size: .83rem; line-height: 1.3; text-transform: none; }
.form-error-summary ul { margin: 0; padding-left: 20px; font-size: .72rem; }
.form-error-summary a { color: #55111a; }
.form-footer { margin-top: 18px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.privacy-helper { max-width: 460px; margin: 0; color: rgba(255,255,255,.75); font-size: .63rem; }
.button--submit { min-width: 210px; color: var(--blue); background: #fff; }
.button--submit:hover { color: #fff; background: var(--deep); }
.honeypot { position: absolute; left: -9999px; }

.site-footer { padding: 34px 0; color: #fff; background: var(--ink); }
.footer-grid { display: grid; grid-template-columns: .8fr 1.4fr .5fr; align-items: center; gap: 30px; }
.footer-brand { display: flex; align-items: center; gap: 16px; }
.footer-logo-panel { width: 112px; padding: 0; background: transparent; }
.footer-logo-panel img { filter: brightness(0) invert(1); }
.footer-brand p, .locale { margin: 0; color: rgba(255,255,255,.65); font-size: .64rem; }
.footer-brand p { white-space: nowrap; }
.site-footer nav { display: flex; justify-content: center; gap: 28px; }
.site-footer nav a { color: rgba(255,255,255,.82); }
.locale { text-align: right; }

.thanks-page { min-height: 100vh; color: #fff; background: var(--deep); }
.thanks-shell { position: relative; width: min(calc(100% - 40px), 900px); min-height: 100vh; margin: auto; padding: 48px 0; display: grid; align-content: center; }
.thanks-brand { position: absolute; top: 34px; left: 0; display: block; padding: 10px; background: #fff; }
.thanks-card { padding: clamp(34px, 8vw, 82px); border: 1px solid rgba(190,200,214,.58); background: rgba(9,17,38,.38); }
.thanks-card h1 { max-width: 680px; margin-bottom: 24px; font-size: clamp(4rem, 10vw, 7rem); }
.thanks-card p:not(.eyebrow) { max-width: 600px; margin-bottom: 28px; color: rgba(255,255,255,.8); }

@media (max-width: 1050px) {
  .desktop-nav { display: none; }
  .nav-shell { grid-template-columns: 1fr auto; }
  .nav-actions { display: flex; }
  .menu-toggle { display: grid; }
  .hero { min-height: 690px; }
  .hero-copy { width: 54%; }
  .fit-grid { grid-template-columns: .85fr 1.15fr; gap: 38px; }
  .fit-gallery { min-height: 470px; }
  .system-grid { grid-template-columns: minmax(260px, .82fr) minmax(360px, 1.18fr); gap: 38px; }
  .callout-list { grid-column: 1/-1; display: grid; grid-template-columns: repeat(4, 1fr); }
  .callout-list li { padding-left: 12px; }
  .callout-list li::before, .callout-list li::after { display: none; }
  .application-gallery { grid-template-columns: repeat(2, 1fr); }
  .project-references-heading { grid-template-columns: 1fr; gap: 18px; }
  .project-references-heading .eyebrow { margin-bottom: -6px; }
  .project-references-heading > p:last-child { max-width: 660px; }
  .delivery-path { grid-template-columns: repeat(3, 1fr); row-gap: 45px; }
  .delivery-path::before, .delivery-path::after, .delivery-path li::after, .delivery-path h3::before { display: none; }
  .delivery-path img { margin-bottom: 13px; }
  .manufacturing-grid { grid-template-columns: .8fr 1.2fr; padding-block: 48px; }
  .manufacturing-image { grid-row: span 2; transform: none; width: 100%; }
  .manufacturing-points { grid-column: 2; }
  .footer-grid { grid-template-columns: 1fr; text-align: center; }
  .footer-brand { justify-content: center; }
  .site-footer nav { flex-wrap: wrap; }
  .locale { text-align: center; }
  .evidence-grid { grid-template-columns: .72fr 1.28fr; }
  .evidence-certificates { grid-column: 1/-1; min-height: 430px; width: min(780px, 100%); margin-top: -20px; }
  .certificate-sheet { width: min(42%, 275px); }
  .certificate-sheet--quality { right: 4%; }
  .certificate-sheet--environment { right: 31%; }
  .evidence-certificates::before { width: 30%; }
}

@media (max-width: 900px) {
  .hero { min-height: 1040px; align-items: flex-end; background: #071c56; }
  .hero::before { inset: 0; background: linear-gradient(180deg, rgba(3,16,48,.04) 0%, rgba(3,16,48,.1) 34%, rgba(3,16,48,.68) 57%, rgba(3,16,48,.94) 100%); }
  .hero-picture { inset: 0; width: 100%; height: 100%; }
  .hero-picture img { object-position: 58% center; transform: none!important; transition: none; will-change: auto; }
  .hero-word { top: 22px; left: -2%; font-size: clamp(8rem, 22vw, 11rem); }
  .hero-content { align-items: flex-end; padding-block: 500px 60px; }
  .hero-copy { width: min(650px, 100%); }
  .hero h1 { max-width: 650px; font-size: clamp(4.2rem, 10vw, 5.4rem); }
}

@media (max-width: 767px) {
  :root { --header: 66px; --gutter: 20px; }
  body { font-size: 15px; }
  h2 { font-size: clamp(3rem, 15vw, 4.8rem); }
  .brand { width: 106px; }
  .hero { min-height: 980px; align-items: flex-end; background: #071c56; }
  .hero::before { inset: 0; background: linear-gradient(180deg, rgba(3,16,48,.02) 0%, rgba(3,16,48,.08) 28%, rgba(3,16,48,.7) 50%, rgba(3,16,48,.96) 100%); }
  .hero-picture { inset: 0; width: 100%; height: 100%; }
  .hero-picture img { object-position: 58% center; transform: none!important; transition: none; will-change: auto; }
  .hero-word { display: none; }
  .hero-content { align-items: flex-end; padding-block: 350px 44px; }
  .hero-copy { width: 100%; }
  .hero h1 { max-width: 520px; font-size: clamp(4rem, 18vw, 5.8rem); }
  .hero-title-line { display: inline; }
  .hero-lead { max-width: 500px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 7px; }
  .button--bright { width: 100%; }
  .proof-line { margin-top: 22px; }
  html.motion-ready .hero-picture { transition-duration: 520ms, 360ms, 520ms; }
  html.motion-ready .hero h1 { transition-duration: 520ms, 360ms, 520ms; }
  .project-fit { min-height: 760px; padding: 58px 0 30px; }
  .project-fit::before { background-size: 62px 62px; }
  .fit-grid { grid-template-columns: 1fr; gap: 38px; }
  .fit-grid h2 { font-size: clamp(3.7rem, 16vw, 5rem); }
  .fit-record { margin-top: 28px; }
  .fit-gallery { min-height: 496px; grid-template-columns: 1fr 1fr; grid-template-rows: 300px 188px; gap: 6px; padding: 6px; box-shadow: 12px 12px 0 #dfe5ee, 12px 12px 0 1px rgba(11,49,143,.18); }
  .fit-gallery::before { inset: -12px 28% 54% -12px; }
  .fit-frame--main { grid-column: 1 / -1; grid-row: 1; }
  .fit-frame--equipment { grid-column: 1; grid-row: 2; }
  .fit-frame--components { grid-column: 2; grid-row: 2; }
  .fit-frame figcaption { padding: 38px 12px 12px; }
  .fit-frame figcaption strong { font-size: .68rem; }
  .fit-frame figcaption span { font-size: .56rem; }
  .outcomes { grid-template-columns: 1fr; margin-top: 40px; }
  .outcome { min-height: 76px; border-left: 0; border-top: 1px solid #bac4d3; padding-inline: 0; }
  .outcome:first-child { border-top: 0; }
  .system-section { padding-block: 54px; }
  .system-grid { grid-template-columns: 1fr; gap: 32px; }
  .system-copy h2 { font-size: clamp(3.4rem, 15vw, 5rem); }
  .system-visual { width: min(92%, 520px); justify-self: center; }
  .system-stage { padding: 8px 34px 38px 8px; }
  .system-stage::before { inset: 0 26px 28px 0; }
  .system-stage::after { left: -10px; width: 52px; }
  .system-detail { width: 36%; padding: 4px; }
  .system-visual figcaption { max-width: calc(100% - 34px); margin-left: 8px; }
  .callout-list { grid-template-columns: 1fr 1fr; }
  .applications-content { padding-block: 55px 30px; }
  .applications-intro { width: 100%; }
  .applications-intro h2 { font-size: clamp(4rem, 17vw, 5.6rem); }
  .application-gallery { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; }
  .application-item { min-width: 78vw; scroll-snap-align: start; }
  .application-photo, .application-item:hover .application-photo { filter: none; transform: none; transition: none; }
  .project-references { padding-block: 58px 50px; }
  .project-references::before { background-size: 64px 64px; }
  .project-references-word { top: -12px; font-size: 9rem; }
  .project-references-heading { margin-bottom: 30px; }
  .project-references-heading h2 { font-size: clamp(3.9rem, 16vw, 5.5rem); }
  .project-reference-toolbar { padding-top: 12px; }
  .project-reference-button { width: 44px; height: 44px; }
  .project-reference { flex-basis: min(80vw, 360px); grid-template-rows: auto minmax(104px, auto); }
  .project-reference figcaption { min-height: 104px; padding: 13px 15px 15px; }
  .project-reference figcaption strong { max-width: 100%; font-size: clamp(1.15rem, 5.4vw, 1.45rem); }
  .project-references-disclosure { line-height: 1.5; }
  .delivery { padding-block: 58px 50px; }
  .delivery-heading h2 { font-size: clamp(3.7rem, 16vw, 5.2rem); }
  .delivery-path { grid-template-columns: repeat(2, 1fr); gap: 35px 8px; margin-top: 42px; }
  .delivery-path p { font-size: .62rem; }
  .evidence { padding-block: 55px 40px; }
  .evidence-grid { grid-template-columns: 1fr; gap: 30px; }
  .evidence h2 { font-size: clamp(3.8rem, 16vw, 5.2rem); }
  .evidence-heading > p:last-child { margin-top: 20px; }
  .evidence-certificates { min-height: 380px; width: calc(100% + 40px); margin: -5px 0 0 -20px; }
  .certificate-sheet { width: min(58%, 230px); }
  .certificate-sheet--quality { top: 32px; right: 5%; }
  .certificate-sheet--environment { top: 12px; right: 26%; }
  .evidence-certificates::before { width: 42%; }
  .evidence-table-wrap { overflow: visible; }
  .evidence table, .evidence tbody, .evidence tr, .evidence th, .evidence td { display: block; width: 100%; }
  .evidence tr { padding: 14px 0; border-bottom: 1px solid rgba(210,221,239,.45); }
  .evidence th, .evidence td { padding: 0; border: 0; }
  .evidence th { margin-bottom: 11px; color: #8fb4ef; }
  .manufacturing-grid { grid-template-columns: 1fr; gap: 30px; padding-block: 0 48px; }
  .manufacturing-image { grid-row: auto; width: calc(100% + 40px); transform: translateX(-20px); height: 350px; }
  .manufacturing-copy { padding-top: 4px; }
  .manufacturing-copy h2 { font-size: clamp(3.4rem, 15vw, 4.9rem); }
  .manufacturing-points { grid-column: auto; }
  .project-brief { padding-block: 55px 48px; }
  .project-brief::before { opacity: .45; }
  .brief-grid { grid-template-columns: 1fr; gap: 35px; }
  .brief-copy h2 { font-size: clamp(4rem, 18vw, 5.6rem); }
  .form-grid { grid-template-columns: 1fr; gap: 12px; }
  .form-footer { align-items: stretch; flex-direction: column; }
  .button--submit { width: 100%; }
  .footer-grid { grid-template-columns: 1fr; text-align: center; }
  .footer-brand { justify-content: center; }
  .site-footer nav { flex-wrap: wrap; gap: 18px 25px; }
  .locale { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; }
  html.motion-ready .hero-picture,
  html.motion-ready .hero-copy > *,
  html.motion-ready .hero h1 { clip-path: none!important; opacity: 1!important; transform: none!important; transition-delay: 0ms!important; }
  html.motion-ready .hero-title-line { opacity: 1!important; transform: none!important; transition-delay: 0ms!important; }
  .hero-picture img { transform: none!important; transition: none!important; }
  html.motion-ready .motion-reveal { clip-path: none!important; opacity: 1!important; transition-delay: 0ms!important; }
  .button::after { display: none; }
  .delivery-path::after { display: none; }
}
