/* THE design system for every page of the site.

   2026-10-28 (planner 0428): the token blocks below carry the Sealnex brand
   kit's palette and type (D-427; the same values the portals converted, see
   client-portal-v2/src/app/globals.css): ink #0b0b0b and white grounds, grey
   text, hairline and strong lines, the kit's pending gold for "in
   development", no gradient, glow or shadow. The token NAMES are unchanged
   (--teal is now the primary colour: white on ink, ink on white), so every
   rule below follows. The kit's seal red (--seal) appears in two places
   only: the logo files, and the keyboard focus ring, which the kit itself
   sets to that red (the kit's tokens.css: --focus: var(--seal-red), in both
   themes; its brand guide: "Focus: 2px solid focus ring"; the portals do the
   same, client-portal-v2/src/app/globals.css --ring). No other rule uses
   --seal. The BRAND LAYER at the end of the file adds the kit's fonts and the
   homepage components. test/unified-site.test.mjs checks AA contrast for
   these blocks.

   2026-10-06 (owner D-233, LANDING-UNIFY). This began as the homepage-only
   "Signal / Data-Forward" stylesheet (approved investor design). The owner
   asked for the whole site to look like the homepage, so it is now the ONE
   stylesheet every page loads, through the one layout
   (src/_includes/base.njk). The homepage rules below are unchanged except for
   three contrast tokens (--dim in both themes, --teal in the light theme),
   raised to WCAG AA for small text. The SITE-WIDE PAGES LAYER at the end of
   the file restyles the vocabulary the other pages are written in (eyebrow,
   section-title, card, hero__panel, ...) in this same visual language, so no
   page can look like a different site again. test/unified-site.test.mjs fails
   if any page loads another stylesheet.

   Externalized for CSP (script-src/style-src 'self'). Do not inline. */
/* =========================================================================
   "Signal / Data-Forward" component rules (2026-10-06), now on the brand kit's
   tokens above. Display + body: Archivo · Data/labels: JetBrains Mono (tabular)
   ========================================================================= */
:root{
  --bg:#0b0b0b; --bg-2:#111111;
  --panel:#161616; --panel-2:#161616; --panel-3:#1c1c1c;
  --cell:#161616; --cell-2:#111111;
  --border:#2a2a2a; --border-2:#6f6f6f;
  --grid:rgba(255,255,255,.04);
  --text:#ffffff; --muted:#bdbdbd; --label:#bdbdbd; --dim:#a3a3a3;
  --teal:#ffffff; --teal-rgb:255,255,255;         /* primary: white on the ink ground */
  --blue:#bdbdbd; --blue-rgb:189,189,189;
  --amber:#e0a93b; --amber-rgb:224,169,59;        /* the kit's pending gold: "in development" */
  --red:#f2685c; --red-rgb:242,104,92;
  --on-teal:#0b0b0b;
  --teal-soft:rgba(255,255,255,.06); --blue-soft:rgba(189,189,189,.08);
  --amber-soft:rgba(224,169,59,.12); --red-soft:rgba(242,104,92,.12);
  --grad-text:linear-gradient(#ffffff,#ffffff);
  --grad-teal:linear-gradient(#ffffff,#ffffff);
  --glow-1:transparent; --glow-2:transparent;
  --nav-bg:rgba(11,11,11,.92);
  --shadow-card:none;
  --shadow-lg:none;
  --shadow-teal:none;
  --seal:#e3301c;                                 /* the kit's seal red: the logo files and the focus ring (the kit's --focus) only */
  --font:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --maxw:1208px;
}

/* Light theme — the kit's white ground. Follows the OS unless the visitor picks
   a mode (localStorage "regnovaiq-theme", an identifier). */
:root[data-theme="light"] {
  --bg:#ffffff; --bg-2:#f5f5f5;
  --panel:#ffffff; --panel-2:#ffffff; --panel-3:#f5f5f5;
  --cell:#ffffff; --cell-2:#f5f5f5;
  --border:#e4e4e4; --border-2:#848484;
  --grid:rgba(11,11,11,.05);
  --text:#0b0b0b; --muted:#5c5c5c; --label:#5c5c5c; --dim:#6b6b6b;
  --teal:#0b0b0b; --teal-rgb:11,11,11;
  --blue:#5c5c5c; --blue-rgb:92,92,92;
  --amber:#845a0e; --amber-rgb:132,90,14;
  --red:#b53124; --red-rgb:181,49,36;
  --on-teal:#ffffff;
  --teal-soft:rgba(11,11,11,.05); --blue-soft:rgba(92,92,92,.08);
  --amber-soft:rgba(132,90,14,.1); --red-soft:rgba(181,49,36,.1);
  --grad-text:linear-gradient(#0b0b0b,#0b0b0b);
  --grad-teal:linear-gradient(#0b0b0b,#0b0b0b);
  --glow-1:transparent; --glow-2:transparent;
  --nav-bg:rgba(255,255,255,.92);
  --shadow-card:none;
  --shadow-lg:none;
  --shadow-teal:none;
}
.theme-btn{background:transparent;border:1px solid var(--border-2);color:var(--muted);
border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:14px;line-height:1}
@media (prefers-color-scheme: light){

/* Light theme, followed from the OS (the same values as data-theme="light"). */
:root:not([data-theme="dark"]) {
  --bg:#ffffff; --bg-2:#f5f5f5;
  --panel:#ffffff; --panel-2:#ffffff; --panel-3:#f5f5f5;
  --cell:#ffffff; --cell-2:#f5f5f5;
  --border:#e4e4e4; --border-2:#848484;
  --grid:rgba(11,11,11,.05);
  --text:#0b0b0b; --muted:#5c5c5c; --label:#5c5c5c; --dim:#6b6b6b;
  --teal:#0b0b0b; --teal-rgb:11,11,11;
  --blue:#5c5c5c; --blue-rgb:92,92,92;
  --amber:#845a0e; --amber-rgb:132,90,14;
  --red:#b53124; --red-rgb:181,49,36;
  --on-teal:#ffffff;
  --teal-soft:rgba(11,11,11,.05); --blue-soft:rgba(92,92,92,.08);
  --amber-soft:rgba(132,90,14,.1); --red-soft:rgba(181,49,36,.1);
  --grad-text:linear-gradient(#0b0b0b,#0b0b0b);
  --grad-teal:linear-gradient(#0b0b0b,#0b0b0b);
  --glow-1:transparent; --glow-2:transparent;
  --nav-bg:rgba(255,255,255,.92);
  --shadow-card:none;
  --shadow-lg:none;
  --shadow-teal:none;
}

}

@property --bd-angle{syntax:"<angle>";inherits:false;initial-value:0deg}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg{display:block}
::selection{background:rgba(var(--teal-rgb),.3);color:#fff}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:6px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* ---------- atmosphere: fine precision grid + restrained glow ---------- */
.bg-atmos{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.aurora{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;mix-blend-mode:screen}
.aurora.a1{width:720px;height:520px;top:-220px;right:-140px;background:radial-gradient(circle,var(--glow-1),transparent 66%);animation:drift1 30s ease-in-out infinite}
.aurora.a2{width:660px;height:520px;top:-180px;left:-180px;background:radial-gradient(circle,var(--glow-2),transparent 64%);animation:drift2 36s ease-in-out infinite}
.netgrid{position:absolute;inset:0;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(125% 62% at 50% 0%,#000 36%,transparent 78%);
  mask-image:radial-gradient(125% 62% at 50% 0%,#000 36%,transparent 78%)}
.scanx{position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,rgba(var(--teal-rgb),.5),transparent);opacity:.5;animation:scan 9s linear infinite}
.shell{position:relative;z-index:1}

/* ---------- primitives ---------- */
.container{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.section{padding:112px 0;position:relative}
.section--alt{background:linear-gradient(180deg,rgba(255,255,255,.014),rgba(255,255,255,0));border-block:1px solid var(--border)}
.sec-head{max-width:800px;margin:0 auto 56px;text-align:center}
.tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.tag .sq{width:7px;height:7px;border-radius:2px;background:var(--teal);box-shadow:0 0 0 4px rgba(var(--teal-rgb),.16)}
.tag.center{justify-content:center}
.sec-title{font-family:var(--serif);font-size:clamp(2.05rem,3.6vw,2.95rem);line-height:1.1;font-weight:500;letter-spacing:-.022em;margin:18px 0 0}
.sec-sub{margin-top:18px;font-size:1.07rem;color:var(--muted);line-height:1.64}
.grad{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- status pills (signal semantics, text + color, never color-only) ---------- */
.pillz{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.pillz .d{width:6px;height:6px;border-radius:50%;flex:none}
.pz-clear{background:var(--teal-soft);color:var(--teal);border-color:rgba(var(--teal-rgb),.28)} .pz-clear .d{background:var(--teal)}
.pz-review{background:var(--amber-soft);color:var(--amber);border-color:rgba(var(--amber-rgb),.28)} .pz-review .d{background:var(--amber)}
.pz-hit{background:var(--red-soft);color:var(--red);border-color:rgba(var(--red-rgb),.32)} .pz-hit .d{background:var(--red)}
.pz-queue{background:var(--blue-soft);color:var(--blue);border-color:rgba(var(--blue-rgb),.28)} .pz-queue .d{background:var(--blue)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;position:relative;
  font-family:var(--font);font-weight:600;font-size:14.5px;letter-spacing:-.01em;padding:12px 19px;border-radius:11px;border:1px solid transparent;
  transition:transform .16s ease,box-shadow .24s ease,background .2s ease,border-color .2s ease,color .2s ease;white-space:nowrap}
.btn svg{width:17px;height:17px}
.btn-primary{background:var(--teal);color:var(--on-teal);box-shadow:0 1px 0 rgba(255,255,255,.28) inset,var(--shadow-teal)}
.btn-primary:hover{box-shadow:0 1px 0 rgba(255,255,255,.34) inset,0 30px 70px -26px rgba(var(--teal-rgb),.6)}
.btn-secondary{background:rgba(255,255,255,.02);color:var(--text);border-color:var(--border-2)}
.btn-secondary:hover{border-color:var(--teal);background:var(--teal-soft);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--muted);border-color:var(--border)}
.btn-ghost:hover{color:var(--text);border-color:var(--border-2)}
.btn-lg{padding:15px 25px;font-size:15.5px;border-radius:12px}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:60;transition:background .3s,border-color .3s,box-shadow .3s;border-bottom:1px solid transparent}
.nav.scrolled{background:var(--nav-bg);backdrop-filter:saturate(170%) blur(16px);-webkit-backdrop-filter:saturate(170%) blur(16px);
  border-bottom-color:var(--border);box-shadow:0 12px 40px -34px rgba(0,0,0,.9)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:11px;font-weight:600;font-size:1.07rem;letter-spacing:-.02em}
.brand .iq{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand__tag{margin-left:4px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);
  border-left:1px solid var(--border-2);padding-left:11px}
.nav__links{display:flex;gap:28px;list-style:none}
.nav__links a{font-size:14px;color:var(--muted);font-weight:500;transition:color .2s;position:relative}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:-22px;height:2px;background:var(--teal);transition:right .25s}
.nav__links a:hover{color:var(--text)} .nav__links a:hover::after{right:0}
.nav__cta{display:flex;align-items:center;gap:12px}
.nav__stat{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;color:var(--label);
  padding:6px 11px;border:1px solid var(--border);border-radius:999px}
.nav__stat .lp{width:7px;height:7px;border-radius:50%;background:var(--teal);position:relative}
.nav__stat .lp::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--teal);opacity:.55;animation:ring 2.4s ease-out infinite}

/* ---------- announcement ---------- */
.ann{display:flex;justify-content:center;padding:22px 0 0}
.ann__pill{display:inline-flex;align-items:center;gap:11px;padding:6px 8px 6px 7px;border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid var(--border-2);
  font-family:var(--mono);font-size:11.5px;color:var(--muted);box-shadow:0 14px 40px -30px rgba(0,0,0,.9)}
.ann__pill b{color:var(--text);font-weight:600}
.ann__tg{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--teal-soft);color:var(--teal);
  font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.ann__tg .dot{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(var(--teal-rgb),.18)}
.ann__pill .arrow{width:14px;height:14px;color:var(--dim);transition:transform .2s}
.ann__pill:hover .arrow{transform:translateX(3px);color:var(--teal)}

/* ---------- hero ---------- */
.hero{padding:40px 0 100px;position:relative}
.hero__inner{display:grid;grid-template-columns:.96fr 1.04fr;gap:54px;align-items:center}
.hero__pill{display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 11px;border-radius:999px;background:var(--teal-soft);
  border:1px solid rgba(var(--teal-rgb),.3);font-size:13px;font-weight:600;color:var(--text)}
.hero__pill .pulse{position:relative;width:8px;height:8px;border-radius:50%;background:var(--teal);flex:none}
.hero__pill .pulse::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--teal);opacity:.55;animation:ring 2.6s ease-out infinite}
.hero h1{font-family:var(--serif);font-size:clamp(2.6rem,4.7vw,4rem);line-height:1.03;font-weight:500;letter-spacing:-.025em;margin:24px 0 0}
.hero h1 em{font-style:italic;font-weight:400}
.hero__desc{margin-top:24px;font-size:1.14rem;line-height:1.6;color:var(--muted);max-width:560px}
.hero__cta{display:flex;gap:13px;margin-top:34px;flex-wrap:wrap}
.hero__chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;background:var(--panel);border:1px solid var(--border);
  font-family:var(--mono);font-size:11.5px;color:var(--label);font-weight:500;letter-spacing:.01em}
.chip .tick{width:13px;height:13px;color:var(--teal)}

/* ---------- hero dashboard (RISK OPS CONSOLE) ---------- */
.console{position:relative;background:linear-gradient(180deg,var(--panel-2),var(--panel) 60%,var(--bg-2));
  border:1px solid var(--border-2);border-radius:18px;padding:16px;box-shadow:var(--shadow-lg);animation:float 11s ease-in-out infinite}
.console::before{content:"";position:absolute;inset:-12% -7% -16% -7%;z-index:-1;background:radial-gradient(56% 54% at 70% 26%,var(--glow-1),transparent 70%);filter:blur(8px)}
.cz-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 6px 14px;border-bottom:1px solid var(--border)}
.cz-id{display:flex;align-items:center;gap:11px;min-width:0}
.cz-logo{width:34px;height:34px;border-radius:9px;flex:none;display:grid;place-items:center;background:var(--teal-soft);color:var(--teal);border:1px solid rgba(var(--teal-rgb),.28)}
.cz-logo svg{width:18px;height:18px}
.cz-name{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--text)}
.cz-sub{font-family:var(--mono);font-size:10px;color:var(--dim);letter-spacing:.06em;margin-top:1px}
.cz-meta{display:flex;align-items:center;gap:8px;flex:none}
.cz-demo{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;color:var(--amber);padding:4px 9px;border-radius:6px;
  background:var(--amber-soft);border:1px solid rgba(var(--amber-rgb),.3)}
.cz-clock{font-family:var(--mono);font-size:10.5px;color:var(--label);letter-spacing:.04em}
.live{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;background:var(--teal-soft);
  border:1px solid rgba(var(--teal-rgb),.3);font-family:var(--mono);font-size:10px;font-weight:600;color:var(--text);letter-spacing:.06em}
.live .core{position:relative;width:6px;height:6px;border-radius:50%;background:var(--teal)}
.live .core::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--teal);animation:ring 2.2s ease-out infinite}

/* KPI strip */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}
.kpi{background:var(--cell);border:1px solid var(--border);border-radius:11px;padding:11px 12px}
.kpi__l{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.kpi__v{font-family:var(--mono);font-size:1.18rem;font-weight:600;letter-spacing:-.01em;color:var(--text);margin-top:5px;font-variant-numeric:tabular-nums;line-height:1}
.kpi__v small{font-size:.62em;font-weight:500;color:var(--label);margin-left:1px}
.kpi__s{font-family:var(--mono);font-size:9.5px;color:var(--teal);margin-top:5px;display:flex;align-items:center;gap:4px}
.kpi__s.amb{color:var(--amber)} .kpi__s.dim{color:var(--dim)}

/* console body grid: feed + side instruments */
.cz-body{display:grid;grid-template-columns:1.5fr 1fr;gap:10px}
.panelite{background:var(--cell-2);border:1px solid var(--border);border-radius:12px;padding:11px 11px 10px}
.pl-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.pl-ttl{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--label)}
.eq{display:inline-flex;align-items:flex-end;gap:2.5px;height:12px}
.eq span{width:3px;border-radius:2px;background:var(--teal);animation:eq 1.5s ease-in-out infinite;transform-origin:bottom}

