/* ─────────────────────────────────────────
   TIMONIER SYSTEMS — main.css
   ─────────────────────────────────────────
   Sections:
   1.  Reset & Variables
   2.  Accessibility
   3.  Scroll Reveal
   4.  Navigation
   5.  Hero
   6.  Section Base
   7.  Capabilities
   8.  Sectors
   9.  Products
   10. Past Performance
   11. Open Source
   12. Tech Stack
   13. Service Catalog
   14. Contact & Form
   15. Footer
   16. Engagement Flow Steps
   17. Responsive
   18. Font Size Floor
───────────────────────────────────────── */

/* ── 1. Reset & Variables ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  /* backgrounds */
  --bg:  #161925;
  --bg2: #1A1D2E;
  --bg3: #1E2133;
  /* brand colours */
  --blue:   #4B8BF4;
  --blue2:  #2563EB;
  --blue3:  #1a47b8;
  --violet: #8B5CF6;
  --cyan:   #4DCDFF;
  --green:  #2EE89A;
  /* borders */
  --bd:  rgba(255,255,255,.07);
  --bd2: rgba(255,255,255,.13);
  /* text opacity levels */
  --d1: rgba(255,255,255,.65);
  --d2: rgba(255,255,255,.78);
  --d3: rgba(255,255,255,.93);
  --w:  #F0F4FF;
  /* fonts */
  --F: 'Inter', system-ui, sans-serif;
  --H: 'Space Grotesk', sans-serif;
  --M: 'JetBrains Mono', monospace;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
html { scroll-behavior: smooth; overflow-x: hidden; }
body { font-family: var(--F); background: var(--bg); color: var(--w); -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 1.7; position: relative; }

