/* ============================================================
   TETRACTA — design system (dark deep-tech, single accent)
   Audience: investors + technical experts. Evidence-dense, calm.
   No external CSS frameworks. Works offline on XAMPP.
   Fonts: progressive (Google Fonts if online) with system fallbacks.
   ============================================================ */

:root{
  /* surfaces */
  --bg:        #07090d;
  --bg-1:      #0b0f15;
  --bg-2:      #0f141c;
  --panel:     #0d1219;
  --panel-2:   #11171f;
  --line:      rgba(150,170,200,.12);
  --line-2:    rgba(150,170,200,.20);

  /* ink */
  --ink:       #e8eef6;
  --ink-soft:  #b9c4d2;
  --mut:       #8b98a8;
  --mut-2:     #7c8799;   /* >= WCAG AA 4.5:1 on --bg for caption text */

  /* single dominant accent (calm / rational / precision) */
  --accent:    #45d8c4;   /* teal-mint */
  --accent-d:  #1fb7a3;
  --accent-2:  #8a7bff;   /* violet — used only in gradient highlights */

  /* semantic data-viz colors */
  --bad:       #ff6b73;   /* softmax spikes / defect (used ONLY in viz) */
  --bad-d:     #c94b52;
  --good:      var(--accent);
  --eq:        #828d9e;   /* parity / neutral bars + labels (>= AA) */

  --radius:    14px;
  --radius-sm: 10px;
  --maxw:      1180px;
  --gap:       clamp(16px, 3vw, 28px);

  --mono: "JetBrains Mono", ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --shadow: 0 18px 50px -22px rgba(0,0,0,.8);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
html:focus-within{ scroll-behavior:smooth; }

body{
  margin:0;
  background:
    radial-gradient(1200px 700px at 78% -8%, rgba(69,216,196,.10), transparent 60%),
    radial-gradient(900px 600px at -5% 8%, rgba(138,123,255,.08), transparent 55%),
    var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.62;
  letter-spacing:.1px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

a{ color:inherit; text-decoration:none; }
img,svg{ max-width:100%; display:block; }
::selection{ background:rgba(69,216,196,.28); color:#fff; }

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(18px,4vw,34px); }
.mono{ font-family:var(--mono); }
.grad{
  background:linear-gradient(92deg, var(--accent) 0%, #7fe9dc 38%, var(--accent-2) 110%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.nowrap{ white-space:nowrap; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5em;
  font:600 .95rem/1 var(--sans); letter-spacing:.2px;
  padding:.85em 1.3em; border-radius:999px;
  border:1px solid var(--line-2); color:var(--ink);
  cursor:pointer; transition:.18s ease; background:transparent; white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); border-color:var(--accent); }
.btn-primary{
  background:linear-gradient(180deg, var(--accent) 0%, var(--accent-d) 100%);
  color:#04110f; border-color:transparent; box-shadow:0 10px 30px -12px rgba(69,216,196,.6);
}
.btn-primary:hover{ box-shadow:0 14px 36px -12px rgba(69,216,196,.75); }
.btn-ghost{ background:rgba(255,255,255,.02); }
.btn-sm{ padding:.62em 1.05em; font-size:.86rem; }
.btn svg{ width:1.05em; height:1.05em; }

.link-arrow{ color:var(--accent); font-weight:600; font-size:.95rem; display:inline-flex; gap:.35em; align-items:center; }
.link-arrow:hover{ gap:.6em; }

/* ---------- nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(7,9,13,.72); backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-inner{ display:flex; align-items:center; justify-content:space-between; height:66px; }
.brand{ display:flex; align-items:center; gap:.6em; font-weight:800; letter-spacing:.4px; font-size:1.02rem; }
.brand .logo-slot{ height:26px; width:auto; display:block; }
.brand b{ font-weight:800; }
.nav-links{ display:flex; align-items:center; gap:clamp(12px,1.6vw,26px); }
.nav-links a{ color:var(--ink-soft); font-size:.92rem; font-weight:500; transition:.15s; }
.nav-links a:hover{ color:var(--ink); }
.nav-toggle{ display:none; background:none; border:1px solid var(--line-2); color:var(--ink); font-size:1.2rem; border-radius:10px; width:42px; height:40px; cursor:pointer; }

/* ---------- generic section ---------- */
.section{ padding:clamp(64px,9vw,116px) 0; position:relative; }
.section.alt{ background:linear-gradient(180deg, rgba(255,255,255,.014), rgba(255,255,255,0)); border-block:1px solid var(--line); }
.sec-head{ max-width:760px; margin-bottom:clamp(30px,5vw,52px); }
.kicker{
  display:inline-block; font:600 .76rem/1 var(--mono); letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent); margin-bottom:14px;
}
h1,h2,h3,h4{ line-height:1.12; letter-spacing:-.02em; margin:0; }
h2{ font-size:clamp(1.7rem,3.6vw,2.5rem); font-weight:700; }
.sec-sub{ color:var(--ink-soft); font-size:1.06rem; margin-top:16px; }
.badge{
  font:600 .64rem/1 var(--mono); letter-spacing:.12em; text-transform:uppercase;
  color:var(--accent); border:1px solid var(--accent-d); border-radius:999px; padding:.5em .8em;
  vertical-align:middle; margin-left:.5em; white-space:nowrap;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font:600 .74rem/1 var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--mut);
  border:1px solid var(--line); border-radius:999px; padding:.6em 1em; margin-bottom:22px;
  background:rgba(255,255,255,.02);
}
.eyebrow .pulse{ width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 0 rgba(69,216,196,.6); animation:pulse 2.4s infinite; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(69,216,196,.5)} 70%{box-shadow:0 0 0 9px rgba(69,216,196,0)} 100%{box-shadow:0 0 0 0 rgba(69,216,196,0)} }

