:root{
  --ink:#0B1220;
  --panel:#121B2E;
  --panel-2:#17233A;
  --signal:#2ba7cb;
  --teal:#062521;
  --amber:#27c198;
  --fog:#E7ECF3;
  --muted:#b3bac9;
  --line:#22304A;
  --tag:#636363;
}
*{
  margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--fog);
  font-size: 0.9rem;
  font-family:'Inter',sans-serif;
  line-height: normal;
  font-weight: normal;
  overflow-x:hidden;
}
h1,h2,h3,h4,.display-font{
  font-family:'Bricolage Grotesque',sans-serif;
  letter-spacing:-0.01em;
}
p {
	font-family:'Inter',sans-serif;
	font-size: 0.9rem;
	color:var(--fog);
	line-height: 24px;
	margin: 0 0 15px;
	font-weight: normal;
}
img,
iframe {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}
a {
  text-decoration: none;
	color: var(--muted);
	outline: none;
}
a:hover {
  color: var(--signal) !important;
}
.mono{
  font-family:'Inter',sans-serif;
  letter-spacing:0.04em;
  font-size:0.85rem;
}
.text-signal{color:var(--signal);}
.text-amber{color:var(--amber);}
.text-muted-2{color:var(--muted);}
.bg-panel{background:var(--panel);}

