/* ============================================================
   ANER GROUP - consolidated site stylesheet (aner.css)
   Single source of truth for the Aner deck-style web system.
   Layers, in order: fonts, base system, deck skin, shared
   components (hero-full, soc2). Page-specific styles remain
   inline in each page.
   ============================================================ */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/montserrat-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/montserrat-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/montserrat-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/montserrat-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/montserrat-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/inter-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');}

/* ============================================================
   ANER GROUP - brand tokens (shared Aner house system)
   ============================================================ */
:root{
  --cobalt:      #3D5AF1;   /* brand accent (gradient blue end) */
  --cobalt-deep: #2E43D8;   /* hover / pressed */
  --cobalt-lt:   #6E8BFF;   /* dark-section eyebrow accent */
  --cobalt-hz:   #3AD0FF;   /* hero headline accent (brand cyan) */
  --grad-cyan:   #16C4F0;   /* brand gradient start */
  --grad-blue:   #3D5AF1;   /* brand gradient end */
  --ink:         #0E1526;
  --ink-2:       #151E38;   /* dark card surface */
  --ink-line:    #253150;
  --ink-text:    #EAEEF7;   /* dark section body text */
  --ink-soft:    #C6CEE0;   /* dark section lede */
  --ink-mut:     #8FA0C4;   /* dark section muted */
  --navy-deep:   #0B111F;   /* SOC 2 panel / console */
  --grey:        #5B6B86;
  --paper:       #FFFFFF;
  --mist:        #F3F6FC;
  --lavender:    #EAF0FC;   /* shaded card surface */
  --line:        #DFE6F3;

  --font-display:'Montserrat', sans-serif;
  --font-body:   'Inter', sans-serif;
  --font-mono:   'IBM Plex Mono', monospace;

  --radius-card: 16px;
  --radius-btn:  10px;
  --radius-pill: 99px;

  --shadow-media:  0 24px 60px -38px rgba(20,24,43,.55);
  --shadow-accent: 0 22px 44px -30px rgba(61,90,241,.45);
  --shadow-dark:   0 18px 40px -30px rgba(0,0,0,.65);
  --shadow-micro:  0 1px 3px rgba(20,24,43,.08);

  --max-w: 1240px;
  --pad-x: clamp(20px, 5vw, 48px);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; }

a{ color:var(--cobalt); text-decoration:none; }
a:hover{ color:var(--cobalt-deep); }
a:focus-visible, button:focus-visible{ outline:2px solid var(--cobalt); outline-offset:3px; border-radius:2px; }

.wrap{ max-width:var(--max-w); margin:0 auto; padding-left:var(--pad-x); padding-right:var(--pad-x); }

/* mono eyebrow labels - structural signposts throughout */
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--cobalt); display:block; margin-bottom:18px;
}
h2{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(26px, 3.4vw, 36px); line-height:1.2; letter-spacing:-0.01em;
  max-width:70ch;
}
.subline{
  font-family:var(--font-display); font-weight:600;
  font-size:clamp(17px,1.9vw,20px); line-height:1.3; letter-spacing:-0.01em;
  color:var(--ink); margin-top:14px; max-width:46ch;
}
.lede{ color:var(--grey); font-size:clamp(16px, 1.6vw, 18px); max-width:70ch; margin-top:16px; }

/* ============================================================ Header */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  border-top:3px solid var(--cobalt);
}
.header-in{ display:flex; align-items:center; justify-content:space-between; height:106px; }
.brand{ display:flex; align-items:center; }
/* primary lockup artwork (brand kit SVG), crisp at all sizes */
.brand-lockup{ height:72px; width:auto; display:block; }
@media (max-width:680px){ .brand-lockup{ height:54px; } }
/* live logo lockup: squircle glyph + webfont text, crisp at all sizes */
.logo-lock{ display:flex; align-items:center; gap:13px; }
.logo-glyph{ width:46px; height:46px; flex:none; display:block; }
.logo-word{ display:flex; flex-direction:column; gap:4px; font-family:var(--font-display); line-height:1; white-space:nowrap; }
.logo-word .logo-main{ font-weight:300; font-size:20px; letter-spacing:0.24em; color:var(--cobalt); }
.logo-word .logo-sub{ font-weight:500; font-size:10.5px; letter-spacing:0.34em; color:var(--grey); }
@media (max-width:680px){
  .logo-glyph{ width:40px; height:40px; }
  .logo-word .logo-main{ font-size:17px; }
  .logo-word .logo-sub{ font-size:9.5px; }
}
nav.main{ display:flex; gap:26px; align-items:center; }
nav.main a{ font-family:var(--font-display); font-size:14.5px; font-weight:500; letter-spacing:0; color:var(--ink); }
nav.main a:hover{ color:var(--cobalt); }
nav.main a.active{ color:var(--cobalt); }
.btn-nav{ padding:10px 18px; font-size:12px; letter-spacing:0.06em; }
@media (max-width:780px){ nav.main{ display:none; } }

