:root{
  --slate-950:#0A1120;
  --slate-900:#0F1830;
  --slate-800:#1B2740;
  --slate-600:#3E4E6B;
  --sky-500:#2F8FE0;
  --sky-300:#8FCBF2;
  --gold-500:#F2A72E;
  --gold-300:#FBCD7F;
  --paper:#FBFCFE;
  --ink:#0F1826;
  --gray-500:#5C6B84;
  --gray-300:#B9C3D4;
  --line:#E3E8F0;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Space Grotesk',sans-serif;
  letter-spacing:-0.01em;
}
.mono{
  font-family:'JetBrains Mono',monospace;
  letter-spacing:0.02em;
}
a{text-decoration:none;color:inherit;}
.wrap{max-width:1240px;margin:0 auto;padding-left:24px;padding-right:24px;}
img{max-width:100%;display:block;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:16px 0;
  transition:background 0.35s ease, padding 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
  border-bottom:1px solid transparent;
  background:rgba(10,17,32,0.55);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.site-header.scrolled{
  background:rgba(10,17,32,0.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:11px 0;
  border-color:rgba(255,255,255,0.08);
  box-shadow:0 8px 30px -12px rgba(0,0,0,0.4);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo{display:flex;align-items:center;gap:10px;color:#fff;}
.logo img{height:42px;width:auto;}
.logo-text{display:flex;flex-direction:column;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:16px;line-height:1.15;}
.logo-text .sub{font-family:'JetBrains Mono',monospace;font-weight:400;font-size:9.5px;letter-spacing:0.16em;color:var(--sky-300);text-transform:uppercase;margin-top:2px;}
.nav-links{display:flex;align-items:center;gap:32px;}
.nav-links a{
  color:rgba(255,255,255,0.82);
  font-size:14.5px; font-weight:500;
  position:relative; padding:4px 0;
}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:-2px;width:0;height:1.5px;
  background:var(--gold-500); transition:width 0.25s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
.nav-links a:hover, .nav-links a.active{color:#fff;}
.cta-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--gold-500); color:var(--slate-950);
  font-weight:600; font-size:14px;
  padding:11px 22px; border-radius:3px;
  border:1px solid var(--gold-500);
  position:relative; overflow:hidden;
  transition:transform 0.2s ease, box-shadow 0.2s ease;
  cursor:pointer;
}
.cta-btn:hover{ box-shadow:0 8px 24px -6px rgba(242,167,46,0.55); transform:translateY(-1px);}
.cta-btn::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,0.55), transparent);
  transform:translateX(-120%); transition:transform 0.6s ease;
}
.cta-btn:hover::before{transform:translateX(120%);}
.cta-btn.outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.35);}
.cta-btn.outline:hover{border-color:var(--sky-300); box-shadow:0 8px 24px -8px rgba(143,203,242,0.35);}

.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.burger span{width:22px;height:2px;background:#fff;display:block;transition:0.3s;}

/* mobile nav panel */
.mobile-nav{
  position:fixed; inset:0; background:var(--slate-950); z-index:200;
  display:flex; flex-direction:column; padding:24px; transform:translateX(100%);
  transition:transform 0.35s ease;
}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav .close-btn{align-self:flex-end; background:none; border:none; color:#fff; font-size:26px; cursor:pointer;}
.mobile-nav a{color:#fff; font-size:22px; font-family:'Space Grotesk',sans-serif; padding:16px 0; border-bottom:1px solid rgba(255,255,255,0.08);}

/* ---------- Hero (homepage) ---------- */
.hero{
  position:relative; background:var(--slate-950); color:#fff;
  padding:168px 0 0; overflow:hidden;
  min-height:92vh; display:flex; flex-direction:column; justify-content:center;
}
.grid-svg{position:absolute; inset:0; width:100%; height:100%; opacity:0.9;}
.hero-overlay{
  position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 50% at 50% 30%, rgba(10,17,32,0) 0%, rgba(10,17,32,0.55) 60%, var(--slate-950) 100%);
  pointer-events:none;
}
.hero-content{position:relative; z-index:2; text-align:center;}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--sky-300);
  border:1px solid rgba(143,203,242,0.3); padding:7px 16px; border-radius:999px;
  background:rgba(143,203,242,0.06);
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--gold-500);box-shadow:0 0 0 4px rgba(242,167,46,0.18);}
.hero h1{
  font-size:clamp(2.2rem, 5.4vw, 4.4rem); line-height:1.06; font-weight:700;
  margin:26px auto 22px; max-width:920px;
}
.hero h1 .accent{color:var(--gold-500);}
.hero p.lede{
  max-width:640px;margin:0 auto 40px; color:var(--gray-300);
  font-size:17px; line-height:1.7;
}
.hero-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

