
:root{
  --salt:#E5EAEC;
  --salt-2:#D7DEE1;
  --shoal:#93A8B0;
  --column:#17465C;
  --ink:#051C28;
  --amber:#27C2A8;
  --sea-deep:#0A6E62;
  --brand-amber:#F2A413;
  --text-dark:#122A33;
  --rail:92px;
  --pad:clamp(20px,5vw,64px);
  --maxw:1160px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--salt);color:var(--text-dark);
  font-family:"Newsreader",Georgia,serif;font-size:17px;line-height:1.62;
  font-variant-numeric:tabular-nums;
}
h1,h2,h3,h4,nav,button,.ui,th,td,figcaption,label{font-family:"Archivo",system-ui,sans-serif}
h1,h2,h3,h4{margin:0;font-weight:700;font-stretch:112%;letter-spacing:-.018em;line-height:1.02}
p{margin:0 0 1em}
a{color:inherit}
img,svg{max-width:100%}
::selection{background:var(--amber);color:var(--ink)}

/* ---------- shell ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}

/* ---------- zones ---------- */
.zone{position:relative}
.z-surface{background:var(--salt);color:var(--text-dark)}
.z-mid{background:var(--column);color:#D3E2E6}
.z-deep{background:var(--ink);color:#BFD4DA}
.z-mid h1,.z-mid h2,.z-mid h3,.z-deep h1,.z-deep h2,.z-deep h3{color:#EDF4F5}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;background:var(--salt);
  border-bottom:1px solid rgba(19,36,39,.14);}
.nav-in{max-width:var(--maxw);margin:0 auto;padding:12px var(--pad);
  display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;margin-right:auto}
.brand svg{width:40px;height:40px;display:block;flex:none}
.brand span{font-size:16px;font-weight:700;font-stretch:118%;letter-spacing:.17em}
.nav a.lnk{font-family:"Archivo",sans-serif;font-size:13.5px;font-weight:500;
  text-decoration:none;opacity:.72;padding:6px 0}
.nav a.lnk:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.nav-links{display:none;gap:22px;align-items:center}
@media(min-width:760px){.nav-links{display:flex}}
@media(max-width:400px){
  .nav-in{gap:10px}
  .brand svg{width:33px;height:33px}
  .brand span{font-size:13px;letter-spacing:.11em}
  .btn{padding:8px 12px;font-size:12.5px}
}
.btn{
  font-family:"Archivo",sans-serif;font-size:13.5px;font-weight:600;font-stretch:104%;
  background:var(--amber);color:#04231E;border:0;border-radius:2px;
  padding:9px 16px;text-decoration:none;display:inline-block;white-space:nowrap;
  transition:background .15s ease}
.btn:hover{background:#3FD9BE}
.btn-ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px currentColor;
  opacity:.85}
.btn-ghost:hover{background:transparent;opacity:1}
a:focus-visible,button:focus-visible{outline:2px solid var(--amber);outline-offset:3px}

/* ---------- hero ---------- */
.hero{padding-top:clamp(52px,9vw,104px);padding-bottom:clamp(48px,7vw,84px);
  display:grid;grid-template-columns:1fr;gap:clamp(38px,5vw,60px)}
@media(min-width:980px){.hero{grid-template-columns:minmax(0,1.4fr) minmax(230px,.6fr);
  align-items:end;gap:0 clamp(40px,6vw,88px)}}
.hero h1{font-size:clamp(1.12rem,4.4vw,1.82rem);font-stretch:104%;max-width:38ch;
  line-height:1.28;letter-spacing:-.008em;margin-top:.75em;font-weight:600}
.hero .lede{font-size:clamp(1.06rem,1.9vw,1.34rem);line-height:1.55;max-width:46ch;
  margin-top:1.1em;color:#2A4752}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:2.1em}
.hero-mail{font-family:"Archivo",sans-serif;font-size:14px;text-decoration:none;
  border-bottom:1px solid var(--shoal);padding-bottom:2px}
.hero-mail:hover{border-color:var(--text-dark)}
.hero-note{font-family:"Archivo",sans-serif;font-size:12.5px;opacity:.62;margin-top:2.4em;
  max-width:52ch;line-height:1.5}

/* the four pillars */
.pillars{list-style:none;margin:0;padding:0;display:grid;gap:0 clamp(16px,2.4vw,30px);
  grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:820px){.pillars{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pillars li{border-top:2px solid var(--sea-deep);padding:11px 0 14px;
  font-family:"Archivo",sans-serif;font-size:clamp(.72rem,1.05vw,.83rem);font-weight:700;
  font-stretch:92%;letter-spacing:.035em;line-height:1.3;color:#1E3A45}

/* mission band */
.mission{border-top:1px solid rgba(19,36,39,.16);border-bottom:1px solid rgba(19,36,39,.16)}
.mission p{margin:0;padding:clamp(30px,4.5vw,46px) 0;
  font-size:clamp(1.02rem,1.75vw,1.28rem);line-height:1.5;max-width:60ch;color:#1F3C47}
.mission p::first-letter{font-size:1em}

/* hero side panel */
.snapshot{border-top:2px solid var(--amber);padding-top:16px}
.snapshot h2{font-size:.98rem;font-stretch:104%;margin-bottom:14px}
.snapshot dl{margin:0}
.snapshot dt{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  font-family:"Archivo",sans-serif;font-size:13px;font-weight:700;font-stretch:96%;
  padding-top:13px;border-top:1px solid rgba(19,36,39,.16)}
.snapshot dt:first-of-type{border-top:0;padding-top:0}
.snapshot dt b{color:var(--sea-deep);font-weight:700;white-space:nowrap}
.snapshot dd{margin:2px 0 13px;font-size:.9rem;line-height:1.45;opacity:.72}
.snapshot dd:last-child{margin-bottom:0}

/* ---------- section frame ---------- */
.sec{padding:clamp(56px,8vw,104px) 0}
.sec.tight{padding-top:0}
.sec-head{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}
.sec-head h2{font-size:clamp(1.75rem,3.5vw,2.85rem);max-width:26ch}
.sec-depth{font-family:"Archivo",sans-serif;font-size:12px;font-weight:700;font-stretch:88%;
  color:var(--sea-deep);letter-spacing:.04em;padding-top:.4em}
.sec-intro{max-width:60ch;margin-bottom:clamp(28px,4vw,44px);opacity:.9}

/* ---------- services ---------- */
.svc{border-top:1px solid rgba(19,36,39,.18)}
.svc-row{display:grid;grid-template-columns:1fr;gap:6px 30px;
  padding:26px 0;border-bottom:1px solid rgba(19,36,39,.18)}
@media(min-width:800px){
  .svc-row{grid-template-columns:minmax(0,7.2rem) minmax(0,15rem) minmax(0,1fr);
    align-items:start;gap:0 34px;padding:30px 0}
}
.svc-depth{font-family:"Archivo",sans-serif;font-size:12.5px;font-weight:700;font-stretch:88%;
  color:#2E6177;padding-top:.35em}
.svc-row h3{font-size:1.22rem;font-stretch:106%}
.svc-row p{margin:0;max-width:56ch;font-size:.98rem;line-height:1.6;opacity:.86}
@media(max-width:799px){.svc-row p{margin-top:6px}}

/* ---------- depth chart ---------- */
.chart{display:grid;grid-template-columns:44px repeat(2,minmax(52px,88px)) minmax(0,1fr);
  gap:0 clamp(14px,3vw,30px);align-items:stretch;
  height:clamp(430px,60vw,600px);position:relative;margin-top:46px;max-width:920px}
.chart-axis{position:relative}
.chart-axis span{position:absolute;right:0;transform:translateY(-50%);
  font-family:"Archivo",sans-serif;font-size:11.5px;font-weight:600;opacity:.62;white-space:nowrap}
.chart-grid{position:absolute;left:44px;right:0;top:0;bottom:0;pointer-events:none}
.chart-grid i{position:absolute;left:0;right:0;height:1px;background:currentColor;opacity:.16}
.bar{position:relative;align-self:start;width:100%;height:100%}
.bar-fill{position:absolute;left:0;right:0;top:0;border-radius:1px}
.bar-a .bar-fill{background:linear-gradient(to bottom,#CBDCE4,#7E9DAC);height:33.33%}
.bar-b .bar-fill{background:linear-gradient(to bottom,var(--amber),#0C5E55);height:100%}
.bar-lab{position:absolute;left:0;right:0;bottom:calc(100% + 9px);
  font-family:"Archivo",sans-serif;font-size:11px;font-weight:700;font-stretch:88%;
  letter-spacing:.02em;line-height:1.25}
.bar-end{position:absolute;left:0;right:0;font-family:"Archivo",sans-serif;
  font-size:10.5px;font-weight:600;opacity:.75;padding-top:6px}
.bar-a .bar-end{top:33.33%}
.bar-b .bar-end{top:100%}
.bands{position:relative;padding-left:clamp(6px,2vw,18px)}
.band{position:absolute;left:clamp(6px,2vw,18px);right:0;
  border-left:2px solid var(--amber);padding:0 0 0 12px}
.band b{display:block;font-family:"Archivo",sans-serif;font-size:11.5px;font-weight:700;
  font-stretch:88%;padding-top:2px;letter-spacing:.02em}
.band span{display:block;font-size:.86rem;line-height:1.45;opacity:.74;max-width:40ch;padding-top:3px}
.band-inline b,.band-inline span{display:inline;padding-top:0}
.band-inline span{font-size:.86rem;opacity:.74}
.band-inline{padding-top:1px}
.b1{top:0;height:6.7%}
.b2{top:6.7%;height:26.6%}
.b3{top:33.33%;height:66.67%}
.chart-note{font-family:"Archivo",sans-serif;font-size:12px;opacity:.55;margin-top:30px;max-width:62ch;line-height:1.5}

/* narrow screens: the annotations drop below the bars instead of squeezing beside them */
@media(max-width:759px){
  .chart{grid-template-columns:42px 1fr 1fr;height:auto;gap:0 16px}
  .chart .bar{max-width:112px;justify-self:start}
  .chart-axis,.chart .bar{height:clamp(330px,76vw,430px)}
  .chart-grid{left:42px;bottom:auto;height:clamp(330px,76vw,430px)}
  .bands{grid-column:1/-1;padding-left:0;margin-top:34px}
  .band,.b1,.b2,.b3{position:static;height:auto;top:auto;padding-left:12px;margin-bottom:15px}
  .band:last-child{margin-bottom:0}
  .band-inline b,.band-inline span{display:block}
  .band span{max-width:none}
}

/* ---------- fleet ---------- */
.fleet{display:grid;gap:clamp(34px,5vw,56px);grid-template-columns:1fr}
@media(min-width:900px){.fleet{grid-template-columns:1fr 1fr}}
.rov{border-top:2px solid var(--amber);padding-top:20px}
.rov h3{font-size:1.5rem;font-stretch:110%}
.rov .maker{font-family:"Archivo",sans-serif;font-size:12px;opacity:.6;margin-top:5px}
.rov p{margin-top:1em;font-size:.98rem;opacity:.88;max-width:52ch}
.spec{width:100%;border-collapse:collapse;margin-top:22px;font-family:"Archivo",sans-serif}
.spec th,.spec td{text-align:left;padding:7px 0;font-size:12.5px;font-weight:500;
  border-bottom:1px solid rgba(255,255,255,.13);vertical-align:top}
.spec th{opacity:.55;font-weight:500;width:44%;padding-right:14px}
.spec td{font-weight:600}

/* ---------- steps ---------- */
.steps{counter-reset:s;display:grid;gap:2px;grid-template-columns:1fr}
@media(min-width:720px){.steps{grid-template-columns:repeat(2,1fr);gap:2px 34px}}
@media(min-width:1000px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{counter-increment:s;border-top:1px solid rgba(19,36,39,.2);padding:16px 0 22px}
.step::before{content:counter(s,decimal-leading-zero);display:block;
  font-family:"Archivo",sans-serif;font-size:12px;font-weight:700;color:var(--sea-deep);margin-bottom:9px}
.step h3{font-size:1.05rem;font-stretch:104%;margin-bottom:7px}
.step p{margin:0;font-size:.92rem;line-height:1.55;opacity:.82}

/* ---------- deliverables + limits ---------- */
.two{display:grid;gap:clamp(34px,5vw,64px);grid-template-columns:1fr}
@media(min-width:860px){.two{grid-template-columns:1.15fr .85fr}}
.plain{list-style:none;padding:0;margin:0}
.plain li{padding:11px 0 11px 22px;border-bottom:1px solid rgba(19,36,39,.16);
  position:relative;font-size:.98rem}
.plain li::before{content:"";position:absolute;left:0;top:1.15em;width:9px;height:1px;background:var(--amber)}
.limits{background:rgba(19,36,39,.05);border-left:2px solid var(--shoal);padding:22px 24px}
.limits h3{font-size:1.05rem;margin-bottom:.7em}
.limits p{font-size:.94rem;opacity:.85;margin-bottom:.8em}
.limits p:last-child{margin-bottom:0}

/* ---------- contact ---------- */
.contact{padding:clamp(64px,9vw,120px) 0}
.contact-grid{display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,72px)}
@media(min-width:920px){.contact-grid{grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);align-items:end}}
.checklist{border-top:2px solid var(--amber);padding-top:16px}
.checklist h3{font-size:.98rem;font-stretch:104%;margin-bottom:12px}
.checklist ul{list-style:none;margin:0;padding:0}
.checklist li{font-family:"Archivo",sans-serif;font-size:12.5px;line-height:1.5;
  padding:9px 0 9px 20px;border-top:1px solid rgba(255,255,255,.13);position:relative;opacity:.82}
.checklist li:first-child{border-top:0}
.checklist li::before{content:"";position:absolute;left:0;top:1.05em;width:9px;height:1px;background:var(--amber)}
.contact h2{font-size:clamp(1.9rem,4.4vw,3.4rem);max-width:17ch}
.contact .lede{max-width:52ch;margin-top:1.1em;font-size:1.06rem;opacity:.9}
.mailbig{display:inline-block;font-family:"Archivo",sans-serif;font-weight:700;font-stretch:106%;
  font-size:clamp(1.05rem,2.6vw,1.7rem);color:var(--amber);text-decoration:none;
  margin-top:1.2em;border-bottom:1px solid rgba(39,194,168,.4);padding-bottom:4px;letter-spacing:-.01em}
.mailbig:hover{border-bottom-color:var(--amber)}

/* ---------- footer ---------- */
.foot{border-top:1px solid rgba(255,255,255,.14);padding-top:44px;padding-bottom:56px;
  display:grid;gap:26px;grid-template-columns:1fr;align-items:start}
@media(min-width:720px){.foot{grid-template-columns:auto 1fr auto;gap:44px}}
.foot-logo{width:104px;opacity:.9}
.foot p{font-family:"Archivo",sans-serif;font-size:12px;line-height:1.65;opacity:.6;
  max-width:44ch;margin:0}
.foot .todo{opacity:.38;margin-top:.9em}
.foot-mail{font-family:"Archivo",sans-serif;font-size:12.5px;text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.28);padding-bottom:2px}

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

/* accent contrast: deep aqua on the pale zone, bright aqua on the dark ones */
.z-mid .sec-depth,.z-deep .sec-depth,
.z-mid .more,.z-deep .more,
.z-mid .step::before,.z-deep .step::before{color:var(--amber)}
.z-mid .pillars li,.z-deep .pillars li{border-top-color:var(--amber)}

/* ---------- additions for the apps ---------- */
.apps{display:grid;gap:clamp(34px,5vw,56px);grid-template-columns:1fr}
@media(min-width:900px){.apps{grid-template-columns:1fr 1fr}}
.app{border-top:2px solid var(--amber);padding-top:20px;display:grid;grid-template-columns:64px minmax(0,1fr);gap:0 20px;align-items:start}
.app h3{font-size:1.5rem;font-stretch:110%}
.app .meta{font-family:"Archivo",sans-serif;font-size:12px;opacity:.62;margin-top:5px}
.app p{margin-top:1em;font-size:.98rem;opacity:.88;max-width:52ch}
.more{font-family:"Archivo",sans-serif;font-size:13.5px;font-weight:600;color:var(--amber);text-decoration:none;
  border-bottom:1px solid rgba(39,194,168,.45);padding-bottom:2px}
.more:hover{border-bottom-color:var(--amber)}
.more::after{content:" \2192"}
.app-icon{width:64px;height:64px;border-radius:15px;display:block}
.tile{width:64px;height:64px;border-radius:15px;background:var(--brand-amber);color:var(--ink);display:grid;place-items:center}
.tile svg{width:34px;height:34px}
.app-icon.lg,.tile.lg{width:88px;height:88px;border-radius:20px}
.tile.lg svg{width:46px;height:46px}

.foot-links{display:block;margin-top:.9em}
.foot-links a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.28);margin-right:14px}

/* product page hero */
.ahero{padding-top:clamp(44px,8vw,96px);padding-bottom:clamp(48px,7vw,84px);display:grid;grid-template-columns:1fr;gap:clamp(38px,5vw,60px)}
@media(min-width:980px){.ahero{grid-template-columns:minmax(0,1.4fr) minmax(230px,.6fr);align-items:end;gap:0 clamp(40px,6vw,88px)}}
.ahero-top{display:flex;gap:22px;align-items:center;margin-top:1.6em}
.ahero h1{font-size:clamp(2.2rem,6vw,4rem)}
.ahero .lede{font-size:clamp(1.06rem,1.9vw,1.34rem);line-height:1.55;max-width:46ch;margin-top:1.1em;color:#2A4752}

/* screenshots */
.shots{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:clamp(16px,3vw,34px);
  overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;max-width:980px}
.shots figure{margin:0;scroll-snap-align:start}
.shots img{display:block;width:100%;height:auto;border-radius:22px;border:6px solid #12282C;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.shots figcaption{font-size:12.5px;opacity:.7;margin-top:12px;line-height:1.45;max-width:30ch}

/* store badges */
.soon{font-family:"Archivo",sans-serif;font-size:12.5px;font-weight:600;display:inline-block;padding:9px 14px;
  box-shadow:inset 0 0 0 1px rgba(19,36,39,.35);border-radius:2px;opacity:.7}

/* documents: manual and privacy policy */
.doc{display:grid;grid-template-columns:1fr;gap:clamp(28px,5vw,64px)}
@media(min-width:960px){.doc{grid-template-columns:230px minmax(0,1fr)}}
.toc{font-family:"Archivo",sans-serif;font-size:13px;align-self:start;border-top:2px solid var(--amber);padding-top:14px}
@media(min-width:960px){.toc{position:sticky;top:90px}}
.toc b{display:block;font-size:12px;letter-spacing:.04em;margin-bottom:8px}
.toc ol{list-style:none;margin:0;padding:0;columns:2;column-gap:20px}
@media(min-width:960px){.toc ol{columns:1}}
.toc a{text-decoration:none;opacity:.72;display:block;padding:4px 0;line-height:1.35;break-inside:avoid}
.toc a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
.prose{max-width:68ch}
.prose .ver{font-family:"Archivo",sans-serif;font-size:12.5px;opacity:.62;margin-bottom:2em}
.prose h2{font-size:clamp(1.3rem,2.4vw,1.65rem);margin:2.1em 0 .6em;scroll-margin-top:90px}
.prose h2:first-of-type{margin-top:0}
.prose h3{font-size:1.08rem;margin:1.6em 0 .45em}
.prose ul,.prose ol{padding-left:1.25em;margin:0 0 1em}
.prose li{margin:.35em 0}
.prose ul li::marker{color:var(--amber)}
.prose ol li::marker{font-family:"Archivo",sans-serif;font-weight:700;color:#2E6177}
.prose mark{background:#FFE3A1;color:inherit;padding:0 2px}
.prose .pnote{background:rgba(19,36,39,.05);border-left:2px solid var(--amber);padding:16px 20px;margin:1.4em 0}
.crumbs{font-family:"Archivo",sans-serif;font-size:12.5px;opacity:.7;padding-top:clamp(28px,4vw,44px)}
.crumbs a{text-decoration:none;border-bottom:1px solid var(--shoal)}
.doc-head{padding:14px 0 clamp(28px,4vw,44px)}
.doc-head h1{font-size:clamp(2rem,5vw,3.4rem)}