/* NAVBAR */
.brand-logo{
  display: flex;
  max-width: 172px;
}
.navbar-custom{
  background:rgba(11,18,32,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-link-custom{
  color:var(--muted) !important;
  font-family:'Inter',monospace;
  font-size:0.8rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  margin:0 0.75rem;
  transition:color .2s ease;
}
.nav-link-custom:hover{color:var(--fog) !important;}
.btn-signal{
  background:var(--signal);
  color:var(--fog);
  font-weight:400;
  border:none;
  border-radius:2px;
  padding:0.55rem 1.4rem;
  font-family:'Inter',monospace;
  font-size:0.8rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  transition:transform .2s ease, box-shadow .2s ease;
  display: flex;
  justify-content: center;
  align-items: center;
}
.btn-signal:hover{
  transform:translateY(-2px);
  box-shadow:0 2px 24px rgba(45,212,191,0.3);
  color:var(--fog);
}
.btn-outline-signal{
  border:1px solid var(--line);
  color:var(--fog);
  border-radius:2px;
  padding:0.55rem 1.4rem;
  font-family:'Inter',monospace;
  font-size:0.8rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  transition:border-color .2s ease, color .2s ease;
}
.btn-outline-signal:hover{border-color:var(--signal); color:var(--signal);}

/* HERO */
.hero{
  position:relative;
  padding:6rem 0px 2rem;
  border-bottom:1px solid var(--line);
  overflow:hidden;
  min-height: 100vh;
  display: flex;
  align-items: center;
}
.hero-video{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.hero-overlay{
    position: absolute;
    inset: 0;
    background: rgba(5, 10, 20, 0.3);
    z-index: 1;
}
.hero-net{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  /* opacity:0.55; */
  z-index: 2;
  pointer-events:none;
}
.hero .container{
    position: relative;
    z-index: 3;
}
.hero-net .node{ animation: pulse 3.4s ease-in-out infinite; }
.hero-net .node:nth-child(2n){ animation-delay:0.6s; }
.hero-net .node:nth-child(3n){ animation-delay:1.2s; }
.hero-net .node:nth-child(5n){ animation-delay:1.8s; }
@keyframes pulse{
  0%,100%{ opacity:0.35; r:2.4; }
  50%{ opacity:1; r:3.6; }
}
.hero-net .link{ stroke:#22304A; stroke-width:1; }
.hero-net .link.active{ stroke:var(--signal); opacity:0.5; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  color:var(--signal);
}
.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:var(--signal);
  display:inline-block;
}
.hero h1{
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  font-weight:700;
  line-height:1.05;
  max-width:14ch;
}
.hero .lead-copy{
  color:var(--muted);
  font-size:1rem;
  max-width:42ch;
  line-height:1.7;
}
.hero-stats{
  border-top:1px solid var(--line);
  margin-top:3.5rem;
  padding-top:1.75rem;
}
.hero-stats .stat-num{
  font-family:'Bricolage+Grotesque',sans-serif;
  font-size:1.9rem;
  font-weight:700;
  color:var(--fog);
  opacity:0;
  transform:translateY(20px);
  animation:fadeUp .8s ease forwards;
}

@keyframes fadeUp{
    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* SECTION LABELS */
.section{ padding:6rem 0; border-bottom:1px solid var(--line); }
.section-label{
  color:var(--amber);
  margin-bottom:0.75rem;
  display:block;
}
.section-title{
  font-size:clamp(1.7rem, 3vw, 2.4rem);
  font-weight:600;
  max-width:20ch;
}
.section-sub{
  color:var(--muted);
  max-width:56ch;
  line-height:1.7;
}

/* WHO WE ARE */
.who-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:4px;
  padding:2.25rem;
  height:100%;
}
.who-card .bi{ color:var(--signal); font-size:1.4rem; }

/* SERVICES */
.service-row{
  border-top:1px solid var(--line);
  padding:2.25rem 0;
  transition:background .25s ease;
}
.service-row:hover{ background:rgba(45,212,191,0.03); }
.service-index{
  font-family:'Inter',monospace;
  color:var(--muted);
  font-size:0.85rem;
  margin-top: 10px;
  display: flex;
}
.service-name{
  font-size:1.4rem;
  font-weight:600;
  margin: 2px 0 10px;
}
.service-desc{ color:var(--muted); line-height:1.7; }
.service-icon{
  width:52px; height:52px;
  border:1px solid var(--line);
  border-radius:4px;
  display:flex; align-items:center; justify-content:center;
  color:var(--signal);
  font-size:1.3rem;
  flex-shrink:0;
}

/* CHALLENGES */
.challenge-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.challenge-cell{
  background:var(--ink);
  padding:1.5rem 1.5rem;
  color:var(--fog);
  font-size:0.95rem;
  display:flex;
  align-items:flex-start;
  gap:0.6rem;
  min-height:100px;
}
.challenge-cell i{ color:var(--amber); margin-top:3px; }
@media (max-width:767px){ .challenge-grid{ grid-template-columns:1fr; } }

/* INDUSTRIES - node grid */
.industry-grid{
  display:flex;
  flex-wrap:wrap;
  gap:0.75rem;
}
.industry-pill{
  border:1px solid var(--line);
  border-radius:100px;
  padding:0.65rem 1.25rem;
  font-family:'Inter',monospace;
  font-size:0.8rem;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:0.5rem;
  transition:border-color .2s ease, color .2s ease;
}
.industry-pill:hover{ border-color:var(--signal); color:var(--fog); }
.industry-pill .dot{
  width:6px; height:6px; border-radius:50%; background:var(--signal);
}

/* WHY US */
.why-item{
  border-left:2px solid var(--line);
  padding-left:1.25rem;
  margin-bottom:2rem;
  transition:border-color .2s ease;
}
.why-item:hover{ border-color:var(--signal); }
.why-item h5{ font-weight:600; margin-bottom:0.4rem; }
.why-item p{ color:var(--muted); font-size:0.85rem; margin:0; }

/* SUCCESS STORIES */
.story-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:4px;
  padding:2.25rem;
  height:100%;
  display:flex;
  flex-direction:column;
}
.story-tag{
  font-family:'Inter',monospace;
  font-size:0.7rem;
  text-transform:uppercase;
  color:var(--amber);
  letter-spacing:0.06em;
}
.story-title{ font-weight:600; font-size:1.25rem; margin:0.6rem 0 0.9rem; }
.story-desc{ color:var(--muted); font-size:0.9rem; line-height:1.65; flex-grow:1; }
.story-results{
  border-top:1px solid var(--line);
  margin-top:1.25rem;
  padding-top:1.1rem;
  list-style:none;
  padding-left:0;
  margin-bottom:0;
}
.story-results li{
  font-size:0.85rem;
  color:var(--fog);
  padding:0.25rem 0;
  display:flex;
  gap:0.5rem;
}
.story-results li i{ color:var(--signal); }

/* APPROACH */
.approach-track{ position:relative; }
.approach-step{
  position:relative;
}
.approach-num{
  font-family:'Bricolage+Grotesque',sans-serif;
  font-size:2.5rem;
  font-weight:700;
  color:transparent;
  -webkit-text-stroke:1px var(--line);
  line-height:1;
}
.approach-step:hover .approach-num{ -webkit-text-stroke:1px var(--signal); }
.approach-step h5{ font-weight:600; margin:0.75rem 0 0.5rem; }
.approach-step p{ color:var(--muted); font-size:0.9rem; line-height:1.6; }

/* CTA */
.cta-section{
  background:linear-gradient(180deg, var(--ink) 0%, var(--panel) 100%);
  border-bottom:none;
  text-align:center;
  padding:7rem 0;
  position:relative;
}
.cta-section h2{
  font-size:clamp(2rem,4vw,2.6rem);
  font-weight:700;
  max-width:20ch;
  margin:0 auto 1.25rem;
}
.cta-section p{ color:var(--muted); max-width:48ch; margin:0 auto 2.25rem; }

/* DISCOVERY CALL MODAL */
.modal-nexora .modal-content{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:6px;
  color:var(--fog);
}
.modal-nexora .modal-header{
  border-bottom:1px solid var(--line);
  padding:1.75rem 2rem 1.25rem;
}
.modal-nexora .modal-body{ padding:1.75rem 2rem 2.25rem; }
.modal-nexora .btn-close{ filter:invert(1) grayscale(1) brightness(1.6); }
.form-label-custom{
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--muted);
  margin-bottom:0.5rem;
  display:block;
}
.form-control-custom{
  background:var(--panel-2);
  border:1px solid var(--line);
  color:var(--fog);
  border-radius:3px;
  padding:0.7rem 0.9rem;
  font-family:'Inter',sans-serif;
  font-size:0.95rem;
}
.form-control-custom:focus{
  background:var(--panel-2);
  border-color:var(--signal);
  color:var(--fog);
  box-shadow:0 0 0 3px rgba(45,212,191,0.15);
}
.form-control-custom::placeholder{ color:var(--muted); opacity:0.7; }
.form-note{
  font-size:0.78rem;
  color:var(--muted);
}
#formSuccess{
  display:none;
  text-align:center;
  padding:2rem 0;
}
#formSuccess i{ font-size:2.5rem; color:var(--signal); }

/* FOOTER */
footer{
  background:var(--ink);
  padding:3rem 0 2rem;
}
footer .mono{ color:var(--muted); font-size: 0.85rem; }
.footer-link{
  color:var(--muted);
  text-decoration:none;
  font-size:0.9rem;
  display:block;
  margin-bottom:0.6rem;
  transition:color .2s ease;
}
.footer-link:hover{ color:var(--signal); }