.scroll-cue{
  position:relative; z-index:2; margin:56px auto 0; display:flex; flex-direction:column; align-items:center; gap:8px;
  color:var(--gray-300); font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
}
.scroll-cue .line{width:1px;height:34px;background:linear-gradient(var(--sky-300), transparent); animation:scrollpulse 1.8s ease-in-out infinite;}
@keyframes scrollpulse{0%,100%{opacity:0.25;} 50%{opacity:1;}}

/* ---------- Sub-page hero (service pages) ---------- */
.subhero{
  position:relative; background:var(--slate-950); color:#fff;
  padding:150px 0 74px; overflow:hidden;
}
.subhero .hero-overlay{background:radial-gradient(ellipse 70% 60% at 30% 10%, rgba(10,17,32,0) 0%, rgba(10,17,32,0.5) 55%, var(--slate-950) 100%);}
.breadcrumb{
  position:relative; z-index:2; display:flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--gray-300); text-transform:uppercase; letter-spacing:0.08em;
  margin-bottom:20px;
}
.breadcrumb a{color:var(--sky-300);}
.breadcrumb a:hover{color:var(--gold-300);}
.subhero h1{position:relative; z-index:2; font-size:clamp(1.9rem,4.4vw,3.2rem); font-weight:700; max-width:760px; margin:0 0 16px;}
.subhero .lede{position:relative; z-index:2; max-width:620px; color:var(--gray-300); font-size:16px; line-height:1.7; margin:0;}

/* ---------- Busbar stat strip ---------- */
.stat-strip-wrap{position:relative; z-index:3; margin-top:-64px;}
.stat-strip{
  background:var(--paper); border:1px solid var(--line);
  border-radius:6px; box-shadow:0 24px 60px -20px rgba(10,17,32,0.35);
  display:grid; grid-template-columns:repeat(4,1fr);
}
.stat-cell{padding:30px 20px; text-align:center; position:relative;}
.stat-cell + .stat-cell::before{
  content:''; position:absolute; left:0; top:20%; bottom:20%; width:1px; background:var(--line);
}
.stat-num{
  font-family:'JetBrains Mono',monospace; font-weight:600; font-size:clamp(1.7rem,3vw,2.5rem);
  color:var(--slate-950); display:flex; align-items:baseline; justify-content:center; gap:2px;
}
.stat-num .unit{color:var(--gold-500); font-size:0.55em;}
.stat-label{margin-top:6px; font-size:12.5px; color:var(--gray-500); text-transform:uppercase; letter-spacing:0.08em;}

/* ---------- Section shell ---------- */
section{padding:120px 0;}
.section-tag{
  font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--sky-500); display:flex; align-items:center; gap:10px; margin-bottom:16px;
}
.section-tag::before{content:'';width:26px;height:1px;background:var(--sky-500);}
.section-head h2{font-size:clamp(1.7rem,3.2vw,2.5rem); font-weight:700; color:var(--slate-950); max-width:640px;}
.section-head p{color:var(--gray-500); font-size:16px; max-width:560px; margin-top:14px; line-height:1.7;}