/* ---------- hero ---------- */
.hero{ padding:clamp(46px,7vw,84px) 0 clamp(30px,5vw,46px); position:relative; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(26px,4vw,52px); align-items:center; }
.hero h1{ font-size:clamp(2.3rem,5.6vw,3.85rem); font-weight:800; letter-spacing:-.03em; }
.hero .lede{ font-size:clamp(1.04rem,1.7vw,1.2rem); color:var(--ink-soft); margin:22px 0 8px; max-width:34em; }
.hero .lede strong{ color:var(--ink); font-weight:650; }
.slogan{ font-family:var(--mono); color:var(--accent); letter-spacing:.02em; font-size:.98rem; margin:6px 0 26px; }
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-ask{
  margin-top:26px; display:flex; gap:.7em; align-items:flex-start;
  font-size:.95rem; color:var(--ink-soft);
  border-left:2px solid var(--accent); padding:.5em 0 .5em 1em;
}
.hero-ask strong{ color:var(--ink); }

/* hero stability viz */
.hero-viz{
  margin:0; background:linear-gradient(180deg, var(--panel), var(--bg-1));
  border:1px solid var(--line-2); border-radius:var(--radius); padding:18px 18px 14px;
  box-shadow:var(--shadow);
}
.viz-head{ display:flex; justify-content:space-between; align-items:center; font-size:.78rem; color:var(--mut); margin-bottom:8px; }
.viz-head .mono{ color:var(--mut-2); font-size:.72rem; }
.viz-svg{ width:100%; height:auto; display:block; }
.line-soft{ fill:none; stroke:var(--bad); stroke-width:1.7; opacity:.9; stroke-linejoin:round; }
.line-rat{ fill:none; stroke:var(--accent); stroke-width:2.4; stroke-linecap:round; filter:drop-shadow(0 0 6px rgba(69,216,196,.5)); }
.viz-threshold{ stroke:var(--mut-2); stroke-width:1; stroke-dasharray:4 4; opacity:.5; }
.viz-legend{ display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:10px; font-size:.78rem; color:var(--ink-soft); }
.viz-legend span{ display:inline-flex; align-items:center; gap:.5em; }
.sw{ width:14px; height:3px; border-radius:2px; display:inline-block; }
.sw.soft{ background:var(--bad); }
.sw.rat{ background:var(--accent); }
.sw.thr{ background:repeating-linear-gradient(90deg,var(--mut-2) 0 4px,transparent 4px 8px); height:2px; }
.viz-axes{ font-family:var(--mono); font-size:.66rem; color:var(--mut-2); letter-spacing:.04em; margin:2px 0 8px; }
.viz-stat{ margin-top:10px; padding-top:9px; border-top:1px solid var(--line); font-family:var(--mono); font-size:.72rem; color:var(--ink-soft); }
.viz-stat b{ color:var(--ink); }