/* screening feed rows */
.feed{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
.frow{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 9px;border-radius:9px;background:var(--cell);border:1px solid var(--border)}
.frow .pillz{flex:none}
.frow.hit{border-color:rgba(var(--red-rgb),.4);background:linear-gradient(90deg,var(--red-soft),var(--cell) 70%);box-shadow:inset 2px 0 0 var(--red)}
.frow.rev{border-color:rgba(var(--amber-rgb),.28)}
.fl{display:flex;align-items:center;gap:9px;min-width:0}
.fid{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.04em;color:var(--blue);background:var(--blue-soft);border:1px solid rgba(var(--blue-rgb),.25);
  padding:3px 6px;border-radius:6px;flex:none}
.frow.hit .fid{color:var(--red);background:var(--red-soft);border-color:rgba(var(--red-rgb),.3)}
.fn{font-size:12px;font-weight:600;color:var(--text);line-height:1.25;overflow-wrap:anywhere}
.fm{font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.02em;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* side instruments: gauge + sparkline + bullets */
.side{display:flex;flex-direction:column;gap:10px}
.gauge{position:relative;display:grid;place-items:center;padding:4px 0 2px}
.gauge svg{width:148px;height:104px;overflow:visible}
.gauge__c{position:absolute;top:46%;left:0;right:0;transform:translateY(-50%);text-align:center}
.gauge__num{font-family:var(--mono);font-size:1.7rem;font-weight:600;color:var(--text);line-height:1;font-variant-numeric:tabular-nums}
.gauge__num small{font-size:.5em;color:var(--dim);font-weight:500}
.gauge__lab{font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--amber);margin-top:5px}
.spark{position:relative}
.spark svg{display:block;width:100%;height:auto}
.spark__cap{display:flex;align-items:center;justify-content:space-between;margin-top:6px;font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.04em}
.spark__cap b{color:var(--teal);font-weight:600}
.bullets{display:grid;gap:9px}
.bul__l{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-bottom:4px}
.bul__l b{color:var(--text);font-weight:600;text-transform:none;letter-spacing:0}
.bul__t{height:6px;border-radius:4px;background:var(--cell);border:1px solid var(--border);overflow:hidden}
.bul__f{height:100%;border-radius:4px;background:var(--grad-teal)}
.bul__f.amb{background:linear-gradient(90deg,var(--blue),var(--amber))}

/* alert ticker */
.ticker{margin-top:10px;display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:10px;background:var(--cell-2);overflow:hidden}
.ticker__tag{flex:none;display:inline-flex;align-items:center;gap:6px;padding:8px 11px;font-family:var(--mono);font-size:9px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--bg);background:var(--teal);align-self:stretch}
.ticker__win{position:relative;overflow:hidden;flex:1;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 94%,transparent)}
.ticker__track{display:flex;align-items:center;gap:26px;width:max-content;padding:8px 18px;animation:ticker 26s linear infinite}
.tk{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.02em;white-space:nowrap}
.tk .d{width:6px;height:6px;border-radius:50%;flex:none}
.tk .d.t{background:var(--teal)} .tk .d.a{background:var(--amber)} .tk .d.r{background:var(--red)} .tk .d.b{background:var(--blue)}
.tk b{color:var(--text);font-weight:600}

.cz-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding-top:11px;border-top:1px solid var(--border);
  font-family:var(--mono);font-size:10px;color:var(--dim);letter-spacing:.03em}
.cz-foot b{color:var(--teal);font-weight:600}