/* ---------- Services grid (homepage) ---------- */
.services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:56px;}
.svc-card{
  position:relative; background:#fff; border-radius:8px; padding:32px 26px 28px;
  border:1px solid var(--line); overflow:hidden; display:block;
  transition:transform 0.35s cubic-bezier(.2,.8,.2,1), box-shadow 0.35s ease;
}
.svc-card::before{
  content:''; position:absolute; inset:0; border-radius:8px; padding:1px;
  background:linear-gradient(135deg, var(--sky-500), var(--gold-500));
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  opacity:0; transition:opacity 0.4s ease;
}
.svc-card:hover{transform:translateY(-6px); box-shadow:0 30px 60px -24px rgba(15,24,40,0.25);}
.svc-card:hover::before{opacity:1;}
.svc-index{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--gray-300); letter-spacing:0.1em;}
.svc-icon{
  width:50px; height:50px; border-radius:8px; margin:16px 0 20px;
  display:flex; align-items:center; justify-content:center;
  background:var(--slate-950); color:var(--gold-500);
  transition:transform 0.35s ease, background 0.35s ease;
}
.svc-card:hover .svc-icon{transform:scale(1.08) rotate(-4deg); background:var(--sky-500); color:#fff;}
.svc-icon svg{width:24px;height:24px;}
.svc-card h3{font-size:17.5px; font-weight:700; color:var(--slate-950); margin:0 0 10px;}
.svc-card p{color:var(--gray-500); font-size:14px; line-height:1.6; margin:0 0 18px;}
.svc-more{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.06em; color:var(--sky-500); display:inline-flex; align-items:center; gap:6px;}
.svc-more svg{width:13px;height:13px; transition:transform 0.25s ease;}
.svc-card:hover .svc-more svg{transform:translateX(4px);}
.svc-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;}
.svc-list li{font-size:13px; color:var(--slate-800); display:flex; align-items:center; gap:8px;}
.svc-list li::before{content:'';width:5px;height:5px;background:var(--gold-500); flex-shrink:0;}

/* ---------- Divider busbar motif ---------- */
.busbar{position:relative; height:2px; background:var(--line); margin:0;}
.busbar .node{position:absolute; top:50%; width:8px;height:8px;border-radius:50%; background:var(--sky-500); transform:translate(-50%,-50%); box-shadow:0 0 0 5px rgba(47,143,224,0.12);}

/* ---------- About / split ---------- */
.about-section{background:var(--slate-950); color:#fff;}
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start;}
.about-section .section-tag{color:var(--gold-300);}
.about-section .section-tag::before{background:var(--gold-300);}
.about-section .section-head h2{color:#fff;}
.about-section .section-head p{color:var(--gray-300);}
.about-copy p{color:var(--gray-300); font-size:15px; line-height:1.75; margin:0 0 16px;}
.motto{
  border-left:2px solid var(--gold-500); padding-left:18px; margin:26px 0;
  font-family:'Space Grotesk',sans-serif; font-size:17px; font-style:italic; color:#fff;
}
.pillars{list-style:none; margin:22px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 20px;}
.pillars li{font-size:13.5px; color:var(--gray-300); display:flex; gap:9px; align-items:flex-start;}
.pillars li::before{content:'';width:6px;height:6px;background:var(--sky-300); margin-top:6px; flex-shrink:0;}
.vm-cards{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:36px;}
.vm-card{background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.09); border-radius:8px; padding:22px;}
.vm-card h4{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--sky-300); margin:0 0 10px;}
.vm-card p{font-size:14px; line-height:1.65; color:var(--gray-300); margin:0;}
.vm-card ul{margin:0; padding-left:16px; color:var(--gray-300); font-size:13.5px; line-height:1.7;}

