:root{
  --brand:#002A4C; --ink:#04223A; --ink-2:#123A55;
  --slate:#4C6274; --mute:#7B8FA0;
  --paper:#FFFFFF; --mist:#F1F4F7; --line:#DAE1E8; --line-dk:#123A55;
  --signal:#D37C25; --signal-dk:#B4661A; --signal-lo:#FAEBD8;
  --careers:#0E6B5C; --careers-lo:#DEEEEA;
  --display:'Archivo',system-ui,sans-serif;
  --serif:'Source Serif 4',Georgia,serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --wrap:1200px; --e:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.025em;line-height:1.07;font-weight:700;color:var(--brand)}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--signal);display:inline-block}
.eyebrow.q{color:var(--mute)}
.ph{background:var(--signal-lo);border-bottom:1px dashed var(--signal);padding:0 3px}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
::selection{background:var(--signal);color:#fff}
/* Content is VISIBLE by default. Only once site.js confirms it is running
   does it add .js-reveal to <html>, opting into the fade-in. If the JS
   ever fails, the page still renders fully. */
.rv{opacity:1;transform:none}
.js-reveal .rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--e),transform .8s var(--e)}
.js-reveal .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js-reveal .rv{opacity:1;transform:none;transition:none}*{animation:none!important}}


/* header */
.util{background:var(--brand);color:#93B0C6;font-family:var(--mono);font-size:11px;letter-spacing:.05em;padding:10px 0}
.util .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.util strong{color:#fff;font-weight:500}
header.site{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.93);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:34px;height:80px}
.logo{text-decoration:none;display:flex;align-items:center;gap:11px}
.logo img{width:30px;height:auto}
.logo .wm{font-family:var(--serif);font-weight:600;font-size:19px;letter-spacing:.24em;color:var(--brand);line-height:1}
nav.main{margin-left:auto;display:flex;gap:30px}
nav.main a{font-family:var(--display);font-size:14.5px;font-weight:500;text-decoration:none;color:var(--slate);position:relative;padding:4px 0}
nav.main a:after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:0;background:var(--signal);transition:width .3s var(--e)}
nav.main a:hover{color:var(--brand)}nav.main a:hover:after{width:100%}
.btn{font-family:var(--display);font-weight:600;font-size:14.5px;text-decoration:none;padding:12px 22px;border-radius:3px;display:inline-block;border:1px solid transparent;white-space:nowrap;transition:.25s var(--e);cursor:pointer}
.btn-p{background:var(--signal);color:#fff}
.btn-p:hover{background:var(--signal-dk);transform:translateY(-1px)}
.btn-g{border-color:var(--line);color:var(--brand)}
.btn-g:hover{border-color:var(--brand);background:var(--mist)}
.btn-w{background:#fff;color:var(--brand)}.btn-w:hover{transform:translateY(-1px)}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:3px;padding:9px 12px;cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--brand)}
.mob{display:none;border-bottom:1px solid var(--line);background:#fff}
.mob.open{display:block}
.mob a{display:block;padding:14px 32px;border-top:1px solid var(--line);text-decoration:none;font-family:var(--display);font-weight:500;color:var(--brand)}

/* hero */
.hero{padding:84px 0 0;position:relative}
.hero:before{content:"";position:absolute;inset:0 0 auto;height:70%;background:linear-gradient(180deg,var(--mist),rgba(241,244,247,0));z-index:-1}
.hero .top{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center;padding-bottom:56px}
.hero h1{font-size:clamp(40px,5.1vw,64px)}
.hero .lede{font-size:19.5px;color:var(--slate);margin-top:24px;max-width:45ch}
.acts{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.subnote{font-family:var(--mono);font-size:11.5px;color:var(--mute);margin-top:20px;letter-spacing:.03em}
.heroshot{position:relative;border-radius:4px;overflow:hidden}
.heroshot img{width:100%;height:auto}
.heroshot .cap{position:absolute;left:0;right:0;bottom:0;padding:52px 26px 20px;
  background:linear-gradient(180deg,rgba(0,42,76,0),rgba(0,42,76,.88));
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#DCE9F2;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* coverage */
.cov{border:1px solid var(--line);background:#fff;padding:28px 26px 24px;border-radius:4px;box-shadow:0 22px 54px -32px rgba(0,42,76,.45)}
.cov .hd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px;gap:14px;flex-wrap:wrap}
.clk{display:flex;gap:22px;font-family:var(--mono);font-size:11px;color:var(--mute);letter-spacing:.06em}
.clk b{display:block;font-size:18px;color:var(--brand);font-weight:500;letter-spacing:0}
.trk{margin-bottom:20px}
.trk .lb{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:8px;display:flex;justify-content:space-between}
.bars{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;height:28px}
.bars span{background:#E4EAEF;border-radius:1px;transition:background .45s var(--e)}
.bars span.on{background:var(--brand)}
.bars.sh span.on{background:var(--signal)}
.scl{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;font-family:var(--mono);font-size:8.5px;color:#A5B4C1;margin-top:7px}
.scl i{font-style:normal;text-align:center}.scl i:nth-child(odd){visibility:hidden}
.cov .cap2{font-size:14.5px;color:var(--slate);border-top:1px solid var(--line);padding-top:17px;line-height:1.55}

/* strip */
.strip{border-top:0;border-bottom:1px solid var(--line);background:#fff;margin-top:0}
.strip .g{display:grid;grid-template-columns:repeat(4,1fr)}
.strip .c{padding:34px 30px 34px 0;border-right:1px solid var(--line)}
.strip .c:last-child{border-right:0;padding-right:0}
.strip .c:not(:first-child){padding-left:30px}
.strip h4{font-size:15.5px;margin-bottom:6px}
.strip p{font-size:14.5px;color:var(--slate);line-height:1.5}

section.band{padding:100px 0;border-bottom:1px solid var(--line)}
.sh{max-width:58ch;margin-bottom:52px}
.sh h2{font-size:clamp(30px,3.5vw,44px);margin-top:14px}
.sh p{color:var(--slate);margin-top:18px;font-size:18px}

/* brand band */
.signband{position:relative;overflow:hidden}
.signband img{width:100%;height:auto;display:block}
.signband .ov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,42,76,.72),rgba(0,42,76,.18) 55%,rgba(0,42,76,.62));display:flex;align-items:center}
.signband .txt{max-width:var(--wrap);margin:0 auto;padding:0 32px;width:100%}
.signband h2{color:#fff;font-size:clamp(24px,3vw,40px);max-width:19ch;text-shadow:0 2px 24px rgba(0,20,38,.5)}

/* services */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.card{background:#fff;padding:34px 28px 36px;transition:background .3s var(--e);position:relative}
.card:hover{background:var(--mist)}
.card:after{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--signal);transition:width .4s var(--e)}
.card:hover:after{width:100%}
.card .cd{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--signal);display:block;margin-bottom:16px}
.card h3{font-size:19.5px;margin-bottom:11px}
.card p{font-size:15px;color:var(--slate);margin-bottom:18px}
.card ul{list-style:none;font-size:14.5px}
.card li{padding-left:17px;position:relative;margin-bottom:7px;color:#2C4257}
.card li:before{content:"";position:absolute;left:0;top:10px;width:7px;height:1px;background:var(--signal)}
.onreq{font-size:15px;color:var(--slate);margin-top:26px}

/* gallery */
.gal{display:grid;grid-template-columns:1.7fr 1fr;gap:14px}
.gal .sub{display:grid;gap:14px;grid-template-rows:1fr 1fr}
.gi{position:relative;overflow:hidden;border-radius:3px;background:var(--mist)}
.gi img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--e)}
.gi:hover img{transform:scale(1.035)}
.gi figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 14px;
  background:linear-gradient(180deg,rgba(0,42,76,0),rgba(0,42,76,.85));
  font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#DCE9F2}

/* pilot */
.pilot{background:var(--brand);color:#fff;padding:96px 0;position:relative;overflow:hidden}
.pilot:before{content:"";position:absolute;top:-150px;right:-130px;width:440px;height:440px;border:1px solid rgba(211,124,37,.28);border-radius:50%;pointer-events:none}
.pilot .g{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;position:relative}
.pilot h2{font-size:clamp(30px,3.7vw,46px);color:#fff}
.pilot p{color:#A8C3D6;margin-top:20px;font-size:18px}
.terms{list-style:none}
.terms li{border-top:1px solid rgba(255,255,255,.16);padding:17px 0;display:flex;gap:18px;align-items:baseline}
.terms li:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
.terms .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--signal);min-width:108px}
.terms .v{color:#E9F1F7;font-size:16px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.stp{border-top:2px solid var(--brand);padding-top:20px}
.stp .n{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--signal);display:block;margin-bottom:12px}
.stp h3{font-size:18px;margin-bottom:9px}
.stp p{font-size:14.5px;color:var(--slate)}

/* ops */
.two{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.two h2{font-size:clamp(27px,3.2vw,38px)}
.two p{color:var(--slate);margin-top:20px}
.facts{list-style:none;margin-top:10px}
.facts li{border-bottom:1px solid var(--line);padding:16px 0;font-size:16px;display:flex;gap:16px}
.facts li:first-child{border-top:1px solid var(--line)}
.facts .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);min-width:124px;padding-top:5px}
.plain{background:var(--mist);border-left:2px solid var(--signal);padding:24px 26px;margin-top:30px;font-size:15.5px;color:#2C4257}

/* voice */
.voice{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:14px}
.vc{border:1px solid var(--line);padding:22px;border-radius:3px;background:#fff}
.vc .nm{font-family:var(--display);font-weight:600;font-size:15.5px;color:var(--brand)}
.vc .rl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-top:3px}
.wave{display:flex;align-items:flex-end;gap:2.5px;height:34px;margin:18px 0 14px}
.wave i{flex:1;background:var(--signal);opacity:.35;border-radius:1px}
.play{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--signal);text-decoration:none}

.cta{padding:104px 0;text-align:center}
.cta h2{font-size:clamp(30px,3.7vw,46px)}
.cta p{color:var(--slate);margin:20px auto 0;max-width:54ch;font-size:18px}
.cta .acts{justify-content:center}

footer.site{background:var(--brand);color:#8FADC4;padding:64px 0 30px;font-size:14.5px}
footer.site .cols{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.14)}
footer.site .logo .wm{color:#fff}
footer.site .tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;color:#5E88A8;margin-top:7px;text-transform:uppercase}
footer.site h5{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#6E96B4;margin-bottom:16px;font-weight:400}
footer.site ul{list-style:none}
footer.site li{margin-bottom:10px}
footer.site a{text-decoration:none;transition:.2s}
footer.site a:hover{color:#fff}
.legal{display:flex;justify-content:space-between;gap:22px;padding-top:24px;font-family:var(--mono);font-size:10.5px;color:#5E88A8;flex-wrap:wrap;letter-spacing:.04em}

/* careers */
.cv .util{background:#07352F}
.cv .btn-p{background:var(--careers)}.cv .btn-p:hover{background:#0B584B}
.cv .eyebrow{color:var(--careers)}
.cv .hero:before{background:linear-gradient(180deg,var(--careers-lo),rgba(222,238,234,0))}
.cv nav.main a:after,.cv .card li:before,.cv .card:after,.cv .wave i{background:var(--careers)}
.cv .stp{border-top-color:var(--careers)}
.cv .stp .n,.cv .terms .k,.cv .play{color:var(--careers)}
.cv footer.site{background:#07352F}
.cv .ph{background:#CFE6E1;border-bottom-color:var(--careers)}
.cv .heroshot .cap,.cv .gi figcaption{background:linear-gradient(180deg,rgba(7,53,47,0),rgba(7,53,47,.88))}
.role{display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center;border-bottom:1px solid var(--line);padding:26px 0;transition:.25s var(--e)}
.role:first-of-type{border-top:1px solid var(--line)}
.role:hover{background:var(--careers-lo);padding-left:16px;padding-right:16px}
.role h3{font-size:19.5px;margin-bottom:7px}
.role p{font-size:15px;color:var(--slate)}
.role .tg{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--careers);margin-top:10px}
.applybox{background:var(--mist);border:1px solid var(--line);padding:36px;border-radius:4px}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fld{display:flex;flex-direction:column;gap:7px}
.fld.full{grid-column:1/-1}
.fld label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.fld input,.fld select{font-family:var(--serif);font-size:16px;padding:12px 13px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink)}
.fld input:focus,.fld select:focus{border-color:var(--careers)}
.wa{background:#128C7E;color:#fff;text-align:center;padding:16px;border-radius:3px;font-family:var(--display);font-weight:600;text-decoration:none;display:block;transition:.25s}
.wa:hover{background:#0F7266}
.orl{text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--mute);margin:20px 0}
.guard{font-size:13px;color:var(--slate);margin-top:18px;font-family:var(--mono);line-height:1.7}

@media (max-width:980px){
  .hero .top,.pilot .g,.two{grid-template-columns:1fr;gap:44px}
  .cards,.steps,.voice{grid-template-columns:1fr 1fr}
  .strip .g{grid-template-columns:1fr 1fr}
  .strip .c:nth-child(2){border-right:0}
  .gal{grid-template-columns:1fr}
  footer.site .cols{grid-template-columns:1fr 1fr}
  nav.main{display:none}.burger{display:block}
}
@media (max-width:620px){
  body{font-size:16px}
  .cards,.steps,.voice,.fg,.strip .g{grid-template-columns:1fr}
  .strip .c{border-right:0;border-bottom:1px solid var(--line);padding:26px 0!important}
  .strip .c:last-child{border-bottom:0}
  .role{grid-template-columns:1fr}
  .hero{padding:52px 0 0}
  section.band,.pilot,.cta{padding:64px 0}
  .applybox{padding:24px}.wrap{padding:0 22px}
  .terms .k{min-width:92px}
  .logo .wm{font-size:16px;letter-spacing:.18em}
  .signband .ov{background:rgba(0,42,76,.72)}
}

/* --- v4: images never displayed above native resolution --- */
.heroshot{max-width:680px;margin-left:auto}
.heroshot img{image-rendering:auto}
.hero .top{align-items:end}
.covband{background:var(--mist);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:40px 0}
.covband .cov{box-shadow:none;border:1px solid var(--line)}
.covband .bars{height:34px}
.gal3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gal3 .gi img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}
.signband img{width:100%;min-height:180px;object-fit:cover}
@media (max-width:980px){.gal3{grid-template-columns:1fr 1fr}.heroshot{max-width:100%;margin:0}}
@media (max-width:620px){.gal3{grid-template-columns:1fr}}

/* --- v5: vector floor schematic --- */
.planwrap{border:1px solid var(--line);border-radius:4px;background:#fff;padding:18px 18px 10px;box-shadow:0 22px 54px -34px rgba(0,42,76,.4)}
.planhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.planmeta{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.planwrap svg{width:100%;height:auto;display:block}
.gal4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gal4 .gi img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}
@media (max-width:980px){.gal4{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.gal4{grid-template-columns:1fr 1fr;gap:8px}}

/* --- verifiable proof band --- */
.proofband{background:var(--mist)}
.proof{display:grid;grid-template-columns:auto 1fr;gap:52px;align-items:center}
.pstars{text-align:center;padding:28px 34px;background:#fff;border:1px solid var(--line);border-radius:4px;min-width:210px}
.pstars .stars{color:var(--signal);font-size:26px;letter-spacing:3px;line-height:1}
.pstars .pnum{font-family:var(--display);font-weight:700;font-size:42px;color:var(--brand);margin-top:12px;line-height:1}
.pstars .pnum span{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--mute);letter-spacing:.1em;display:block;margin-top:6px}
.pstars .plabel{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.ptext h2{font-size:clamp(24px,2.9vw,36px)}
.ptext p{color:var(--slate);margin-top:16px;max-width:56ch}
@media (max-width:820px){.proof{grid-template-columns:1fr;gap:28px}.pstars{min-width:0}}