/* ---------- layout containment: stop flex/grid max-content blowout (keeps page = viewport width) ---------- */
.hero__inner > *{min-width:0}
.hero__visual,.console{min-width:0;max-width:100%}
.cz-top,.kpis,.cz-body,.ticker,.cz-foot,.kpi,.panelite,.side{min-width:0}
.cz-id,.cz-id > div,.cz-meta{min-width:0}
.ticker__win{min-width:0}
.fl > div{min-width:0}
.minirow,.minirow .l{min-width:0}
.bento > *{min-width:0}
.feat > *,.term,.term__bd{min-width:0}
.cz-foot span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- framework marquee ---------- */
.fw{border-block:1px solid var(--border);background:rgba(255,255,255,.012);padding:32px 0}
.fw__lead{text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:20px}
.marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee__track{display:flex;align-items:center;gap:13px;width:max-content;animation:marq 44s linear infinite}
.fchip{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border-radius:10px;flex:none;background:var(--panel);border:1px solid var(--border);
  font-size:13.5px;font-weight:600;color:var(--text);letter-spacing:-.005em}
.fchip .fdot{width:6px;height:6px;border-radius:2px;background:var(--teal);flex:none}
.fchip span.sub{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--dim);letter-spacing:.04em}

/* ---------- stats band ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{text-align:center;padding:6px 14px;position:relative}
.stat + .stat::before{content:"";position:absolute;left:0;top:12%;height:76%;width:1px;background:var(--border)}
.stat__num{font-family:var(--mono);font-size:clamp(2.3rem,3.9vw,3.1rem);font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}
.stat__num .u{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat__lab{margin-top:13px;font-size:13.5px;color:var(--muted);line-height:1.45;max-width:210px;margin-inline:auto}
.stat__k{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:11px}

/* ---------- spotlight card (shared) ---------- */
.spot{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:transform .22s,background .25s}
.spot::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:conic-gradient(from var(--bd-angle),transparent 0%,rgba(var(--teal-rgb),.9) 12%,transparent 30%,transparent 60%,rgba(var(--blue-rgb),.85) 76%,transparent 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:.32;animation:bd-rot 9s linear infinite}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.5;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,-10%),rgba(var(--teal-rgb),.13),transparent 60%)}
.spot:hover{transform:translateY(-4px);background:var(--panel-2)}
.spot:hover::before{opacity:1}

/* ---------- why-now / moat cards ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.scard{padding:28px}
.scard__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.scard__ic{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:var(--teal-soft);color:var(--teal);border:1px solid rgba(var(--teal-rgb),.22)}
.scard__ic svg{width:22px;height:22px}
.scard .kick{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.scard h3{font-family:var(--serif);font-size:1.36rem;font-weight:600;letter-spacing:-.018em;margin:6px 0 9px}
.scard p{font-size:.95rem;color:var(--muted);line-height:1.62}
.scard em{font-style:italic;color:var(--text)}
.scard .num{font-family:var(--mono);font-size:11px;color:var(--dim)}
.bridge{max-width:880px;margin:44px auto 0;text-align:center;font-size:1.05rem;color:var(--muted);line-height:1.66}
.bridge b{color:var(--text);font-weight:600}

/* ---------- bento (dense 12-col) ---------- */
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(208px,auto);gap:14px}
.tile{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:15px;padding:20px;overflow:hidden;display:flex;flex-direction:column;
  transition:transform .22s,border-color .22s,box-shadow .25s,background .25s}
.tile::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(var(--teal-rgb),.11),transparent 60%)}
.tile:hover{transform:translateY(-4px);border-color:var(--border-2);box-shadow:var(--shadow-card);background:var(--panel-2)}
.tile:hover::after{opacity:1}
.tile__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.tile__ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--teal-soft);color:var(--teal);border:1px solid rgba(var(--teal-rgb),.22)}
.tile__ic svg{width:19px;height:19px}
.tile__k{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.tile h3{font-family:var(--serif);font-size:1.2rem;font-weight:600;letter-spacing:-.018em;margin-bottom:6px}
.tile p{font-size:.9rem;color:var(--muted);line-height:1.55}
.t-graph{grid-column:span 7;grid-row:span 2}
.t-screen{grid-column:span 5}
.t-explain{grid-column:span 5}
.t-prov{grid-column:span 4}
.t-monitor{grid-column:span 4}
.t-case{grid-column:span 4}
.tviz{margin-top:auto}
/* mini graph */
.bgraph{width:100%;height:auto;display:block;margin-top:14px}
.bgraph .e{stroke:var(--border-2);stroke-width:1.3}
.bgraph .er{stroke:var(--teal);stroke-width:1.8}
.bgraph .n{fill:var(--panel-3);stroke:var(--blue);stroke-width:1.8}
.bgraph .nt{stroke:var(--teal)} .bgraph .hb{fill:var(--teal)}
/* mini feed under graph */
.minirow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:8px;background:var(--cell-2);border:1px solid var(--border)}
.minirow + .minirow{margin-top:6px}
.minirow .l{display:flex;align-items:center;gap:8px;min-width:0;font-size:11px;font-weight:600;color:var(--text)}
.minirow .l .c{font-family:var(--mono);font-size:8.5px;color:var(--blue);background:var(--blue-soft);padding:2px 5px;border-radius:5px}
/* explain snippet */
.reason{background:var(--cell-2);border:1px solid var(--border);border-radius:9px;padding:10px 11px;margin-top:12px}
.reason .h{font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.reason .b{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:5px}
.confbar{display:flex;align-items:center;gap:9px;margin-top:9px;font-family:var(--mono);font-size:9.5px;color:var(--dim)}
.confbar .t{flex:1;height:5px;border-radius:3px;background:var(--cell);border:1px solid var(--border);overflow:hidden}
.confbar .f{height:100%;background:var(--grad-teal);border-radius:3px}
/* seal */
.seal{display:flex;align-items:center;gap:11px;margin-top:12px;padding:10px 12px;border-radius:9px;background:var(--cell-2);border:1px solid var(--border)}
.seal svg{width:24px;height:24px;color:var(--teal);flex:none}
.seal .h{font-size:12px;font-weight:600} .seal .s{font-family:var(--mono);font-size:9.5px;color:var(--dim);margin-top:1px}
/* bars */
.bars2{display:flex;align-items:flex-end;gap:5px;height:44px;margin-top:14px}
.bars2 span{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,rgba(var(--teal-rgb),.75),rgba(var(--teal-rgb),.1))}
/* case stepper */
.steps{display:flex;align-items:center;gap:7px;margin-top:14px}
.step{flex:1;text-align:center;padding:8px 4px;border-radius:8px;background:var(--cell-2);border:1px solid var(--border);
  font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--dim)}
.step.on{color:var(--teal);border-color:rgba(var(--teal-rgb),.35);background:var(--teal-soft)}
.step.now{color:var(--amber);border-color:rgba(var(--amber-rgb),.35);background:var(--amber-soft)}
.stepar{color:var(--dim);font-size:11px}

/* ---------- feature deep-dives ---------- */
.feat{display:grid;grid-template-columns:1fr 1.06fr;gap:60px;align-items:center;padding:32px 0}
.feat + .feat{margin-top:26px}
.feat.rev .feat__media{order:-1}
.feat__media{position:sticky;top:100px}
.feat__num{font-family:var(--mono);font-size:11.5px;color:var(--teal);letter-spacing:.1em}
.feat h3{font-family:var(--serif);font-size:clamp(1.75rem,2.7vw,2.35rem);line-height:1.12;font-weight:500;letter-spacing:-.022em;margin:13px 0 15px}
.feat p{font-size:1.04rem;color:var(--muted);line-height:1.64;max-width:480px}
.feat__list{margin:22px 0 0;display:grid;gap:12px}
.feat__list li{list-style:none;display:flex;gap:12px;align-items:flex-start;font-size:.97rem;color:var(--muted)}
.feat__list .ic{width:21px;height:21px;border-radius:6px;flex:none;display:grid;place-items:center;background:var(--teal-soft);color:var(--teal);margin-top:1px}
.feat__list .ic svg{width:12px;height:12px}
.feat__list b{color:var(--text);font-weight:600}
/* terminal panel */
.term{position:relative;border-radius:16px;border:1px solid var(--border-2);background:linear-gradient(180deg,var(--panel-2),var(--bg-2));padding:0;box-shadow:var(--shadow-card);overflow:hidden}
.term__bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.015)}
.term__bar i{width:9px;height:9px;border-radius:50%;background:var(--panel-3);display:block}
.term__bar i:first-child{background:rgba(var(--teal-rgb),.7)}
.term__pt{margin-left:8px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.term__bd{padding:18px}
.term .feed{gap:7px}
.term .frow{padding:10px 11px}
.term .fn{font-size:12.5px}
.term__amt{font-family:var(--mono);font-size:11px;color:var(--label);font-variant-numeric:tabular-nums}

/* ---------- comparison ---------- */
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:980px;margin:0 auto}
.cmp__col{border-radius:16px;border:1px solid var(--border);overflow:hidden;background:var(--panel)}
.cmp__col.win{border-color:rgba(var(--teal-rgb),.4);background:linear-gradient(180deg,rgba(var(--teal-rgb),.05),var(--panel) 40%);box-shadow:var(--shadow-card)}
.cmp__hd{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}
.cmp__hd .t{font-family:var(--serif);font-size:1.28rem;font-weight:600;letter-spacing:-.015em}
.cmp__hd .lab{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.cmp__col.win .cmp__hd .lab{color:var(--teal)}
.cmp__badge{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none}
.cmp__badge.old{background:rgba(255,255,255,.04);color:var(--dim);border:1px solid var(--border)}
.cmp__badge.new{background:var(--teal-soft);color:var(--teal);border:1px solid rgba(var(--teal-rgb),.25)}
.cmp__row{display:flex;gap:12px;align-items:flex-start;padding:15px 24px;font-size:.96rem;border-top:1px solid var(--border)}
.cmp__row:first-of-type{border-top:none}
.cmp__row .mk{width:20px;height:20px;border-radius:6px;flex:none;display:grid;place-items:center;margin-top:1px}
.cmp__row .mk svg{width:12px;height:12px}
.mk.x{background:var(--red-soft);color:var(--red)} .mk.c{background:var(--teal-soft);color:var(--teal)}
.cmp__row.old-row{color:var(--muted)} .cmp__row.new-row{color:var(--text)}

/* ---------- security ---------- */
.pills{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:38px}
.pill{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border-radius:999px;background:var(--panel);border:1px solid var(--border);
  font-family:var(--mono);font-size:12px;color:var(--label);font-weight:500;letter-spacing:.01em;transition:border-color .2s,color .2s}
.pill .pc{width:14px;height:14px;color:var(--teal);flex:none}
.pill:hover{border-color:var(--border-2);color:var(--text)}
.roadmap{margin-top:24px;text-align:center;font-size:13px;color:var(--dim)}
.roadmap .rp{display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:999px;background:var(--blue-soft);
  border:1px dashed rgba(var(--blue-rgb),.4);color:var(--blue);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.03em;margin-left:6px}

/* ---------- FAQ ---------- */
.faq{max-width:840px;margin:0 auto;display:grid;gap:13px}
.qa{border:1px solid var(--border);border-radius:13px;background:var(--panel);overflow:hidden;transition:border-color .2s,background .2s}
.qa[open]{border-color:var(--border-2);background:var(--panel-2)}
.qa summary{list-style:none;cursor:pointer;padding:21px 23px;display:flex;align-items:center;justify-content:space-between;gap:18px;
  font-family:var(--serif);font-size:1.14rem;font-weight:600;letter-spacing:-.012em;color:var(--text)}
.qa summary::-webkit-details-marker{display:none}
.qa summary .pm{width:25px;height:25px;border-radius:7px;flex:none;display:grid;place-items:center;background:var(--teal-soft);color:var(--teal);transition:transform .25s}
.qa[open] summary .pm{transform:rotate(45deg)}
.qa__body{padding:0 23px 21px;font-size:.99rem;color:var(--muted);line-height:1.66;max-width:680px}

/* ---------- closing CTA ---------- */
.cta{position:relative;border-radius:24px;padding:68px 52px;overflow:hidden;text-align:center;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--border-2);box-shadow:var(--shadow-lg)}
.cta__glow{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(56% 120% at 50% -25%,var(--glow-1),transparent 60%),radial-gradient(48% 120% at 82% 125%,var(--glow-2),transparent 60%);animation:ctaglow 8s ease-in-out infinite}
.cta__grid{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:40px 40px;
  -webkit-mask-image:radial-gradient(80% 80% at 50% 40%,#000,transparent 75%);mask-image:radial-gradient(80% 80% at 50% 40%,#000,transparent 75%)}
.cta__in{position:relative;z-index:1;max-width:640px;margin:0 auto}
.cta h2{font-family:var(--serif);font-size:clamp(2.1rem,3.6vw,2.9rem);font-weight:500;letter-spacing:-.024em;line-height:1.08;margin:14px 0 0}
.cta p{margin-top:15px;color:var(--muted);font-size:1.08rem}
.cta__row{display:flex;gap:12px;justify-content:center;margin:32px auto 0;flex-wrap:wrap}
.cta__alt{display:block;margin-top:18px;font-family:var(--mono);font-size:12.5px;color:var(--dim)}
.cta__alt a{color:var(--teal);font-weight:500}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--border);padding:74px 0 38px;background:var(--bg-2);position:relative;z-index:1}
.footer__grid{display:grid;grid-template-columns:1.5fr .9fr .9fr .9fr;gap:42px}
.footer__brand .brand{margin-bottom:15px}
.footer__tag{font-size:13.5px;color:var(--muted);max-width:300px;line-height:1.62;margin-bottom:20px}
.contactform{display:grid;gap:9px;max-width:340px}
.contactform input,.contactform textarea{width:100%;padding:12px 13px;border-radius:10px;background:var(--bg);border:1px solid var(--border-2);
  color:var(--text);font-family:var(--font);font-size:14px;transition:border-color .2s,box-shadow .2s;resize:vertical}