/* ============================================================ Hero */
.hero{ padding:clamp(72px, 11vh, 130px) 0 clamp(56px, 8vh, 96px); }
.hero h1{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(34px, 5.6vw, 62px); line-height:1.08; letter-spacing:-0.015em;
  max-width:18ch;
}
.hero h1 em{ font-style:normal; color:var(--cobalt); }
.hero .lede{ margin-top:24px; max-width:62ch; }
.hero-actions{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }
.btn{
  display:inline-block; font-family:var(--font-display);
  font-weight:700; font-size:14px; letter-spacing:0.04em;
  padding:13px 26px; border-radius:var(--radius-btn);
  transition:background-color .18s ease, color .18s ease, border-color .18s ease;
}
.btn-primary{ background:var(--cobalt); color:#fff; }
.btn-primary:hover{ background:var(--cobalt-deep); color:#fff; }
.btn-ghost{ border:1.5px solid var(--line); color:var(--ink); }
.btn-ghost:hover{ border-color:var(--cobalt); color:var(--cobalt); }

/* status strip */
.status{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--mist); }
.status-in{ display:grid; grid-template-columns:repeat(4, 1fr); gap:0; }
.status-cell{ padding:20px 24px; font-family:var(--font-mono); font-size:12px; letter-spacing:0.06em; }
.status-cell + .status-cell{ border-left:1px solid var(--line); }
.status-cell .k{ color:var(--grey); display:block; margin-bottom:4px; text-transform:uppercase; font-size:11px; letter-spacing:0.12em; }
.status-cell .v{ color:var(--ink); font-weight:500; }
.dot{ display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:7px; background:var(--cobalt); vertical-align:1px; }
.dot.amber{ background:#C9821E; }
@media (max-width:960px){
  .status-in{ grid-template-columns:repeat(2, 1fr); }
  .status-cell:nth-child(3){ border-left:none; }
  .status-cell:nth-child(n+3){ border-top:1px solid var(--line); }
}
@media (max-width:560px){
  .status-in{ grid-template-columns:1fr; }
  .status-cell + .status-cell{ border-left:none; border-top:1px solid var(--line); }
}

/* ============================================================ Sections */
section{ padding:clamp(64px, 9vh, 110px) 0; }
section + section{ border-top:1px solid var(--line); }

/* pillars */
.pillars{ margin-top:48px; display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; }
.pillar{ border:1px solid var(--line); border-radius:var(--radius-card); padding:28px 26px 30px; transition:border-color .2s ease; }
.pillar:hover{ border-color:var(--cobalt); }
.pillar h3{ font-family:var(--font-display); font-weight:700; font-size:17px; letter-spacing:0.01em; margin:18px 0 10px; }
.pillar p{ color:var(--grey); font-size:15px; }
.pillar .tag{
  font-family:var(--font-mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--grey); border:1px solid var(--line); border-radius:var(--radius-pill); padding:4px 10px; display:inline-block;
}
.pillar-icon{ width:34px; height:34px; color:var(--cobalt); }
@media (max-width:860px){ .pillars{ grid-template-columns:1fr; } }

/* rows */
.rows{ margin-top:44px; border-top:1px solid var(--line); }
.row{ display:grid; grid-template-columns:220px 1fr; gap:32px; padding:26px 0; border-bottom:1px solid var(--line); }
.row .label{ font-family:var(--font-mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--cobalt); padding-top:4px; }
.row p{ color:var(--ink); max-width:62ch; }
.row p span{ color:var(--grey); }
@media (max-width:680px){ .row{ grid-template-columns:1fr; gap:8px; } }

/* group / heritage */
.group-grid{ margin-top:44px; display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; }
.gcard{ padding-top:22px; border-top:3px solid var(--cobalt); }
.gcard .gmark{ width:44px; height:44px; display:block; margin-bottom:14px; }
.gcard .yr{ font-family:var(--font-mono); font-size:12px; letter-spacing:0.1em; color:var(--grey); }
.gcard h3{ font-family:var(--font-display); font-weight:700; font-size:16px; margin:8px 0 8px; }
.gcard p{ font-size:15px; color:var(--grey); }
.gcard .here{ font-family:var(--font-mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--cobalt); display:inline-block; margin-top:10px; }
@media (max-width:860px){ .group-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .group-grid{ grid-template-columns:1fr; } }

/* labs */
.labs-logo{ height:40px; width:auto; margin-bottom:22px; }

/* registry - signature dark element */
.registry{ background:var(--ink); color:#fff; }
.registry .eyebrow{ color:var(--cobalt-lt); }
.registry h2{ color:#fff; }
.reg-table{ margin-top:44px; border:1px solid var(--ink-line); border-radius:var(--radius-card); overflow:hidden; font-family:var(--font-mono); font-size:14px; }
.reg-row{ display:grid; grid-template-columns:260px 1fr; border-bottom:1px solid var(--ink-line); }
.reg-row:last-child{ border-bottom:none; }
.reg-row .rk{ padding:16px 22px; color:var(--cobalt-lt); letter-spacing:0.1em; font-size:12px; text-transform:uppercase; background:rgba(255,255,255,0.025); border-right:1px solid var(--ink-line); }
.reg-row .rv{ padding:16px 22px; color:var(--ink-text); }
.reg-row .rv .sub{ color:var(--ink-mut); }
@media (max-width:680px){
  .reg-row{ grid-template-columns:1fr; }
  .reg-row .rk{ border-right:none; padding-bottom:6px; }
  .reg-row .rv{ padding-top:0; }
}

/* contact + footer */
.contact .channels{ margin-top:40px; display:grid; grid-template-columns:repeat(2, 1fr); gap:28px; }
.channel{ border:1px solid var(--line); border-radius:var(--radius-card); padding:26px; }
.channel .label{ font-family:var(--font-mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--grey); display:block; margin-bottom:10px; }
.channel a{ font-family:var(--font-display); font-weight:700; font-size:17px; }
.channel p{ color:var(--grey); font-size:14px; margin-top:8px; }
@media (max-width:680px){ .contact .channels{ grid-template-columns:1fr; } }

footer{ border-top:1px solid var(--line); padding:48px 0 56px; }
.foot-brand{ display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.foot-brand .glyph{ width:28px; height:28px; }
.foot-brand .name{ font-family:var(--font-display); font-weight:800; font-size:14px; letter-spacing:0.22em; }
.disclaimer{ color:var(--grey); font-size:12px; line-height:1.75; text-align:justify; text-justify:inter-word; hyphens:auto; max-width:105ch; }
.disclaimer + .disclaimer{ margin-top:14px; }
.foot-meta{ margin-top:28px; font-family:var(--font-mono); font-size:12px; letter-spacing:0.06em; color:var(--grey); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

/* imagery / media */
.media{ border-radius:var(--radius-card); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-media); background:var(--mist); }
.media img{ width:100%; height:100%; object-fit:cover; display:block; }
.media-43{ aspect-ratio:4/3; }
.media-32{ aspect-ratio:3/2; }
.hero-grid{ display:grid; grid-template-columns:1.05fr 0.92fr; gap:clamp(28px,4vw,56px); align-items:center; }
.hero-grid .hero-copy{ min-width:0; }
@media (max-width:860px){ .hero-grid{ grid-template-columns:1fr; } }
.split-media{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:center; }
.split-media .prose{ min-width:0; }
@media (max-width:860px){ .split-media{ grid-template-columns:1fr; } }
.ops-head{ display:grid; grid-template-columns:1.25fr 0.75fr; gap:clamp(28px,4vw,56px); align-items:center; }
@media (max-width:860px){ .ops-head{ grid-template-columns:1fr; } .ops-head .media{ display:none; } }
.labs-banner{ margin-top:36px; }
.labs-banner .media{ aspect-ratio:21/9; }
.band-sec{ padding:clamp(40px,6vh,72px) 0; }
.band{ position:relative; border-radius:var(--radius-card); overflow:hidden; }
.band img{ width:100%; height:100%; object-fit:cover; object-position:center 10%; display:block; aspect-ratio:16/7; }
.band .ov{ position:absolute; inset:0; display:flex; align-items:center;
  background:linear-gradient(90deg, rgba(20,24,43,.84) 0%, rgba(20,24,43,.55) 46%, rgba(20,24,43,.12) 100%); }
.band .ov .t{ padding:0 clamp(26px,5vw,60px); color:#fff; font-family:var(--font-display); font-weight:700;
  font-size:clamp(20px,3vw,32px); line-height:1.2; max-width:26ch; letter-spacing:-0.01em; }
@media (max-width:680px){ .band img{ aspect-ratio:4/3; object-position:center top; } .band .ov{ background:linear-gradient(180deg, rgba(20,24,43,.35), rgba(20,24,43,.82)); align-items:flex-end; } .band .ov .t{ padding-bottom:24px; } }

/* reveal */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ============================================================
   ANER deck skin
   Shaded-card system carried over from the GIFT IFIH deck:
   lavender panels, white icon chips, rounded outlined rows,
   numbered eyebrows; dark sections run clean (no watermarks).
   ============================================================ */

/* eyebrows: cobalt index number, slate label (deck header style) */
.eyebrow{ color:var(--grey); }
.eyebrow b{ color:var(--cobalt); font-weight:600; }
.registry .eyebrow{ color:var(--ink-mut); }
.registry .eyebrow b{ color:var(--cobalt-lt); }
.hero-full .eyebrow{ color:var(--ink-mut); }
.hero-full .eyebrow b{ color:var(--cobalt-hz); }

/* pillar cards: shaded lavender panels with white icon chips */
.pillar{
  background:var(--lavender);
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:30px 28px 32px;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.pillar:hover{
  border-color:var(--cobalt);
  transform:translateY(-3px);
  box-shadow:var(--shadow-accent);
}
.pillar-icon{
  width:54px; height:54px; padding:14px;
  color:var(--cobalt); background:#FFFFFF;
  border-radius:var(--radius-btn);
  box-shadow:var(--shadow-micro);
}
.pillar .tag{
  background:#FFFFFF; border-color:transparent;
  box-shadow:var(--shadow-micro);
}

/* rows: outlined list cards (deck corridor rows) */
.rows{ border-top:none; display:grid; gap:14px; }
.row{
  border:1px solid #E2E7F3; border-bottom:1px solid #E2E7F3;
  border-radius:var(--radius-card); padding:22px 26px; background:#FFFFFF;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.row:hover{ border-color:var(--cobalt); box-shadow:var(--shadow-accent); }

/* group cards: shaded like the pillars, no accent borders;
   the current entity is marked by a cobalt pill instead */
.gcard{
  border:1px solid var(--line);
  border-radius:var(--radius-card); background:var(--lavender);
  padding:24px 24px 26px;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.gcard:hover{ border-color:var(--cobalt); transform:translateY(-3px); box-shadow:var(--shadow-accent); }
.gcard .here{ background:var(--cobalt); color:#FFFFFF; border-radius:var(--radius-pill); padding:4px 11px; }

/* contact channels: shaded panels */
.channel{
  background:var(--lavender); border:1px solid var(--line);
  border-radius:var(--radius-card); padding:28px;
}

/* dark registry: rounded table */
.registry{ position:relative; overflow:hidden; }
.registry .wrap{ position:relative; z-index:1; }
.reg-table{ border-radius:var(--radius-card); background:rgba(255,255,255,.015); }

.hero-full{ position:relative; }

/* ============================================================
   typography boost: deck-weight headlines, larger card titles,
   darker slate body text for readability
   ============================================================ */
h2{
  font-weight:800;
  font-size:clamp(29px, 3.9vw, 42px);
  letter-spacing:-0.015em;
  line-height:1.14;
}
.subline{ font-weight:700; }
.lede{ color:#49536B; font-size:clamp(16px, 1.6vw, 18px); }
.pillar h3{ font-size:18px; font-weight:800; letter-spacing:-0.015em; margin-top:20px; }
.pillar p{ color:#525D77; font-size:16px; }
.gcard h3{ font-size:18px; font-weight:800; letter-spacing:-0.01em; }
.gcard p{ color:#525D77; }
.channel a{ font-size:18px; font-weight:800; }
.channel p{ color:#525D77; }
.row p{ font-size:17px; }
.row p span{ color:#525D77; }
.aspect h3{ font-weight:800; }
.aspect p{ color:#49536B; }
.status-cell .k{ color:#525D77; }

/* ============================================================
   deck navy panel: closing CTA rendered as a dark rounded card
   ============================================================ */
#cta .wrap{
  background:var(--ink); border-radius:var(--radius-card);
  padding-top:clamp(44px, 6vh, 64px);
  padding-bottom:clamp(48px, 6vh, 68px);
  position:relative; overflow:hidden;
}
#cta .wrap > *{ position:relative; z-index:1; }
#cta h2{ color:#FFFFFF; }
#cta .lede{ color:#C2C9DC; }
#cta .eyebrow{ color:var(--ink-mut); }
#cta .eyebrow b{ color:var(--cobalt-hz); }
#cta .btn-ghost{ border-color:rgba(255,255,255,.32); color:#FFFFFF; }
#cta .btn-ghost:hover{ border-color:#FFFFFF; color:#FFFFFF; }

/* ============================================================
   navy contrast system: deck dark-slide treatment site-wide.
   Applied to service-page heroes, status strips, the rows
   sections (#work, #why, #how) and the Labs section on home.
   ============================================================ */
:is(section.hero, .sec-dark){
  background:var(--ink);
  border-top-color:var(--ink-line);
}
:is(section.hero, .sec-dark) :is(h1, h2, .subline){ color:#FFFFFF; }
section.hero h1 em{ color:var(--cobalt-hz); }
:is(section.hero, .sec-dark) .lede{ color:#C2C9DC; }
:is(section.hero, .sec-dark) .eyebrow{ color:var(--ink-mut); }
:is(section.hero, .sec-dark) .eyebrow b{ color:var(--cobalt-hz); }
section.hero .hero-copy > a{ color:var(--ink-mut) !important; }

/* rows become dark cards (deck dark-slide list cards) */
:is(section.hero, .sec-dark) .row{
  background:var(--ink-2); border-color:var(--ink-line);
}
:is(section.hero, .sec-dark) .row:hover{
  border-color:var(--cobalt-hz);
  box-shadow:var(--shadow-dark);
}
:is(section.hero, .sec-dark) .row .label{ color:var(--cobalt-hz); }
:is(section.hero, .sec-dark) .row p{ color:var(--ink-text); }
:is(section.hero, .sec-dark) .row p span{ color:var(--ink-mut); }

/* pillar cards inside navy sections: dark cards, cobalt chips */
:is(section.hero, .sec-dark) .pillar{ background:var(--ink-2); border-color:var(--ink-line); }
:is(section.hero, .sec-dark) .pillar h3{ color:#FFFFFF; }
:is(section.hero, .sec-dark) .pillar p{ color:#B9C1D6; }
:is(section.hero, .sec-dark) .pillar-icon{ background:var(--cobalt); color:#FFFFFF; box-shadow:none; }
:is(section.hero, .sec-dark) .tag{
  background:transparent; border:1px solid var(--ink-line); color:var(--ink-mut); box-shadow:none;
}
:is(section.hero, .sec-dark) .media{ border-color:var(--ink-line); }
:is(section.hero, .sec-dark) .btn-ghost{ border-color:rgba(255,255,255,.32); color:#FFFFFF; }
:is(section.hero, .sec-dark) .btn-ghost:hover{ border-color:#FFFFFF; color:#FFFFFF; }

/* Labs wordmark on navy: white brand chip keeps it legible */
#labs .labs-logo{ background:#FFFFFF; padding:10px 14px; height:60px; border-radius:var(--radius-btn); }

/* service hero: hexagon echo from the deck cover */
section.hero{ position:relative; overflow:hidden; }
section.hero .wrap{ position:relative; z-index:1; }

/* status strips: navy capsule band under the hero */
.status{ background:var(--ink); border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line); }
.status-cell + .status-cell{ border-left-color:var(--ink-line); }
.status-cell .k{ color:var(--ink-mut); }
.status-cell .v{ color:var(--ink-text); }
@media (max-width:960px){ .status-cell:nth-child(n+3){ border-top-color:var(--ink-line); } }
@media (max-width:560px){ .status-cell + .status-cell{ border-top-color:var(--ink-line); } }

/* ============================================================ Shared: full-bleed dark hero */
.hero-full{ position:relative; overflow:hidden; background:var(--ink); min-height:clamp(520px,72vh,680px); display:flex; align-items:center; }
.hero-full .bg{ position:absolute; inset:0; z-index:0; }
.hero-full .bg img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.hero-full .scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(15,18,32,.94) 0%, rgba(15,18,32,.80) 55%, rgba(15,18,32,.58) 100%); }
.hero-full .wrap{ position:relative; z-index:2; padding-top:48px; padding-bottom:48px; }
.hero-full .eyebrow{ color:var(--cobalt-hz); font-size:13px; letter-spacing:0.18em; }
.hero-full h1{
  color:#fff; max-width:70ch;
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(38px, 6.2vw, 72px); line-height:1.06; letter-spacing:-0.015em;
}
.hero-full h1 em{ font-style:normal; color:var(--cobalt-hz); }
.hero-full .lede{ color:#E4E9F6; max-width:70ch; font-size:clamp(17px, 2vw, 21px); font-weight:500; margin-top:22px; }
.hero-full .btn-ghost{ border-color:rgba(255,255,255,.32); color:#fff; }
.hero-full .btn-ghost:hover{ border-color:#fff; color:#fff; }
@media (max-width:680px){
  .hero-full{ min-height:0; }
  .hero-full .scrim{ background:linear-gradient(180deg, rgba(15,18,32,.80) 0%, rgba(15,18,32,.88) 100%); }
  .hero-full h1{ max-width:none; }
}

/* ============================================================ Shared: SOC 2 panel */
.soc2{ background:var(--navy-deep); color:#fff; border-radius:var(--radius-card); padding:clamp(28px,4vw,44px); display:grid; grid-template-columns:1fr auto; gap:clamp(24px,4vw,48px); align-items:center; }
.soc2 .eyebrow{ color:var(--cobalt-lt); margin-bottom:12px; }
.soc2 h3{ font-family:var(--font-display); font-weight:800; font-size:clamp(28px,4vw,40px); line-height:1; letter-spacing:-0.01em; color:#fff; }
.soc2 p{ color:var(--ink-soft); max-width:46ch; margin-top:12px; }
.soc2 .badge{ width:clamp(112px,14vw,144px); height:auto; display:block; border-radius:var(--radius-btn); }
@media (max-width:680px){ .soc2{ grid-template-columns:1fr; justify-items:start; } }

/* ============================================================
   split-media .rev: restores the missing alternating layout.
   Desktop: image left, prose right. Mobile: prose leads.
   ============================================================ */
.split-media.rev .prose{ order:2; }
@media (max-width:860px){
  .split-media.rev .prose{ order:0; }
}

/* anchor targets land clear of the sticky header */
#services, #why, #operate, #labs, #contact, #posture{ scroll-margin-top:108px; }

/* ============================================================
   Mobile refinements
   ============================================================ */
@media (max-width:680px){
  .header-in{ height:72px; }
  .btn-nav{ padding:8px 12px; font-size:11px; }
}
@media (max-width:480px){
  .hero-actions{ display:grid; grid-template-columns:1fr; gap:10px; width:100%; }
  .hero-actions .btn{ text-align:center; width:100%; }
}


/* ============================================================
   Rollout additions (July 2026): light-polarity system devices
   promoted from index.html to the shared stylesheet.
   ============================================================ */

/* light shaded section step */
.sec-mist{ background:var(--mist); }

/* cobalt statement band: one per page, carries the page's signature line */
.statement-sec{ padding:clamp(28px, 4vh, 44px) 0; }
.statement{
  background:linear-gradient(120deg, var(--grad-cyan) 0%, var(--grad-blue) 100%); border-radius:var(--radius-card);
  padding:clamp(34px, 5vw, 58px) clamp(26px, 5vw, 64px);
  box-shadow:var(--shadow-accent);
  position:relative; overflow:hidden;
}
.statement > *{ position:relative; z-index:1; }
.statement .wm-s{ position:absolute; right:-70px; top:-90px; width:300px; height:300px; z-index:0; }
.statement .wm-s rect{ fill:none; stroke:rgba(255,255,255,.14); stroke-width:1.5; }
.statement .s-main{
  color:#FFFFFF; font-family:var(--font-display); font-weight:800;
  font-size:clamp(21px, 3vw, 32px); line-height:1.18; letter-spacing:-0.01em; max-width:30ch;
}
.statement .s-sub{
  margin-top:14px; font-family:var(--font-mono); font-size:12px;
  letter-spacing:0.12em; text-transform:uppercase; color:#DDE4FF;
}

/* ghost numerals: the numbered system made visible, faintly */
main section > .wrap{ position:relative; }
main section[data-num] > .wrap::before{
  content:attr(data-num);
  position:absolute; top:-28px; right:0; z-index:0;
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(110px, 16vw, 200px); line-height:1; letter-spacing:-0.03em;
  color:rgba(61,90,241,.055); pointer-events:none; user-select:none;
}
main section.registry[data-num] > .wrap::before,
main section.sec-dark[data-num] > .wrap::before{ color:rgba(255,255,255,.035); }
main section[data-num] > .wrap > *{ position:relative; }
@media (max-width:680px){ main section[data-num] > .wrap::before{ font-size:96px; top:-18px; } }

/* operational readouts: fictionalized console panels */
.console{
  margin-top:36px; background:var(--navy-deep); border:1px solid var(--ink-line);
  border-radius:var(--radius-card); overflow:hidden;
  font-family:var(--font-mono); box-shadow:var(--shadow-dark);
}
.c-head{
  display:flex; justify-content:space-between; align-items:center; gap:14px;
  padding:14px 22px; border-bottom:1px solid var(--ink-line);
  background:rgba(255,255,255,.02);
}
.c-title{ font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--cobalt-lt); }
.c-live{
  font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-mut);
  display:flex; align-items:center; gap:8px; white-space:nowrap;
}
.c-live .d{ width:8px; height:8px; border-radius:50%; background:var(--cobalt-hz); animation:cpulse 2.4s ease-in-out infinite; }
@keyframes cpulse{ 0%,100%{opacity:1;} 50%{opacity:.35;} }
@media (prefers-reduced-motion: reduce){ .c-live .d{ animation:none; } }
.c-body{ padding:18px 22px 22px; display:grid; gap:12px; font-size:12.5px; letter-spacing:0.03em; }
.c-row{ display:grid; grid-template-columns:minmax(120px, 170px) 1fr auto; gap:16px; align-items:center; color:var(--ink-text); }
.c-row .k{ color:var(--ink-text); text-transform:uppercase; letter-spacing:0.08em; font-size:11.5px; }
.c-row .m{ color:var(--ink-mut); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.c-row .v{ color:var(--cobalt-lt); white-space:nowrap; display:flex; align-items:center; gap:8px; justify-self:end; }
.c-row .v .d{ width:7px; height:7px; border-radius:50%; background:var(--cobalt-hz); flex:none; }
.c-foot{
  padding:12px 22px; border-top:1px solid var(--ink-line);
  font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-mut);
}
.c-cap{
  margin-top:12px; font-family:var(--font-mono); font-size:11px;
  letter-spacing:0.06em; color:var(--grey);
}
.c-cap b{ font-family:var(--font-display); font-weight:800; font-size:13px; color:var(--ink); letter-spacing:0.01em; margin-right:10px; }
@media (max-width:560px){
  .c-row{ grid-template-columns:1fr auto; }
  .c-row .m{ display:none; }
}

/* staged assurance list (used on compliance posture panel) */
.assure h3{ font-size:clamp(24px, 3vw, 32px); }
.a-list{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:12px; font-family:var(--font-mono); }
.a-list li{ display:grid; grid-template-columns:16px 176px 1fr; align-items:center; gap:12px; }
.a-dot{ width:9px; height:9px; border-radius:50%; border:1.6px solid #4A5578; display:inline-block; }
.a-dot.done{ background:var(--cobalt-lt); border-color:var(--cobalt-lt); }
.a-k{ font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase; color:#FFFFFF; }
.a-v{ font-size:12.5px; letter-spacing:0.04em; color:var(--ink-soft); }
@media (max-width:560px){
  .a-list li{ grid-template-columns:16px 1fr; }
  .a-list .a-v{ grid-column:2; }
}

/* ============================================================
   REBRAND 2026 — brand-forward design devices
   Dot-field signature texture, light brand hero, platform band.
   Content unchanged; this layer elevates the visual system.
   ============================================================ */

/* ---- dot-field: the signature brand texture, fading from a corner */
.dotfield{ position:relative; }
.dotfield::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:radial-gradient(rgba(61,90,241,.34) 2px, transparent 2.2px);
  background-size:20px 20px; background-position:0 0;
  -webkit-mask-image:radial-gradient(150% 140% at 100% 0%, #000 46%, transparent 88%);
          mask-image:radial-gradient(150% 140% at 100% 0%, #000 46%, transparent 88%);
}
.dotfield > *{ position:relative; z-index:1; }
/* on dark surfaces the dots read in a light periwinkle */
section.hero.dotfield::before,
.hero-full.dotfield::before,
.sec-dark.dotfield::before,
.hero-dark.dotfield::before{
  background-image:radial-gradient(rgba(141,167,255,.34) 2px, transparent 2.2px);
}

/* ---- light brand hero: prominent glyph on the dot-field */
.hero-brand{
  background:var(--paper); position:relative; overflow:hidden;
  padding:clamp(60px,8.5vh,112px) 0 clamp(52px,7vh,88px);
}
.hero-brand-in{ display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(24px,5vw,64px); align-items:center; }
.hero-brand-copy{ min-width:0; }
.hero-brand h1{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(38px,5.4vw,64px); line-height:1.05; letter-spacing:-0.02em;
  color:var(--ink); max-width:15ch;
}
.hero-brand h1 em{
  font-style:normal;
  background:linear-gradient(115deg, var(--grad-cyan) 0%, var(--grad-blue) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-brand .lede{ margin-top:22px; max-width:54ch; color:var(--grey); }
.hero-brand .hero-actions{ margin-top:34px; }
.hero-brand-art{ display:flex; justify-content:center; align-items:center; }
.hero-brand-art img{ width:min(340px,82%); height:auto; filter:drop-shadow(0 34px 66px rgba(61,90,241,.30)); }
@media (max-width:860px){
  .hero-brand-in{ grid-template-columns:1fr; }
  .hero-brand-art{ order:-1; justify-content:flex-start; }
  .hero-brand-art img{ width:120px; }
}

/* ---- dramatic dark variant: the icon as the hero, glowing on navy */
.hero-brand.hero-dark{
  background:
    radial-gradient(760px 520px at 88% -8%, rgba(22,196,240,.22), transparent 60%),
    radial-gradient(640px 480px at 0% 112%, rgba(61,90,241,.26), transparent 60%),
    var(--ink);
  padding:clamp(66px,9vh,124px) 0 clamp(58px,7.5vh,96px);
}
.hero-brand.hero-dark h1{ color:#FFFFFF; }
.hero-brand.hero-dark h1 em{
  background:linear-gradient(115deg, var(--grad-cyan) 0%, var(--grad-blue) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-brand.hero-dark .lede{ color:var(--ink-soft); }
.hero-brand.hero-dark .eyebrow{ color:var(--cobalt-hz); }
.hero-brand.hero-dark .btn-ghost{ border-color:rgba(255,255,255,.34); color:#FFFFFF; }
.hero-brand.hero-dark .btn-ghost:hover{ border-color:#FFFFFF; color:#FFFFFF; }
.hero-brand.hero-dark .hero-brand-art{ position:relative; }
.hero-brand.hero-dark .hero-brand-art::before{
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:78%; aspect-ratio:1/1; border-radius:50%; z-index:0;
  background:radial-gradient(circle, rgba(22,196,240,.42), rgba(61,90,241,.20) 45%, transparent 70%);
  filter:blur(26px);
}
.hero-brand.hero-dark .hero-brand-art img{
  position:relative; z-index:1; width:min(430px,88%);
  filter:drop-shadow(0 24px 60px rgba(22,196,240,.42)) drop-shadow(0 8px 26px rgba(61,90,241,.40));
}
@media (max-width:860px){ .hero-brand.hero-dark .hero-brand-art img{ width:150px; } }

/* ---- platform band: convergence graphic, balanced two-column */
.platform-band{ background:var(--mist); position:relative; overflow:hidden; padding:clamp(52px,7.5vh,92px) 0; }
.platform-band .wrap{ position:relative; z-index:1; }
.platform-in{ display:grid; grid-template-columns:1.02fr 0.98fr; gap:clamp(28px,4.5vw,60px); align-items:center; }
.platform-copy{ min-width:0; }
.platform-band h2{ max-width:16ch; }
.platform-band .lede{ max-width:46ch; }
.platform-art{ min-width:0; }
.platform-band .conv{ display:block; width:100%; max-width:560px; height:auto; margin:0 auto;
  border-radius:var(--radius-card); box-shadow:var(--shadow-media); }
@media (max-width:860px){
  .platform-in{ grid-template-columns:1fr; }
  .platform-band .conv{ max-width:520px; margin-top:6px; }
}

/* PREMIUM BRAND HERO — July 2026 */
.dotfield::before{display:none!important;}
.hero-premium,.hero-service-premium,.hero-labs-premium{position:relative;overflow:hidden;background:radial-gradient(900px 430px at 82% 10%,rgba(61,90,241,.09),transparent 67%),radial-gradient(640px 360px at 96% 88%,rgba(22,196,240,.08),transparent 66%),linear-gradient(180deg,#fff 0%,#F7F9FD 100%)!important;color:var(--ink)!important;border-top:none!important;}
.hero-premium::after,.hero-service-premium::after,.hero-labs-premium::after{content:"";position:absolute;inset:20px var(--pad-x);pointer-events:none;border:1px solid rgba(61,90,241,.10);border-radius:28px;}
.hero-premium{padding:clamp(76px,10vh,132px) 0!important;min-height:auto;}
.hero-premium .hero-brand-in{position:relative;z-index:2;grid-template-columns:1.08fr .92fr;}
.hero-premium h1,.hero-service-premium h1,.hero-labs-premium h1{color:var(--ink)!important;}
.hero-premium h1 em,.hero-service-premium h1 em,.hero-labs-premium h1 em{background:linear-gradient(115deg,var(--grad-cyan),var(--grad-blue));-webkit-background-clip:text;background-clip:text;color:transparent!important;}
.hero-premium .lede,.hero-service-premium .lede,.hero-labs-premium .lede{color:#49536B!important;}
.hero-premium .eyebrow,.hero-service-premium .eyebrow,.hero-labs-premium .eyebrow{color:var(--cobalt)!important;}
.hero-premium .btn-ghost,.hero-service-premium .btn-ghost,.hero-labs-premium .btn-ghost{border-color:#C9D3E8;color:var(--ink)!important;background:rgba(255,255,255,.7);}
.hero-premium .btn-ghost:hover,.hero-service-premium .btn-ghost:hover,.hero-labs-premium .btn-ghost:hover{border-color:var(--cobalt);color:var(--cobalt)!important;}
.hero-premium .hero-brand-art{position:relative;min-height:390px;}
.hero-premium .hero-brand-art::before{content:"";position:absolute;width:min(430px,92%);aspect-ratio:1;border-radius:38%;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(238,243,255,.92));border:1px solid rgba(61,90,241,.14);box-shadow:0 38px 100px -55px rgba(38,57,140,.42);transform:rotate(-3deg);}
.hero-premium .hero-brand-art img{position:relative;z-index:2;width:min(330px,72%);filter:drop-shadow(0 30px 48px rgba(61,90,241,.22));}
.hero-service-premium{padding:clamp(74px,9vh,112px) 0!important;}
.hero-service-premium .wrap,.hero-labs-premium .wrap{position:relative;z-index:2;}
.hero-service-premium .wrap::after{content:"";position:absolute;right:var(--pad-x);top:50%;transform:translateY(-50%);width:clamp(150px,22vw,290px);aspect-ratio:1;background:url('img/icon.svg') center/contain no-repeat;opacity:.075;pointer-events:none;}
.hero-service-premium .hero-copy{position:relative;z-index:2;max-width:850px;}
.hero-service-premium .hero-copy>a{color:var(--grey)!important;}
.hero-labs-premium{min-height:auto!important;padding:clamp(76px,10vh,124px) 0!important;}
.hero-labs-premium .wrap::after{content:"";position:absolute;right:var(--pad-x);top:50%;transform:translateY(-50%);width:clamp(180px,25vw,330px);aspect-ratio:1;background:url('img/mark-labs.png') center/contain no-repeat;opacity:.09;pointer-events:none;}
.hero-labs-premium .backlink{color:var(--grey)!important;}
.hero-labs-premium h1,.hero-labs-premium .lede,.hero-labs-premium .hero-actions,.hero-labs-premium .eyebrow,.hero-labs-premium .backlink{position:relative;z-index:2;}
header{border-top:none;box-shadow:0 1px 0 rgba(14,21,38,.06);}.header-in{height:92px;}.brand-lockup{height:62px;}
.menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px;cursor:pointer;}.menu-toggle span{display:block;height:2px;background:var(--ink);margin:4px 0;border-radius:2px;}
.aspect-group-label{grid-column:1/-1;margin:20px 0 -4px;font-family:var(--font-display);font-size:15px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cobalt);}.aspect-group-label:first-child{margin-top:0;}
@media(max-width:780px){.header-in{height:76px;position:relative}.brand-lockup{height:52px}.menu-toggle{display:block;margin-left:auto;margin-right:10px}nav.main{display:none;position:absolute;top:76px;left:var(--pad-x);right:var(--pad-x);padding:14px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 50px -28px rgba(14,21,38,.4);flex-direction:column;align-items:stretch;gap:0}nav.main.open{display:flex}nav.main a{padding:12px 10px;border-radius:8px}nav.main a:hover{background:var(--mist)}}
@media(max-width:860px){.hero-premium .hero-brand-in{grid-template-columns:1fr}.hero-premium .hero-brand-art{order:-1;min-height:180px;justify-content:flex-start}.hero-premium .hero-brand-art::before{width:180px;border-radius:28%}.hero-premium .hero-brand-art img{width:138px;margin-left:20px}.hero-service-premium .wrap::after,.hero-labs-premium .wrap::after{opacity:.045;right:8px}}
@media(max-width:680px){.hero-premium::after,.hero-service-premium::after,.hero-labs-premium::after{inset:12px;border-radius:20px}.hero-premium,.hero-service-premium,.hero-labs-premium{padding-top:58px!important;padding-bottom:62px!important}}


/* ============================================================
   Graceful reduction pass — July 2026
   A quieter, logo-led homepage with fewer sections and less visual noise.
   ============================================================ */
body{font-size:16px;}
.hero-graceful{background:linear-gradient(135deg,#fff 0%,#fbfcff 58%,#f2f5ff 100%);padding:clamp(72px,10vh,126px) 0;overflow:hidden;}
.hero-graceful::before{content:"";position:absolute;width:680px;height:680px;right:-260px;top:-300px;border-radius:50%;background:radial-gradient(circle,rgba(61,90,241,.10),transparent 68%);pointer-events:none;}
.hero-graceful .hero-brand-in{grid-template-columns:1.08fr .72fr;gap:clamp(44px,7vw,96px);}
.hero-graceful h1{max-width:13ch;font-size:clamp(42px,5.7vw,70px);line-height:1.02;letter-spacing:-.035em;}
.hero-graceful .lede{max-width:56ch;font-size:clamp(17px,1.55vw,20px);line-height:1.65;}
.hero-graceful .hero-actions{align-items:center;gap:24px;}
.mark-stage{width:min(410px,88%);aspect-ratio:1;display:grid;place-items:center;position:relative;}
.mark-stage::before{content:"";position:absolute;inset:10%;border-radius:34%;background:#fff;box-shadow:0 35px 90px rgba(36,55,130,.13),0 3px 16px rgba(36,55,130,.06);transform:rotate(-2deg);}
.mark-stage img{position:relative;width:76%;filter:drop-shadow(0 20px 34px rgba(61,90,241,.18));}
.text-link{font-family:var(--font-display);font-weight:700;color:var(--ink);display:inline-flex;gap:10px;align-items:center;}
.text-link:hover{color:var(--cobalt);}
.trust-line{border-top:1px solid #303646;border-bottom:1px solid #303646;background:#202534;color:#fff;}
.trust-line-in{min-height:94px;display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;}
.trust-item{display:flex;flex-direction:column;justify-content:center;gap:7px;text-align:center;padding:20px 18px;}
.trust-item+.trust-item{border-left:1px solid #3A4052;}
.trust-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:#9FA8BD;}
.trust-v{font-family:var(--font-display);font-size:clamp(14px,1.35vw,17px);line-height:1.35;font-weight:700;color:#F4F6FB;letter-spacing:-.01em;}
.grace-section{padding:clamp(76px,10vh,124px) 0;}
.section-intro{max-width:730px;margin-bottom:46px;}
.section-intro h2,.proof-copy h2,.labs-grace-copy h2,.contact-grace h2{font-size:clamp(30px,4vw,48px);max-width:19ch;}
.service-min-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.service-min{position:relative;min-height:245px;padding:30px 30px 52px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);background:#fff;transition:background .2s ease;}
.service-min:hover{background:var(--mist);color:var(--ink);}
.service-min .service-no{font-family:var(--font-mono);font-size:11px;color:var(--cobalt);letter-spacing:.12em;}
.service-min h3{font-family:var(--font-display);font-size:19px;line-height:1.3;margin:34px 0 12px;}
.service-min p{color:var(--grey);font-size:14.5px;line-height:1.6;}
.service-min .arrow{position:absolute;right:28px;bottom:24px;color:var(--cobalt);font-size:20px;}
.proof-section{background:var(--mist);}
.proof-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(46px,7vw,92px);align-items:center;}
.proof-image{aspect-ratio:4/3;box-shadow:none;border-radius:22px;}
.proof-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:34px 0;}
.proof-facts div{border-top:2px solid var(--cobalt);padding-top:14px;}
.proof-facts strong{display:block;font-family:var(--font-display);font-size:20px;}
.proof-facts span{display:block;color:var(--grey);font-size:12.5px;margin-top:4px;}
.grace-quote{margin-top:34px;padding-left:24px;border-left:2px solid var(--cobalt);font-family:var(--font-display);font-size:17px;line-height:1.65;color:var(--ink);}
.grace-quote cite{display:block;margin-top:13px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);font-style:normal;}
.labs-grace{background:#fff;}
.labs-grace-in{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(50px,8vw,120px);align-items:center;}
.labs-grace-brand{min-height:250px;border-radius:24px;background:linear-gradient(145deg,#f6f8ff,#fff);display:grid;place-items:center;border:1px solid var(--line);}
.labs-grace-brand img{width:min(240px,66%);}
.labs-grace-copy .text-link{margin-top:26px;}
.contact-grace{padding-top:40px;}
.contact-grace-in{border-top:1px solid var(--line);padding-top:64px;display:flex;align-items:flex-end;justify-content:space-between;gap:50px;}
.contact-grace-in .lede{max-width:48ch;}
.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:18px;flex:none;}
footer{padding-top:34px;}
footer .disclaimer{max-width:75ch;}
@media(max-width:900px){.service-min-grid{grid-template-columns:1fr 1fr}.proof-grid,.labs-grace-in{grid-template-columns:1fr}.labs-grace-brand{min-height:190px}.hero-graceful .hero-brand-in{grid-template-columns:1fr}.hero-graceful .hero-brand-art{order:-1;justify-content:flex-start}.mark-stage{width:145px}.trust-line-in{grid-template-columns:1fr 1fr}.trust-item{padding:20px 16px}.trust-item:nth-child(3){border-left:0;border-top:1px solid #3A4052}.trust-item:nth-child(4){border-top:1px solid #3A4052}}
@media(max-width:620px){.service-min-grid{grid-template-columns:1fr}.service-min{min-height:205px}.proof-facts{grid-template-columns:1fr}.contact-grace-in{align-items:flex-start;flex-direction:column}.trust-line-in{grid-template-columns:1fr}.trust-item+.trust-item,.trust-item:nth-child(3){border-left:0;border-top:1px solid #3A4052}.hero-graceful h1{font-size:clamp(38px,12vw,52px)}}


/* ============================================================
   Final editorial refinements — Aner Labs convergence + client proof
   ============================================================ */
.labs-path{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:28px 0 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.labs-path div{padding:18px 20px 18px 0;}
.labs-path div+div{padding-left:20px;border-left:1px solid var(--line);}
.labs-path span{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--grey);margin-bottom:7px;}
.labs-path strong{display:block;font-family:var(--font-display);font-size:14px;line-height:1.4;color:var(--ink);}
.client-proof{padding:clamp(64px,8vh,96px) 0;background:#202534;color:#fff;border-top:0;}
.client-proof-light{background:#fff;color:var(--ink);border-top:1px solid var(--line);}
.proof-quote-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(40px,7vw,92px);align-items:start;}
.client-proof h2{color:#fff;max-width:18ch;}
.client-proof-light h2{color:var(--ink);}
.client-proof .eyebrow{color:#A9B3C8;}
.client-proof-light .eyebrow{color:var(--grey);}
.service-quote{margin:0;padding-left:28px;border-left:2px solid var(--cobalt-lt);font-family:var(--font-display);font-size:clamp(18px,2vw,23px);line-height:1.62;font-weight:500;color:#F1F4FA;}
.client-proof-light .service-quote{color:var(--ink);border-left-color:var(--cobalt);}
.service-quote cite{display:block;margin-top:20px;font-family:var(--font-mono);font-size:10.5px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;color:#A9B3C8;font-style:normal;}
.client-proof-light .service-quote cite{color:var(--grey);}
@media(max-width:820px){.proof-quote-grid{grid-template-columns:1fr}.labs-path{grid-template-columns:1fr}.labs-path div{padding:16px 0}.labs-path div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* ============================================================
   HYBRID PASS — homepage light: placement & scale corrections
   Resolves conflicts between the old inline styles, the premium
   pass, and the graceful pass. Later rules win.
   ============================================================ */
.header-in{ height:86px !important; }
.brand-lockup{ height:72px !important; }
@media (max-width:780px){ .header-in{ height:70px !important; } .brand-lockup{ height:58px !important; } }

/* service cards: kill the dead vertical space, tighten rhythm */
.service-min{ min-height:0 !important; padding:26px 28px 54px !important; }
.service-min h3{ margin:14px 0 10px !important; font-size:19px !important; }
.service-min p{ font-size:14.5px !important; }
.service-min .arrow{ bottom:20px !important; }

/* Labs dark card: make the process steps + link readable on navy */
#labs .labs-path{ border-color:var(--ink-line) !important; }
#labs .labs-path div + div{ border-color:var(--ink-line) !important; }
#labs .labs-path span{ color:var(--ink-mut) !important; }
#labs .labs-path strong{ color:#FFFFFF !important; }
#labs .labs-grace-copy .text-link{ color:var(--cobalt-hz) !important; }
#labs .labs-grace-copy .text-link:hover{ color:#FFFFFF !important; }
/* Labs brand chip: bigger mark, less empty box */
.labs-grace-brand{ min-height:200px !important; }
.labs-grace-brand img{ width:min(280px,80%) !important; }

/* Contact dark card: align actions, make the phone link visible */
.contact-grace-in{ align-items:center !important; border-top-color:var(--ink-line) !important; }
#contact .contact-actions .text-link{ color:#FFFFFF !important; }
#contact .contact-actions .text-link:hover{ color:var(--cobalt-hz) !important; }

/* trust strip: a touch more presence */
.trust-line-in{ min-height:104px !important; }

/* ---- trust strip: slimmer, more in-line ---- */
.trust-line-in{ min-height:0 !important; }
.trust-item{ padding:13px 18px !important; gap:3px !important; }
.trust-k{ font-size:10px !important; letter-spacing:.12em !important; }
.trust-v{ font-size:14px !important; }

/* ---- Aner Labs brand: logo directly on the navy card, proportional ---- */
#labs .labs-grace-brand{ background:transparent !important; border:none !important; box-shadow:none !important; min-height:0 !important; }
#labs .labs-grace-brand img{ width:min(330px,88%) !important; height:auto !important; }

/* ============================================================
   HYBRID FUNNEL — deep service-page devices
   ============================================================ */

/* fast-track floating CTA */
.floating-cta{ position:fixed; right:clamp(16px,3vw,30px); bottom:clamp(16px,3vw,30px); z-index:90;
  display:inline-flex; align-items:center; gap:9px; font-family:var(--font-display); font-weight:700;
  font-size:14px; letter-spacing:.02em; padding:14px 22px; border-radius:99px; color:#fff !important;
  background:linear-gradient(120deg,var(--grad-cyan),var(--grad-blue));
  box-shadow:0 16px 34px -12px rgba(37,99,235,.6); transition:transform .18s ease, box-shadow .18s ease; }
.floating-cta:hover{ transform:translateY(-2px); box-shadow:0 22px 46px -12px rgba(37,99,235,.72); }
.floating-cta svg{ width:16px; height:16px; flex:none; }
@media (max-width:560px){ .floating-cta{ font-size:13px; padding:12px 17px; } .floating-cta .fc-label{ display:none; } }

/* TL;DR at-a-glance band (for skimmers) */
.tldr{ background:var(--mist); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.tldr-in{ display:grid; grid-template-columns:repeat(4,1fr); }
.tldr-cell{ padding:22px 26px; }
.tldr-cell + .tldr-cell{ border-left:1px solid var(--line); }
.tldr-cell .k{ font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--cobalt); display:block; margin-bottom:8px; }
.tldr-cell p{ font-size:14px; color:var(--ink); line-height:1.5; }
@media (max-width:860px){ .tldr-in{ grid-template-columns:1fr 1fr; } .tldr-cell:nth-child(n+3){ border-top:1px solid var(--line); } .tldr-cell:nth-child(3){ border-left:none; } }
@media (max-width:560px){ .tldr-in{ grid-template-columns:1fr; } .tldr-cell + .tldr-cell{ border-left:none; border-top:1px solid var(--line); } }

/* technical specs grid (deep detail) */
.specs-grid{ margin-top:40px; display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.spec-row{ display:grid; grid-template-columns:180px 1fr; gap:20px; padding:18px 22px; border:1px solid var(--line); border-radius:var(--radius-card); background:#fff; }
.spec-row .sk{ font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--cobalt); padding-top:2px; }
.spec-row .sv{ color:var(--ink); font-size:15px; line-height:1.55; }
@media (max-width:860px){ .specs-grid{ grid-template-columns:1fr; } .spec-row{ grid-template-columns:1fr; gap:6px; } }

/* client-proof quote (dark, on brand navy) */
.svc-proof{ margin-top:44px; background:var(--ink); border-radius:var(--radius-card); padding:clamp(28px,4vw,46px); }
.svc-proof .eyebrow{ color:var(--cobalt-hz); }
.svc-proof blockquote{ margin:12px 0 0; font-family:var(--font-display); font-weight:600; font-size:clamp(18px,2vw,24px); line-height:1.5; color:#fff; max-width:60ch; }
.svc-proof cite{ display:block; margin-top:18px; font-family:var(--font-mono); font-style:normal; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-mut); }

/* ---- stat cards (Aner Labs: opportunity + credibility) ---- */
.stat-cards{ margin-top:34px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.stat-card{ background:var(--lavender); border:1px solid var(--line); border-radius:var(--radius-card); padding:26px 26px 28px; }
.stat-card .big{ font-family:var(--font-display); font-weight:800; font-size:clamp(30px,4vw,44px); letter-spacing:-.02em; line-height:1;
  background:linear-gradient(120deg,var(--grad-cyan),var(--grad-blue)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat-card .sh{ display:block; margin-top:12px; font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--ink); }
.stat-card p{ margin-top:8px; color:#525D77; font-size:14.5px; line-height:1.55; }
@media (max-width:860px){ .stat-cards{ grid-template-columns:1fr; } }

/* ---- callout band: the deck's solid-blue statement device ---- */
.callout{
  margin-top:30px; background:var(--cobalt); color:#FFFFFF;
  border-radius:var(--radius-card); padding:clamp(22px,3vw,32px) clamp(24px,3.5vw,42px);
  font-family:var(--font-display); font-weight:800; font-size:clamp(18px,2.1vw,25px);
  line-height:1.3; letter-spacing:-0.01em; box-shadow:var(--shadow-accent); max-width:none;
}

/* ---- deck-slide: replicate the PDF's navy card slides ---- */
.deck-slide{ position:relative; overflow:hidden; padding:clamp(74px,10vh,122px) 0; }
.deck-slide .wrap{ position:relative; z-index:1; }
.hexwm{ position:absolute; top:-120px; right:-90px; width:clamp(320px,34vw,520px); height:auto; z-index:0; pointer-events:none; }
.hexwm polygon{ fill:none; stroke:rgba(141,167,255,.12); stroke-width:1.4; stroke-linejoin:round; }
.deck-cards{ margin-top:clamp(36px,5vh,52px); display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.deck-card{ background:var(--ink-2); border:1px solid var(--ink-line); border-radius:var(--radius-card); padding:28px 26px 30px;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.deck-card:hover{ transform:translateY(-3px); border-color:var(--cobalt-hz); box-shadow:var(--shadow-dark); }
.deck-card .k{ font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--cobalt-hz); display:block; margin-bottom:12px; }
.deck-card h3{ font-family:var(--font-display); font-weight:800; font-size:19px; line-height:1.25; color:#FFFFFF; letter-spacing:-.01em; }
.deck-card p{ color:var(--ink-text); font-size:14.5px; line-height:1.6; margin-top:10px; }
.deck-slide .callout{ background:linear-gradient(120deg,var(--grad-cyan),var(--grad-blue)); }
@media (max-width:860px){ .deck-cards{ grid-template-columns:1fr; } }

/* deck-cards variants */
.deck-cards.two{ grid-template-columns:repeat(2,1fr); }
@media (max-width:860px){ .deck-cards.two{ grid-template-columns:1fr; } }

/* homepage Labs -> full-bleed navy deck slide */
#labs.deck-slide{ background:var(--ink) !important; padding:clamp(74px,10vh,122px) 0 !important; position:relative; overflow:hidden; }
#labs.deck-slide > .wrap{ background:transparent !important; border-radius:0 !important; padding-top:0 !important; padding-bottom:0 !important; }
#labs .labs-logo-deck{ height:60px; width:auto; display:block; margin-bottom:22px; }

/* trio cards — deck exec-summary 3-up */
.trio{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:34px; }
.trio-card{ background:var(--lavender); border:1px solid var(--line); border-radius:var(--radius-card); padding:26px 26px 28px; }
.trio-card .k{ font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--cobalt); display:block; margin-bottom:10px; }
.trio-card h3{ font-family:var(--font-display); font-weight:800; font-size:18px; line-height:1.25; letter-spacing:-.01em; color:var(--ink); }
.trio-card p{ color:#525D77; font-size:14.5px; line-height:1.55; margin-top:9px; }
@media (max-width:860px){ .trio{ grid-template-columns:1fr; } }

/* facts band: bolder, more prominent values */
.status-cell .v{ font-family:var(--font-display) !important; font-weight:700 !important; font-size:15px !important; letter-spacing:-.005em !important; }
.status-cell .k{ font-size:11px !important; }

/* ---- thesis slide: stacked Trust/Governance/Data/Technology ---- */
.thesis-in{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(32px,5vw,64px); align-items:center; }
.thesis-stack{ display:flex; flex-direction:column; gap:6px; max-width:420px; margin-left:auto; width:100%; }
.ts-bar{ font-family:var(--font-display); font-weight:800; font-size:15px; letter-spacing:.08em; text-transform:uppercase; text-align:center; padding:18px; border-radius:12px; background:var(--ink-2); border:1px solid var(--ink-line); color:#FFFFFF; }
.ts-bar.ts-top{ background:linear-gradient(120deg,var(--grad-cyan),var(--grad-blue)); border:none; box-shadow:var(--shadow-accent); }
.ts-arrow{ text-align:center; color:var(--cobalt-hz); font-size:11px; line-height:1; }
@media (max-width:860px){ .thesis-in{ grid-template-columns:1fr; } .thesis-stack{ margin:10px auto 0; } }

/* ---- value-creation flow ---- */
.flow{ margin-top:clamp(32px,4.5vh,48px); display:flex; flex-direction:column; }
.flow-band{ display:flex; align-items:center; gap:18px; background:var(--lavender); border:1px solid var(--line); border-radius:var(--radius-card); padding:18px 26px; }
.flow-band .fn{ font-family:var(--font-mono); font-size:12px; color:var(--cobalt); font-weight:600; width:22px; flex:none; }
.flow-band .ft{ display:flex; flex-direction:column; }
.flow-band .ft strong{ font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--ink); letter-spacing:-.01em; }
.flow-band .ft span{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.04em; color:var(--grey); margin-top:4px; }
.flow-band.flow-accent{ background:linear-gradient(120deg,var(--grad-cyan),var(--grad-blue)); border:none; box-shadow:var(--shadow-accent); }
.flow-band.flow-accent .fn{ color:#fff; } .flow-band.flow-accent .ft strong{ color:#fff; } .flow-band.flow-accent .ft span{ color:#DDE4FF; }
.flow-band.flow-dark{ background:var(--ink); border:none; justify-content:center; padding:22px; }
.flow-band.flow-dark .ft strong{ color:#fff; font-size:18px; letter-spacing:.03em; text-transform:uppercase; }
.flow-link{ text-align:center; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--grey); padding:8px 0 2px; }
.flow-link::after{ content:"▼"; display:block; color:var(--cobalt); font-size:9px; margin-top:3px; }

/* ============================================================
   EVOLUTION ARC — the four-era progression to fintech (index)
   ============================================================ */
#journey{ background:var(--mist); }
.arc{ list-style:none; margin:clamp(34px,4.5vh,48px) 0 0; padding:0; position:relative; }
.arc-era{ position:relative; display:grid; grid-template-columns:56px 1fr; gap:clamp(16px,2.2vw,28px); padding-bottom:clamp(24px,3.4vh,40px); }
.arc-era:last-child{ padding-bottom:0; }
.arc-rail{ position:relative; display:flex; justify-content:center; }
.arc-rail::before{ content:""; position:absolute; top:8px; bottom:-4px; width:2px;
  background:linear-gradient(var(--cobalt), rgba(61,90,241,.18)); }
.arc-era:last-child .arc-rail::before{ display:none; }
.arc-node{ position:relative; z-index:1; width:44px; height:44px; border-radius:13px;
  background:var(--lavender); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--cobalt); }
.arc-now .arc-node{ background:linear-gradient(120deg,var(--grad-cyan),var(--grad-blue));
  border:none; color:#FFFFFF; box-shadow:var(--shadow-accent); }
.arc-body{ padding-top:1px; }
.arc-tag{ display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--cobalt); margin-bottom:9px; }
.arc-body h3{ font-family:var(--font-display); font-weight:800; font-size:clamp(18px,2.1vw,22px);
  letter-spacing:-.01em; line-height:1.2; color:var(--ink); margin:0 0 9px; }
.arc-body > p{ color:var(--grey); font-size:14.5px; line-height:1.62; max-width:62ch; margin:0; }
.arc-links{ margin-top:16px; display:flex; flex-wrap:wrap; gap:10px; }
.arc-links a{ display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; font-weight:500;
  color:var(--cobalt); background:var(--lavender); border:1px solid #CFDAF3;
  border-radius:var(--radius-pill); padding:8px 15px; box-shadow:var(--shadow-micro);
  transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.arc-links a .lk-arrow{ transition:transform .16s ease; }
.arc-links a:hover{ background:var(--cobalt); color:#FFFFFF; border-color:var(--cobalt);
  transform:translateY(-1px); box-shadow:var(--shadow-accent); }
.arc-links a:hover .lk-arrow{ transform:translateX(3px); }
/* the "now" era rendered as the accented handoff card into Aner Labs */
.arc-now .arc-body{ background:var(--ink); border-radius:var(--radius-card);
  padding:clamp(26px,3.4vw,40px) clamp(26px,3.4vw,42px); box-shadow:var(--shadow-dark);
  display:grid; grid-template-columns:1fr auto; gap:clamp(22px,4vw,52px); align-items:center; }
.arc-now .arc-tag{ color:var(--cobalt-hz); }
.arc-now .arc-body h3{ color:#FFFFFF; margin-bottom:10px; }
.arc-now-copy > p{ color:var(--ink-soft); font-size:14.5px; line-height:1.62; max-width:62ch; margin:0; }
.arc-now-cta{ margin:0; display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.arc-now-cta .arc-labs-logo{ height:26px; width:auto; opacity:.95; }
@media (max-width:820px){ .arc-now .arc-body{ grid-template-columns:1fr; gap:20px; } }
@media (max-width:680px){
  .arc-era{ grid-template-columns:40px 1fr; gap:14px; }
  .arc-node{ width:36px; height:36px; font-size:13px; border-radius:11px; }
}

/* ---- arc position row on service pages: back-link + era chip ---- */
.hero-arcrow{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:18px; }
.hero-back{ font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--grey)!important; transition:color .15s ease; }
.hero-back:hover{ color:var(--cobalt)!important; }
.arc-chip{ display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.11em; text-transform:uppercase;
  color:var(--grey)!important; background:var(--lavender); border:1px solid var(--line);
  border-radius:var(--radius-pill); padding:6px 13px 6px 11px;
  transition:border-color .15s ease, color .15s ease; }
.arc-chip:hover{ border-color:var(--cobalt); color:var(--cobalt)!important; }
.arc-chip .ac-dot{ width:7px; height:7px; border-radius:50%; flex:none;
  background:linear-gradient(120deg,var(--grad-cyan),var(--grad-blue)); }
.arc-chip b{ color:var(--cobalt); font-weight:700; letter-spacing:.08em; margin-left:2px; }