/* proof strip */
.proof-strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:clamp(30px,5vw,48px);
}
.proof-strip > div{
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px 16px;
  background:rgba(255,255,255,.015);
}
.proof-strip b{ display:block; font-family:var(--mono); font-size:1.45rem; color:var(--ink); letter-spacing:-.01em; }
.proof-strip span{ font-size:.82rem; color:var(--mut); }

/* honest credibility-by-proxy ribbon (stealth: methodology = letter of intro) */
.trust-ribbon{ display:flex; flex-wrap:wrap; justify-content:center; gap:9px; margin-top:18px; }
.trust-ribbon span{
  font:600 .72rem/1 var(--mono); letter-spacing:.03em; color:var(--ink-soft);
  border:1px solid var(--line); border-radius:999px; padding:.6em .9em; background:rgba(255,255,255,.015);
}
.trust-ribbon span::before{ content:"✓\00a0"; color:var(--accent); }

/* ---------- two identity ---------- */
.two-id{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); }
.id-card{
  border:1px solid var(--line); border-radius:var(--radius); padding:clamp(22px,3vw,34px);
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));
  position:relative; overflow:hidden;
}
.id-card::before{ content:""; position:absolute; inset:0 auto auto 0; width:42px; height:3px; background:linear-gradient(90deg,var(--accent),transparent); }
.id-card h3{ font-size:1.22rem; margin-bottom:10px; }
.id-card p{ color:var(--ink-soft); font-size:.98rem; margin:0 0 16px; }
.id-tag{ font:600 .7rem/1 var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--mut); }

/* ---------- cards grid ---------- */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--gap); }
.card{
  border:1px solid var(--line); border-radius:var(--radius); padding:24px 22px;
  background:linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,0));
  transition:.18s ease;
}
.card:hover{ border-color:var(--line-2); transform:translateY(-2px); }
.card .ic{ width:34px; height:34px; color:var(--accent); margin-bottom:14px; }
.card h4{ font-size:1.06rem; margin-bottom:8px; display:flex; align-items:center; gap:.5em; flex-wrap:wrap; }
.card p{ color:var(--ink-soft); font-size:.93rem; margin:0; }
.card.hyp{ border-color:rgba(138,123,255,.28); background:linear-gradient(180deg, rgba(138,123,255,.05), rgba(255,255,255,0)); }
.card.hyp .ic{ color:var(--accent-2); }
.tag-live{ font:600 .64rem/1 var(--mono); color:var(--accent); border:1px solid var(--accent-d); border-radius:999px; padding:.42em .7em; letter-spacing:.1em; }
.tag-hyp{ font:600 .64rem/1 var(--mono); color:var(--accent-2); border:1px solid rgba(138,123,255,.4); border-radius:999px; padding:.42em .7em; letter-spacing:.06em; text-transform:uppercase; }

.lineage{ margin-top:clamp(24px,4vw,38px); padding:18px 20px; border:1px dashed var(--line-2); border-radius:var(--radius-sm); color:var(--mut); font-size:.9rem; }
.lineage em{ color:var(--ink-soft); font-style:normal; }

/* ecosystem-compatibility strip */
.ecosystem{ margin-top:clamp(24px,4vw,40px); border:1px solid var(--line-2); border-radius:var(--radius);
  padding:clamp(22px,3vw,32px); background:linear-gradient(120deg, rgba(47,147,255,.07), rgba(69,216,196,.05)); }
.eco-head{ max-width:760px; margin-bottom:18px; }
.eco-head h3{ font-size:clamp(1.15rem,2.4vw,1.5rem); margin-bottom:8px; }
.eco-head p{ color:var(--ink-soft); font-size:.96rem; margin:0; }
.eco-pills{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px; }
.eco-pills li{ font:600 .82rem/1 var(--mono); color:var(--ink-soft); border:1px solid var(--line-2);
  border-radius:999px; padding:.6em .95em; background:rgba(255,255,255,.02); white-space:nowrap; }
.eco-pills li::before{ content:""; display:inline-block; width:6px; height:6px; border-radius:50%;
  background:var(--accent); margin-right:.55em; vertical-align:middle; box-shadow:0 0 6px var(--accent); }