.contactform textarea{min-height:72px}
.contactform input::placeholder,.contactform textarea::placeholder{color:var(--dim)}
.contactform input:focus,.contactform textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-soft)}
.contactform button{width:100%}
.footer h5{font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--dim);margin-bottom:16px;font-family:var(--mono);font-weight:600}
.footer__col{display:flex;flex-direction:column;gap:11px}
.footer__col a{font-size:13.5px;color:var(--muted);transition:color .2s}
.footer__col a:hover{color:var(--teal)}
.footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:54px;padding-top:24px;border-top:1px solid var(--border);
  font-family:var(--mono);font-size:12px;color:var(--dim)}
.footer__bottom a{color:var(--muted)} .footer__bottom a:hover{color:var(--teal)}

/* ---------- reveal ---------- */
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
html.js .reveal.in{opacity:1;transform:none}
html.shot .reveal{opacity:1!important;transform:none!important}
html.shot .ticker__track,html.shot .marquee__track{animation-play-state:paused!important}

/* ---------- keyframes (transform/opacity only) ---------- */
@keyframes ring{0%{transform:scale(.7);opacity:.7}100%{transform:scale(2.2);opacity:0}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes eq{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
@keyframes marq{to{transform:translateX(-50%)}}
@keyframes ticker{to{transform:translateX(-50%)}}
@keyframes bd-rot{to{--bd-angle:360deg}}
@keyframes drift1{0%,100%{transform:translate(0,0)}50%{transform:translate(-36px,28px)}}
@keyframes drift2{0%,100%{transform:translate(0,0)}50%{transform:translate(44px,24px)}}
@keyframes ctaglow{0%,100%{opacity:.85}50%{opacity:1}}
@keyframes scan{0%{transform:translateY(0)}100%{transform:translateY(560px)}}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important}
  html.js .reveal{opacity:1!important;transform:none!important}
  .spot::before{opacity:.5}
}

/* ---------- responsive ---------- */
@media (max-width:1040px){
  .hero__inner{grid-template-columns:1fr;gap:46px}
  .feat{grid-template-columns:1fr;gap:32px}
  .feat.rev .feat__media{order:0} .feat__media{position:static}
  .bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto}
  .t-graph,.t-screen,.t-explain,.t-prov,.t-monitor,.t-case{grid-column:span 1;grid-row:auto}
  .tile{min-height:220px}
  .grid-3{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr;gap:32px 20px} .stat + .stat::before{display:none}
  .cmp{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr 1fr}
  .nav__links,.nav__stat{display:none}
}
@media (max-width:600px){
  .container{padding:0 20px} .section{padding:80px 0}
  .grid-3,.bento,.footer__grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr} .cta{padding:46px 22px}
  .kpis{grid-template-columns:repeat(2,1fr)} .cz-body{grid-template-columns:1fr}
  .nav__cta .btn-ghost{display:none}
}

/* =========================================================================
   CTA MODAL — demo / whitepaper (Signal/Data theme; reuses tokens)
   ========================================================================= */
body.modal-open{overflow:hidden}
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.modal[hidden]{display:none}
.modal__overlay{position:absolute;inset:0;background:rgba(4,7,12,.74);
  backdrop-filter:blur(6px) saturate(140%);-webkit-backdrop-filter:blur(6px) saturate(140%);
  opacity:0;transition:opacity .2s ease}
.modal.in .modal__overlay{opacity:1}
.modal__dialog{position:relative;width:100%;max-width:444px;max-height:calc(100vh - 48px);overflow-y:auto;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--border-2);border-radius:18px;
  box-shadow:var(--shadow-lg);padding:30px 28px 24px;
  opacity:0;transform:translateY(14px) scale(.985);
  transition:opacity .22s ease,transform .22s cubic-bezier(.22,.61,.36,1)}
.modal.in .modal__dialog{opacity:1;transform:none}
.modal__close{position:absolute;top:13px;right:13px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:9px;border:1px solid var(--border);background:rgba(255,255,255,.02);color:var(--muted);cursor:pointer;
  transition:color .2s,border-color .2s,background .2s}
.modal__close:hover{color:var(--text);border-color:var(--border-2);background:rgba(255,255,255,.05)}
.modal__close svg{width:17px;height:17px}
.modal__head{margin-bottom:18px;padding-right:30px}
.modal__title{font-family:var(--serif);font-size:1.72rem;font-weight:500;letter-spacing:-.022em;line-height:1.12;margin:12px 0 0}
.modal__sub{margin-top:10px;font-size:.95rem;color:var(--muted);line-height:1.55}
.modal__wp-link{width:100%;margin-bottom:16px}
.modal__wp-link[hidden]{display:none}
.modal__form{max-width:none;gap:13px}
.modal__form[hidden]{display:none}
.modal__field{display:grid;gap:6px}
.modal__lab{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--label)}
.modal__opt{color:var(--dim);font-weight:400;letter-spacing:.02em}
.modal__error{font-size:12.5px;color:var(--red);background:var(--red-soft);border:1px solid rgba(var(--red-rgb),.32);
  border-radius:9px;padding:9px 11px;margin:0;line-height:1.5}
.modal__error[hidden]{display:none}
.modal__form .btn-primary{width:100%;margin-top:2px}
.modal__fine{font-family:var(--mono);font-size:10.5px;color:var(--dim);text-align:center;margin-top:1px}
.modal__done{text-align:center;padding:12px 4px 8px}
.modal__done[hidden]{display:none}
.modal__done-ic{width:54px;height:54px;margin:0 auto 16px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--teal-soft);border:1px solid rgba(var(--teal-rgb),.34);color:var(--teal)}
.modal__done-ic svg{width:25px;height:25px}
.modal__done h3{font-family:var(--serif);font-size:1.34rem;font-weight:500;letter-spacing:-.018em;margin-bottom:9px}
.modal__done p{color:var(--muted);font-size:.95rem;line-height:1.56}
@media (prefers-reduced-motion:reduce){
  .modal__overlay,.modal__dialog{transition:none}
  .modal__dialog{transform:none}
}
@media (max-width:600px){
  .modal{padding:14px}
  .modal__dialog{padding:26px 20px 20px}
  .modal__title{font-size:1.5rem}
}

/* =========================================================================
   WHITEPAPER page (/whitepaper/) — same Signal/Data theme
   ========================================================================= */
.wp-shell{position:relative;z-index:1}
.wp-nav{position:sticky;top:0;z-index:60;background:var(--nav-bg);
  backdrop-filter:saturate(170%) blur(16px);-webkit-backdrop-filter:saturate(170%) blur(16px);
  border-bottom:1px solid var(--border)}
.wp-nav__inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.wp-back{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;font-weight:600;
  letter-spacing:.03em;color:var(--muted);transition:color .2s}
