:root{
  --bg:#0a0a0a;
  --panel:#141414;
  --panel-hover:#1a1a1a;
  --border:#232323;
  --red:#e6291c;
  --white:#ffffff;
  --gray:#8a8a8a;
  --gray-dim:#5c5c5c;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:
    radial-gradient(ellipse 70% 55% at 78% 8%, rgba(210,45,25,0.24), transparent 60%),
    radial-gradient(ellipse 60% 50% at 15% 85%, rgba(160,25,15,0.14), transparent 65%),
    var(--bg);
  color:var(--white);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1400px; margin:0 auto; padding:0 5vw;}

.noise{
  position:fixed; inset:0; pointer-events:none; opacity:0.035; z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* NAV */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 5vw;
  background:linear-gradient(to bottom, rgba(10,10,10,0.92), transparent);
}
.logo-mark{ height:58px; width:auto; display:block; }
.nav-links{display:flex; gap:38px; font-size:13px; letter-spacing:0.06em; color:var(--gray); text-transform:uppercase; font-weight:500; list-style:none;}
.nav-links li{ display:inline-block; }
.nav-links a:hover{color:var(--white);}
.nav-cta{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.04em;
  border:1px solid var(--border); padding:9px 18px; border-radius:100px;
  display:flex; align-items:center; gap:8px;
}
.nav-cta:hover{border-color:var(--red); color:var(--red);}
.menu-toggle{ display:none; background:none; border:1px solid var(--border); border-radius:100px; color:var(--white); padding:8px 14px; font-family:'IBM Plex Mono',monospace; font-size:12px; }

/* HERO */
.hero{
  position:relative; min-height:100vh; display:flex; flex-direction:column; justify-content:center;
  padding:0 5vw; overflow:hidden;
}
.route-svg{ position:absolute; top:0; left:0; width:100%; height:100%; z-index:0; opacity:0.5; }
.route-path{ fill:none; stroke:var(--red); stroke-width:1; stroke-dasharray:6 7; animation:dash 3.5s linear infinite; }
@keyframes dash{ to{ stroke-dashoffset:-260; } }
.route-node{ fill:var(--red); animation:pulse 2.6s ease-in-out infinite; }
.route-node.d2{ animation-delay:0.9s; }
.route-node.d3{ animation-delay:1.7s; }
@keyframes pulse{ 0%,100%{ opacity:0.35; r:3; } 50%{ opacity:1; r:5; } }

.kicker{
  position:relative; z-index:2;
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.12em;
  color:var(--gray); display:flex; align-items:center; gap:10px; margin-bottom:28px;
  text-transform:uppercase;
}
.kicker::before{ content:''; width:8px; height:8px; background:var(--red); display:inline-block; }

h1,h2,h3{ font-family:'Poppins',sans-serif; font-weight:800; letter-spacing:-0.02em; }
.hero h1{
  position:relative; z-index:2;
  font-size:clamp(2.6rem, 6.2vw, 5.4rem);
  line-height:1.05;
  max-width:16ch;
}
.hero h1 em{ font-style:normal; color:var(--red); }

.hero-foot{
  position:relative; z-index:2;
  display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:32px;
  margin-top:64px;
}
.cta-row{ display:flex; align-items:center; gap:14px; }
.cta-primary{
  font-family:'Inter',sans-serif; font-size:14px; letter-spacing:0.01em;
  background:var(--red); color:var(--white); padding:15px 28px; border-radius:100px;
  font-weight:600; display:inline-flex; align-items:center; gap:10px;
  transition:transform 0.2s ease; border:none; cursor:pointer;
}
.cta-primary:hover{ transform:translateX(4px); }
.hero-sub{ max-width:380px; font-size:16px; line-height:1.65; color:rgba(255,255,255,0.7); text-align:right; }

.scroll-mark{
  position:absolute; bottom:36px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.15em; color:var(--gray);
}
.scroll-pill{ width:22px; height:34px; border:1px solid var(--border); border-radius:100px; position:relative; }
.scroll-pill::before{
  content:''; position:absolute; top:6px; left:50%; transform:translateX(-50%);
  width:3px; height:6px; background:var(--red); border-radius:100px;
  animation:scrolldot 1.8s ease-in-out infinite;
}
@keyframes scrolldot{ 0%{ opacity:1; top:6px;} 60%{opacity:0; top:18px;} 100%{opacity:0; top:6px;} }

/* PAGE HEADER (non-home pages) */
.page-hero{ padding:180px 5vw 80px; border-bottom:1px solid var(--border); }
.page-hero h1{ font-size:clamp(2.2rem,5vw,3.6rem); max-width:18ch; }
.page-hero p{ color:var(--gray); max-width:60ch; margin-top:20px; font-size:16px; line-height:1.7; }