/* ---------- results / metrics ---------- */
.metrics{ display:grid; gap:20px; margin-bottom:clamp(24px,4vw,40px); }
.metric{ border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; background:rgba(255,255,255,.012); }
.m-row{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px; }
.m-row span{ font-size:.92rem; color:var(--ink-soft); }
.m-row .m-note{ font-size:.74rem; color:var(--mut-2); font-family:var(--mono); }
.bar{ display:flex; align-items:center; gap:12px; margin:9px 0; }
.bar .track{ flex:1; height:11px; border-radius:6px; background:rgba(255,255,255,.05); overflow:hidden; }
.bar .track i{ display:block; height:100%; border-radius:6px; width:0; transition:width 1.1s cubic-bezier(.2,.7,.2,1); }
.bar .b-bad{ background:linear-gradient(90deg,var(--bad-d),var(--bad)); }
.bar .b-good{ background:linear-gradient(90deg,var(--accent-d),var(--accent)); box-shadow:0 0 14px -2px rgba(69,216,196,.5); }
.bar .b-eq{ background:linear-gradient(90deg,#4a5462,var(--eq)); }
.bar b{ font-family:var(--mono); font-size:.84rem; min-width:128px; text-align:right; color:var(--ink); }
.bar b small{ color:var(--mut); }

.result-notes{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); margin-bottom:8px; }
.rn{ border-top:2px solid var(--accent); padding-top:14px; }
.rn b{ display:block; font-size:.96rem; margin-bottom:6px; }
.rn p{ color:var(--ink-soft); font-size:.88rem; margin:0; }

.caveat{
  margin-top:26px; font-size:.85rem; color:var(--mut);
  background:rgba(255,255,255,.02); border:1px solid var(--line); border-radius:var(--radius-sm); padding:14px 18px;
}
.caveat b{ color:var(--ink-soft); }

/* scale-curve mini chart */
.scale-chart{ border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px 14px; background:rgba(255,255,255,.012); }
.scale-chart .sc-cap{ font-size:.82rem; color:var(--mut); margin-bottom:10px; display:flex; justify-content:space-between; }

/* ---------- downloads ---------- */
.dl-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.dl{
  display:flex; gap:14px; align-items:flex-start;
  border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px;
  background:rgba(255,255,255,.014); transition:.16s;
}
.dl:hover{ border-color:var(--accent-d); transform:translateY(-2px); }
.dl .ic{ width:30px; height:30px; color:var(--accent); flex:none; margin-top:2px; }
.dl .dl-body{ flex:1; min-width:0; }
.dl h4{ font-size:.98rem; margin-bottom:3px; }
.dl p{ font-size:.84rem; color:var(--mut); margin:0 0 10px; }
.dl .dl-links{ display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.dl .dl-link{ font:600 .8rem/1 var(--mono); color:var(--accent); display:inline-flex; align-items:center; gap:.45em; }
.dl .dl-link:hover{ text-decoration:underline; }
.dl .dl-meta{ font-family:var(--mono); font-size:.7rem; color:var(--mut-2); margin-left:.6em; }
.dl-note{ grid-column:1/-1; font-size:.82rem; color:var(--mut); border:1px dashed var(--line-2); border-radius:var(--radius-sm); padding:14px 18px; }

/* ---------- services ---------- */
.svc-list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.svc{
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:18px 20px;
  background:rgba(255,255,255,.012); display:flex; flex-direction:column; gap:6px;
}
.svc .svc-h{ display:flex; align-items:center; gap:.6em; }
.svc .ic{ width:22px; height:22px; color:var(--accent); flex:none; }
.svc b{ font-size:.98rem; }
.svc span{ color:var(--ink-soft); font-size:.88rem; }
.svc .svc-tier{ font:600 .62rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--mut-2); margin-left:auto; }

/* ---------- IP ---------- */
.ip-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:var(--gap); align-items:start; }
.ip-list{ display:grid; gap:12px; }
.ip-item{ display:flex; gap:12px; align-items:flex-start; border:1px solid var(--line); border-radius:var(--radius-sm); padding:15px 18px; background:rgba(255,255,255,.012); }
.ip-item .ic{ width:24px; height:24px; color:var(--accent); flex:none; margin-top:1px; }
.ip-item b{ font-size:.95rem; } .ip-item p{ margin:2px 0 0; font-size:.86rem; color:var(--ink-soft); }
.ip-panel{ border:1px solid var(--line-2); border-radius:var(--radius); padding:24px; background:linear-gradient(180deg, rgba(138,123,255,.05), rgba(255,255,255,0)); }
.ip-panel .stamp{
  font:700 .78rem/1.3 var(--mono); letter-spacing:.06em; color:var(--accent);
  border:1px solid var(--accent-d); border-radius:10px; padding:12px 14px; display:inline-block; margin-bottom:16px;
}
.ip-panel ul{ margin:0; padding-left:1.1em; color:var(--ink-soft); font-size:.9rem; }
.ip-panel li{ margin:.4em 0; }
.ip-forthcoming{ display:flex; gap:.9em; align-items:flex-start; margin:clamp(22px,3vw,34px) 0 0;
  border:1px solid var(--line-2); border-left:3px solid var(--accent); border-radius:var(--radius);
  padding:18px 22px; background:linear-gradient(120deg, rgba(69,216,196,.06), rgba(138,123,255,.05));
  color:var(--ink-soft); font-size:.98rem; }