.wp-back:hover{color:var(--teal)}
.wp-back svg{width:15px;height:15px}
.wp{max-width:820px;margin:0 auto;padding:0 32px}
.wp-hero{padding:62px 0 34px;border-bottom:1px solid var(--border)}
.wp-doc-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--teal)}
.wp-doc-tag .sq{width:7px;height:7px;border-radius:2px;background:var(--teal);box-shadow:0 0 0 4px rgba(var(--teal-rgb),.16)}
.wp-title{font-family:var(--serif);font-size:clamp(2.1rem,4.4vw,3.1rem);font-weight:500;line-height:1.08;letter-spacing:-.024em;margin:18px 0 0}
.wp-lede{margin-top:18px;font-size:1.12rem;color:var(--muted);line-height:1.6;max-width:680px}
.wp-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:24px;font-family:var(--mono);font-size:11px;
  letter-spacing:.04em;color:var(--dim);text-transform:uppercase}
.wp-meta b{color:var(--label);font-weight:600}
.wp-toc{margin:38px 0 12px;padding:22px 24px;border:1px solid var(--border-2);border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,0))}
.wp-toc h2{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:0 0 14px}
.wp-toc ol{list-style:none;counter-reset:toc;display:grid;gap:9px;margin:0;padding:0}
.wp-toc li{counter-increment:toc}
.wp-toc a{display:flex;gap:13px;align-items:baseline;font-size:14.5px;color:var(--muted);transition:color .2s}
.wp-toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--mono);font-size:11px;color:var(--teal);font-weight:600;flex:none}
.wp-toc a:hover{color:var(--text)}
.wp-body{padding:18px 0 8px}
.wp-sec{padding:34px 0;border-top:1px solid var(--border)}
.wp-sec:first-child{border-top:none}
.wp-sec__k{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.wp-sec h2{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,1.95rem);font-weight:500;letter-spacing:-.02em;line-height:1.16;margin:11px 0 0}
.wp-sec h3{font-family:var(--font);font-size:1.06rem;font-weight:600;letter-spacing:-.01em;color:var(--text);margin:26px 0 0}
.wp-sec p{margin-top:15px;color:var(--muted);font-size:1.02rem;line-height:1.72}
.wp-sec p + p{margin-top:13px}
.wp-sec strong{color:var(--text);font-weight:600}
.wp-sec em{color:var(--text);font-style:italic}
.wp-list{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:12px}
.wp-list li{display:flex;gap:12px;align-items:flex-start;color:var(--muted);font-size:1rem;line-height:1.62}
.wp-list .ic{flex:none;width:21px;height:21px;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:6px;background:var(--teal-soft);border:1px solid rgba(var(--teal-rgb),.28);color:var(--teal)}
.wp-list .ic svg{width:13px;height:13px}
.wp-list b{color:var(--text);font-weight:600}
.wp-frameworks{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.wp-fw{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;color:var(--muted);
  padding:7px 12px;border:1px solid var(--border-2);border-radius:999px;background:rgba(255,255,255,.015)}
.wp-fw .d{width:6px;height:6px;border-radius:50%;background:var(--teal);flex:none}
.wp-fw .sub{color:var(--dim)}
.wp-callout{margin-top:22px;padding:20px 22px;border-left:2px solid var(--teal);border-radius:0 12px 12px 0;
  background:linear-gradient(90deg,var(--teal-soft),transparent 92%)}
.wp-callout p{margin:0;color:var(--text);font-size:1.02rem;line-height:1.62}
.wp-cta{margin:40px 0 16px;padding:40px 34px;text-align:center;border:1px solid var(--border-2);border-radius:20px;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));box-shadow:var(--shadow-card)}
.wp-cta h2{font-family:var(--serif);font-size:1.85rem;font-weight:500;letter-spacing:-.02em;margin:0}
.wp-cta p{margin-top:13px;color:var(--muted);font-size:1.02rem;line-height:1.6}
.wp-cta__row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.wp-note{font-family:var(--mono);font-size:11px;color:var(--dim);letter-spacing:.03em;text-align:center;
  margin:14px 0 0;line-height:1.6}
.wp-foot{border-top:1px solid var(--border);margin-top:30px;padding:30px 0 46px;
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:12px;color:var(--dim)}
.wp-foot a{color:var(--muted)} .wp-foot a:hover{color:var(--teal)}
@media (max-width:600px){
  .wp{padding:0 20px}
  .wp-hero{padding:46px 0 28px}
  .wp-cta{padding:32px 22px}
}

/* ==========================================================================
   RB-SITE-NAV-OVERFLOW-20260903 — the header broke phrases mid-word.

   SYMPTOM: "Why now" rendered as "Why" / "now" stacked, "Why we win" as three
   lines, and the PUBLIC SANCTIONS DATA pill as three. The bar looked collapsed
   and unfinished.

   CAUSE: two things, and only the second is really mine.
     1. `.nav__inner` is a fixed-height (68px) flex row and this file carried NO
        nav rules in either @media block. The bar fit by luck, not by design.
     2. RB-SITE-APEX-LINKS-20260902 took the link list from 5 items to 8
        (Company, Technology, Contact) beside a brand tagline, a status pill and
        two buttons. Nothing had room, and with no `white-space` rule the
        browser did the only thing left: break inside the labels.

   FIX, in two parts:
     * Labels never break. A nav label split across lines is always wrong;
       it should shrink, scroll or hide instead.
     * The bar degrades in a deliberate ORDER as width falls, shedding
       decoration before navigation and navigation before the primary CTA.
       There is no mobile menu on this page, so the links are never hidden
       outright — below the last breakpoint they scroll horizontally, which
       keeps every destination reachable.
   ========================================================================== */

/* 1. Nothing in the bar may break mid-phrase. */
.nav__links a,
.nav .brand__tag,
.nav .nav__stat,
.nav .btn {
  white-space: nowrap;
}

/* 2. Let the row shrink instead of overflowing its fixed height.
      `min-width:0` is required: a flex item defaults to min-width:auto and
      refuses to shrink below its content, which is what pushed the overflow
      into a wrap in the first place. */
.nav__inner {
  gap: clamp(12px, 1.4vw, 28px);
  flex-wrap: nowrap;
}
.nav__links {
  gap: clamp(13px, 1.5vw, 28px);
  flex-wrap: nowrap;
  min-width: 0;
}
.nav__cta {
  flex-shrink: 0;
}
.nav__logo,
.nav .brand {
  flex-shrink: 0;
}

