:root{
  --ink:#161A2B;
  --paper:#F6F7FB;
  --deep:#12142B;
  --deep-2:#1D2044;
  --amber:#3B5BFB;
  --amber-soft:#7C93FF;
  --moss:#00C2A8;
  --line: rgba(22,26,43,0.14);
  --line-on-dark: rgba(246,247,251,0.18);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

a{color:inherit;}
img,svg{max-width:100%;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--ink); color:var(--paper); padding:10px 16px; border-radius:3px;
}
.skip-link:focus{left:16px; top:16px;}

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(246,247,251,0.9);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 32px;
  max-width:1180px; margin:0 auto;
}
.logo{display:flex; align-items:center; gap:13px; font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:22px; letter-spacing:-0.01em; text-decoration:none;}
.logo svg{display:block;}
nav{display:flex; align-items:center; gap:36px;}
nav .navlinks{display:flex; gap:28px; font-size:14.5px;}
nav .navlinks a{text-decoration:none; color:var(--ink); opacity:0.75; transition:opacity .15s ease;}
nav .navlinks a:hover, nav .navlinks a[aria-current="page"]{opacity:1;}
nav .navlinks a[aria-current="page"]{border-bottom:1px solid var(--amber);}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Inter', sans-serif; font-weight:500; font-size:14.5px;
  padding:10px 18px; border-radius:3px; text-decoration:none;
  border:1px solid transparent; cursor:pointer;
}
.btn-primary{background:var(--deep); color:var(--paper);}
.btn-primary:hover{background:var(--ink);}
.btn-ghost{border-color:var(--ink); color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:var(--paper);}
.btn:focus-visible{outline:2px solid var(--amber); outline-offset:2px;}

/* ---------- Hero (home) ---------- */
.hero{
  position:relative;
  background:var(--deep);
  color:var(--paper);
  overflow:hidden;
  border-bottom:1px solid var(--line-on-dark);
}
.hero-grid{
  display:grid; grid-template-columns:1.05fr 1fr; gap:40px; align-items:center;
  padding:96px 32px 80px;
  max-width:1180px; margin:0 auto;
  position:relative; z-index:2;
}
.eyebrow{
  font-family:'JetBrains Mono', monospace;
  font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--amber-soft);
  display:flex; align-items:center; gap:10px;
  margin-bottom:22px;
}
.eyebrow::before{content:""; width:18px; height:1px; background:var(--amber-soft);}
h1{
  font-family:'Space Grotesk', sans-serif;
  font-weight:600;
  font-size:clamp(38px, 5vw, 60px);
  line-height:1.04;
  letter-spacing:-0.02em;
  max-width:11ch;
}
h1 em{font-style:normal; color:var(--amber-soft); font-weight:600;}
.hero p.lede, .page-hero p.lede{
  margin-top:24px;
  font-size:17px;
  max-width:44ch;
  color:rgba(246,247,251,0.78);
}
.hero-ctas{display:flex; gap:16px; margin-top:34px; flex-wrap:wrap;}
.hero .btn-primary{background:var(--amber); color:var(--paper);}
.hero .btn-primary:hover{background:var(--amber-soft);}
.hero .btn-ghost{border-color:rgba(246,247,251,0.4); color:var(--paper);}
.hero .btn-ghost:hover{background:rgba(246,247,251,0.1); color:var(--paper);}

/* Contour illustration */
.contour-wrap{position:relative; height:420px;}
.contour-wrap svg{width:100%; height:100%;}
.marker{
  position:absolute; left:52%; top:29%;
  display:flex; flex-direction:column; align-items:center;
  animation:float 5s ease-in-out infinite;
}
@keyframes float{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-6px);} }
.marker-dot{width:9px; height:9px; border-radius:50%; background:var(--amber-soft); box-shadow:0 0 0 6px rgba(124,147,255,0.18);}
.marker-label{
  font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.06em;
  color:var(--amber-soft); margin-top:8px; white-space:nowrap;
  background:rgba(18,20,43,0.7); padding:3px 8px; border-radius:2px;
  border:1px solid var(--line-on-dark);
}

/* ---------- Page header (interior pages) ---------- */
.page-hero{
  background:var(--deep); color:var(--paper);
  border-bottom:1px solid var(--line-on-dark);
  padding:72px 0 64px;
}
.page-hero h1{max-width:18ch; font-size:clamp(32px,4.5vw,46px);}
.page-hero .eyebrow{margin-bottom:18px;}