.ip-forthcoming svg{ width:24px; height:24px; color:var(--accent); flex:none; margin-top:2px; }
.ip-forthcoming strong{ color:var(--ink); }

/* ---------- about ---------- */
.about-grid{ display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(26px,4vw,52px); align-items:start; }
.about-grid p{ color:var(--ink-soft); }
.about-grid p strong{ color:var(--ink); }
.invest-ready{ border-left:2px solid var(--accent); padding-left:1em; }
.about-side{ display:grid; gap:12px; }
.fact{ border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px 18px; background:rgba(255,255,255,.012); }
.fact b{ display:block; font-family:var(--mono); font-size:1.5rem; color:var(--ink); }
.fact span{ font-size:.82rem; color:var(--mut); }

/* ---------- investors / data room ---------- */
.dataroom{
  border:1px solid var(--line-2); border-radius:var(--radius); padding:clamp(24px,4vw,40px);
  background:linear-gradient(120deg, rgba(69,216,196,.06), rgba(138,123,255,.05));
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(24px,4vw,44px); align-items:center;
}
.dataroom h3{ font-size:1.4rem; margin-bottom:10px; }
.dataroom p{ color:var(--ink-soft); font-size:.96rem; margin:0 0 14px; }
.dataroom .ask-list{ list-style:none; padding:0; margin:0 0 4px; display:grid; gap:9px; }
.dataroom .ask-list li{ display:flex; gap:.6em; align-items:flex-start; font-size:.92rem; color:var(--ink-soft); }
.dataroom .ask-list .ic{ width:18px; height:18px; color:var(--accent); flex:none; margin-top:3px; }

/* brief request mini-form */
.brief-form{ background:var(--panel); border:1px solid var(--line-2); border-radius:var(--radius); padding:22px; }
.brief-form h4{ font-size:1rem; margin-bottom:4px; }
.brief-form p{ font-size:.82rem; color:var(--mut); margin:0 0 14px; }
.brief-row{ display:flex; gap:10px; flex-wrap:wrap; }
.brief-row input, .brief-row select, .lead-form input, .lead-form select, .lead-form textarea{
  width:100%; background:var(--bg-1); border:1px solid var(--line-2); border-radius:10px;
  color:var(--ink); font:500 .92rem/1.4 var(--sans); padding:.7em .85em;
}
input:focus,select:focus,textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(69,216,196,.15); }