/* 3. Progressive disclosure — decoration first, navigation last. */
@media (max-width: 1500px) {
  /* the tagline is brand decoration; the wordmark still carries the name */
  .nav .brand__tag { display: none; }
}
@media (max-width: 1320px) {
  /* the live-data pill is a trust signal, not a destination */
  .nav .nav__stat { display: none; }
}
@media (max-width: 1140px) {
  /* keep ONE call to action: the demo is the conversion, the whitepaper is
     still linked from the page body and the footer */
  .nav__cta .btn-ghost { display: none; }
}
@media (max-width: 980px) {
  /* Last resort: scroll the links rather than hide them. This page has no
     mobile menu, so hiding the list would leave /company, /technology and
     /contact unreachable from the entry point — the exact defect
     RB-SITE-APEX-LINKS-20260902 existed to fix. */
  .nav__links {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    mask-image: linear-gradient(to right, #000 88%, transparent);
  }
  .nav__links::-webkit-scrollbar { display: none; }
}

/* ==========================================================================
   RB-SITE-NAV-OVERLAP-20260903 — nowrap turned a wrap into an OVERLAP.

   Stopping the labels from breaking was right, but on its own it only changed
   the failure mode: with nine nav items plus a theme toggle, "Sign in" and
   "Request demo", the row is wider than the bar at ANY desktop width, so the
   links ran UNDER the controls -- the theme toggle rendered on top of the word
   "Resources".

   The previous rules let the links scroll only below 980px, which is far too
   late: the collision happens around 1400-2000px, where most visitors are.

   So the links row is now a proper flex child at every width -- `min-width:0`
   and `flex:1 1 auto` let it shrink, `overflow-x:auto` lets its contents move
   inside that space, and the controls keep `flex-shrink:0` so they are never
   the thing that gives way. The result cannot overlap: the links either fit or
   scroll, and the CTA is always intact.

   This is a robustness fix, not an answer to the real question. Nine top-level
   items IS the underlying problem, and consolidating them is an information-
   architecture decision for the owner, not one to make silently on a public
   site.
   ========================================================================== */
.nav__inner { min-width: 0; }
.nav__links {
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
  /* fade the right edge so a cut-off item reads as scrollable, not broken */
  mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
}
.nav__links::-webkit-scrollbar { display: none; }
.nav__cta { flex-shrink: 0; z-index: 1; }

/* ==========================================================================
   RB-SITE-NAV-NO-SCROLL-20260903 — a scrolling nav is not an enterprise header.

   The previous fix stopped the bar overlapping by letting the link row scroll.
   That traded one defect for a worse one: at ordinary desktop widths the row
   was already wider than its space, so items sat PERMANENTLY cut off -- the
   header rendered "...mpany" and a clipped "Contact" with no affordance saying
   anything was hidden. A visitor cannot navigate to what they cannot see.

   The row overflows because the bar carries more than a bar should:

       logo + "FINANCIAL-CRIME INTELLIGENCE" tagline
            + 6 links
            + a PUBLIC SANCTIONS DATA status pill
            + two buttons

   The links and the buttons are navigation. The tagline and the status pill are
   DECORATION competing with it for the same row. Enterprise headers carry a
   mark, a handful of destinations and one or two actions -- not a strapline and
   a live-data badge.

   So: the scroll and its fade mask are removed, and the two decorative elements
   leave the bar at every width. Neither is lost -- the wordmark already says
   the name, and a status belongs in the page body, where it has room to mean
   something.
   ========================================================================== */
.nav .brand__tag,
.nav .nav__stat {
  display: none;
}
.nav__links {
  overflow: visible;
  mask-image: none;
  -webkit-mask-image: none;
  flex: 0 1 auto;
}

/* ==========================================================================
   SITE-WIDE PAGES LAYER — owner D-233, 2026-10-06 (LANDING-UNIFY).

   The owner: "the landing pages ... platform, why now and security seem to be
   separate pages to company, technology and contact ... it feels like these
   pages are rendering from somewhere and are not linked; make all pages like
   [the homepage]/#platform".

   They WERE rendering from two places: the homepage was a hand-written page on
   this stylesheet, every other page an Eleventy template on a second design
   system (assets/design-tokens.css + assets/styles.css) with its own header,
   nav, footer and background. Now every page renders through ONE layout
   (src/_includes/base.njk) on THIS stylesheet. The rules below give the shared
   header, nav and footer what they need on every page, and restyle the class
   vocabulary the other pages are written in, in the homepage's language:
   panels and tiles from #platform, the mono teal kicker, the serif headings.

   assets/design-tokens.css and assets/styles.css stay in the repository
   because the client and admin portals import them; no page of this site
   loads them any more.
   ========================================================================== */

/* ---- 1. Token aliases: page-local <style> blocks were written against the
          old token names. Each maps to the homepage token with the same value,
          so both themes follow automatically. ---- */
:root{
  --accent:var(--blue); --accent-rgb:var(--blue-rgb); --accent-soft:var(--blue-soft);
  --ink:var(--bg); --surface:var(--panel); --surface-card:var(--panel); --surface-alt:var(--panel-3); --raised:var(--panel-3);
  --line:var(--border); --line-strong:var(--border-2); --border-soft:var(--border); --border-med:var(--border-2);
  --faint:var(--dim);
  --font-body:var(--font); --font-ui:var(--font); --font-display:var(--serif); --font-mono:var(--mono);
  --radius-xl:18px; --radius-lg:16px; --radius-md:12px; --radius-sm:9px; --radius-pill:999px;
  --transition-fast:.15s ease; --transition-med:.3s ease; --transition-slow:.6s cubic-bezier(.22,.61,.36,1);
  --violet:#8b7cf6; --violet-rgb:139,124,246; --gold:#e2c88a;
  --gradient-brand:var(--grad-teal); --shadow-sm:0 1px 3px rgba(0,0,0,.4); --shadow-md:var(--shadow-card); --shadow-brand:var(--shadow-teal);
}

/* ---- 2. Shared chrome: skip link, header, mobile menu, theme control ---- */
.skip-link{position:absolute;left:12px;top:-64px;z-index:200;background:var(--teal);color:var(--on-teal);
  padding:10px 16px;border-radius:9px;font-weight:600;font-size:14px;transition:top .15s ease}
.skip-link:focus{top:12px}
main:focus{outline:none}
/* Glows (.console::before, .hero__panel::before) extend past their boxes by
   design; clip them at the page edge so no page scrolls sideways on a phone.
   `clip`, not `hidden`: it creates no scroll container, so the sticky header
   keeps working. */
.shell{overflow-x:clip}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.brand-mark{flex:none}
.nav__links a[aria-current="page"]{color:var(--text)}
.nav__links a[aria-current="page"]::after{right:0}
.theme-btn{flex:none;display:inline-grid;place-items:center}
.theme-btn:hover{color:var(--text);border-color:var(--teal)}
.nav__toggle{display:none;align-items:center;gap:8px;height:36px;padding:0 12px;border-radius:9px;cursor:pointer;
  background:transparent;border:1px solid var(--border-2);color:var(--text);font-family:var(--font);font-size:13.5px;font-weight:600}
.nav__toggle svg{width:18px;height:18px}
.nav__toggle:hover{border-color:var(--teal)}
/* The bar sheds the secondary CTA before anything collides (8 destinations). */
@media (max-width:1240px){ .nav__cta .btn-ghost{display:none} }
@media (max-width:1040px){
  /* The homepage hid the links here with no way to reach them. A menu button
     now opens them as a panel under the bar (landing-signal.base.js). */
  .nav__toggle{display:inline-flex;margin-left:auto}
  .nav.open{background:var(--nav-bg);backdrop-filter:saturate(170%) blur(16px);-webkit-backdrop-filter:saturate(170%) blur(16px);border-bottom-color:var(--border)}
  .nav.open .nav__links{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;
    background:var(--bg);border-bottom:1px solid var(--border);padding:8px 0 14px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
  .nav.open .nav__links li{width:100%}
  .nav.open .nav__links a{display:block;padding:13px 32px;font-size:15px}
  .nav.open .nav__links a::after{display:none}
  .nav.open .nav__links a[aria-current="page"]{color:var(--teal)}
}
@media (max-width:600px){
  .nav__inner{gap:10px}
  .nav.open .nav__links a{padding:13px 20px}
  .nav__cta .btn-primary{padding:10px 13px;font-size:13.5px}
  .nav__toggle .nav__toggle-label{display:none}
  .nav__toggle{padding:0 9px}
}
@media (max-width:420px){
  /* Phones: the theme follows the system; the toggle returns on wider screens. */
  .nav__cta .theme-btn{display:none}
}

/* ---- 3. Shared footer ---- */
.footer__grid{grid-template-columns:1.25fr 3.75fr}
.footer__nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.footer__h{font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--dim);margin-bottom:16px;font-family:var(--mono);font-weight:600}
.footer__brand .brand{display:inline-flex}
.footer__legal{flex-basis:100%;line-height:1.6}
/* NVIDIA Inception member badge: NVIDIA's file, never recoloured, filtered or
   stretched (fixed 93x40 box = the SVG's own 500.43:216 ratio). */
.footer__inception{display:flex;align-items:center;gap:14px;margin-top:22px}
.footer__inception-badge{display:block;flex:none;width:93px;height:40px}
.footer__inception p{font-size:12.5px;color:var(--muted);line-height:1.5;max-width:200px}
.footer__trademark{flex-basis:100%;line-height:1.6;font-size:11.5px}
@media (max-width:1040px){
  .footer__grid{grid-template-columns:1fr}
  .footer__nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){ .footer__grid{grid-template-columns:1fr} }

/* ---- 4. Homepage sections folded in from /company, /technology, /contact ---- */
.blockhead{display:flex;align-items:baseline;gap:14px;margin:64px 0 22px;flex-wrap:wrap}
.blockhead:first-child{margin-top:0}
.blockhead h3{font-family:var(--serif);font-size:clamp(1.45rem,2.2vw,1.8rem);font-weight:500;letter-spacing:-.02em;line-height:1.15}
.blockhead .tile__k{font-size:10.5px}
.tile h4{font-family:var(--serif);font-size:1.2rem;font-weight:600;letter-spacing:-.018em;margin-bottom:6px}
.grid-3 > .tile{min-height:0}
.panel-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;align-items:start}
.co-panel{position:relative;background:linear-gradient(180deg,var(--panel-2),var(--panel) 60%,var(--bg-2));border:1px solid var(--border-2);
  border-radius:18px;padding:26px 28px;box-shadow:var(--shadow-card)}
.co-panel h4{font-family:var(--serif);font-size:1.25rem;font-weight:600;letter-spacing:-.015em;margin-bottom:8px}
.co-panel p{font-size:.95rem;color:var(--muted);line-height:1.62}
.co-panel p + p,.co-panel p + .btn,.co-panel .feat__list + .btn,.co-panel .steps2 + .btn{margin-top:16px}
.co-panel .feat__list{margin-top:14px}
.steps2{list-style:none;display:grid;gap:10px;margin-top:14px;counter-reset:st}
.steps2 li{counter-increment:st;display:grid;grid-template-columns:30px 1fr;gap:4px 12px;align-items:start;padding:12px 14px;border-radius:11px;
  background:var(--cell-2);border:1px solid var(--border)}
.steps2 li::before{content:counter(st,decimal-leading-zero);grid-row:span 2;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--teal);padding-top:3px}
.steps2 b{font-size:14.5px;font-weight:600;color:var(--text)}
.steps2 span{font-size:13.5px;color:var(--muted);line-height:1.5}
.statement{margin-top:22px;padding:18px 22px;border-left:2px solid var(--teal);border-radius:0 12px 12px 0;
  background:linear-gradient(90deg,var(--teal-soft),transparent 92%);color:var(--text);font-size:1rem;line-height:1.62}
.cta-inline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px;margin-top:40px;padding:24px 28px;
  border:1px solid var(--border-2);border-radius:16px;background:var(--panel)}
.cta-inline p{color:var(--muted);font-size:.98rem;max-width:620px}
.cta-inline b{color:var(--text);font-weight:600;display:block;font-family:var(--serif);font-size:1.25rem;letter-spacing:-.015em;margin-bottom:4px}
.cta-inline__row{display:flex;flex-wrap:wrap;gap:10px}
.scard h4{font-family:var(--serif);font-size:1.36rem;font-weight:600;letter-spacing:-.018em;margin:6px 0 9px}
.co-panel h3{font-family:var(--serif);font-size:1.3rem;font-weight:600;letter-spacing:-.015em;margin:8px 0 10px;line-height:1.25}
.co-panel > .tile__k{display:block}
.co-panel .btn{margin-top:16px}
.co-panel .cta-inline__row .btn{margin-top:0}
.co-panel .cta-inline__row{margin-top:16px}
.co-panel .feat__list a{color:var(--text);text-decoration:underline;text-decoration-color:rgba(var(--teal-rgb),.55);text-underline-offset:3px}
.co-panel .feat__list a:hover{color:var(--teal)}
.cta h3{font-family:var(--serif);font-size:clamp(2.1rem,3.6vw,2.9rem);font-weight:500;letter-spacing:-.024em;line-height:1.08;margin:14px 0 0}
.cta--closing{margin-top:64px}
@media (max-width:1040px){ .panel-grid{grid-template-columns:1fr} }

/* ---- 5. Sub-page vocabulary (everything inside <main class="page-body">) ---- */

/* 5a. Prose. The global reset above zeroes every margin, which the homepage
       sets back explicitly per component. The other pages were written
       against browser default spacing, so it is restored for them only, at
       zero added specificity (component rules below still win). */
.page-body :where(p,h2,h3,h4,h5,h6,ol,dl,blockquote,figure,pre){margin-block:revert}
.page-body :where(h2,h3){font-family:var(--serif);font-weight:500;letter-spacing:-.018em;line-height:1.2}
.page-body :where(h4,h5,h6){font-weight:600;line-height:1.3}
.page-body :where(ul:not([class]),ol:not([class])){padding-left:1.3em;margin-block:.8em}
.page-body :where(ul:not([class]),ol:not([class])) > li + li{margin-top:.4em}
.page-body :where(p,li,td,dd,figcaption,blockquote) a:not(.btn):not(.link-arrow){color:var(--text);text-decoration:underline;
  text-decoration-color:rgba(var(--teal-rgb),.55);text-underline-offset:3px;text-decoration-thickness:1px}
