:root{
  --cloud:#F3F6F7;      /* page background: high-cloud white */
  --ocean:#0B2A3C;      /* primary ink: deep ocean */
  --haze:#4A5D68;       /* secondary text */
  --ir-red:#C2243F;     /* false-color infrared: vegetation shows red */
  --sar:#1D6E73;        /* SAR teal, secondary accent */
  --grid:#C9D3D6;       /* graticule lines, borders (not for text) */
  --swath:rgba(194,36,63,.14);
  --white:#FFFFFF;
  --head:"Archivo","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --body:"IBM Plex Sans","Segoe UI","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cloud);color:var(--ocean);font-family:var(--body);font-size:17px;line-height:1.6}
a{color:inherit}
:focus-visible{outline:3px solid var(--ir-red);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:var(--head);font-stretch:112%;line-height:1.05;letter-spacing:-.01em}
p{max-width:64ch}

/* nav */
header{border-bottom:1px solid var(--grid);position:sticky;top:0;z-index:10;background:var(--cloud)}
nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
.logo{font-family:var(--head);font-stretch:125%;font-weight:800;font-size:22px;text-decoration:none;display:flex;align-items:center;gap:10px}
.logo{gap:12px}
.logo svg{width:40px;height:40px;flex:none}
.wm{display:flex;flex-direction:column;line-height:1}
.wm-name{font-family:var(--head);font-stretch:125%;font-weight:800;font-size:23px;letter-spacing:-.015em}
.wm-sub{font-family:var(--body);font-weight:500;font-size:12px;color:var(--haze);margin-top:5px;letter-spacing:.01em}
@media (max-width:520px){.wm-sub{display:block}.logo svg{width:34px;height:34px}}
nav ul{display:flex;gap:28px;list-style:none;font-size:15px}
nav ul a{text-decoration:none}
nav ul a:hover{color:var(--ir-red)}
.btn{display:inline-block;background:var(--ocean);color:var(--white);text-decoration:none;font-weight:600;font-size:15px;padding:12px 20px;border-radius:3px;border:0;cursor:pointer;font-family:var(--body)}
.btn:hover{background:var(--ir-red)}
.btn.ghost{background:transparent;color:var(--ocean);box-shadow:inset 0 0 0 1.5px var(--ocean)}
.btn.ghost:hover{background:var(--ocean);color:var(--white)}

/* hero */
.hero{padding:64px 0 0}
.hero h1{font-size:clamp(40px,6.4vw,84px);font-weight:800;max-width:15ch}
.hero .lead{font-size:20px;color:var(--haze);margin:24px 0 32px;max-width:56ch}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap}
.track{margin-top:56px;border-top:1px solid var(--grid);border-bottom:1px solid var(--grid);background:var(--white)}
.track svg{display:block;width:100%;height:auto}
.track-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--haze);padding:12px 0}
.sources{padding:22px 0;border-bottom:1px solid var(--grid)}
.sources .wrap{display:flex;flex-wrap:wrap;gap:10px 34px;align-items:baseline}
.sources b{font-size:14px;color:var(--haze);font-weight:500}
.sources span{font-family:var(--head);font-stretch:118%;font-weight:700;font-size:18px}

/* constellations */
.fleet{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ocean)}
.fleet>div{padding:24px 24px 28px 0;border-right:1px solid var(--grid)}
.fleet>div:not(:first-child){padding-left:24px}
.fleet>div:last-child{border-right:0}
.fleet h3{font-size:22px;margin-bottom:4px}
.fleet .kind{color:var(--sar);font-weight:600;font-size:14px;margin-bottom:16px}
.fleet ul{list-style:none}
.fleet li{padding:12px 0;border-top:1px solid var(--grid)}
.fleet li strong{display:block;font-size:16px}
.fleet li span{font-size:14.5px;color:var(--haze)}
.fleet .use{margin-top:14px;font-size:14.5px}