.timeline{position:relative; padding-left:34px;}
.timeline::before{content:'';position:absolute; left:6px; top:6px; bottom:6px; width:2px; background:rgba(255,255,255,0.14);}
.journey-line{position:absolute; left:6px; top:6px; width:2px; background:var(--accent); height:0%; z-index:1; box-shadow:0 0 10px var(--accent);}
.tl-item{position:relative; padding-bottom:38px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{
  content:''; position:absolute; left:-34px; top:2px; width:13px; height:13px; border-radius:50%;
  background:var(--slate-950); border:2px solid var(--gold-500);
  transition: background 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s ease;
  z-index: 2;
}
.tl-item.active::before {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 12px var(--accent);
  transform: scale(1.3);
}
.tl-year{font-family:'JetBrains Mono',monospace; color:var(--gold-300); font-size:13px; letter-spacing:0.06em;}
.tl-item h4{margin:6px 0 6px; font-size:17px; font-weight:600;}
.tl-item p{margin:0; color:var(--gray-300); font-size:14px; line-height:1.6;}

/* ---------- Clients grid ---------- */
.clients-section{padding-top:96px; padding-bottom:96px;}
.clients-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 24px;
  justify-items: center;
  align-items: center;
}
.client-card{
  width:100%; max-width:240px; height:120px; background:#fff; border:1px solid var(--line); border-radius:12px;
  display:flex; align-items:center; justify-content:center; padding:24px;
  transition:transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.client-card:hover{transform:translateY(-4px) scale(1.02); box-shadow:0 15px 30px -10px rgba(0,0,0,0.15); border-color:var(--sky-300); z-index: 10;}
.client-card img{max-height:100%; max-width: 100%; margin:0 auto; filter:grayscale(1); opacity:0.6; transition:filter 0.4s ease, opacity 0.4s ease, transform 0.4s ease;}
.client-card:hover img{filter:grayscale(0); opacity:1; transform: scale(1.05);}

/* ---------- Service detail page content ---------- */
.svc-detail{display:grid; grid-template-columns:0.85fr 1.6fr; gap:60px; align-items:start;}
.svc-side{position:sticky; top:120px; display:flex; flex-direction:column; gap:8px;}
.svc-side a{
  padding:13px 16px; border-radius:6px; font-size:14.5px; font-weight:500; color:var(--slate-800);
  border:1px solid var(--line); display:flex; align-items:center; justify-content:space-between;
  transition:0.2s;
}
.svc-side a:hover{border-color:var(--sky-500); color:var(--sky-500);}
.svc-side a.active{background:var(--slate-950); border-color:var(--slate-950); color:#fff;}
.svc-side a.active svg{color:var(--gold-500);}
.svc-body h2{font-size:1.6rem; font-weight:700; color:var(--slate-950); margin:0 0 18px;}
.svc-body p{font-size:15.5px; line-height:1.8; color:var(--gray-500); margin:0 0 20px;}
.svc-points{list-style:none; margin:28px 0; padding:0; display:flex; flex-direction:column; gap:16px;}
.svc-points li{display:flex; gap:14px; align-items:flex-start; font-size:14.5px; color:var(--slate-800); line-height:1.65;}
.svc-points .pt-ico{
  width:30px;height:30px;border-radius:50%; background:rgba(47,143,224,0.1); color:var(--sky-500);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px;
}
.svc-points .pt-ico svg{width:15px;height:15px;}
.svc-cta-band{
  margin-top:44px; padding:30px; border-radius:10px; background:var(--slate-950); color:#fff;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.svc-cta-band h4{margin:0 0 6px; font-size:18px;}
.svc-cta-band p{margin:0; color:var(--gray-300); font-size:13.5px;}

/* ---------- Contact / Footer ---------- */
footer{background:var(--slate-950); color:var(--gray-300); padding:88px 0 0;}
.footer-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:70px;}
footer h3{color:#fff; font-size:1.5rem; margin:0 0 14px;}
footer p.lede{color:var(--gray-300); font-size:15px; line-height:1.7; max-width:420px;}
.addr-block{margin-top:26px; display:flex; flex-direction:column; gap:14px;}
.addr-line{display:flex; gap:12px; align-items:flex-start; font-size:14px; color:var(--gray-300);}
.addr-line svg{flex-shrink:0; margin-top:2px; color:var(--sky-300);}
.foot-cols{display:flex; gap:56px; margin-top:8px;}
.foot-col h5{font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--sky-300); margin:0 0 16px;}
.foot-col a{display:block; font-size:14px; color:var(--gray-300); margin-bottom:11px; transition:color 0.2s;}
.foot-col a:hover{color:var(--gold-300);}
.social-row{display:flex; gap:12px; margin-top:26px;}
.social-row a{width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,0.16); display:flex; align-items:center; justify-content:center; transition:0.25s;}
.social-row a:hover{background:var(--sky-500); border-color:var(--sky-500);}

.contact-form{background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.1); border-radius:10px; padding:30px;}
.field{margin-bottom:18px; position:relative;}
.field label{display:block; font-size:12px; letter-spacing:0.05em; text-transform:uppercase; color:var(--gray-300); margin-bottom:7px; font-family:'JetBrains Mono',monospace;}
.field input, .field textarea{
  width:100%; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.16); border-radius:6px;
  padding:12px 14px; color:#fff; font-family:'Inter',sans-serif; font-size:14.5px; transition:border-color 0.2s, background 0.2s;
}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--sky-300); background:rgba(255,255,255,0.06);}
.field textarea{resize:vertical; min-height:96px;}
.field .err{display:none; color:var(--gold-300); font-size:12px; margin-top:6px;}
.field.invalid input, .field.invalid textarea{border-color:#E8664D;}
.field.invalid .err{display:block;}
.field.valid input, .field.valid textarea{border-color:#4CBB8E;}
.submit-row{display:flex; align-items:center; gap:16px;}
.form-msg{font-size:13px; color:var(--gold-300); display:none;}
.form-msg.show{display:block;}

.bottom-bar{
  margin-top:70px; border-top:1px solid rgba(255,255,255,0.09); padding:22px 0;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  font-size:12.5px; color:var(--gray-500);
}

/* ---------- reveal utility ---------- */
.reveal{opacity:0; transform:translateY(28px);}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .svc-detail{grid-template-columns:1fr; gap:36px;}
  .svc-side{position:static; flex-direction:row; overflow-x:auto;}
}
@media (max-width:900px){
  .nav-links, .header-cta{display:none;}
  .burger{display:flex;}
  .about-grid{grid-template-columns:1fr; gap:48px;}
  .footer-grid{grid-template-columns:1fr; gap:44px;}
  .stat-strip{grid-template-columns:repeat(2,1fr); row-gap:8px;}
  .stat-cell:nth-child(3)::before, .stat-cell:nth-child(1)::before{display:none;}
  section{padding:80px 0;}
  .foot-cols{gap:36px;}
  .pillars{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .services-grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .vm-cards{grid-template-columns:1fr;}
  .stat-strip{grid-template-columns:1fr 1fr;}
  .foot-cols{flex-wrap:wrap;}
  .svc-cta-band{flex-direction:column; align-items:flex-start;}
}

/* ---------- UI/UX Enhancements ---------- */
html.lenis { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-scrolling iframe { pointer-events: none; }

/* Custom Cursor */
/* Removed per user request */

/* Enhancements for svc-card hover */
.svc-card {
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease, border-color 0.4s ease;
  will-change: transform;
  transform-style: preserve-3d;
  perspective: 1000px;
}
.svc-card:hover {
  box-shadow: 0 15px 35px rgba(0,0,0,0.6);
  border-color: var(--accent);
  z-index: 2;
}

/* SplitText style */
.char { display: inline-block; opacity: 0; transform: translateY(20px); }

/* Parallax Banners */
.parallax-banner {
  position: relative;
  height: 450px;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin: 60px 0;
}
.parallax-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 15, 30, 0.65);
}
.parallax-banner .wrap {
  position: relative;
  z-index: 2;
}
.parallax-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  color: #fff;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
}