/* ---------- contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,4vw,52px); align-items:start; }
.contact-copy p{ color:var(--ink-soft); }
.contact-routes{ list-style:none; padding:0; margin:18px 0; display:grid; gap:12px; }
.contact-routes li{ display:flex; gap:.7em; align-items:flex-start; font-size:.92rem; color:var(--ink-soft); }
.contact-routes .ic{ width:20px; height:20px; color:var(--accent); flex:none; margin-top:2px; }
.contact-routes b{ color:var(--ink); }
.email-line{ font-size:.92rem; color:var(--mut); } .email-line a{ color:var(--accent); }
.social-line{ display:flex; gap:12px; margin-top:14px; }
.social-line a{ width:40px; height:40px; border:1px solid var(--line-2); border-radius:10px; display:grid; place-items:center; color:var(--ink-soft); transition:.16s; }
.social-line a:hover{ color:var(--accent); border-color:var(--accent-d); }
.social-line svg{ width:18px; height:18px; }

.lead-form{ background:var(--panel); border:1px solid var(--line-2); border-radius:var(--radius); padding:clamp(22px,3vw,30px); box-shadow:var(--shadow); }
.f-row{ margin-bottom:14px; }
.f-row label{ display:block; font-size:.82rem; color:var(--ink-soft); margin-bottom:6px; font-weight:500; }
.f-row.split{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lead-form textarea{ resize:vertical; min-height:92px; }
.form-msg{ font-size:.88rem; margin:12px 0 0; min-height:1em; }
.form-msg.ok{ color:var(--accent); } .form-msg.err{ color:var(--bad); }
.form-note{ font-size:.76rem; color:var(--mut-2); margin:12px 0 0; }
.lead-form .btn-primary{ width:100%; justify-content:center; margin-top:4px; }

/* ---------- footer ---------- */
.footer{ border-top:1px solid var(--line); padding:clamp(40px,6vw,64px) 0; color:var(--mut); }
.foot-wrap{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.foot-logo{ width:clamp(210px,38vw,300px); height:auto; opacity:.96; }
.foot-meta{ display:grid; gap:5px; text-align:center; font-size:.8rem; }
.foot-meta .gate{ color:var(--accent-2); }

/* ---------- reveal-on-scroll ---------- */
[data-reveal]{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
[data-reveal].in{ opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width:920px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-viz{ order:2; }
  .proof-strip{ grid-template-columns:1fr 1fr; }
  .grid-3{ grid-template-columns:1fr 1fr; }
  .result-notes{ grid-template-columns:1fr; }
  .ip-grid,.about-grid,.contact-grid,.dataroom{ grid-template-columns:1fr; }
  .two-id{ grid-template-columns:1fr; }
}
@media (max-width:680px){
  .nav-links{
    position:absolute; top:66px; left:0; right:0; flex-direction:column; align-items:stretch;
    gap:0; background:var(--bg-1); border-bottom:1px solid var(--line); padding:8px 18px 16px;
    display:none;
  }
  .nav-links.open{ display:flex; }
  .nav-links a{ padding:12px 4px; border-bottom:1px solid var(--line); }
  .nav-links a.btn{ margin-top:10px; justify-content:center; border-bottom:none; }
  .nav-toggle{ display:block; }
  .grid-3,.grid-2,.dl-grid,.svc-list,.metrics{ grid-template-columns:1fr; }
  .proof-strip{ grid-template-columns:1fr 1fr; }
  .f-row.split{ grid-template-columns:1fr; }
  .foot-inner{ flex-direction:column; align-items:flex-start; }
  .foot-meta{ text-align:left; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  [data-reveal]{ opacity:1; transform:none; }
}

/* ---------- polish & accessibility ---------- */
/* offset anchored sections so they don't hide under the sticky nav */
section[id], header.nav, .hero{ scroll-margin-top:80px; }
/* visible keyboard focus ring (mouse focus stays clean) */
:where(a, button, input, select, textarea):focus-visible{
  outline:2px solid var(--accent); outline-offset:3px; border-radius:6px;
}
.btn:active{ transform:translateY(0); }

@media print{
  .nav, .nav-toggle, .hero-cta, .hero-viz, .lead-form, .brief-form, .social-line, .trust-ribbon, .dl, .form-note{ display:none !important; }
  body{ background:#fff; color:#000; }
  a{ color:#000; text-decoration:underline; }
  .section{ padding:18px 0; border:none; }
  .grad{ -webkit-text-fill-color:#000; color:#000; }
}


/* ---- accessibility: skip link + screen-reader-only headings (audit #28/#29) ---- */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:#11171f;color:#e6edf5;border:1px solid rgba(150,170,200,.3);padding:10px 16px;border-radius:0 0 10px 0;font:600 14px/1 Inter,system-ui,sans-serif;text-decoration:none}
.skip-link:focus{left:0}