/* contact person */
.buy{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--ocean)}
.buy>div{padding:22px 22px 0 0}
.buy h3{font-size:20px;margin-bottom:6px}
.buy p{font-size:15px;color:var(--haze)}
@media (max-width:900px){.buy{grid-template-columns:1fr 1fr;row-gap:20px}}
.person{margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.45)}
.person .nm{font-family:var(--head);font-stretch:112%;font-size:26px;font-weight:750}
.person .rl{color:#FFE9EC;font-size:15px}
.person a.mail{display:inline-block;margin-top:12px;font-weight:600;font-size:17px;color:var(--white);text-underline-offset:4px;word-break:break-all}
.person a.mail:hover{text-decoration-thickness:2px}

/* sections */
section{padding:96px 0}
.sec-head{display:grid;grid-template-columns:5fr 7fr;gap:48px;margin-bottom:48px;align-items:end}
.sec-head h2{font-size:clamp(32px,4vw,52px);font-weight:750}
.sec-head p{color:var(--haze)}

/* data layers as a spectrum table */
.layers{border-top:2px solid var(--ocean)}
.layer{display:grid;grid-template-columns:200px 1fr 1.2fr 150px;gap:28px;padding:26px 0;border-bottom:1px solid var(--grid);align-items:start}
.layer h3{font-size:24px;font-weight:700}
.band{height:10px;margin-top:10px;border-radius:2px}
.layer .spec{font-size:15px;color:var(--haze)}
.layer .spec strong{color:var(--ocean);font-weight:600}
.layer .fmt{font-size:14px;color:var(--haze)}

/* industries */
#solutions{background:var(--ocean);color:var(--cloud)}
#solutions .sec-head p{color:#B8C7CE}
.ind{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #2E4D5E}
.ind article{padding:32px 28px 36px 0;border-bottom:1px solid #2E4D5E}
.ind article:not(:nth-child(3n)){border-right:1px solid #2E4D5E}
.ind article:not(:nth-child(3n+1)){padding-left:28px}
.ind h3{font-size:22px;font-weight:700;margin-bottom:10px}
.ind p{font-size:15.5px;color:#B8C7CE}
.ind .mix{margin-top:14px;font-size:14px;color:#F2A3B1}

/* platform */
.platform{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.platform ul{list-style:none;margin-top:8px}
.platform li{padding:16px 0;border-bottom:1px solid var(--grid)}
.platform li strong{display:block;font-family:var(--head);font-stretch:110%;font-size:19px}
.platform li span{color:var(--haze);font-size:15.5px}
pre{background:var(--ocean);color:#DCE6EA;border-radius:4px;padding:26px;font-size:13.5px;line-height:1.7;overflow-x:auto;font-family:"IBM Plex Mono",Consolas,"Courier New",monospace}
pre .k{color:#F2A3B1}
pre .c{color:#8FA7B2}

/* steps */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s}
.steps li{counter-increment:s;padding:0 24px 0 0;border-top:2px solid var(--ocean);padding-top:20px}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--head);font-stretch:125%;font-weight:800;font-size:36px;color:var(--ir-red);display:block;margin-bottom:10px}
.steps h3{font-size:20px;margin-bottom:8px}
.steps p{font-size:15.5px;color:var(--haze)}

/* markets */
#markets{background:var(--white);border-top:1px solid var(--grid);border-bottom:1px solid var(--grid)}
.markets{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.markets h3{font-size:22px;margin-bottom:6px}
.markets .when{color:var(--sar);font-weight:600;font-size:15px;margin-bottom:10px}
.markets p{font-size:15.5px;color:var(--haze)}

/* compliance */
.comp{display:grid;grid-template-columns:5fr 7fr;gap:48px}
.comp h2{font-size:clamp(30px,3.6vw,46px)}
.comp dl{display:grid;grid-template-columns:1fr;gap:0}
.comp dt{font-weight:600;padding-top:18px}
.comp dd{color:var(--haze);padding-bottom:18px;border-bottom:1px solid var(--grid);font-size:15.5px}

/* contact */
#contact{background:var(--ir-red);color:var(--white)}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.contact h2{font-size:clamp(34px,4.4vw,58px);font-weight:800}
.contact p{margin-top:18px;color:#FFE9EC}
form{display:grid;gap:14px}
label{font-size:14px;font-weight:600;display:grid;gap:6px}
input,select,textarea{font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--white);border-radius:3px;background:var(--white);color:var(--ocean)}
textarea{min-height:110px;resize:vertical}
#contact .btn{background:var(--ocean);justify-self:start}
#contact .btn:hover{background:var(--white);color:var(--ocean)}
#contact :focus-visible{outline-color:var(--white)}
.sent{font-weight:600}

footer{padding:40px 0;font-size:14px;color:var(--haze)}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px}


/* hero image */
.hero-img{position:relative;color:var(--white);background:var(--ocean) center/cover no-repeat;background-image:linear-gradient(90deg,rgba(11,42,60,.94) 0%,rgba(11,42,60,.78) 45%,rgba(11,42,60,.15) 100%),url(../img/hero-satellite.webp)}
.hero-img .hero{padding:110px 28px 56px}
.hero-img .hero .lead{color:#D5E0E5}
.hero-img .btn{background:var(--ir-red)}
.hero-img .btn:hover{background:var(--white);color:var(--ocean)}
.hero-img .btn.ghost{background:transparent;color:var(--white);box-shadow:inset 0 0 0 1.5px var(--white)}
.hero-img .btn.ghost:hover{background:var(--white);color:var(--ocean)}
.hero-img :focus-visible{outline-color:var(--white)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:64px;border-top:1px solid rgba(255,255,255,.3)}
.facts div{padding:18px 20px 0 0}
.facts strong{display:block;font-family:var(--head);font-stretch:118%;font-size:40px;font-weight:800;line-height:1.1}
.facts span{font-size:14.5px;color:#D5E0E5}
/* gallery */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:3px}
.gallery figcaption{padding-top:12px;font-size:15px;color:var(--haze)}
.gallery figcaption strong{color:var(--ocean);font-size:17px;display:block;font-family:var(--head);font-stretch:110%}
/* mission table */
.tbl-wrap{overflow-x:auto;margin-top:48px}
table{width:100%;border-collapse:collapse;font-size:15px;min-width:720px}
caption{text-align:left;font-family:var(--head);font-stretch:112%;font-weight:700;font-size:22px;padding-bottom:14px}
th{text-align:left;font-weight:600;border-bottom:2px solid var(--ocean);padding:10px 14px 10px 0}
td{border-bottom:1px solid var(--grid);padding:12px 14px 12px 0;color:var(--haze);vertical-align:top}
td:first-child{color:var(--ocean);font-weight:600}
/* faq */
.faq{border-top:2px solid var(--ocean);max-width:880px}
.faq details{border-bottom:1px solid var(--grid)}
.faq summary{cursor:pointer;padding:20px 0;font-weight:600;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::after{content:"+";font-size:24px;line-height:1;color:var(--ir-red)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding:0 0 22px;color:var(--haze)}
@media (max-width:900px){.facts{grid-template-columns:1fr 1fr;row-gap:20px}.gallery{grid-template-columns:1fr}.hero-img .hero{padding:72px 28px 44px}}

@media (max-width:900px){
  nav ul{display:none}
  .sec-head,.platform,.comp,.contact{grid-template-columns:1fr;gap:24px}
  .layer{grid-template-columns:1fr;gap:8px}
  .ind{grid-template-columns:1fr}
  .fleet{grid-template-columns:1fr}.fleet>div{border-right:0!important;padding:22px 0!important}
  .ind article{border-right:0!important;padding:26px 0!important}
  .steps{grid-template-columns:1fr 1fr;row-gap:36px}
  .markets{grid-template-columns:1fr}
  section{padding:64px 0}
}
@media (max-width:520px){
  .steps{grid-template-columns:1fr}
  .hero .lead{font-size:18px}
  nav .btn{padding:10px 14px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