/* PILLARS / SERVICES */
.pillars{ position:relative; z-index:2; padding:110px 5vw; border-top:1px solid var(--border); display:grid; grid-template-columns:1fr 2fr; gap:60px; }
.pillars-head .eyebrow{ font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.12em; color:var(--red); margin-bottom:18px; text-transform:uppercase; }
.pillars-head h2{ font-size:clamp(1.6rem,3vw,2.4rem); line-height:1.15; }
.pillar-list{ display:flex; flex-direction:column; }
.pillar{ display:grid; grid-template-columns:64px 1fr; gap:24px; padding:26px 0; border-bottom:1px solid var(--border); align-items:baseline; }
.pillar:first-child{ border-top:1px solid var(--border); }
.pillar-num{ font-family:'IBM Plex Mono',monospace; color:var(--gray-dim); font-size:13px; }
.pillar-name{ font-family:'Poppins',sans-serif; font-size:20px; font-weight:600; }
.pillar-desc{ color:var(--gray); font-size:14px; margin-top:6px; max-width:52ch; line-height:1.6; }

/* INSIGHTS / ARTICLE GRID */
.insights{ padding:110px 5vw; border-top:1px solid var(--border); }
.insights-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; flex-wrap:wrap; gap:20px; }
.insights-head h2{ font-size:clamp(1.6rem,3vw,2.4rem); }
.view-all{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--gray); display:flex; gap:8px; align-items:center; }
.view-all:hover{ color:var(--red); }

.article-grid{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--border); border-left:1px solid var(--border); }
.article-card{ background:var(--panel); padding:32px 28px; display:flex; flex-direction:column; min-height:280px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
.article-tag{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.08em; color:var(--red); margin-bottom:20px; text-transform:uppercase; }
.article-title{ font-family:'Poppins',sans-serif; font-size:19px; font-weight:600; line-height:1.35; margin-bottom:14px; }
.article-meta{ margin-top:auto; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gray); display:flex; justify-content:space-between; padding-top:18px; border-top:1px solid var(--border); }

@media (max-width:820px){
  .article-grid{ grid-template-columns:1fr; }
}

/* CASE STUDIES */
.case-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--border); border:1px solid var(--border); margin-top:40px; }
.case-card{ background:var(--panel); padding:40px 5vw; }
.case-sector{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.08em; color:var(--gray); text-transform:uppercase; margin-bottom:14px; }
.case-name{ font-size:clamp(1.4rem,2.4vw,2rem); margin-bottom:18px; }
.case-field{ margin-bottom:14px; font-size:15px; line-height:1.7; color:rgba(255,255,255,0.85); }
.case-field b{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.06em; color:var(--red); text-transform:uppercase; display:block; margin-bottom:6px; }
.stat-row{ display:flex; gap:1px; background:var(--border); border:1px solid var(--border); margin:24px 0; flex-wrap:wrap; }
.stat-box{ background:var(--bg); padding:20px 24px; flex:1; min-width:140px; }
.stat-value{ font-family:'Poppins',sans-serif; font-weight:800; font-size:28px; color:var(--white); }
.stat-label{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gray); margin-top:4px; }
.case-highlights{ margin-top:18px; padding-left:20px; color:rgba(255,255,255,0.8); font-size:15px; line-height:1.8; }

/* SERVICES PAGE LIST */
.services-page-list{ padding:40px 5vw 120px; }

/* CONTACT FORM */
.contact-wrap{ padding:60px 5vw 140px; display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.contact-form{ display:flex; flex-direction:column; gap:18px; }
.contact-form input, .contact-form textarea{
  background:var(--panel); border:1px solid var(--border); color:var(--white);
  padding:16px 18px; font-family:'Inter',sans-serif; font-size:15px; border-radius:4px;
}
.contact-form textarea{ min-height:140px; resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus{ outline:2px solid var(--red); outline-offset:2px; }
.contact-form button{ align-self:flex-start; }
.contact-info{ color:var(--gray); font-size:15px; line-height:1.9; }
.contact-info a{ color:var(--white); }
.form-success{ color:var(--red); font-family:'IBM Plex Mono',monospace; font-size:14px; margin-top:14px; }

@media (max-width:820px){ .contact-wrap{ grid-template-columns:1fr; } }

/* FOOTER */
.site-footer{ padding:70px 5vw 40px; border-top:1px solid var(--border); display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:30px; }
.foot-logo-mark{ height:66px; width:auto; }
.foot-links{ display:flex; gap:28px; font-size:13px; color:var(--gray); flex-wrap:wrap; list-style:none; }
.foot-links a:hover{ color:var(--white); }
.foot-note{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gray-dim); width:100%; margin-top:36px; }

@media (max-width:820px){
  .pillars{ grid-template-columns:1fr; }
  .nav-links{ display:none; }
  .hero-sub{ text-align:left; }
  .contact-wrap{ padding-top:20px; }
}