.page-body :where(p,li,td,dd,figcaption,blockquote) a:not(.btn):not(.link-arrow):hover{color:var(--teal);text-decoration-color:var(--teal)}
.page-body strong{color:var(--text);font-weight:600}
.page-body code{font-family:var(--mono);font-size:.9em;padding:1px 6px;border-radius:6px;background:var(--cell);border:1px solid var(--border)}

/* 5b. Sections and headings: the homepage's .section rhythm, kicker and titles. */
.section__inner{padding-block:0}
.section__head{max-width:800px;margin:0 0 48px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--teal);margin-bottom:18px}
.eyebrow::before{content:"";flex:none;width:7px;height:7px;border-radius:2px;background:var(--teal);box-shadow:0 0 0 4px rgba(var(--teal-rgb),.16)}
.section-title{font-family:var(--serif);font-size:clamp(2.05rem,3.6vw,2.95rem);line-height:1.1;font-weight:500;letter-spacing:-.022em;margin:0 0 18px}
.section-subtitle{font-size:1.07rem;color:var(--muted);line-height:1.64;margin:0}
.section-subtitle + .section-subtitle{margin-top:14px}
.section-subtitle--center{margin:0 auto}

/* 5c. Page hero: the homepage hero, with the page name as its pill and the
       side panel drawn like the homepage console. */
.hero__grid,.page-hero__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:54px;align-items:center}
.hero__grid > *,.page-hero__grid > *{min-width:0}
.page-hero{padding-block:0}
.hero__title{font-family:var(--serif);font-size:clamp(2.4rem,4.4vw,3.7rem);line-height:1.05;font-weight:500;letter-spacing:-.025em}
.page-body .hero{padding:48px 0 96px}
.page-body .hero__title{margin:22px 0 0}
.page-body .hero__desc{margin-top:22px}
.page-body .hero__cta{margin-top:30px}
.hero .eyebrow{margin:0;padding:7px 14px 7px 11px;border-radius:999px;background:var(--teal-soft);border:1px solid rgba(var(--teal-rgb),.3);
  font-family:var(--font);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text)}
.hero .eyebrow::before{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 4px rgba(var(--teal-rgb),.18)}
/* A kicker inside the hero's side panel is a section kicker, not the page pill. */
.hero .hero__panel .eyebrow{margin:0 0 14px;padding:0;border:0;border-radius:0;background:none;font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.hero .hero__panel .eyebrow::before{width:7px;height:7px;border-radius:2px;box-shadow:0 0 0 4px rgba(var(--teal-rgb),.16)}
.hero__panel,.highlight-panel,.panel{position:relative;background:linear-gradient(180deg,var(--panel-2),var(--panel) 60%,var(--bg-2));
  border:1px solid var(--border-2);border-radius:18px;padding:26px 28px;box-shadow:var(--shadow-card)}
.hero__panel{box-shadow:var(--shadow-lg)}
.hero__panel::before{content:"";position:absolute;inset:-12% -7% -16% -7%;z-index:-1;pointer-events:none;
  background:radial-gradient(56% 54% at 70% 26%,var(--glow-1),transparent 70%);filter:blur(8px)}
:is(.hero__panel,.highlight-panel,.panel) :is(h2,h3,h4){font-family:var(--serif);font-size:1.3rem;font-weight:600;letter-spacing:-.015em;line-height:1.25;margin:0 0 14px}
:is(.hero__panel,.highlight-panel,.panel) p{color:var(--muted);font-size:.96rem;line-height:1.62}
:is(.hero__panel,.highlight-panel,.panel) ul,.whitepaper-list{list-style:none;display:grid;gap:11px;margin:0;padding:0}
:is(.hero__panel,.highlight-panel,.panel) ul li,.whitepaper-list li{position:relative;padding-left:20px;color:var(--muted);font-size:.95rem;line-height:1.55}
:is(.hero__panel,.highlight-panel,.panel) ul li::before,.whitepaper-list li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;
  border-radius:2px;background:var(--teal);box-shadow:0 0 0 3px rgba(var(--teal-rgb),.16)}
.highlight-panel .btn,.panel .btn{margin-top:18px}

/* 5d. Cards: the #platform tiles. */
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:48px;align-items:start}
.capability-grid,.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;margin-top:28px}
.card,.capability-card,.stat-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:15px;padding:24px;
  transition:transform .22s,border-color .22s,box-shadow .25s,background .25s}
.card::after,.capability-card::after,.stat-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(var(--teal-rgb),.11),transparent 60%)}
.card:hover,.capability-card:hover,.stat-card:hover{transform:translateY(-4px);border-color:var(--border-2);box-shadow:var(--shadow-card);background:var(--panel-2)}
.card:hover::after,.capability-card:hover::after,.stat-card:hover::after{opacity:1}
.card > *,.capability-card > *{position:relative}
.card h3,.capability-card h3{font-family:var(--serif);font-size:1.22rem;font-weight:600;letter-spacing:-.018em;line-height:1.25;margin:0 0 8px}
.card h4,.capability-card h4{font-family:var(--font);font-size:15.5px;font-weight:600;line-height:1.35;margin:0 0 8px;color:var(--text)}
.card p,.capability-card p,.stat-card p{font-size:.93rem;color:var(--muted);line-height:1.6;margin:0}
.card p + p{margin-top:10px}
.card .bullets{margin:14px 0 0}
.card__num{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--teal);margin-bottom:14px}
.card--sm{padding:20px}
.card--sm :is(h3,h4){font-size:1.08rem}
.card--sm p{font-size:.9rem}
.grid-3 + .grid-3,.grid-2 + .grid-2,.grid-3 + .grid-2,.grid-2 + .grid-3{margin-top:18px}
.capability-card{display:flex;flex-direction:column;gap:12px}
.capability-card p{flex:1}
.capability-card__tag{align-self:flex-start;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--teal);background:var(--teal-soft);border:1px solid rgba(var(--teal-rgb),.28);padding:4px 9px;border-radius:999px}
.capability-card__icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--teal-soft);color:var(--teal);
  border:1px solid rgba(var(--teal-rgb),.22)}
.capability-card__icon svg{width:19px;height:19px}
.capability-card__icon--emerald{background:var(--blue-soft);color:var(--blue);border-color:rgba(var(--blue-rgb),.25)}
.capability-card__icon--cyan{background:var(--teal-soft);color:var(--teal)}
.capability-card__icon--amber{background:var(--amber-soft);color:var(--amber);border-color:rgba(var(--amber-rgb),.28)}
.metallic-border{border:1px solid var(--border)}
.stat-card{text-align:center}
.stat-card .stat-card__num,.stat-card strong{font-family:var(--serif);font-weight:500;font-size:clamp(1.9rem,3vw,2.6rem);letter-spacing:-.02em;display:block}

/* 5e. Lists, pills, steps, tables, notes. */
.bullets{list-style:none;display:grid;gap:12px;margin:0 0 24px;padding:0}
.bullets li{position:relative;padding-left:20px;color:var(--muted);font-size:.97rem;line-height:1.55}
.bullets li::before{content:"";position:absolute;left:0;top:.58em;width:7px;height:7px;border-radius:2px;background:var(--teal);box-shadow:0 0 0 3px rgba(var(--teal-rgb),.16)}
.bullets--sm li{font-size:.9rem}
.pill-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.timeline{display:grid;gap:10px;margin-top:24px;counter-reset:tl}
.timeline-item{counter-increment:tl;position:relative;padding:14px 16px 14px 52px;border-radius:11px;background:var(--panel);border:1px solid var(--border)}
.timeline-item::before{content:counter(tl,decimal-leading-zero);position:absolute;left:16px;top:16px;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--teal)}
.timeline-item :is(h3,h4,h5,h6){margin:0 0 4px;font-family:var(--font);font-size:15px;font-weight:600;letter-spacing:-.005em;color:var(--text)}
.timeline-item p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.55}
.toc{display:flex;flex-wrap:wrap;gap:10px}
.toc a{display:inline-flex;align-items:center;font-family:var(--mono);font-size:12px;color:var(--label);padding:8px 14px;border-radius:999px;
  background:var(--panel);border:1px solid var(--border);transition:border-color .2s,color .2s}
.toc a:hover{color:var(--text);border-color:var(--teal)}
.wp-table-wrap,.whitepaper-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:14px;margin-top:24px;background:var(--panel)}
.wp-table,.whitepaper-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
:is(.wp-table,.whitepaper-table) :is(th,td){text-align:left;padding:14px 18px;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.55}
:is(.wp-table,.whitepaper-table) tr:last-child > :is(th,td){border-bottom:0}
:is(.wp-table,.whitepaper-table) thead th{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--teal);background:rgba(255,255,255,.015)}
:is(.wp-table,.whitepaper-table) tbody th{font-weight:600;color:var(--text)}
:is(.wp-table,.whitepaper-table) td{color:var(--muted)}
.note{color:var(--dim);font-size:13px;line-height:1.55}
.muted{color:var(--muted)}
.small{font-size:13px}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--teal);transition:gap .15s ease}
.link-arrow:hover{gap:12px}
.careers__email{font-family:var(--mono);font-size:15px;color:var(--teal);overflow-wrap:anywhere}

/* 5f. Closing calls to action: the homepage's "Get started" panel. */
.page-body .cta{display:flex;flex-direction:column;align-items:center;gap:26px}
.page-body .container.cta{width:calc(100% - 64px);max-width:1144px}
.page-body .cta > div{max-width:720px}
.page-body .cta .section-subtitle{margin:12px auto 0;max-width:640px}
.page-body .cta .note{margin-top:14px}
.cta-section{position:relative}
.cta-section__glow{display:none}
.cta-section__body{position:relative;border-radius:24px;padding:60px 48px;overflow:hidden;text-align:center;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--border-2);box-shadow:var(--shadow-lg)}
.cta-section__body::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(56% 120% at 50% -25%,var(--glow-1),transparent 60%),radial-gradient(48% 120% at 82% 125%,var(--glow-2),transparent 60%)}
.cta-section__body > *{position:relative}
.cta-section h2{font-family:var(--serif);font-size:clamp(2rem,3.4vw,2.7rem);font-weight:500;letter-spacing:-.024em;line-height:1.1;margin:14px auto 0;max-width:760px}
.cta-section p{margin:14px auto 0;color:var(--muted);font-size:1.05rem;max-width:600px}
.cta-section__row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:center;margin-top:30px}
.cta-section__body > .hero__cta{justify-content:center}
.cta-section__alt{font-family:var(--mono);font-size:12.5px;color:var(--dim)}
.cta-section__alt a{color:var(--teal)}

