:root{
  --navy-950:#061A30;
  --navy-900:#0B2A4A;
  --navy-800:#123B62;
  --navy-700:#1B4E7D;
  --cyan-400:#20D6E8;
  --cyan-300:#7CEAF2;
  --cyan-050:#E7FBFC;
  --ink:#0B1F33;
  --slate-600:#4E5F72;
  --slate-400:#8395A7;
  --paper:#F5F8FA;
  --paper-dim:#EBF0F4;
  --white:#FFFFFF;
  --alert-500:#A8483A;
  --alert-050:#F7EAE7;
  --radius:14px;
  --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Space Grotesk',system-ui,sans-serif;
  letter-spacing:-0.01em;
  margin:0;
}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.72rem;
  font-weight:500;
}
p{line-height:1.65; color:var(--slate-600); margin:0;}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
section{position:relative;}
:focus-visible{outline:2px solid var(--cyan-400); outline-offset:3px;}

/* ---------- NAV ---------- */
header.site-nav{
  position:sticky; top:0; z-index:100;
  background:rgba(6,26,48,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.nav-inner{
  max-width:var(--maxw); margin:0 auto; padding:14px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand img{height:36px; width:auto;}
.brand-word{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700; color:var(--white); font-size:1rem; line-height:1.15;
}
.brand-word span{display:block; color:var(--cyan-300); font-size:0.68rem; font-weight:600; letter-spacing:0.05em;}
nav.links{display:none; gap:30px; align-items:center;}
@media(min-width:860px){nav.links{display:flex;}}
nav.links a{
  color:rgba(255,255,255,0.78); text-decoration:none; font-size:0.92rem; font-weight:500;
  transition:color .15s ease;
}
nav.links a:hover, nav.links a.active{color:var(--cyan-300);}

/* ---------- NAV DROPDOWN ---------- */
.nav-item{position:relative;}
.nav-dropdown-trigger{
  display:inline-flex; align-items:center; gap:9px;
  background:none; border:none; padding:0; margin:0; cursor:pointer;
  font-family:inherit; color:rgba(255,255,255,0.78); font-size:0.92rem; font-weight:500;
  transition:color .15s ease;
}
.nav-dropdown-trigger:hover, .nav-item.open .nav-dropdown-trigger, .nav-dropdown-trigger.active{color:var(--cyan-300);}
.hamburger{display:inline-flex; flex-direction:column; justify-content:center; width:16px; height:12px; flex:none;}
.hamburger span{display:block; height:2px; width:100%; background:currentColor; border-radius:1px; transition:transform .15s ease, opacity .15s ease;}
.hamburger span + span{margin-top:3px;}
.nav-item.open .hamburger span:nth-child(1){transform:translateY(5px) rotate(45deg);}
.nav-item.open .hamburger span:nth-child(2){opacity:0;}
.nav-item.open .hamburger span:nth-child(3){transform:translateY(-5px) rotate(-45deg);}
.nav-dropdown{
  position:absolute; top:calc(100% + 18px); left:0; z-index:50;
  background:var(--navy-900); border:1px solid rgba(255,255,255,0.12); border-radius:10px;
  min-width:250px; padding:6px; box-shadow:0 20px 40px -12px rgba(0,0,0,0.45);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s ease;
}
.nav-item.open .nav-dropdown{
  opacity:1; visibility:visible; transform:translateY(0);
}
.nav-dropdown a, .nav-dropdown .soon{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 12px; border-radius:6px; font-size:0.88rem; white-space:nowrap;
}
.nav-dropdown a{color:rgba(255,255,255,0.85); text-decoration:none;}
.nav-dropdown a:hover{background:rgba(255,255,255,0.07); color:var(--cyan-300);}
.nav-dropdown .soon{color:rgba(255,255,255,0.4); cursor:default;}
.nav-dropdown .soon em{
  font-style:normal; font-family:'IBM Plex Mono',monospace; font-size:0.62rem;
  text-transform:uppercase; letter-spacing:0.05em; color:rgba(255,255,255,0.35);
  border:1px solid rgba(255,255,255,0.18); padding:2px 7px; border-radius:999px;
}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 22px; border-radius:999px; font-weight:600; font-size:0.92rem;
  text-decoration:none; border:1px solid transparent; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--cyan-400); color:var(--navy-950);}
.btn-primary:hover{transform:translateY(-1px); box-shadow:0 10px 24px -8px rgba(32,214,232,0.55);}
.btn-ghost{background:transparent; color:var(--white); border-color:rgba(255,255,255,0.28);}
.btn-ghost:hover{border-color:var(--cyan-300); color:var(--cyan-300);}
.btn-dark{background:var(--navy-900); color:var(--white);}
.btn-dark:hover{background:var(--navy-800); transform:translateY(-1px);}
.btn-outline-dark{background:transparent; color:var(--ink); border-color:var(--paper-dim);}
.btn-outline-dark:hover{border-color:var(--navy-700); color:var(--navy-700);}
.nav-cta{display:none;}
@media(min-width:860px){.nav-cta{display:inline-flex;}}

/* ---------- HERO (home) ---------- */
.hero{
  background:radial-gradient(120% 140% at 15% -10%, var(--navy-800) 0%, var(--navy-950) 55%, #041220 100%);
  color:var(--white);
  padding:96px 0 70px;
  overflow:hidden;
}
.hero-grid{display:grid; gap:56px; align-items:center; grid-template-columns:1fr;}
@media(min-width:920px){ .hero-grid{grid-template-columns:1.05fr 0.85fr;} }
.hero-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(32,214,232,0.1); border:1px solid rgba(32,214,232,0.35);
  color:var(--cyan-300); padding:7px 14px; border-radius:999px;
  font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
  margin-bottom:26px;
}
.hero h1{font-size:clamp(2.1rem, 4.4vw, 3.35rem); font-weight:700; line-height:1.08; color:var(--white);}
.hero .sub{margin-top:22px; max-width:520px;}
.hero .sub em{
  display:block; font-style:normal; color:var(--cyan-300); font-weight:600; margin-bottom:8px;
  font-family:'Space Grotesk',sans-serif; font-size:1.08rem;
}
.hero .sub p{color:rgba(255,255,255,0.72); font-size:1rem;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:34px;}
.hero-art{position:relative; display:flex; align-items:center; justify-content:center;}
.hero-art .glow{
  position:absolute; width:420px; height:420px; border-radius:50%;
  background:radial-gradient(circle, rgba(32,214,232,0.25) 0%, rgba(32,214,232,0) 70%);
  filter:blur(6px);
}
.hero-art img{position:relative; width:min(340px, 78%); filter:drop-shadow(0 30px 60px rgba(0,0,0,0.45));}

/* ---------- PAGE HEADER (subpages) ---------- */
.page-header{
  background:radial-gradient(120% 160% at 10% -20%, var(--navy-800) 0%, var(--navy-950) 55%, #041220 100%);
  color:var(--white); padding:64px 0 56px;
}
.page-header .eyebrow{color:var(--cyan-300); display:block; margin-bottom:14px;}
.page-header h1{font-size:clamp(1.8rem,3.6vw,2.6rem); font-weight:700; color:var(--white);}
.page-header p{margin-top:16px; max-width:600px; color:rgba(255,255,255,0.72); font-size:1.02rem;}
.crumb{font-size:0.85rem; color:rgba(255,255,255,0.5); margin-bottom:18px;}
.crumb a{color:rgba(255,255,255,0.75); text-decoration:none;}
.crumb a:hover{color:var(--cyan-300);}

/* ---------- PARTNER BAND ---------- */
.partner-band{background:var(--navy-900); border-top:1px solid rgba(255,255,255,0.08); padding:26px 0;}
.partner-band .wrap{display:flex; flex-wrap:wrap; align-items:center; gap:14px 34px; justify-content:space-between;}
.partner-band .label{
  color:rgba(255,255,255,0.55); font-family:'IBM Plex Mono',monospace; font-size:0.7rem;
  letter-spacing:0.1em; text-transform:uppercase; white-space:nowrap;
}
.partner-badges{display:flex; flex-wrap:wrap; gap:10px;}
.partner-badges span, .partner-badges a{
  color:rgba(255,255,255,0.85); background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12); padding:7px 14px; border-radius:8px;
  font-size:0.82rem; font-weight:500;
}
.partner-badges a{
  text-decoration:none; display:inline-flex; align-items:center;
  cursor:pointer; transition:border-color .15s ease, background .15s ease, transform .15s ease;
}
.partner-badges a:hover{border-color:var(--cyan-400); background:rgba(32,214,232,0.12); color:var(--white); transform:translateY(-1px);}

/* ---------- PARTNER PAGE ---------- */
.partner-hero{
  display:grid; gap:40px; grid-template-columns:1fr; align-items:center; margin-bottom:8px;
}
@media(min-width:860px){.partner-hero{grid-template-columns:1fr 1fr;}}
.partner-logo-chip{
  display:inline-flex; align-items:center; background:var(--navy-950);
  padding:22px 28px; border-radius:12px; margin-bottom:22px;
}
.partner-logo-chip img{height:34px; width:auto;}
.partner-shot{border-radius:12px; overflow:hidden; box-shadow:0 30px 60px -20px rgba(6,26,48,0.5); border:1px solid var(--paper-dim);}
.partner-shot img{width:100%; display:block;}

.product-grid{display:grid; gap:20px; grid-template-columns:1fr; margin-top:56px;}
@media(min-width:760px){.product-grid{grid-template-columns:repeat(3,1fr);}}
.product-card{
  background:var(--white); border:1px solid var(--paper-dim); border-radius:var(--radius);
  padding:28px; transition:border-color .15s ease, transform .15s ease;
}
.product-card:hover{border-color:var(--cyan-400); transform:translateY(-2px);}
.product-tag{
  display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.68rem;
  letter-spacing:0.08em; text-transform:uppercase; padding:4px 10px; border-radius:999px;
  margin-bottom:16px; color:var(--white);
}
.product-tag.notify{background:#3EC28F;}
.product-tag.reconstruct{background:#8A5CF6;}
.product-tag.replay{background:#E8623E;}
.product-card h4{font-size:1.08rem; font-weight:700; margin-bottom:10px; color:var(--ink);}
.product-card p{font-size:0.92rem;}

.stat-strip{
  display:grid; gap:1px; grid-template-columns:repeat(2,1fr);
  background:rgba(255,255,255,0.1); border-radius:var(--radius); overflow:hidden; margin-top:56px;
}
@media(min-width:760px){.stat-strip{grid-template-columns:repeat(4,1fr);}}
.stat-cell{background:var(--navy-950); padding:28px 22px;}
.stat-cell .num{
  font-family:'Space Grotesk',sans-serif; font-weight:700; color:var(--cyan-300);
  font-size:clamp(1.8rem,3vw,2.3rem); line-height:1;
}
.stat-cell .cap{display:block; margin-top:10px; font-size:0.82rem; color:rgba(255,255,255,0.65); line-height:1.5;}

.partner-quote{
  background:var(--paper); border-radius:var(--radius); padding:36px 40px; margin-top:56px;
  border-left:3px solid var(--cyan-400);
}
.partner-quote p.line{
  font-family:'Space Grotesk',sans-serif; font-size:clamp(1.05rem,2vw,1.3rem);
  color:var(--ink); font-weight:500; line-height:1.5; margin-bottom:16px;
}
.partner-quote .who{font-size:0.88rem; color:var(--slate-600);}
.partner-quote .who b{color:var(--ink);}

.trust-strip{margin-top:64px;}
.trust-strip .cap{
  font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--slate-400); display:block; margin-bottom:20px;
}
.trust-logos{display:flex; flex-wrap:wrap; gap:12px;}
.trust-logos span{
  background:var(--white); border:1px solid var(--paper-dim); border-radius:8px;
  padding:10px 18px; font-size:0.86rem; font-weight:600; color:var(--slate-600);
}
.incident-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
.incident-tags span{
  background:var(--paper); border:1px solid var(--paper-dim); border-radius:999px;
  padding:8px 16px; font-size:0.84rem; color:var(--ink); font-weight:500;
}

/* ---------- SECTIONS ---------- */
.section{padding:96px 0;}
.section.tight{padding:72px 0;}
.section.dim{background:var(--paper);}
.section-head{max-width:640px; margin-bottom:52px;}
.section-head .eyebrow{color:var(--navy-700); margin-bottom:14px; display:block;}
.section-head h2{font-size:clamp(1.6rem,3vw,2.3rem); font-weight:700; color:var(--ink);}
.section-head p{margin-top:16px; font-size:1.02rem;}

/* ---------- TEASER CARDS (home links to subpages) ---------- */
.teasers{display:grid; gap:22px; grid-template-columns:1fr;}
@media(min-width:760px){.teasers{grid-template-columns:1fr 1fr;}}
.teaser-card{
  display:block; text-decoration:none; border-radius:var(--radius);
  padding:32px; border:1px solid var(--paper-dim); background:var(--white);
  transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.teaser-card:hover{border-color:var(--cyan-400); transform:translateY(-3px); box-shadow:0 16px 32px -18px rgba(11,42,74,0.35);}
.teaser-card .eyebrow{color:var(--navy-700); margin-bottom:14px; display:block;}
.teaser-card h3{font-size:1.3rem; font-weight:700; color:var(--ink); margin-bottom:12px;}
.teaser-card p{font-size:0.96rem;}
.teaser-card .go{
  margin-top:20px; display:inline-flex; align-items:center; gap:6px;
  color:var(--navy-700); font-weight:600; font-size:0.9rem;
}
.teaser-card:hover .go{color:var(--cyan-400);}

/* ---------- COMPARISON ---------- */
.compare{display:grid; grid-template-columns:1fr; gap:18px;}
@media(min-width:800px){.compare{grid-template-columns:1fr 1fr;}}
.compare-col{border-radius:var(--radius); padding:30px 28px; border:1px solid var(--paper-dim);}
.compare-col.bad{background:var(--alert-050); border-color:#EFD9D3;}
.compare-col.good{background:var(--navy-950); border-color:var(--navy-900);}
.compare-col h3{font-size:1.05rem; font-weight:700; margin-bottom:22px; display:flex; align-items:center; gap:10px;}
.compare-col.bad h3{color:var(--alert-500);}
.compare-col.good h3{color:var(--cyan-300);}
.compare-row{display:flex; gap:12px; padding:14px 0; border-top:1px solid rgba(0,0,0,0.06);}
.compare-col.good .compare-row{border-top:1px solid rgba(255,255,255,0.09);}
.compare-row:first-of-type{border-top:none;}
.compare-row .mark{
  flex:none; width:22px; height:22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:0.72rem; font-weight:700;
  margin-top:2px;
}
.compare-col.bad .mark{background:#EFD9D3; color:var(--alert-500);}
.compare-col.good .mark{background:rgba(32,214,232,0.16); color:var(--cyan-300);}
.compare-row .txt b{display:block; font-size:0.94rem; color:var(--ink); margin-bottom:2px;}
.compare-col.good .compare-row .txt b{color:var(--white);}
.compare-row .txt span{font-size:0.88rem; color:var(--slate-600);}
.compare-col.good .compare-row .txt span{color:rgba(255,255,255,0.65);}

/* ---------- BENEFITS GRID ---------- */
.benefits{display:grid; gap:20px; grid-template-columns:1fr; margin-top:56px;}
@media(min-width:700px){.benefits{grid-template-columns:1fr 1fr;}}
.benefit-card{
  background:var(--white); border:1px solid var(--paper-dim); border-radius:var(--radius);
  padding:26px; transition:border-color .15s ease, transform .15s ease;
}
.benefit-card:hover{border-color:var(--cyan-400); transform:translateY(-2px);}
.benefit-card .num{font-family:'IBM Plex Mono',monospace; color:var(--cyan-400); font-size:0.78rem; font-weight:600;}
.benefit-card h4{font-size:1.02rem; font-weight:700; margin:10px 0 8px; color:var(--ink);}
.benefit-card p{font-size:0.92rem;}

/* ---------- HOW IT WORKS (signature route) ---------- */
.route-wrap{position:relative; margin-top:24px;}
.route-line{
  position:absolute; left:0; right:0; top:34px; height:2px;
  background:repeating-linear-gradient(to right, var(--cyan-400) 0 10px, transparent 10px 20px);
  display:none;
}
@media(min-width:860px){.route-line{display:block;}}
.steps{display:grid; gap:40px; grid-template-columns:1fr; position:relative;}
@media(min-width:860px){.steps{grid-template-columns:repeat(3,1fr);}}
.step{position:relative;}
.step .pin{
  width:70px; height:70px; border-radius:50%;
  background:var(--navy-950); color:var(--cyan-300);
  display:flex; align-items:center; justify-content:center;
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.35rem;
  border:4px solid var(--white); box-shadow:0 0 0 2px var(--navy-950);
  margin-bottom:22px; position:relative; z-index:2;
}
.step h4{font-size:1.08rem; font-weight:700; margin-bottom:10px; color:var(--ink);}
.step p{font-size:0.94rem;}
.step-detail{
  margin-top:18px; padding-top:18px; border-top:1px solid var(--paper-dim);
}
.step-detail p{font-size:0.9rem;}
.step-detail p + p{margin-top:10px;}

/* ---------- ABOUT / MISSION ---------- */
.about{
  background:var(--navy-950);
  background:radial-gradient(120% 100% at 85% 0%, var(--navy-800) 0%, var(--navy-950) 60%);
  color:var(--white);
}
.about .section-head .eyebrow{color:var(--cyan-300);}
.about .section-head h2{color:var(--white);}
.about .section-head p{color:rgba(255,255,255,0.72);}
.mission-quote{border-left:3px solid var(--cyan-400); padding-left:26px; margin:36px 0 48px; max-width:760px;}
.mission-quote p{
  font-family:'Space Grotesk',sans-serif; font-size:clamp(1.15rem,2.2vw,1.5rem);
  color:var(--white); font-weight:500; line-height:1.5;
}
.principles{display:grid; gap:24px; grid-template-columns:1fr;}
@media(min-width:800px){.principles{grid-template-columns:repeat(3,1fr);}}
.principle{background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:var(--radius); padding:24px;}
.principle h4{color:var(--cyan-300); font-size:0.98rem; font-weight:700; margin-bottom:10px;}
.principle p{color:rgba(255,255,255,0.7); font-size:0.9rem;}

/* ---------- FINAL CTA ---------- */
.final-cta{background:var(--paper); text-align:center; padding:100px 0;}
.final-cta h2{font-size:clamp(1.6rem,3.4vw,2.4rem); font-weight:700; max-width:640px; margin:0 auto;}
.final-cta p{margin:18px auto 34px; max-width:480px; font-size:1.02rem;}
.final-cta .hero-ctas{justify-content:center;}

/* ---------- FOOTER ---------- */
footer{background:var(--navy-950); color:rgba(255,255,255,0.55); padding:48px 0 30px;}
.footer-top{display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; padding-bottom:28px; border-bottom:1px solid rgba(255,255,255,0.08);}
.footer-brand{display:flex; align-items:center; gap:10px;}
.footer-brand img{height:30px;}
.footer-brand span{color:var(--white); font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:0.95rem;}
.footer-links{display:flex; gap:26px; flex-wrap:wrap;}
.footer-links a{color:rgba(255,255,255,0.6); text-decoration:none; font-size:0.88rem;}
.footer-links a:hover{color:var(--cyan-300);}
.footer-bottom{padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; font-size:0.8rem;}

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