:root{
  --bg:#0A0F1C;
  --surface:#111A2E;
  --surface-2:#182338;
  --line:#24314A;
  --line-soft:#1a2438;
  --text:#E8ECF4;
  --text-dim:#8FA0BC;
  --text-dimmer:#5C6C87;
  --signal:#4CE0C4;
  --signal-dim:rgba(76,224,196,0.15);
  --copper:#E8A33D;
  --copper-dim:rgba(232,163,61,0.15);
  --radius:2px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  letter-spacing:-0.01em;
}

.mono{font-family:'JetBrains Mono',monospace;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}

/* blueprint grid texture */
.grid-bg{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size:64px 64px;
  opacity:0.35;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, black 40%, transparent 90%);
}

.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
  position:relative;
  z-index:1;
}

/* ---------- NAV ---------- */
header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  background:rgba(10,15,28,0.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:1180px;
  margin:0 auto;
  padding:18px 32px;
}
.logo{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:1.15rem;
  letter-spacing:0.02em;
  display:flex;
  align-items:center;
  gap:8px;
}
.logo .dot{
  width:8px;height:8px;
  background:var(--signal);
  border-radius:50%;
  box-shadow:0 0 12px var(--signal);
  flex-shrink:0;
}
.nav-links{
  display:flex;
  gap:36px;
  font-size:0.86rem;
  color:var(--text-dim);
}
.nav-links a{
  transition:color 0.2s ease;
  position:relative;
  padding-bottom:4px;
}
.nav-links a:hover, .nav-links a:focus-visible{color:var(--text);}
.nav-links a.active{color:var(--text);}
.nav-links a.active::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:-6px;
  height:1px;
  background:var(--signal);
}
.nav-cta{
  font-family:'JetBrains Mono',monospace;
  font-size:0.78rem;
  padding:9px 18px;
  border:1px solid var(--signal);
  color:var(--signal);
  border-radius:var(--radius);
  transition:all 0.2s ease;
  white-space:nowrap;
}
.nav-cta:hover, .nav-cta:focus-visible{background:var(--signal);color:var(--bg);}
.nav-toggle{display:none;background:none;border:none;color:var(--text);cursor:pointer;padding:4px;}

/* ---------- PAGE HERO (sub-pages) ---------- */
.page-hero{
  padding:168px 0 72px;
  border-bottom:1px solid var(--line);
}
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:0.76rem;
  letter-spacing:0.12em;
  color:var(--signal);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:22px;
  text-transform:uppercase;
}
.eyebrow::before{
  content:'';
  width:22px;height:1px;
  background:var(--signal);
}
.page-hero h1{
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.1;
  max-width:760px;
  margin-bottom:20px;
}
.page-hero p.lead{
  color:var(--text-dim);
  font-size:1.04rem;
  max-width:600px;
}

/* ---------- HOME HERO ---------- */
.hero{padding:168px 0 100px;position:relative;}
.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;}
.hero h1{font-size:clamp(2.2rem, 4.4vw, 3.4rem);line-height:1.08;margin-bottom:22px;}
.hero h1 em{font-style:normal;color:var(--signal);}
.hero p.lead{color:var(--text-dim);font-size:1.04rem;max-width:520px;margin-bottom:34px;}