/* 5g. Company registration and people (/careers, /press, /trust, #company). */
.reg-list{margin:26px 0 0;border-top:1px solid var(--border)}
.reg-list__row{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:12px 28px;padding:14px 0;border-bottom:1px solid var(--border)}
.reg-list__row dt{margin:0;color:var(--label);font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding-top:2px}
.reg-list__row dd{margin:0;font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.reg-list__row dd a{text-decoration:underline;text-decoration-color:rgba(var(--teal-rgb),.55);text-underline-offset:3px}
.reg-list__row dd a:hover{color:var(--teal)}
.reg-subtitle{margin:34px 0 12px;font-family:var(--serif);font-size:1.25rem;font-weight:600;letter-spacing:-.015em}
.reg-people{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:15px}
.reg-people li{color:var(--muted)}
.reg-people strong{color:var(--text);font-weight:600}
.reg-people--profiles{gap:22px}
.reg-person{display:flex;gap:16px;align-items:flex-start}
.reg-person__photo{flex:0 0 auto;width:72px;height:72px;border-radius:999px;object-fit:cover;border:1px solid var(--border-2)}
.reg-person__body{display:grid;gap:6px;min-width:0}
.reg-person__name,.reg-person__bio,.reg-person__links{margin:0}
.reg-person__bio{color:var(--muted);max-width:62ch}
.reg-person__links{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px}
.reg-person__links a{color:var(--teal);border-bottom:1px solid rgba(var(--teal-rgb),.35)}
.reg-person__links a:hover,.reg-person__links a:focus-visible{border-bottom-color:var(--teal)}

/* 5h. Responsive. */
@media (max-width:1040px){
  .hero__grid,.page-hero__grid{grid-template-columns:1fr;gap:40px}
  .page-body .hero{padding:36px 0 72px}
}
@media (max-width:760px){
  .grid-2{grid-template-columns:1fr}
  .reg-list__row{grid-template-columns:1fr;gap:4px}
  .reg-person{flex-direction:column;gap:12px}
}
@media (max-width:600px){
  .page-body .container.cta{width:calc(100% - 40px)}
  .cta-section__body{padding:44px 22px}
  .hero__panel,.highlight-panel,.panel,.co-panel{padding:22px 20px}
  .cta-inline{padding:22px 20px}
}
@media (prefers-reduced-motion:reduce){
  .card,.capability-card,.stat-card,.card:hover,.capability-card:hover,.stat-card:hover{transition:none;transform:none}
}

/* ==========================================================================
   BRAND LAYER — 2026-10-28 (planner 0428; the brand kit, D-427).

   The kit's rules, applied over the components above: one sans (Archivo,
   display at 800) and one mono (JetBrains Mono), square corners, rules
   instead of shadows, no gradient or glow, monochrome ink and white. The
   kit's red means "sealed", so it appears only in the logo files and in the
   keyboard focus ring, which the kit itself sets to seal red (its tokens.css
   --focus); nothing on this site is sealed yet, and the homepage ledger
   shows every seal EMPTY.
   The font files are the portals' reviewed copies (OFL 1.1, the licence in
   /assets/fonts-brand/OFL.txt; sha256 pinned in test/sealnex-brand.test.mjs).
   ========================================================================== */
@font-face{font-family:"Archivo";src:url(/assets/fonts-brand/Archivo-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/assets/fonts-brand/JetBrainsMono-Variable.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}

/* ---- B1. Kit primitives over the shared components ---- */
body{letter-spacing:-.005em}
::selection{background:var(--text);color:var(--bg)}
:focus-visible{outline-color:var(--seal);border-radius:0}
.btn,.btn-lg,.theme-btn,.nav__toggle,.skip-link{border-radius:0}
.btn{font-weight:700;letter-spacing:0}
.btn-primary,.btn-primary:hover{box-shadow:none}
.btn-primary:hover{background:var(--muted);border-color:var(--muted)}
.btn-secondary{background:transparent;border-color:var(--border-2)}
.btn-secondary:hover{background:transparent;border-color:var(--text);transform:none}
.nav.scrolled{box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.nav__links a{font-weight:600}
.footer{background:var(--bg-2)}
.footer__nav{grid-template-columns:repeat(2,minmax(0,1fr))}
.footer__legal a,.footer__bottom a{text-decoration:underline;text-underline-offset:3px}

/* ---- B2. The logo: the kit's wordmark file for the ground (an <img> cannot
          recolour an SVG). White on the dark theme, ink on the light theme. ---- */
.brand{gap:0}
.brand-logo{display:block;height:30px;width:auto}
.brand-logo--ink{display:none}
:root[data-theme="light"] .brand-logo--ink{display:block}
:root[data-theme="light"] .brand-logo--white{display:none}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]) .brand-logo--ink{display:block}
  :root:not([data-theme="dark"]) .brand-logo--white{display:none}
}

/* ---- B3. Dev builds: the preview note and the legal placeholders, never
          mistakable for finished content (scripts/publish-guard.cjs). ---- */
.preview-banner{margin:0;padding:8px 20px;text-align:center;font-family:var(--mono);font-size:12px;letter-spacing:.04em;
  color:var(--amber);background:var(--amber-soft);border-bottom:1px solid var(--amber)}
mark.placeholder{background:var(--amber-soft);color:var(--amber);font-family:var(--mono);font-size:.92em;font-weight:600;
  padding:0 4px;outline:1px dashed var(--amber);outline-offset:1px}

/* ---- B4. Homepage ---- */
.intro{padding:104px 0 112px;border-bottom:1px solid var(--border)}
.intro__eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;font-family:var(--mono);font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.intro__state{color:var(--amber);border:1px solid var(--amber);padding:3px 9px}
.intro__title{font-family:var(--serif);font-weight:800;font-size:clamp(2.6rem,7vw,5.4rem);line-height:.98;letter-spacing:-.035em;
  margin:30px 0 0;max-width:15ch}
.intro__copy{display:grid;gap:16px;margin-top:34px;max-width:64ch;font-size:1.125rem;line-height:1.62;color:var(--muted)}
.intro__copy p:last-child{color:var(--text);font-weight:600}
.intro__links{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}

.sec-intro{max-width:760px;margin-bottom:40px}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sec-h{font-family:var(--serif);font-weight:800;font-size:clamp(1.9rem,3.6vw,2.8rem);line-height:1.05;letter-spacing:-.025em;margin-top:14px}
.sec-p{margin-top:16px;font-size:1.0625rem;line-height:1.62;color:var(--muted)}
.section--band{background:var(--bg-2);border-block:1px solid var(--border)}

/* The ledger: the page's one signature. Each part carries a seal slot; an
   empty slot means "not yet verified", stated in words in the Status cell
   too (a word and a shape, never colour alone). */
.ledger{width:100%;border-collapse:collapse;border-top:3px solid var(--text)}
.ledger th,.ledger td{text-align:left;vertical-align:top;padding:22px 20px 22px 0;border-bottom:1px solid var(--border)}
.ledger thead th{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);padding-top:14px;padding-bottom:14px}
.ledger tbody th{width:24%;font-size:1.125rem;font-weight:700;letter-spacing:-.01em}
.ledger tbody td:nth-child(2){width:44%;color:var(--muted);line-height:1.6}
.ledger__seal-h,.ledger__seal{width:64px;text-align:right;padding-right:0}
.state{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--amber)}
.state-note{display:block;margin-top:4px;font-size:13.5px;color:var(--muted)}
.seal-slot{display:inline-block;width:40px;height:40px;border:1.5px dashed var(--border-2)}
.seal-slot--inline{width:16px;height:16px;margin-right:10px;vertical-align:-3px}
.ledger__note{margin-top:20px;font-size:14px;color:var(--muted)}

/* Fact lists (#status, #company). */
.facts{border-top:3px solid var(--text)}
.facts__row{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:6px 32px;padding:20px 0;border-bottom:1px solid var(--border)}
.facts dt{padding-top:4px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.facts dd{max-width:68ch;font-size:1.0625rem;line-height:1.6}
.facts dd a{text-decoration:underline;text-underline-offset:3px}
.facts--compact .facts__row{padding:14px 0;grid-template-columns:minmax(130px,170px) 1fr}
.about__body{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
.about__identity{padding-left:20px;border-left:3px solid var(--text);font-size:1.125rem;line-height:1.65}

/* ---- B5. Legal pages and the 404 page (inside <main class="page-body">) ---- */
.page-head{padding:88px 0 40px;border-bottom:1px solid var(--border)}
.prose{max-width:760px}
.page-head__title{margin:16px 0 0;font-family:var(--serif);font-weight:800;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.02;letter-spacing:-.03em}
.page-head__lede{margin-top:18px;max-width:62ch;font-size:1.125rem;color:var(--muted)}
.page-head__links{margin-top:28px}
.section--tight{padding:48px 0 104px}
.page-body .prose h2{margin:40px 0 10px;font-family:var(--serif);font-weight:700;font-size:1.35rem;letter-spacing:-.015em}
.page-body .prose h2:first-child{margin-top:0}
.page-body .prose p{color:var(--muted);line-height:1.7}

/* ---- B6. Responsive ---- */
@media (max-width:900px){
  .about__body{grid-template-columns:1fr;gap:32px}
}
@media (max-width:760px){
  .intro{padding:64px 0 72px}
  .ledger thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .ledger,.ledger tbody{display:block}
  .ledger tr{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:18px 0;border-bottom:1px solid var(--border)}
  .ledger th,.ledger td{display:block;width:auto;padding:0;border:0}
  .ledger tbody th,.ledger tbody td:nth-child(2){width:auto;grid-column:1}
  .ledger tbody td:nth-child(3){grid-column:1}
  .ledger__seal{grid-column:2;grid-row:1 / span 3}
  .facts__row,.facts--compact .facts__row{grid-template-columns:1fr}
}