/* ── 2. Accessibility ── */
.skip-link { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; background: #fff; color: #000; padding: 8px 16px; font-size: 14px; font-weight: 600; z-index: 9999; }
.skip-link:focus { position: fixed; left: 0; top: 0; width: auto; height: auto; outline: 3px solid var(--blue); }
a:focus, button:focus, [tabindex]:focus { outline: 2px solid var(--blue); outline-offset: 2px; }
a { min-height: 0; display: inline; }
button { cursor: pointer; }

/* ── 3. Scroll Reveal ── */
@keyframes revealUp { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.reveal { opacity: 0; transform: translateY(5px); }
.reveal.in { animation: revealUp .7s cubic-bezier(.22,1,.36,1) forwards; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* ── 4. Navigation ── */
header { position: sticky; top: 0; z-index: 100; }
nav { height: 64px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px,4vw,56px); background: rgba(8,10,16,.98); border-bottom: 1px solid var(--bd); }
@supports (backdrop-filter: blur(1px)) and (not (-webkit-touch-callout: none)) {
  nav { background: rgba(8,10,16,.92); backdrop-filter: blur(16px); }
}
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.logo-sq { width: 28px; height: 28px; border: 1px solid rgba(75,139,244,.35); border-radius: 4px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: border-color .2s, box-shadow .2s; }
.logo-sq svg { width: 14px; height: 14px; }
.logo-t { font-family: var(--H); font-size: 15px; font-weight: 700; letter-spacing: .5px; color: var(--w); transition: color .2s; }
.logo-t span { color: var(--blue); }
.logo:hover .logo-sq { border-color: rgba(75,139,244,.7); box-shadow: 0 0 10px rgba(75,139,244,.22); }
.logo:hover .logo-t { color: #fff; }
.logo-img { height: 36px; width: auto; display: block; }
.ft-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.ft-brand-mark { height: 28px; width: auto; display: block; }
.ft-brand-name { font-family: var(--H); font-size: 14px; font-weight: 700; color: rgba(255,255,255,.7); letter-spacing: .3px; }
.ft-brand-name span { color: var(--blue); }
.nav-links { display: flex; gap: 28px; list-style: none; margin-left: auto; margin-right: 24px; }
.nav-links a { font-size: 14px; color: var(--d3); text-decoration: none; font-weight: 500; transition: color .2s; position: relative; padding-bottom: 3px; }
.nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1px; background: linear-gradient(90deg,var(--blue),var(--violet)); transition: width .25s cubic-bezier(.22,1,.36,1); }
.nav-links a:hover { color: #fff; }
.nav-links a:hover::after { width: 100%; }
.nav-cta { background: var(--blue2); color: #fff; padding: 9px 20px; border-radius: 4px; font-size: 14px; font-weight: 600; text-decoration: none; transition: background .2s, transform .15s, box-shadow .2s; display: inline-flex; align-items: center; }
.nav-cta:hover { background: var(--blue3); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(37,99,235,.4); }
.nav-cta:active { transform: scale(.97); box-shadow: none; }
/* mobile burger — hidden on desktop */
.nav-burger { display: none; flex-direction: column; justify-content: center; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; margin-left: 12px; }
.nav-burger span { display: block; width: 22px; height: 2px; background: var(--d3); border-radius: 2px; transition: all .2s; }
.nav-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger.open span:nth-child(2) { opacity: 0; }
.nav-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
/* mobile nav drawer */
.nav-links.mobile-open { display: flex; flex-direction: column; position: absolute; top: 64px; left: 0; right: 0; background: rgba(8,10,16,.99); border-bottom: 1px solid var(--bd); padding: 16px 24px 24px; gap: 4px; z-index: 99; }

/* ── 5. Hero ── */
.hero { padding: clamp(48px,8vw,80px) clamp(24px,4vw,56px); position: relative; overflow: hidden; border-bottom: 1px solid var(--bd); isolation: isolate; }
#hero-stars, #hero-earth { will-change: auto; contain: paint; }
.hero-rule { position: absolute; top: 0; left: 0; width: 3px; height: 100%; background: linear-gradient(180deg,var(--blue),var(--violet)); z-index: 1; }
.hero-dots { position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(rgba(75,139,244,.07) 1px,transparent 1px); background-size: 32px 32px; z-index: 0; }
#hero-stars { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
#hero-earth  { position: absolute; left: -30%; top: 50%; transform: translateY(-50%); width: 46%; aspect-ratio: 1; z-index: 0; pointer-events: none; opacity: .58; }
@media (max-width: 1100px) {
  #hero-stars { display: none; }
  #hero-earth { display: none; }
}
.hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 320px; gap: 40px; align-items: end; max-width: 1200px; margin: 0 auto; }
.hero-inner > div:first-child { padding-left: clamp(0px, 5vw, 72px); }
/* eyebrow */
.h-pre { font-family: var(--M); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--blue); margin-bottom: 22px; display: flex; align-items: center; gap: 10px; }
.h-pre::after { content: ''; flex: 0 0 28px; height: 1px; background: rgba(75,139,244,.4); }
/* heading */
.hero-heading { font-family: var(--H); font-size: clamp(2.2rem,4.2vw,3.9rem); font-weight: 700; line-height: .95; letter-spacing: -2px; margin-bottom: 8px; }
.hero-heading-last-line { display: block; min-height: 2.2em; }

.hero-heading .fade { color: var(--d2); }
/* typewriter */
.tw-wrap { display: inline; overflow: visible; }
.typewriter { color: var(--blue); }
.cursor { display: inline-block; width: 3px; height: .85em; background: var(--blue); vertical-align: middle; margin-left: 2px; animation: blink .75s step-end infinite; }
@keyframes blink { 0%,100% { opacity: 1; } 50% { opacity: 0; } }
/* gradient word */
.grd { background: linear-gradient(105deg,#38beff 0%,#7c6fff 45%,#d946ef 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; position: relative; }
.grd::before { content: attr(data-text); position: absolute; inset: 0; background: inherit; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: blur(12px); opacity: .35; z-index: -1; pointer-events: none; }
/* sub-copy & buttons */
.h-sub { font-size: clamp(15px,1.6vw,17px); color: var(--d3); line-height: 1.8; max-width: 540px; margin-bottom: 32px; }
.h-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-solid { background: var(--blue2); color: #fff; padding: 13px 26px; border-radius: 4px; font-size: 15px; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; transition: background .2s, transform .1s; }
.btn-solid:hover { background: var(--blue3); }
.btn-solid:active { transform: scale(.97); }
.btn-ghost { border: 1px solid var(--bd2); color: var(--d3); padding: 13px 26px; border-radius: 4px; font-size: 15px; text-decoration: none; display: inline-flex; align-items: center; transition: border-color .2s, color .2s, transform .1s; }
.btn-ghost:hover { border-color: rgba(75,139,244,.4); color: var(--blue); }
.btn-ghost:active { transform: scale(.97); }
/* credentials box */
.h-creds { border: 1px solid var(--bd); border-radius: 4px; overflow: hidden; min-width: 0; }
.hero-brand-in-creds { padding: 15px 16px; border-bottom: 1px solid var(--bd); background: rgba(75,139,244,.04); }
.hbic-name { font-family: var(--H); font-size: 13px; font-weight: 700; color: var(--w); letter-spacing: .3px; }
.hbic-tag { font-family: var(--M); font-size: 11px; color: var(--d2); margin-top: 2px; }
.hc-row { padding: 11px 14px; border-bottom: 1px solid var(--bd); display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hc-row:last-child { border-bottom: none; }
.hc-k { font-family: var(--M); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--d2); flex-shrink: 0; }
.hc-v { font-family: var(--H); font-size: 13px; font-weight: 700; color: var(--w); text-align: right; }
.hc-badge { font-family: var(--M); font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 2px; }
.hcb-g { background: rgba(34,197,94,.1); color: #4ade80; border: 1px solid rgba(34,197,94,.2); }
.hcb-b { background: rgba(75,139,244,.12); color: var(--blue); border: 1px solid rgba(75,139,244,.22); }

/* ── 6. Section Base ── */
section { padding: clamp(56px,8vw,80px) clamp(24px,4vw,56px); position: relative; z-index: 1; }
.section { padding: clamp(56px,8vw,80px) clamp(24px,4vw,56px); }
.si { max-width: 1100px; margin: 0 auto; }
.s-eye { font-family: var(--H); font-size: clamp(1.8rem,3vw,2.8rem); font-weight: 700; letter-spacing: -.5px; color: var(--w); margin-bottom: 6px; display: block; }
.s-title { font-family: var(--M); font-size: 11px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; }
.s-title.vt { color: #C4B5FD; }
.s-sub { font-size: clamp(15px,1.5vw,17px); color: var(--d3); line-height: 1.8; max-width: 640px; margin-bottom: 40px; }
/* section divider line */
.div { height: 1px; background: linear-gradient(90deg, transparent 0%, rgba(75,139,244,.35) 30%, rgba(139,92,246,.35) 70%, transparent 100%); }
/* shared tag/badge styles */
.tag { font-family: var(--M); font-size: 11px; padding: 3px 8px; border-radius: 2px; background: rgba(75,139,244,.08); border: 1px solid rgba(75,139,244,.2); color: var(--blue); }
.mit-badge { font-family: var(--M); font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 2px; background: rgba(74,222,128,.07); border: 1px solid rgba(74,222,128,.18); color: #4ade80; letter-spacing: .5px; text-transform: uppercase; }
.icon { width: 20px; height: 20px; flex-shrink: 0; display: inline-block; vertical-align: middle; }
/* shared keyframes */
@keyframes pulse  { 0%,100% { opacity: 1; } 50% { opacity: .3; } }
@keyframes rpulse { 0%,100% { opacity: 1; } 50% { opacity: .4; } }

/* ── 7. Capabilities ── */
.cap-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.cap-tab { font-family: var(--M); font-size: 12px; font-weight: 700; letter-spacing: .5px; padding: 7px 16px; border-radius: 20px; border: 1px solid var(--bd2); color: var(--d2); background: transparent; cursor: pointer; transition: all .15s; }
.cap-tab.active { background: rgba(75,139,244,.12); border-color: rgba(75,139,244,.35); color: var(--blue); }
.cap-tab:hover:not(.active) { border-color: rgba(75,139,244,.2); color: var(--d3); }
.cap-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; background: var(--bg3); border: 1px solid var(--bd); border-radius: 6px; padding: 28px; }
.cap-panel-title { font-family: var(--H); font-size: 22px; font-weight: 700; color: var(--w); margin-bottom: 8px; letter-spacing: -.3px; }
.cap-panel-outcome { font-family: var(--M); font-size: 12px; color: #4ade80; margin-bottom: 14px; display: flex; align-items: center; gap: 6px; }
.cap-panel-outcome::before { content: '→'; color: #4ade80; }
.cap-panel-desc { font-size: 15px; color: var(--d3); line-height: 1.75; margin-bottom: 18px; }
.cap-panel-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.cap-panel-right { background: rgba(75,139,244,.04); border: 1px solid rgba(75,139,244,.1); border-radius: 4px; padding: 18px; }
.cap-pr-label { font-family: var(--M); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; }
.cap-pr-li { font-size: 15px; color: var(--d3); display: flex; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--bd); line-height: 1.55; }
.cap-pr-li:last-child { border-bottom: none; }
.cap-pr-li::before { content: '✓'; color: #4ade80; font-family: var(--M); flex-shrink: 0; font-size: 12px; }
/* info panels below capabilities */
.info-panels-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.info-panel { border: 1px solid var(--bd); border-top: 2px solid rgba(75,139,244,.35); border-radius: 4px; padding: 22px; margin-bottom: 12px; }
.ip-label { font-family: var(--M); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--blue); margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.why-row { display: flex; gap: 12px; margin-bottom: 11px; font-size: 15px; color: var(--d3); line-height: 1.65; }
.why-row:last-child { margin-bottom: 0; }
.why-row strong, .why-row b { color: var(--w); }
.why-arr { color: var(--blue); font-family: var(--M); flex-shrink: 0; margin-top: 2px; }
.certs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.cert-item { background: rgba(255,255,255,.03); border: 1px solid var(--bd); border-radius: 2px; padding: 9px 12px; font-size: 14px; color: var(--d3); display: flex; align-items: center; gap: 8px; }
.cert-item span { color: var(--blue); font-size: 13px; }
.cage-info { margin-top: 12px; background: rgba(75,139,244,.05); border: 1px solid rgba(75,139,244,.15); border-radius: 2px; padding: 9px 14px; font-family: var(--M); font-size: 12px; color: var(--d3); }
.cage-info strong { color: var(--blue); }

/* ── 8. Sectors ── */
.sectors-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sc { border: 1px solid var(--bd); border-radius: 4px; padding: 30px; position: relative; overflow: hidden; transition: border-color .2s, transform .2s; }
.sc:hover { border-color: rgba(255,255,255,.13); transform: translateY(-2px); }
.sc::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; }
.sc-gov { background: linear-gradient(135deg,rgba(75,139,244,.06) 0%,var(--bg2) 60%); }
.sc-gov::after { background: linear-gradient(90deg,transparent,var(--blue),transparent); }
.sc-gov .sc-li::before { content: '—'; color: rgba(75,139,244,.5); font-family: var(--M); flex-shrink: 0; }
.sc-com { background: linear-gradient(135deg,rgba(139,92,246,.06) 0%,var(--bg2) 60%); }
.sc-com::after { background: linear-gradient(90deg,transparent,var(--violet),transparent); }
.sc-com .sc-li::before { content: '—'; color: rgba(139,92,246,.5); font-family: var(--M); flex-shrink: 0; }
.sc-badge { font-family: var(--M); font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; padding: 4px 10px; border-radius: 2px; display: inline-block; margin-bottom: 14px; }
.sb-b { color: var(--blue);   background: rgba(75,139,244,.1);  border: 1px solid rgba(75,139,244,.2); }
.sb-v { color: #C4B5FD;       background: rgba(139,92,246,.1);  border: 1px solid rgba(139,92,246,.2); }
.sc-li { font-size: 15px; color: var(--d3); display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--bd); line-height: 1.55; }
.sc-li:last-child { border-bottom: none; }

/* ── 9. Products ── */
.products-section { background: var(--bg2); border-top: 1px solid var(--bd); border-bottom: 1px solid var(--bd); position: relative; overflow: hidden; }
.products-section::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 70% 60% at 60% 50%,rgba(75,139,244,.06) 0%,transparent 70%); pointer-events: none; z-index: 0; }
.products-section .si { position: relative; z-index: 1; }
/* tab selector */
.prod-selector { display: grid; grid-template-columns: 220px 1fr; border: 1px solid var(--bd); border-radius: 4px; overflow: hidden; }
.sel-list { display: flex; flex-direction: column; border-right: 1px solid var(--bd); }
.sel-item { text-align: left; background: transparent; border: none; padding: 20px 24px; cursor: pointer; border-bottom: 1px solid var(--bd); transition: background .15s; position: relative; color: var(--w); }
.sel-item:last-child { border-bottom: none; }
.sel-item[aria-selected="true"] { background: rgba(255,255,255,.025); }
.sel-item:hover:not([aria-selected="true"]) { background: rgba(255,255,255,.015); }
.sel-num  { font-family: var(--M); font-size: 11px; color: rgba(255,255,255,.3); margin-bottom: 8px; letter-spacing: .5px; }
.sel-name { font-family: var(--H); font-size: 16px; font-weight: 700; color: var(--w); margin-bottom: 4px; }
.sel-tag  { font-family: var(--M); font-size: 11px; text-transform: uppercase; letter-spacing: .5px; }
.si-axiom .sel-tag { color: var(--blue); }
.si-landru .sel-tag { color: #C4B5FD; }
.si-ev .sel-tag { color: #4ade80; }
/* active indicator bar */
.sel-bar { width: 2px; position: absolute; right: 0; top: 0; bottom: 0; background: transparent; transition: background .15s; }
.si-axiom[aria-selected="true"] .sel-bar  { background: var(--blue); }
.si-landru[aria-selected="true"] .sel-bar { background: #C4B5FD; }
.si-ev[aria-selected="true"] .sel-bar     { background: #4ade80; }
.sel-right { min-width: 0; }
/* panels */
.sel-panel { display: none; padding: 30px; grid-template-columns: 1fr 1fr; gap: 36px; align-items: stretch; }
.sel-panel-title { font-family: var(--H); font-size: 24px; font-weight: 700; letter-spacing: -.3px; color: var(--w); margin-bottom: 10px; }
.sel-panel p { font-size: 15px; color: var(--d3); line-height: 1.75; margin-bottom: 16px; }
.sel-pts { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 18px; }
.sel-pts li { font-size: 13px; color: var(--d3); display: flex; gap: 7px; line-height: 1.5; padding: 8px 10px; border-radius: 2px; }
.sl-axiom .sel-pts li  { background: rgba(75,139,244,.05);  border: 1px solid rgba(75,139,244,.1); }
.sl-landru .sel-pts li { background: rgba(139,92,246,.05);  border: 1px solid rgba(139,92,246,.1); }
.sl-ev .sel-pts li     { background: rgba(74,222,128,.04);  border: 1px solid rgba(74,222,128,.1); }
.sl-axiom .sel-pts li::before  { content: '→'; color: var(--blue); font-family: var(--M); flex-shrink: 0; font-size: 11px; }
.sl-landru .sel-pts li::before { content: '→'; color: #C4B5FD;     font-family: var(--M); flex-shrink: 0; font-size: 11px; }
.sl-ev .sel-pts li::before     { content: '→'; color: #4ade80;     font-family: var(--M); flex-shrink: 0; font-size: 11px; }
.sl-landru.sel-panel { min-height: 900px; }
.sl-axiom .sel-learn  { color: var(--blue); border-color: rgba(75,139,244,.3);  background: rgba(75,139,244,.07); }
.sl-landru .sel-learn { color: #C4B5FD;     border-color: rgba(139,92,246,.3);  background: rgba(139,92,246,.07); }
.sl-ev .sel-learn     { color: #4ade80;     border-color: rgba(74,222,128,.25); background: rgba(74,222,128,.05); }
/* product viz panels */
.prod-vis { border-radius: 4px; padding: 20px; }
.pv-b { background: rgba(75,139,244,.04);  border: 1px solid rgba(75,139,244,.12); }
.pv-v { background: rgba(139,92,246,.04);  border: 1px solid rgba(139,92,246,.12); }
.pv-g { background: rgba(74,222,128,.03);  border: 1px solid rgba(74,222,128,.1); }
.plat-badge { font-family: var(--M); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; padding: 4px 10px; border-radius: 2px; display: inline-block; margin-bottom: 14px; }
.pb-b { color: var(--blue); background: rgba(75,139,244,.1);  border: 1px solid rgba(75,139,244,.22); }
.pb-v { color: #C4B5FD;     background: rgba(139,92,246,.1);  border: 1px solid rgba(139,92,246,.22); }
.pb-g { color: #4ade80;     background: rgba(74,222,128,.08); border: 1px solid rgba(74,222,128,.2); }

/* product viz internals — Axiom panel */
.vis-head { font-family: var(--M); font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 14px; display: flex; align-items: center; gap: 6px; }
.vdot { width: 5px; height: 5px; border-radius: 50%; animation: pulse 1.5s infinite; }
.ax-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 3px; background: rgba(255,255,255,.035); border: 1px solid var(--bd); margin-bottom: 7px; }
.ax-icon { width: 22px; height: 22px; border-radius: 3px; background: rgba(75,139,244,.1); border: 1px solid rgba(75,139,244,.2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ax-name { font-size: 13px; font-weight: 700; color: var(--w); }
.ax-desc { font-size: 12px; color: var(--d2); margin-top: 1px; }
.ax-badge { font-family: var(--M); font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 2px; margin-left: auto; flex-shrink: 0; }
.axb-live  { background: rgba(74,222,128,.1);  color: #4ade80;  border: 1px solid rgba(74,222,128,.2); }
.axb-ai    { background: rgba(139,92,246,.15); color: #C4B5FD;  border: 1px solid rgba(139,92,246,.3); }
.axb-block { background: rgba(220,50,50,.1);   color: #ff7070;  border: 1px solid rgba(220,50,50,.25); animation: rpulse 2s ease-in-out infinite; }
.ax-aud { background: rgba(255,255,255,.025); border: 1px solid var(--bd); border-radius: 2px; padding: 11px 14px; margin-top: 7px; }
.ax-aud-lbl { font-family: var(--M); font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 5px; }
.lbl-dod    { color: #80BCFF; }
.lbl-ent    { color: var(--blue); }
.lbl-vendor { color: #4ade80; }
.ax-aud-desc { font-size: 13px; color: var(--d3); line-height: 1.55; }
/* product viz internals — Landru panel */
.agent-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 3px; background: rgba(255,255,255,.035); border: 1px solid var(--bd); margin-bottom: 6px; transition: all .3s; min-height: 68px; }
.agent-row.ar-active { background: rgba(139,92,246,.08); border-color: rgba(139,92,246,.3); }
.agent-row.ar-done   { background: rgba(74,222,128,.04); border-color: rgba(74,222,128,.15); }
.ar-icon { width: 22px; height: 22px; border-radius: 3px; background: rgba(139,92,246,.12); border: 1px solid rgba(139,92,246,.22); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ar-name { font-size: 13px; font-weight: 700; color: var(--d2); }
.agent-row.ar-active .ar-name,
.agent-row.ar-done   .ar-name { color: var(--w); }
.ar-desc { font-size: 12px; color: var(--d2); margin-top: 1px; }
.ar-status { font-family: var(--M); font-size: 10px; font-weight: 700; padding: 3px 6px; border-radius: 2px; margin-left: auto; flex-shrink: 0; min-width: 72px; text-align: center; white-space: nowrap; }
.ars-idle { background: rgba(255,255,255,.04);  color: var(--d2);  border: 1px solid var(--bd); }
.ars-run  { background: rgba(139,92,246,.15);   color: #C4B5FD;    border: 1px solid rgba(139,92,246,.3); animation: rpulse 1s ease-in-out infinite; }
.ars-done { background: rgba(74,222,128,.1);    color: #4ade80;    border: 1px solid rgba(74,222,128,.2); }
.agent-output { margin-top: 10px; padding: 10px 13px; background: rgba(8,10,16,.9); border: 1px solid rgba(74,222,128,.1); border-radius: 2px; font-family: var(--M); font-size: 12px; color: var(--d3); line-height: 1.9; min-height: 160px; }
.ao-line { opacity: 0; visibility: hidden; transition: opacity .3s; display: block; min-height: 1.9em; }
.ao-ok   { color: #4ade80; }
.ao-cyan { color: var(--blue); }
/* product viz internals — Eagle Valley panel */
.ev-stage { display: flex; gap: 10px; position: relative; }
.ev-line  { width: 1px; position: absolute; left: 10px; top: 22px; bottom: -12px; background: linear-gradient(180deg,rgba(74,222,128,.35),rgba(74,222,128,.04)); }
.ev-stage:last-child .ev-line { display: none; }
.ev-ico  { width: 22px; height: 22px; border-radius: 3px; border: 1px solid rgba(74,222,128,.22); background: rgba(74,222,128,.06); display: flex; align-items: center; justify-content: center; flex-shrink: 0; position: relative; z-index: 1; }
.ev-info { flex: 1; padding: 0 0 13px; }
.ev-name { font-size: 13px; font-weight: 700; color: var(--w); margin-bottom: 4px; }
.ev-chips { display: flex; gap: 4px; flex-wrap: wrap; }
.ev-chip { font-family: var(--M); font-size: 11px; padding: 2px 7px; border-radius: 2px; }
.ec-g { background: rgba(74,222,128,.06);  border: 1px solid rgba(74,222,128,.16);  color: #4ade80; }
.ec-c { background: rgba(75,139,244,.06);  border: 1px solid rgba(75,139,244,.16);  color: var(--blue); }
.ec-b { background: rgba(88,101,242,.08);  border: 1px solid rgba(88,101,242,.2);   color: #A5B4FC; }
.ec-p { background: rgba(139,92,246,.08);  border: 1px solid rgba(139,92,246,.18);  color: #C4B5FD; }
.ev-status { font-family: var(--M); font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 2px; margin-left: 6px; }
.evs-live { background: rgba(74,222,128,.1);  color: #4ade80;     border: 1px solid rgba(74,222,128,.2); }
.evs-run  { background: rgba(75,139,244,.1);  color: var(--blue); border: 1px solid rgba(75,139,244,.2); animation: rpulse 1.2s ease-in-out infinite; }
.evs-pend { background: rgba(255,255,255,.04); color: var(--d2);  border: 1px solid var(--bd); }

/* ── 10. Past Performance ── */
.stats-row { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); border-left: 1px solid var(--bd); }
.sr { border-right: 1px solid var(--bd); padding: 36px 28px; position: relative; }
.sr::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; }
.sr:nth-child(odd)::before  { background: var(--blue); }
.sr:nth-child(even)::before { background: var(--violet); }
.sr-tag { font-family: var(--M); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--d2); margin-bottom: 8px; }
.sr-val { font-family: var(--H); font-size: clamp(2rem,3.5vw,2.8rem); font-weight: 700; letter-spacing: -2px; line-height: 1; margin-bottom: 6px; }
.sr:nth-child(odd) .sr-val  { color: var(--blue); }
.sr:nth-child(even) .sr-val { color: #C4B5FD; }
.sr-lbl { font-size: 14px; color: var(--d3); line-height: 1.5; }
/* past performance cards — each has a coloured left border */
.pp-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.pp-card { background: var(--bg2); border: 1px solid var(--bd); border-left: 3px solid var(--blue); border-radius: 0 4px 4px 0; padding: 22px; }
.pp-gov  { border-left-color: var(--blue);  background: rgba(75,139,244,.03); }
.pp-com  { border-left-color: #C4B5FD;      background: rgba(139,92,246,.03); }
.pp-com .pp-type  { color: #C4B5FD; }
.pp-prod { border-left-color: #4ade80;      background: rgba(74,222,128,.03); }
.pp-prod .pp-type { color: #4ade80; }
.pp-type  { font-family: var(--M); font-size: 11px; color: var(--blue); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; }
.pp-title { font-family: var(--H); font-size: 15px; font-weight: 700; color: var(--w); margin-bottom: 5px; line-height: 1.35; }
.pp-meta  { font-family: var(--M); font-size: 12px; color: var(--d2); margin-bottom: 10px; }
.pp-out   { font-size: 14px; color: var(--d3); padding: 4px 0; display: flex; gap: 8px; line-height: 1.55; }
.pp-out::before { content: '✓'; color: #4ade80; font-family: var(--M); flex-shrink: 0; font-size: 12px; }

/* ── 11. Open Source ── */
.oss-section { background: var(--bg2); border-top: 1px solid var(--bd); border-bottom: 1px solid var(--bd); position: relative; overflow: hidden; }
.oss-section::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 80% at 50% 100%,rgba(74,222,128,.04) 0%,transparent 70%); pointer-events: none; z-index: 0; }
.oss-section .si { position: relative; z-index: 1; }
.oss-card { background: rgba(74,222,128,.03); border: 1px solid rgba(74,222,128,.15); border-top: 2px solid rgba(74,222,128,.5); border-radius: 4px; padding: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: start; }
.oss-header  { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.oss-icon    { width: 44px; height: 44px; border-radius: 6px; background: rgba(74,222,128,.07); border: 1px solid rgba(74,222,128,.18); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.oss-icon svg { width: 22px; height: 22px; stroke: #4ade80; fill: none; stroke-width: 2; }
.oss-name    { font-family: var(--H); font-size: 22px; font-weight: 700; color: var(--w); margin-bottom: 4px; }
.oss-tagline { font-family: var(--M); font-size: 12px; color: var(--blue); }
.oss-desc    { font-size: 15px; color: var(--d3); line-height: 1.75; margin-bottom: 18px; }
.oss-feat    { display: flex; gap: 10px; font-size: 15px; color: var(--d3); padding: 5px 0; line-height: 1.6; }
.oss-feat::before { content: '→'; color: #4ade80; font-family: var(--M); flex-shrink: 0; font-size: 12px; }
.oss-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }

/* ── 12. Tech Stack ── */
.stack-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.stk { border-radius: 4px; overflow: hidden; background: var(--bg2); border: 1px solid var(--bd); transition: border-color .2s, transform .2s; }
.stk:hover { border-color: rgba(255,255,255,.13); transform: translateY(-2px); }
.stk-h { padding: 14px 18px; border-bottom: 1px solid var(--bd); position: relative; }
.stk-h::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; }
.stk-devsec .stk-h::before { background: var(--blue); }
.stk-cloud  .stk-h::before { background: #4DA8FF; }
.stk-obs    .stk-h::before { background: #4ade80; }
.stk-ai     .stk-h::before { background: #C4B5FD; }
.stk-lang   .stk-h::before { background: #FF9A5C; }
.stk-satcom .stk-h::before { background: #FFD166; }
.stk-top { display: flex; align-items: center; justify-content: space-between; }
.stk-ico { width: 26px; height: 26px; border-radius: 4px; display: flex; align-items: center; justify-content: center; margin-right: 8px; }
.stk-ico svg { width: 13px; height: 13px; }
.ic-c { background: rgba(75,139,244,.1);  border: 1px solid rgba(75,139,244,.18); }
.ic-b { background: rgba(77,168,255,.1);  border: 1px solid rgba(77,168,255,.18); }
.ic-g { background: rgba(74,222,128,.08); border: 1px solid rgba(74,222,128,.18); }
.ic-p { background: rgba(196,181,253,.1); border: 1px solid rgba(196,181,253,.18); }
.ic-o { background: rgba(255,154,92,.08); border: 1px solid rgba(255,154,92,.18); }
.ic-y { background: rgba(255,209,102,.08);border: 1px solid rgba(255,209,102,.18); }
.stk-name  { font-family: var(--H); font-size: 14px; font-weight: 700; color: var(--w); }
.stk-count { font-family: var(--M); font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 10px; background: rgba(75,139,244,.1); color: var(--blue); border: 1px solid rgba(75,139,244,.18); }
.stk-b { padding: 14px 18px; display: flex; flex-wrap: wrap; gap: 6px; }
.stk-t { font-family: var(--M); font-size: 12px; padding: 3px 9px; border-radius: 2px; background: rgba(255,255,255,.035); border: 1px solid var(--bd); color: var(--d3); }

/* ── 13. Service Catalog ── */
.catalog-section { background: var(--bg2); border-top: 1px solid var(--bd); position: relative; overflow: hidden; }
.catalog-section::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 40% at 30% 20%,rgba(139,92,246,.05) 0%,transparent 65%); pointer-events: none; z-index: 0; }
.catalog-section .si { position: relative; z-index: 1; }
/* intro grid: assess box + engagement flow */
.catalog-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-bottom: 48px; align-items: start; }
.assess-box { background: rgba(75,139,244,.05); border: 1px solid rgba(75,139,244,.2); border-radius: 4px; padding: 28px; position: relative; overflow: hidden; }
.assess-box::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg,transparent,var(--blue),transparent); opacity: .5; }
.assess-lbl      { font-family: var(--M); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; }
.assess-title    { font-family: var(--H); font-size: 18px; font-weight: 700; margin-bottom: 10px; letter-spacing: -.2px; color: var(--w); }
.assess-desc     { font-size: 15px; color: var(--d3); line-height: 1.75; margin-bottom: 16px; }
.assess-pills    { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.assess-pill     { font-family: var(--M); font-size: 12px; padding: 3px 10px; border-radius: 2px; background: rgba(75,139,244,.07); border: 1px solid rgba(75,139,244,.18); color: var(--blue); }
.assess-cta      { display: inline-block; background: var(--blue2); color: #fff; padding: 11px 22px; border-radius: 3px; font-size: 14px; font-weight: 600; text-decoration: none; transition: background .2s, transform .1s; }
.assess-cta:hover  { background: var(--blue3); }
.assess-cta:active { transform: scale(.97); }
/* catalog cards */
.cat-cards { display: flex; flex-direction: column; gap: 10px; }
.cat-card { border: 1px solid var(--bd); border-left: 3px solid; border-radius: 4px; background: rgba(8,10,16,.7); overflow: hidden; transition: border-color .2s, box-shadow .2s; }
/* per-service accent colours */
.cat-k8s    { border-left-color: #4B8BF4; }
.cat-devsec { border-left-color: #38beff; }
.cat-landru { border-left-color: #C4B5FD; }
.cat-axiom  { border-left-color: #d946ef; }
.cat-satcom { border-left-color: #4ade80; }
.cat-k8s:hover    { border-color: #4B8BF4; box-shadow: 0 0 0 1px rgba(75,139,244,.15),  0 4px 24px rgba(75,139,244,.08); }
.cat-devsec:hover { border-color: #38beff; box-shadow: 0 0 0 1px rgba(56,190,255,.15),  0 4px 24px rgba(56,190,255,.08); }
.cat-landru:hover { border-color: #C4B5FD; box-shadow: 0 0 0 1px rgba(196,181,253,.15), 0 4px 24px rgba(196,181,253,.08); }
.cat-axiom:hover  { border-color: #d946ef; box-shadow: 0 0 0 1px rgba(217,70,239,.15),  0 4px 24px rgba(217,70,239,.08); }
.cat-satcom:hover { border-color: #4ade80; box-shadow: 0 0 0 1px rgba(74,222,128,.15),  0 4px 24px rgba(74,222,128,.08); }
/* card header — expand button is absolute so content fills full width */
.cat-card-header { width: 100%; text-align: left; background: transparent; border: none; color: var(--w); padding: 18px 52px 18px 16px; display: block; cursor: pointer; position: relative; }
.cat-card-header:hover { background: rgba(255,255,255,.02); }
.cat-expand { font-family: var(--M); font-size: 14px; color: var(--d2); width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--bd); border-radius: 3px; transition: all .2s; position: absolute; top: 18px; right: 16px; }
.cat-card.open .cat-expand { color: var(--blue); border-color: rgba(75,139,244,.3); }
/* card content */
.cat-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; align-items: center; }
.cat-audience { font-family: var(--M); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; padding: 3px 8px; border-radius: 2px; }
.cat-audience.aud-gov { color: #80BCFF;  background: rgba(75,139,244,.12);  border: 1px solid rgba(75,139,244,.25); }
.cat-audience.aud-com { color: var(--blue); background: rgba(75,139,244,.08); border: 1px solid rgba(75,139,244,.2); }
.cat-audience.aud-dod { color: #C4B5FD;  background: rgba(139,92,246,.12);  border: 1px solid rgba(139,92,246,.25); }
.cat-card-title { font-family: var(--H); font-size: 17px; font-weight: 700; letter-spacing: -.2px; margin-bottom: 6px; text-align: left; }
.cat-k8s .cat-card-title    { color: #7eb8ff; }
.cat-devsec .cat-card-title { color: #7dd8ff; }
.cat-landru .cat-card-title { color: #d8cfff; }
.cat-axiom .cat-card-title  { color: #eca8f8; }
.cat-satcom .cat-card-title { color: #86efac; }
.cat-pricing { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.cat-price    { font-family: var(--M); font-size: 14px; font-weight: 700; color: var(--blue); }
.cat-timeline { font-family: var(--M); font-size: 12px; color: var(--d2); background: rgba(255,255,255,.04); padding: 3px 8px; border-radius: 2px; border: 1px solid var(--bd); }
.cat-license  { font-family: var(--M); font-size: 11px; font-weight: 700; background: var(--blue2); color: #fff; padding: 3px 8px; border-radius: 2px; }
.cat-card-desc { font-size: 14px; color: var(--d2); line-height: 1.7; margin-top: 6px; }
/* card body (expanded) */
.cat-body { display: none; padding: 0 24px 22px 16px; border-top: 1px solid var(--bd); }
.cat-card.open .cat-body { display: block; }
.cat-body-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 20px; }
.cat-col-title { font-family: var(--M); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--blue); margin-bottom: 10px; }
.cat-list { display: flex; flex-direction: column; gap: 2px; }
.cat-li { font-size: 15px; color: var(--d3); display: flex; gap: 9px; padding: 4px 0; line-height: 1.6; }
.cat-li::before { content: '→'; color: var(--blue); font-family: var(--M); flex-shrink: 0; font-size: 12px; }
.cat-bv { margin-top: 16px; padding: 12px 16px; background: rgba(75,139,244,.04); border: 1px solid rgba(75,139,244,.1); border-radius: 3px; font-size: 15px; color: var(--d3); line-height: 1.65; }
.cat-bv strong { color: var(--w); }
.cat-base-note { padding: 12px 16px; background: rgba(75,139,244,.04); border: 1px solid rgba(75,139,244,.1); border-radius: 3px; font-size: 14px; color: var(--d3); line-height: 1.65; margin-bottom: 16px; margin-top: 20px; }
.cat-base-note strong { color: var(--blue); }
/* retainer cards */
.retainer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 24px; }
.ret-card { background: rgba(255,255,255,.025); border: 1px solid var(--bd); border-radius: 4px; padding: 24px; transition: border-color .2s, transform .2s; }
.ret-card:hover { border-color: rgba(139,92,246,.25); transform: translateY(-2px); }
.ret-badge { font-family: var(--M); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; display: block; }
.ret-title { font-family: var(--H); font-size: 16px; font-weight: 700; color: var(--w); margin-bottom: 8px; }
.ret-desc  { font-size: 15px; color: var(--d3); line-height: 1.7; margin-bottom: 14px; }
.ret-list  { display: flex; flex-direction: column; gap: 4px; }
.ret-li    { font-size: 15px; color: var(--d3); display: flex; gap: 9px; padding: 3px 0; line-height: 1.55; }
.ret-li::before { content: '→'; color: var(--blue); font-family: var(--M); flex-shrink: 0; font-size: 12px; }

/* ── 14. Contact & Form ── */
.contact-section { background: var(--bg2); border-top: 1px solid var(--bd); padding: clamp(60px,8vw,88px) clamp(24px,4vw,56px); }
.contact-grid { display: grid; grid-template-columns: 1fr 480px; gap: 56px; align-items: start; max-width: 1100px; margin: 32px auto 0; }
/* contact cards */
.c-cards { display: flex; flex-direction: column; gap: 8px; }
.cc { background: var(--bg3); border: 1px solid var(--bd); border-radius: 6px; padding: 18px 20px; display: flex; align-items: center; gap: 18px; transition: border-color .2s; }
.cc:hover { border-color: rgba(75,139,244,.25); }
.cc-tp { border-left: 2px solid rgba(75,139,244,.5); }
.cc-gg { border-left: 2px solid rgba(139,92,246,.5); }
.cc-es { border-left: 2px solid rgba(74,222,128,.45); }
.cc-ts { border-left: 2px solid rgba(255,255,255,.12); }
.cc-avatar { width: 80px; height: 80px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-family: var(--H); font-size: 18px; font-weight: 700; letter-spacing: .5px; overflow: hidden; }
.cc-avatar-img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; border-radius: 50%; }
.av-tp { border: 2px solid rgba(75,139,244,.5);   color: #80BCFF; background: rgba(75,139,244,.15); }
.av-gg { border: 2px solid rgba(139,92,246,.5);   color: #C4B5FD; background: rgba(139,92,246,.15); }
.av-es { border: 2px solid rgba(74,222,128,.45);  color: #4ade80;  background: rgba(74,222,128,.1); }
.av-ts { border: 2px solid rgba(255,255,255,.15); color: var(--d2); background: rgba(255,255,255,.06); }
.cc-role  { font-family: var(--M); font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--blue); margin-bottom: 3px; }
.cc-name  { font-family: var(--H); font-size: 16px; font-weight: 700; color: var(--w); margin-bottom: 5px; }
.cc-links { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.cc a, .cc-links a { font-family: var(--M); font-size: 12px; color: var(--d2); text-decoration: none; transition: color .15s; }
.cc a:hover, .cc-links a:hover { color: var(--blue); }
.cc-sep { color: rgba(255,255,255,.2); font-size: 12px; }
/* contact form */
.c-form-wrap { background: var(--bg3); border: 1px solid var(--bd); border-radius: 8px; overflow: hidden; }
.c-form-head { padding: 24px 28px 20px; border-bottom: 1px solid var(--bd); }
.cfh-title { font-family: var(--H); font-size: 20px; font-weight: 700; color: var(--w); margin-bottom: 6px; }
.cfh-sub   { font-size: 15px; color: var(--d3); line-height: 1.65; }
.c-form-body { padding: 24px 28px 28px; }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.cf-field { margin-bottom: 14px; }
.cf-field label { display: block; font-family: var(--M); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--d2); margin-bottom: 7px; }
.cf-req { color: var(--blue); margin-left: 2px; }
.cf-field input, .cf-field textarea { width: 100%; background: var(--bg2); border: 1px solid var(--bd); border-radius: 4px; color: var(--w); padding: 12px 14px; font-size: 15px; font-family: var(--F); outline: none; transition: border-color .2s, box-shadow .2s; }
.cf-field input:focus, .cf-field textarea:focus { border-color: rgba(75,139,244,.45); box-shadow: 0 0 0 3px rgba(75,139,244,.1); }
.cf-field input::placeholder, .cf-field textarea::placeholder { color: rgba(255,255,255,.3); }
.cf-field textarea { resize: vertical; min-height: 120px; }
.cf-submit-row { margin-top: 18px; display: flex; align-items: center; gap: 16px; }
.cf-submit { background: var(--blue2); color: #fff; border: none; padding: 13px 28px; border-radius: 4px; font-size: 15px; font-weight: 600; font-family: var(--F); cursor: pointer; transition: background .2s, transform .1s; white-space: nowrap; }
.cf-submit:hover  { background: var(--blue3); }
.cf-submit:active { transform: scale(.97); }
.cf-note { font-family: var(--M); font-size: 12px; color: rgba(255,255,255,.4); line-height: 1.6; }
.cf-status { text-align: center; margin-top: 14px; font-size: 15px; min-height: 1.4em; }
.cf-status.success { color: #4ade80; }
.cf-status.error   { color: #ff6060; }

/* ── 15. Footer ── */
footer { background: var(--bg); border-top: 1px solid var(--bd); }
.ft-cols { padding: clamp(32px,5vw,48px) clamp(24px,4vw,56px); display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; border-bottom: 1px solid var(--bd); max-width: 1204px; margin: 0 auto; }

.ft-desc { font-size: 14px; color: var(--d2); line-height: 1.7; margin-bottom: 16px; max-width: 220px; }
.ft-cred { font-family: var(--M); font-size: 12px; color: var(--d1); padding: 2px 0; letter-spacing: .3px; }
.ft-cred b { color: var(--blue); }
.ft-col-h { font-family: var(--M); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(75,139,244,.7); margin-bottom: 12px; }
.ft-link { font-size: 14px; color: var(--d2); display: block; padding: 4px 0; text-decoration: none; transition: color .15s; }
.ft-link:hover { color: var(--w); }
.ft-bar  { padding: 16px clamp(24px,4vw,56px); display: flex; align-items: center; justify-content: space-between; max-width: 1204px; margin: 0 auto; }
.ft-copy { font-family: var(--M); font-size: 12px; color: var(--d1); letter-spacing: .5px; }

/* ── 16. Engagement Flow Steps (service catalog timeline) ── */
.ef-steps { display: flex; flex-direction: column; justify-content: center; height: 100%; gap: 12px; }
.ef-step { display: flex; gap: 20px; align-items: stretch; }
.ef-step-left { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 40px; }
.ef-num-wrap { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ef-num-blue   { background: rgba(75,139,244,.12);  border: 1.5px solid rgba(75,139,244,.5);   box-shadow: 0 0 14px rgba(75,139,244,.2); }
.ef-num-violet { background: rgba(196,181,253,.1);  border: 1.5px solid rgba(196,181,253,.45); box-shadow: 0 0 14px rgba(196,181,253,.18); }
.ef-num-green  { background: rgba(46,232,154,.08);  border: 1.5px solid rgba(46,232,154,.4);   box-shadow: 0 0 14px rgba(46,232,154,.15); }
.ef-num { font-family: var(--M); font-size: 12px; font-weight: 700; }
.ef-num-blue .ef-num   { color: var(--blue); }
.ef-num-violet .ef-num { color: #C4B5FD; }
.ef-num-green .ef-num  { color: #4ade80; }
.ef-spine { flex: 1; width: 1px; background: linear-gradient(180deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.04) 100%); margin: 6px 0; }
.ef-step-body { padding-bottom: 28px; padding-top: 8px; flex: 1; }
.ef-step:last-child .ef-step-body { padding-bottom: 0; }
.ef-step-title { font-family: var(--H); font-size: 15px; font-weight: 700; color: var(--w); margin-bottom: 4px; letter-spacing: -.1px; }
.ef-step-sub  { font-family: var(--M); font-size: 12px; margin-bottom: 8px; }
.ef-step-blue .ef-step-sub   { color: rgba(75,139,244,.85); }
.ef-step-violet .ef-step-sub { color: rgba(196,181,253,.8); }
.ef-step-green .ef-step-sub  { color: rgba(74,222,128,.8); }
.ef-step-desc { font-size: 14px; color: var(--d2); line-height: 1.7; }

/* ── 17. Responsive ── */
@media (max-width: 1100px) {
  .hero-inner       { grid-template-columns: 1fr; }
  .h-creds          { display: none; }
  .prod-selector    { grid-template-columns: 180px 1fr; }
  .contact-grid     { grid-template-columns: 1fr; gap: 48px; }
  .ft-cols          { grid-template-columns: 1fr 1fr; }
  /* kill all expensive paint effects on mobile */
  .grd::before      { display: none; }
  .hero-dots        { display: none; }
  .hero-rule        { display: none; }
  #hero-stars       { display: none; }
  #hero-earth       { display: none; }
}
@media (max-width: 768px) {
  .nav-links        { display: none; }
  .nav-burger       { display: flex; }
  .nav-cta          { display: none; }
  .logo-img         { height: 24px; }
  .nav-links.mobile-open li { border-bottom: 1px solid var(--bd); }
  .nav-links.mobile-open a  { display: block; padding: 12px 0; font-size: 15px; }
  #hero-earth       { display: none; }
  .cap-panel, .sectors-grid, .oss-card, .stack-grid, .info-panels-grid,
  .catalog-intro, .cat-body-grid, .retainer-grid, .ft-cols { grid-template-columns: 1fr; }
  /* products panel content — single column */
  .sel-panel        { grid-template-columns: 1fr; }
  .sel-pts          { grid-template-columns: 1fr 1fr; }
  /* products — pill switcher on mobile */
  .prod-selector    { display: block; border: none; border-radius: 0; overflow: visible; }
  .sel-list         { display: flex; flex-wrap: wrap; gap: 8px; border: none; margin-bottom: 16px; }
  .sel-item         { flex-shrink: 0; border: 1px solid var(--bd); border-radius: 20px; padding: 8px 18px; border-bottom: 1px solid var(--bd); }
  .sel-item[aria-selected="true"] { background: rgba(75,139,244,.12); border-color: rgba(75,139,244,.4); }
  .si-axiom[aria-selected="true"]  { background: rgba(75,139,244,.12); border-color: rgba(75,139,244,.4); }
  .si-landru[aria-selected="true"] { background: rgba(139,92,246,.1);  border-color: rgba(139,92,246,.35); }
  .si-ev[aria-selected="true"]     { background: rgba(74,222,128,.07); border-color: rgba(74,222,128,.3); }
  .sel-num          { display: none; }
  .sel-bar          { display: none; }
  .sel-name         { font-size: 14px; font-weight: 700; margin-bottom: 0; }
  .sel-tag          { font-size: 11px; }
  .sel-right        { border: 1px solid var(--bd); border-radius: 4px; }
  .sel-panel        { padding: 20px 16px; }
  .pp-cards         { grid-template-columns: 1fr; }
  .stats-row        { grid-template-columns: 1fr 1fr; }
  .cf-row           { grid-template-columns: 1fr; }
  .ft-bar           { flex-direction: column; gap: 6px; text-align: center; }
  .cat-card-header  { padding-right: 44px; }
  .cc               { padding: 12px 14px; }
  /* hide product viz panels on mobile — too complex to reflow */
  .prod-vis         { display: none; }
}
@media (max-width: 480px) {
  .h-btns           { flex-direction: column; align-items: flex-start; }
  .hero-heading     { font-size: clamp(2rem,7vw,3rem); }
  .stats-row        { grid-template-columns: 1fr; }
  .sr               { padding: 24px 20px; }
  .sr-val           { font-size: 2rem; }
  .stack-grid       { grid-template-columns: 1fr; }
  .sel-pts          { grid-template-columns: 1fr; }
  section, .section { padding-left: 16px; padding-right: 16px; }
  .cat-card-header  { padding: 14px 40px 14px 12px; }
  .cat-body         { padding-left: 12px; padding-right: 12px; }
  /* footer single col */
  .ft-cols          { grid-template-columns: 1fr; }
}

/* ── 18. Font Size Floor — keep mono labels readable at 13px minimum ── */
.h-pre, .hc-k, .hbic-tag, .s-title, .ip-label,
.cap-tab, .cap-pr-label, .cap-panel-outcome, .cage-info,
.sc-badge, .sel-tag, .plat-badge, .sel-learn, .vis-head,
.ax-badge, .axb-live, .axb-ai, .axb-block, .ax-aud-lbl, .ar-desc,
.ev-chip, .ev-status, .agent-output,
.sr-tag, .pp-type, .pp-meta, .oss-tagline, .stk-t, .stk-count, .stk-name,
.assess-lbl, .assess-pill, .ret-badge, .cat-col-title,
.cat-price, .cat-timeline, .cat-license, .cat-expand,
.cat-audience,
.cf-note, .cc-role, .ft-cred, .ft-col-h, .ft-copy,
.hc-badge, .hcb-g, .hcb-b, .tag, .mit-badge,
.oss-tagline, .ret-badge,
.cat-li::before, .ret-li::before, .oss-feat::before, .why-arr,
.sl-axiom .sel-pts li::before,
.sl-landru .sel-pts li::before,
.sl-ev .sel-pts li::before { font-size: 13px; }