.btn-row{display:flex;gap:14px;flex-wrap:wrap;}
.btn{
  padding:13px 26px;
  border-radius:var(--radius);
  font-size:0.92rem;
  font-weight:500;
  transition:all 0.2s ease;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.btn-primary{background:var(--signal);color:#06121B;font-weight:600;}
.btn-primary:hover, .btn-primary:focus-visible{background:#3fd1b6;transform:translateY(-1px);}
.btn-ghost{border:1px solid var(--line);color:var(--text-dim);}
.btn-ghost:hover, .btn-ghost:focus-visible{border-color:var(--text-dim);color:var(--text);}

/* schematic diagram */
.schematic{position:relative;aspect-ratio:1/1;max-width:480px;margin:0 auto;}
.schematic svg{width:100%;height:100%;overflow:visible;}
.node-label{font-family:'JetBrains Mono',monospace;font-size:10px;fill:var(--text-dim);letter-spacing:0.04em;}
.telemetry{
  position:absolute;bottom:-8px; left:0;
  display:flex;gap:22px;
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--text-dimmer);
}
.telemetry span b{color:var(--signal);font-weight:500;}

@keyframes dash{to{stroke-dashoffset:0;}}
@keyframes pulseGlow{0%,100%{opacity:0.4;} 50%{opacity:1;}}
.path-flow{stroke-dasharray:6 6;stroke-dashoffset:240;animation:dash 8s linear infinite;}
.node-core{animation:pulseGlow 2.6s ease-in-out infinite;}
.node-core.d1{animation-delay:0.4s;}
.node-core.d2{animation-delay:0.9s;}
.node-core.d3{animation-delay:1.3s;}

/* ---------- SECTION SHARED ---------- */
section{padding:104px 0;position:relative;border-top:1px solid var(--line);}
section.no-border{border-top:none;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head h2{font-size:clamp(1.7rem, 3vw, 2.3rem);margin-bottom:16px;}
.section-head p{color:var(--text-dim);font-size:1rem;}
.section-head.with-link{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.text-link{
  font-family:'JetBrains Mono',monospace;
  font-size:0.8rem;
  color:var(--signal);
  white-space:nowrap;
  border-bottom:1px solid transparent;
  transition:border-color 0.2s ease;
}
.text-link:hover{border-color:var(--signal);}

/* ---------- ABOUT / STATS ---------- */
.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.about-layout p{color:var(--text-dim);margin-bottom:16px;}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
.stat{background:var(--bg);padding:26px 24px;}
.stat .num{font-family:'JetBrains Mono',monospace;font-size:2rem;color:var(--signal);display:block;margin-bottom:6px;}
.stat .label{color:var(--text-dimmer);font-size:0.8rem;letter-spacing:0.03em;}

/* value / approach cards (about page) */
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.value-card{background:var(--surface);padding:32px;}
.value-card .idx{font-family:'JetBrains Mono',monospace;color:var(--text-dimmer);font-size:0.78rem;margin-bottom:14px;display:block;}
.value-card h3{font-size:1.1rem;margin-bottom:10px;}
.value-card p{color:var(--text-dim);font-size:0.92rem;}

/* ---------- PRODUCTS ---------- */
.product-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:40px;
  margin-bottom:24px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:44px;
}
.product-card:last-child{margin-bottom:0;}
.product-tag{
  font-family:'JetBrains Mono',monospace;
  font-size:0.7rem;
  color:var(--copper);
  letter-spacing:0.08em;
  margin-bottom:14px;
  display:inline-block;
  border:1px solid var(--copper-dim);
  padding:4px 10px;
  border-radius:var(--radius);
}
.product-card h3{font-size:1.5rem;margin-bottom:14px;}
.product-card > div > p{color:var(--text-dim);margin-bottom:18px;}
.feat-list{display:flex;flex-direction:column;gap:10px;}
.feat-list li{display:flex;gap:10px;font-size:0.9rem;color:var(--text-dim);align-items:flex-start;}
.feat-list li::before{content:'';width:6px;height:6px;margin-top:7px;background:var(--signal);flex-shrink:0;}
.feat-col-title{
  font-family:'JetBrains Mono',monospace;
  font-size:0.7rem;
  color:var(--text-dimmer);
  letter-spacing:0.08em;
  margin-bottom:14px;
  text-transform:uppercase;
}

/* compact product preview cards (home page) */
.product-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.product-preview{
  background:var(--surface);
  border:1px solid var(--line);
  padding:32px;
  border-radius:var(--radius);
  transition:border-color 0.2s ease, transform 0.2s ease;
}
.product-preview:hover{border-color:var(--signal);transform:translateY(-2px);}
.product-preview h3{font-size:1.25rem;margin:12px 0 10px;}
.product-preview p{color:var(--text-dim);font-size:0.92rem;margin-bottom:16px;}

/* ---------- SERVICES ---------- */
.service-list{display:flex;flex-direction:column;border-top:1px solid var(--line);}
.service-row{
  display:grid;
  grid-template-columns:220px 1fr 1fr;
  gap:40px;
  padding:36px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.service-tag{font-family:'JetBrains Mono',monospace;font-size:0.72rem;color:var(--signal);letter-spacing:0.06em;padding-top:4px;}
.service-row h3{font-size:1.2rem;margin-bottom:10px;}
.service-row p{color:var(--text-dim);font-size:0.94rem;}
.service-row .feat-list{margin-top:2px;}
.service-row .feat-list li{font-size:0.86rem;}

/* compact service grid (home page) */
.service-preview-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.service-preview{background:var(--surface);padding:26px 22px;transition:background 0.2s ease;}
.service-preview:hover{background:var(--surface-2);}
.service-preview .service-tag{display:block;margin-bottom:14px;}
.service-preview h4{font-size:0.98rem;margin-bottom:8px;}
.service-preview p{color:var(--text-dim);font-size:0.82rem;}

/* ---------- CONTACT ---------- */
.contact-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;}
.contact-info-block{margin-bottom:28px;}
.contact-info-block .label{
  font-family:'JetBrains Mono',monospace;
  font-size:0.72rem;
  color:var(--text-dimmer);
  letter-spacing:0.06em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.contact-info-block .val{color:var(--text);font-size:1rem;}
.contact-info-block a.val:hover{color:var(--signal);}

form{background:var(--surface);border:1px solid var(--line);padding:36px;border-radius:var(--radius);}
.field{margin-bottom:20px;}
.field label{
  display:block;
  font-family:'JetBrains Mono',monospace;
  font-size:0.72rem;
  color:var(--text-dimmer);
  letter-spacing:0.05em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.field input, .field textarea, .field select{
  width:100%;
  background:var(--bg);
  border:1px solid var(--line);
  color:var(--text);
  padding:12px 14px;
  font-family:'Inter',sans-serif;
  font-size:0.94rem;
  border-radius:var(--radius);
  transition:border-color 0.2s ease;
}
.field input:focus, .field textarea:focus, .field select:focus{outline:none;border-color:var(--signal);}
.field textarea{resize:vertical;min-height:100px;}
.submit-btn{
  width:100%;
  background:var(--signal);
  color:#06121B;
  border:none;
  padding:14px;
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:0.94rem;
  border-radius:var(--radius);
  cursor:pointer;
  transition:background 0.2s ease;
}
.submit-btn:hover{background:#3fd1b6;}

/* CTA banner */
.cta-banner{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:56px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
}
.cta-banner h2{font-size:1.6rem;max-width:480px;}
.cta-banner p{color:var(--text-dim);margin-top:8px;max-width:480px;}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--line);padding:40px 0;}
.footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.footer-row .mono{color:var(--text-dimmer);font-size:0.78rem;}
.social-row{display:flex;gap:20px;}
.social-row a{color:var(--text-dimmer);font-size:0.82rem;transition:color 0.2s ease;}
.social-row a:hover{color:var(--signal);}

/* reveal animation */
.reveal{opacity:0;transform:translateY(16px);transition:opacity 0.7s ease, transform 0.7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

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

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
  .schematic{margin-top:20px;max-width:360px;}
  .about-layout{grid-template-columns:1fr;gap:36px;}
  .product-card{grid-template-columns:1fr;gap:24px;}
  .product-preview-grid{grid-template-columns:1fr;}
  .service-row{grid-template-columns:1fr;gap:12px;}
  .service-preview-grid{grid-template-columns:repeat(2,1fr);}
  .value-grid{grid-template-columns:1fr;}
  .contact-layout{grid-template-columns:1fr;}
  .cta-banner{padding:36px;}
}
@media (max-width:640px){
  .nav-links{
    position:fixed;top:64px; left:0; right:0;
    background:var(--surface);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    padding:20px 32px;
    gap:18px;
    display:none;
  }
  .nav-links.open{display:flex;}
  .nav-toggle{display:block;}
  .nav-cta{display:none;}
  section{padding:72px 0;}
  .hero{padding:140px 0 64px;}
  .page-hero{padding:140px 0 56px;}
  .stat-grid{grid-template-columns:1fr 1fr;}
  .service-preview-grid{grid-template-columns:1fr;}
}