/* ---------- Sections ---------- */
.section{padding:96px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head .eyebrow{color:var(--amber); }
.section-head .eyebrow::before{background:var(--amber);}
.section-head h2{
  font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:clamp(28px,3.4vw,38px);
  letter-spacing:-0.01em; line-height:1.1;
}
.section-head p{margin-top:16px; font-size:16px; color:rgba(22,26,43,0.68); max-width:56ch;}

.terrain-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.terrain-card{background:var(--paper); padding:36px 32px;}
.terrain-card .glyph{width:34px; height:34px; margin-bottom:22px;}
.terrain-card h3{font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:20px; margin-bottom:10px;}
.terrain-card p{font-size:14.5px; color:rgba(22,26,43,0.66); line-height:1.55;}
.terrain-card ul{margin-top:14px; padding-left:18px; font-size:13.5px; color:rgba(22,26,43,0.62);}
.terrain-card li{margin-bottom:6px;}

/* ---------- Process ---------- */
.process{background:var(--deep-2); color:var(--paper);}
.process .section-head .eyebrow{color:var(--amber-soft);}
.process .section-head .eyebrow::before{background:var(--amber-soft);}
.process .section-head h2{color:var(--paper);}
.process .section-head p{color:rgba(246,247,251,0.72);}

.steps{
  position:relative;
  display:grid; grid-template-columns:repeat(3, 1fr); gap:32px;
  padding-top:8px;
}
.steps::before{
  content:""; position:absolute; top:19px; left:0; right:0; height:1px;
  background:repeating-linear-gradient(90deg, var(--line-on-dark) 0 8px, transparent 8px 16px);
}
.step{position:relative; padding-top:56px;}
.step-num{
  position:absolute; top:0; left:0;
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--amber-soft); color:var(--amber-soft);
  display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono', monospace; font-size:13px;
  background:var(--deep-2);
}
.step h3{font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:20px; margin-bottom:10px;}
.step p{font-size:14.5px; color:rgba(246,247,251,0.68); line-height:1.55;}
.step ul{margin-top:12px; padding-left:18px; font-size:13.5px; color:rgba(246,247,251,0.6);}
.step li{margin-bottom:6px;}

/* ---------- Proof band / testimonials ---------- */
.proof{padding:64px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.proof .wrap{display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.proof-stat{font-family:'Space Grotesk', sans-serif; font-size:38px; color:var(--deep);}
.proof-stat span{display:block; font-family:'JetBrains Mono', monospace; font-size:12px; letter-spacing:0.06em; color:rgba(22,26,43,0.55); margin-top:6px;}
.proof-quote{max-width:480px; font-family:'Space Grotesk', sans-serif; font-weight:500; font-size:19px; line-height:1.5; color:var(--ink); position:relative; padding-left:22px; border-left:2px solid var(--amber);}
.proof-quote footer{margin-top:14px; font-family:'Inter', sans-serif; font-style:normal; font-size:13.5px; color:rgba(22,26,43,0.6);}

.testimonial-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px;}
.testimonial-card{background:var(--paper); padding:32px;}
.testimonial-card p.quote{font-family:'Space Grotesk', sans-serif; font-weight:500; font-size:17px; line-height:1.5;}
.testimonial-card footer{margin-top:14px; font-size:13.5px; color:rgba(22,26,43,0.6);}

.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.stat-card{background:var(--paper); padding:28px 24px; text-align:left;}
.stat-card .num{font-family:'Space Grotesk', sans-serif; font-size:32px; color:var(--deep);}
.stat-card .label{font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:0.05em; color:rgba(22,26,43,0.55); margin-top:6px;}

/* ---------- CTA band ---------- */
.cta{background:var(--ink); color:var(--paper); text-align:center;}
.cta .wrap{padding:96px 32px; display:flex; flex-direction:column; align-items:center;}
.cta h2{font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:clamp(30px,4vw,44px); max-width:16ch; letter-spacing:-0.01em;}
.cta p{margin-top:18px; color:rgba(246,247,251,0.7); max-width:48ch;}
.cta .hero-ctas{justify-content:center; margin-top:32px;}
.cta .btn-primary{background:var(--amber); color:var(--paper);}
.cta .btn-ghost{border-color:rgba(246,247,251,0.4); color:var(--paper);}

/* ---------- Contact form ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.contact-info h3{font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:20px; margin-bottom:10px; margin-top:28px;}
.contact-info h3:first-child{margin-top:0;}
.contact-info p{font-size:14.5px; color:rgba(22,26,43,0.68); line-height:1.6;}
.contact-info a{color:var(--amber); text-decoration:underline;}

form.contact-form{display:flex; flex-direction:column; gap:18px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:13.5px; font-weight:500; color:var(--ink);}
.field input, .field select, .field textarea{
  font-family:'Inter', sans-serif; font-size:15px;
  padding:11px 13px; border:1px solid rgba(22,26,43,0.25); border-radius:3px;
  background:#fff; color:var(--ink);
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:2px solid var(--amber); outline-offset:1px; border-color:var(--amber);
}
.field textarea{resize:vertical; min-height:110px;}
.form-note{font-size:12.5px; color:rgba(22,26,43,0.5); margin-top:2px;}
.form-success{
  display:none; background:rgba(59,91,251,0.08); border:1px solid var(--amber);
  color:var(--ink); padding:16px 18px; border-radius:4px; font-size:14.5px; margin-top:8px;
}
.form-success.visible{display:block;}
.submit-row{display:flex; align-items:center; gap:16px;}

/* ---------- Footer ---------- */
footer.site-footer{padding:40px 0; }
.footer-inner{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;}
.footer-inner .logo{font-size:16px;}
.footer-links{display:flex; gap:24px; font-size:13.5px; color:rgba(22,26,43,0.6);}
.footer-links a{text-decoration:none;}
.fine{font-size:12.5px; color:rgba(22,26,43,0.45); margin-top:18px; font-family:'JetBrains Mono', monospace;}

@media (max-width: 880px){
  .hero-grid{grid-template-columns:1fr; padding-top:64px;}
  .contour-wrap{height:280px; order:-1;}
  .terrain-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr; gap:44px;}
  .steps::before{display:none;}
  .proof .wrap{flex-direction:column; align-items:flex-start;}
  .testimonial-grid{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr; gap:40px;}
  nav .navlinks{display:none;}
}
