/*
Theme Name: Solarion AI
Theme URI: https://solarionai.com/
Author: Solarion AI
Description: Solarion AI Systems institutional theme for Solarion AI and Compute Passport ™, providing governed machine identity, authorization, provenance and cryptographic trust across AI agents, models, workloads and compute.
Version: 1.4.37
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: compute-passport
Tags: black, white, custom-menu, full-width-template, translation-ready
*/

/* ============================================================
   01 · TOKENS
   Palette is semantic. Accent colours carry meaning only:
   signal = structure/brand, verify = permitted, hold = restricted,
   deny = denied/revoked, key = cryptographic material.
   ============================================================ */

:root {
  --ink: #0a0c0f;
  --plate: #12161b;
  --plate-2: #171d24;
  --plate-3: #1e252d;
  --line: rgba(255, 255, 255, .10);
  --line-strong: rgba(255, 255, 255, .18);

  --text: #e9edf2;
  --muted: #8d99a8;
  --dim: #66707d;

  --signal: #e2603e;
  --verify: #4fd1a8;
  --hold: #e8b84b;
  --deny: #f0574f;
  --key: #7ca9f5;

  --sans: "Söhne", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "JetBrains Mono", "IBM Plex Mono", Menlo, Consolas, monospace;

  --gutter: clamp(20px, 4vw, 56px);
  --wide: 1280px;
  --measure: 68ch;

  --r: 3px;
  --step: clamp(56px, 7vw, 104px);
}

/* ============================================================
   02 · RESET + BASE
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
  margin: 0;
  background: var(--ink);
  color: var(--text);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg, canvas { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

h1, h2, h3, h4 {
  font-family: var(--sans);
  font-weight: 500;
  letter-spacing: -.028em;
  line-height: 1.1;
  margin: 0 0 .5em;
  text-wrap: balance;
}
h1 { font-size: clamp(38px, 5.2vw, 68px); }
h2 { font-size: clamp(28px, 3.4vw, 44px); }
h3 { font-size: clamp(20px, 2vw, 26px); }
h4 { font-size: 17px; letter-spacing: -.01em; }

:focus-visible {
  outline: 2px solid var(--signal);
  outline-offset: 3px;
}

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--signal); color: #fff; padding: 12px 18px;
}
.skip-link:focus { left: 12px; top: 12px; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px;
  overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* ============================================================
   03 · LAYOUT
   ============================================================ */

.wrap { width: min(var(--wide), 100%); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--step); border-top: 1px solid var(--line); }
.section--flush { border-top: 0; }
.section--plate { background: var(--plate); }

.grid { display: grid; gap: 28px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.split--even { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 980px) {
  .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .split, .split--even { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
}

/* ============================================================
   04 · TYPE UTILITIES
   The monospace field-tag is the interface's structural voice:
   every label in this theme is a controlled-document field name.
   ============================================================ */

.tag {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--dim);
  display: block;
  margin-bottom: 14px;
}
.tag--signal { color: var(--signal); }
.tag--rule { display: flex; align-items: center; gap: 14px; }
.tag--rule::after { content: ""; flex: 1; height: 1px; background: var(--line); }

.lede { font-size: clamp(18px, 1.5vw, 21px); color: var(--muted); max-width: var(--measure); }
.body { color: var(--muted); max-width: var(--measure); }
.small { font-size: 14px; color: var(--dim); }
.mono { font-family: var(--mono); font-size: 13px; letter-spacing: -.01em; }

.rule { height: 2px; width: 64px; background: var(--signal); margin: 0 0 28px; }

/* Segment-tinted identifier — the CPID reads as a structured object,
   not a string. Object type is the only tinted segment. */
.cpid {
  font-family: var(--mono);
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--dim);
  word-break: break-all;
  display: inline-block;
}
.cpid .s-scheme { color: var(--dim); }
.cpid .s-issuer, .cpid .s-tenant { color: var(--muted); }
.cpid .s-type { color: var(--signal); }
.cpid .s-uuid { color: var(--text); }
.cpid .s-sep { color: rgba(255, 255, 255, .22); }

.hash { font-family: var(--mono); font-size: 12px; color: var(--key); word-break: break-all; }

/* ============================================================
   05 · COMPONENTS
   ============================================================ */

.card {
  background: var(--plate);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 26px;
}
.card--flat { background: transparent; }
.card h3, .card h4 { margin-bottom: 10px; }
.card p { color: var(--muted); font-size: 15.5px; }

.plate {
  background: var(--plate);
  border: 1px solid var(--line);
  border-radius: var(--r);
}

.btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase;
  padding: 14px 22px; border-radius: var(--r);
  border: 1px solid var(--line-strong); background: transparent; color: var(--text);
  cursor: pointer; transition: border-color .18s ease, background .18s ease, color .18s ease;
}
.btn:hover { border-color: var(--signal); color: #fff; }
.btn--primary { background: var(--signal); border-color: var(--signal); color: #fff; }
.btn--primary:hover { background: #cf5334; border-color: #cf5334; }
.btn--ghost { border-color: var(--line); color: var(--muted); }
.btn[disabled] { opacity: .45; cursor: not-allowed; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.pill {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  padding: 5px 10px; border-radius: 100px; border: 1px solid var(--line-strong); color: var(--muted);
  white-space: nowrap;
}
.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pill--active, .pill--permit { color: var(--verify); border-color: rgba(79, 209, 168, .35); background: rgba(79, 209, 168, .08); }
.pill--suspended, .pill--restrict { color: var(--hold); border-color: rgba(232, 184, 75, .35); background: rgba(232, 184, 75, .08); }
.pill--revoked, .pill--compromised, .pill--deny, .pill--expired { color: var(--deny); border-color: rgba(240, 87, 79, .35); background: rgba(240, 87, 79, .08); }
.pill--retired, .pill--draft { color: var(--dim); }

.kv { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px 20px; }
.kv dt { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--dim); padding-top: 3px; }
.kv dd { margin: 0; font-size: 15px; color: var(--text); }
@media (max-width: 560px) { .kv { grid-template-columns: 1fr; gap: 4px 0; } .kv dd { margin-bottom: 12px; } }

table.data { width: 100%; border-collapse: collapse; font-size: 14.5px; }
table.data th {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--dim); text-align: left; font-weight: 400;
  padding: 12px 14px; border-bottom: 1px solid var(--line-strong);
}
table.data td { padding: 14px; border-bottom: 1px solid var(--line); color: var(--muted); vertical-align: top; }
table.data tr:last-child td { border-bottom: 0; }
table.data td strong { color: var(--text); font-weight: 500; }
.table-scroll { overflow-x: auto; }
.table-scroll table.data { min-width: 640px; }

.notice {
  border: 1px solid var(--line);
  border-left: 2px solid var(--signal);
  background: var(--plate);
  padding: 18px 22px; border-radius: var(--r);
  font-size: 14px; color: var(--muted);
}
.notice strong { color: var(--text); font-weight: 500; }
.notice--verify { border-left-color: var(--verify); }
.notice--hold { border-left-color: var(--hold); }
.notice--deny { border-left-color: var(--deny); }

/* ============================================================
   06 · HEADER / FOOTER
   ============================================================ */

.site-header {
  position: sticky; top: 0; z-index: 60;
  background: rgba(10, 12, 15, .86);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.site-header .wrap { display: flex; align-items: center; gap: 28px; height: 68px; }

.brand { display: flex; align-items: baseline; gap: 9px; font-size: 16px; letter-spacing: -.02em; white-space: nowrap; }
.brand b { font-weight: 600; }
.brand span { font-family: var(--mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--dim); }

.nav { margin-left: auto; }
.nav ul { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.nav a {
  font-family: var(--mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--muted); padding-block: 6px; border-bottom: 1px solid transparent;
}
.nav a:hover, .nav .current-menu-item > a { color: var(--text); border-bottom-color: var(--signal); }
.nav-cta { margin-left: 6px; }

.nav-toggle { display: none; margin-left: auto; background: none; border: 1px solid var(--line-strong); color: var(--text); border-radius: var(--r); padding: 9px 12px; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }

@media (max-width: 1080px) {
  .nav-toggle { display: block; }
  .nav { position: fixed; inset: 68px 0 auto; background: var(--ink); border-bottom: 1px solid var(--line); margin: 0; display: none; }
  .nav.is-open { display: block; }
  .nav ul { flex-direction: column; gap: 0; padding: 8px var(--gutter) 24px; }
  .nav li { border-bottom: 1px solid var(--line); }
  .nav a { display: block; padding: 16px 0; }
  .nav-cta { margin: 18px var(--gutter) 0; }
}

.site-footer { border-top: 1px solid var(--line); padding-block: 64px 40px; background: var(--plate); }
.footer-grid { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: 40px; }
@media (max-width: 860px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .footer-grid { grid-template-columns: 1fr; } }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: 10px; }
.site-footer li a { font-size: 14px; color: var(--muted); }
.site-footer li a:hover { color: var(--text); }
.legal { margin-top: 52px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--dim); }
.legal p { max-width: 92ch; }

/* ============================================================
   07 · HERO — the thesis is a live identity being minted
   ============================================================ */

.hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(900px 420px at 78% -10%, rgba(226, 96, 62, .16), transparent 62%),
    radial-gradient(700px 500px at 8% 110%, rgba(124, 169, 245, .10), transparent 60%);
}
.hero .wrap { position: relative; z-index: 1; padding-block: clamp(64px, 9vw, 128px); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
@media (max-width: 1080px) { .hero-grid { grid-template-columns: 1fr; } }
.hero h1 { max-width: 15ch; }
.hero .lede { margin-top: 22px; }

.hero-stats { display: flex; flex-wrap: wrap; gap: 34px; margin-top: 46px; padding-top: 26px; border-top: 1px solid var(--line); }
.hero-stats div strong { display: block; font-size: 28px; font-weight: 500; letter-spacing: -.03em; }
.hero-stats div span { font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--dim); }

/* Signature element: the verification receipt */
.receipt {
  background: linear-gradient(180deg, var(--plate-2), var(--plate));
  border: 1px solid var(--line-strong); border-radius: var(--r);
  box-shadow: 0 30px 80px -40px rgba(0, 0, 0, .9);
  overflow: hidden;
}
.receipt-head {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 14px 18px; border-bottom: 1px solid var(--line); background: rgba(0, 0, 0, .25);
}
.receipt-head b { font-family: var(--mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); font-weight: 400; }
.receipt-body { padding: 20px 18px; }
.receipt-row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; padding: 9px 0; border-bottom: 1px dashed rgba(255, 255, 255, .07); }
.receipt-row:last-child { border-bottom: 0; }
.receipt-row span { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--dim); padding-top: 3px; }
.receipt-row div { font-family: var(--mono); font-size: 12.5px; color: var(--text); word-break: break-all; }
.receipt-foot { padding: 14px 18px; border-top: 1px solid var(--line); background: rgba(0, 0, 0, .25); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.blink { animation: blink 1.6s steps(2, start) infinite; }
@keyframes blink { 50% { opacity: .25; } }

/* ============================================================
   08 · SIGNATURE INTERACTIONS
   ============================================================ */

/* Layered reference architecture */
.stack { display: grid; gap: 8px; }
.layer {
  display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 18px;
  width: 100%; text-align: left; cursor: pointer;
  background: var(--plate); border: 1px solid var(--line); border-left: 2px solid var(--line-strong);
  border-radius: var(--r); padding: 18px 20px; color: inherit; font: inherit;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.layer:hover { border-left-color: var(--signal); background: var(--plate-2); }
.layer[aria-expanded="true"] { border-left-color: var(--signal); background: var(--plate-2); }
.layer-n { font-family: var(--mono); font-size: 12px; color: var(--dim); }
.layer-t { font-family: var(--mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--text); }
.layer-s { font-size: 13.5px; color: var(--dim); }
.layer-detail { display: none; padding: 0 20px 20px 82px; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 var(--r) var(--r); background: var(--plate-2); margin-top: -8px; }
.layer-detail.is-open { display: block; }
.layer-detail p { color: var(--muted); font-size: 14.5px; max-width: 78ch; }
@media (max-width: 620px) { .layer { grid-template-columns: 32px minmax(0, 1fr); } .layer-s { display: none; } .layer-detail { padding-left: 20px; } }

/* Decision simulator */
.sim { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 0; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
@media (max-width: 900px) { .sim { grid-template-columns: 1fr; } }
.sim-controls { padding: 28px; background: var(--plate); border-right: 1px solid var(--line); }
@media (max-width: 900px) { .sim-controls { border-right: 0; border-bottom: 1px solid var(--line); } }
.sim-out { padding: 28px; background: var(--plate-2); }

.field { margin-bottom: 20px; }
.field > label, .field > .field-label { display: block; font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--dim); margin-bottom: 8px; }
.field select, .field input[type="text"], .field input[type="number"], .field input[type="email"], .field input[type="password"], .field textarea {
  width: 100%; background: var(--ink); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--r);
  padding: 11px 13px; font-family: var(--mono); font-size: 13px;
}
.field select:focus, .field input:focus, .field textarea:focus { border-color: var(--signal); outline: none; }
.switch { display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; color: var(--muted); cursor: pointer; }
.switch input { accent-color: var(--signal); width: 16px; height: 16px; }

.verdict { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.verdict b { font-size: 26px; font-weight: 500; letter-spacing: -.02em; }
.verdict.is-permit b { color: var(--verify); }
.verdict.is-restrict b { color: var(--hold); }
.verdict.is-deny b { color: var(--deny); }

.checks { list-style: none; margin: 0 0 18px; padding: 0; }
.checks li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; padding: 7px 0; font-size: 14px; color: var(--muted); border-bottom: 1px solid rgba(255, 255, 255, .05); }
.checks li:last-child { border-bottom: 0; }
.checks .ok { color: var(--verify); font-family: var(--mono); font-size: 13px; }
.checks .no { color: var(--deny); font-family: var(--mono); font-size: 13px; }
.checks .warn { color: var(--hold); font-family: var(--mono); font-size: 13px; }

/* Identity graph */
.graph { width: 100%; height: auto; }
.graph .node rect { fill: var(--plate-2); stroke: var(--line-strong); }
.graph .node:hover rect, .graph .node.is-on rect { stroke: var(--signal); fill: var(--plate-3); }
.graph .node text { fill: var(--text); font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.graph .node tspan.sub { fill: var(--dim); font-size: 9.5px; letter-spacing: .08em; }
.graph .edge { stroke: var(--line-strong); stroke-width: 1; fill: none; }
.graph .edge.is-on { stroke: var(--signal); }
.graph .edge-label { fill: var(--dim); font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }

/* Filterable matrix */
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.filters button {
  font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  background: transparent; border: 1px solid var(--line); color: var(--muted);
  padding: 8px 14px; border-radius: 100px; cursor: pointer;
}
.filters button[aria-pressed="true"] { border-color: var(--signal); color: var(--text); background: rgba(226, 96, 62, .1); }

/* Sequence — numbered only where the content is genuinely ordered */
.seq { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
@media (max-width: 900px) { .seq { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 520px) { .seq { grid-template-columns: repeat(2, 1fr); } }
.seq > div { background: var(--plate); padding: 22px 18px; }
.seq b { display: block; font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; color: var(--signal); margin-bottom: 12px; font-weight: 400; }
.seq h4 { font-size: 15px; margin-bottom: 6px; }
.seq p { font-size: 13px; color: var(--dim); }

/* ============================================================
   09 · PAGE CONTENT (single-sourced sections + editor content)
   ============================================================ */

.page-hero { border-bottom: 1px solid var(--line); background: var(--plate); }
.page-hero .wrap { padding-block: clamp(48px, 6vw, 88px); }
.page-hero h1 { max-width: 18ch; }
.page-hero .lede { margin-top: 20px; }
.page-hero .meta { display: flex; flex-wrap: wrap; gap: 30px; margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line); }
.page-hero .meta div span { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--dim); margin-bottom: 5px; }
.page-hero .meta div b { font-weight: 400; font-size: 14px; }

.entry { max-width: var(--measure); }
.entry h2 { margin-top: 1.6em; }
.entry h3 { margin-top: 1.4em; }
.entry ul, .entry ol { color: var(--muted); padding-left: 1.2em; }
.entry li { margin-bottom: .5em; }
.entry a { color: var(--text); border-bottom: 1px solid var(--signal); }
.entry blockquote { border-left: 2px solid var(--signal); margin: 1.6em 0; padding-left: 22px; color: var(--text); }
.entry code { font-family: var(--mono); font-size: .88em; background: var(--plate-2); padding: 2px 6px; border-radius: 2px; }
.entry pre { background: var(--plate); border: 1px solid var(--line); border-radius: var(--r); padding: 20px; overflow-x: auto; }
.entry pre code { background: none; padding: 0; }

.cta {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center;
  border: 1px solid var(--line); border-left: 2px solid var(--signal);
  background: var(--plate); border-radius: var(--r); padding: 40px;
}
@media (max-width: 760px) { .cta { grid-template-columns: 1fr; } }
.cta h2 { font-size: clamp(24px, 2.6vw, 34px); margin-bottom: 12px; }

/* ============================================================
   18 · SOLARION AI BRAND + BLUEPRINT SYSTEM · v1.1
   Blueprint overlays are drawn in CSS: no image dependency, no extra
   requests, and the existing Compute Passport technical aesthetic remains.
   ============================================================ */

body {
  position: relative;
  background-color: var(--ink);
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  opacity: .23;
  background-image:
    linear-gradient(rgba(124,169,245,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(124,169,245,.045) 1px, transparent 1px),
    linear-gradient(rgba(124,169,245,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(124,169,245,.018) 1px, transparent 1px);
  background-size: 80px 80px, 80px 80px, 16px 16px, 16px 16px;
  background-position: center top;
}

.blueprint-zone { position: relative; isolation: isolate; overflow: hidden; }
.blueprint-zone::before,
.blueprint-zone::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
}
.blueprint-zone::before {
  width: min(54vw, 760px);
  aspect-ratio: 1;
  right: -15%;
  top: 8%;
  border: 1px solid rgba(124,169,245,.08);
  border-radius: 50%;
  box-shadow:
    0 0 0 44px rgba(124,169,245,.018),
    0 0 0 88px rgba(124,169,245,.012),
    inset 0 0 0 1px rgba(124,169,245,.025);
}
.blueprint-zone::after {
  width: 210px;
  height: 210px;
  left: max(20px, calc((100vw - var(--wide))/2));
  bottom: -105px;
  border-top: 1px solid rgba(124,169,245,.07);
  border-right: 1px solid rgba(124,169,245,.07);
  transform: rotate(45deg);
}

.site-header .brand { min-width: 196px; }
.site-header .brand-company {
  font-size: 16px;
  letter-spacing: .055em;
  text-transform: uppercase;
  font-weight: 620;
}
.site-header .brand-company sup {
  font-family: var(--mono);
  font-size: 7px;
  top: -.75em;
  position: relative;
  margin-left: 0;
  letter-spacing: 0;
}
.site-header .brand > span {
  font-family: var(--mono);
  letter-spacing: .035em;
}

.hero::after {
  width: min(58vw, 900px);
  height: min(58vw, 900px);
  right: -22%;
  top: -28%;
  left: auto;
  bottom: auto;
  border: 1px solid rgba(124,169,245,.10);
  border-radius: 50%;
  transform: none;
  box-shadow: inset 0 0 0 72px rgba(124,169,245,.012);
}

.passport-blueprint {
  position: relative;
  min-height: 440px;
  padding: clamp(26px,4vw,46px);
  border: 1px solid rgba(124,169,245,.28);
  background:
    linear-gradient(rgba(124,169,245,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(124,169,245,.07) 1px, transparent 1px),
    rgba(10,12,15,.55);
  background-size: 24px 24px;
  box-shadow: inset 0 0 60px rgba(124,169,245,.025);
}
.passport-blueprint::before,
.passport-blueprint::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.passport-blueprint::before {
  width: 52%; aspect-ratio:1; border:1px solid rgba(124,169,245,.16);
  border-radius:50%; right:8%; top:13%;
  box-shadow: 0 0 0 24px rgba(124,169,245,.025), 0 0 0 48px rgba(124,169,245,.016);
}
.passport-blueprint::after {
  width: 1px; height: 78%; background: rgba(124,169,245,.16); right:34%; top:11%;
}
.bp-corner { position:absolute; width:38px; height:38px; }
.bp-corner--tl { left:10px; top:10px; border-left:2px solid var(--key); border-top:2px solid var(--key); }
.bp-corner--br { right:10px; bottom:10px; border-right:2px solid var(--key); border-bottom:2px solid var(--key); }
.bp-title {
  font-family: var(--mono); color: rgba(124,169,245,.34); font-size: clamp(62px,8vw,112px);
  letter-spacing:-.09em; line-height:1; margin:36px 0 28px; position:relative;
}
.bp-line { display:grid; grid-template-columns:100px 1fr; gap:14px; padding:11px 0; border-top:1px solid rgba(124,169,245,.12); position:relative; }
.bp-line span { font:10px/1.4 var(--mono); letter-spacing:.14em; color:var(--key); }
.bp-line b { font-size:13px; font-weight:500; color:var(--muted); }
.bp-coord { position:absolute; right:18px; bottom:15px; color:rgba(124,169,245,.42); font-size:9px; letter-spacing:.12em; }

.protocol-flow { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:26px; border:1px solid rgba(124,169,245,.18); background:rgba(10,12,15,.45); }
.protocol-flow > div { min-width:0; }
.protocol-flow span { display:block; font:10px/1 var(--mono); color:var(--key); margin-bottom:8px; }
.protocol-flow b { display:block; font-size:14px; font-weight:500; }
.protocol-flow small { display:block; margin-top:5px; font:10px/1.35 var(--mono); color:var(--dim); }
.protocol-flow i { color:rgba(124,169,245,.35); font-style:normal; }

.product-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
.trust-pillars .card { min-height:230px; }

.site-footer .brand > span { display:block; font-family:var(--mono); font-size:10px; letter-spacing:.08em; color:var(--dim); margin-top:5px; text-transform:uppercase; }

@media (max-width: 980px) {
  .passport-blueprint { min-height: 390px; }
  .protocol-flow { display:grid; grid-template-columns:1fr; }
  .protocol-flow i { transform:rotate(90deg); justify-self:start; }
}
@media (max-width: 620px) {
  body::before { opacity:.15; background-size:56px 56px,56px 56px,14px 14px,14px 14px; }
  .site-header .brand { min-width:0; }
  .site-header .brand-company { font-size:14px; }
  .site-header .brand > span { font-size:8.5px; max-width:170px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .passport-blueprint { min-height:350px; padding:24px 20px; }
  .bp-title { font-size:68px; }
  .bp-line { grid-template-columns:78px 1fr; }
  .product-metrics { grid-template-columns:1fr; }
  .blueprint-zone::before { width:110vw; right:-60%; opacity:.7; }
}

/* ============================================================
   19 · HEADER ALIGNMENT FIX · v1.1.2
   Keep the corporate brand, primary navigation and product CTA
   on a single aligned desktop rail. Collapse before wrapping.
   ============================================================ */
@media (min-width: 1421px) {
  .site-header .wrap {
    width: min(1600px, 100%);
    max-width: none;
    min-height: 76px;
    height: auto;
    padding-inline: clamp(24px, 2.5vw, 42px);
    gap: clamp(22px, 2vw, 34px);
  }

  .site-header .brand {
    min-width: 300px;
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: auto;
    align-content: center;
    align-items: start;
    gap: 2px;
    line-height: 1.1;
  }

  .site-header .brand-company {
    display: block;
    line-height: 1.15;
  }

  .site-header .brand > span {
    display: block;
    margin-top: 4px;
    font-size: 9px;
    line-height: 1.2;
    letter-spacing: .10em;
  }

  .site-header .nav {
    margin-left: auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(16px, 1.4vw, 24px);
    flex: 1 1 auto;
    white-space: nowrap;
  }

  .site-header .nav > ul,
  .site-header .nav .menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: clamp(13px, 1.15vw, 20px);
    min-width: 0;
    margin: 0;
    padding: 0;
  }

  .site-header .nav li {
    flex: 0 0 auto;
    margin: 0;
  }

  .site-header .nav a:not(.nav-cta) {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 5px 0;
    font-size: 10.5px;
    line-height: 1;
    letter-spacing: .095em;
  }

  .site-header .nav-cta {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    margin: 0;
    padding: 11px 19px;
    font-size: 10px;
    line-height: 1;
    white-space: nowrap;
  }
}

/* Collapse to the existing menu before desktop items can wrap. */
@media (min-width: 1081px) and (max-width: 1420px) {
  .nav-toggle { display: block; }
  .nav {
    position: fixed;
    inset: 68px 0 auto;
    background: var(--ink);
    border-bottom: 1px solid var(--line);
    margin: 0;
    display: none;
  }
  .nav.is-open { display: block; }
  .nav ul {
    flex-direction: column;
    gap: 0;
    padding: 8px var(--gutter) 24px;
  }
  .nav li { border-bottom: 1px solid var(--line); }
  .nav a { display: block; padding: 16px 0; }
  .nav-cta { margin: 18px var(--gutter) 0; }
}

/* 20 · ENTITY + SEO VISUAL EMPHASIS · v1.2.0 */
.entity-mark,.entity-heading,.site-header .brand-company,.site-footer .brand>b{color:var(--text);text-shadow:0 0 28px rgba(124,169,245,.10)}.entity-mark{display:inline;white-space:nowrap}.hero h1 .entity-mark{color:#fff}.page-hero .entity-heading{max-width:22ch}.site-header .brand-company{font-weight:700;letter-spacing:.075em}.site-header .brand-company::after{content:none!important;display:none!important}


/* 21 · FORMAL ISSUER IDENTITY · v1.2.1 */
.page-hero .meta > div:last-child b { color:var(--text); font-weight:700; letter-spacing:.01em; white-space:nowrap; }


/* 22 · TYPOGRAPHY / COLOR NORMALIZATION · v1.2.2 */
.site-header,
.site-header .brand,
.site-header .brand-company,
.site-footer,
.site-footer .brand > b,
.page-hero h1,
.page-hero h2,
.page-hero h3,
.entry h1,
.entry h2,
.entry h3,
.entry h4,
.card h2,
.card h3,
.card h4,
.protocol-flow b,
.receipt-row div,
.kv dd,
table.data td strong {
  color: var(--text);
}

.page-hero .lede,
.entry p,
.entry li,
.card p,
.body,
.lede,
table.data td,
.layer-detail p,
.notice,
.checks li {
  color: var(--muted);
}

.page-hero .meta div span,
.small,
.kv dt,
.layer-s,
.field > label,
.field > .field-label,
.site-footer .brand > span,
.legal {
  color: var(--dim);
}

.page-hero .meta div b,
.page-hero .meta > div:last-child b {
  color: var(--text);
}

.site-header .brand-company::after {
  content: none !important;
  display: none !important;
}


/* 21 · COMPANY PAGE · v1.2.3 */
.company-facts{padding:30px;border:1px solid var(--line);background:rgba(255,255,255,.018);position:relative;overflow:hidden}.company-facts:after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(124,169,245,.10);border-radius:50%;right:-70px;bottom:-80px}.fact-list{margin:24px 0 0}.fact-list>div{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:13px 0;border-top:1px solid var(--line)}.fact-list dt{font:9px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.fact-list dd{margin:0;color:var(--ink);font-weight:600}.company-product-cta{margin-top:38px}@media(max-width:720px){.fact-list>div{grid-template-columns:1fr;gap:6px}.company-facts{padding:22px}}


/* 21 · LEGAL PAGES + CORPORATE FOOTER · v1.2.5 */
.footer-company{
	display:block;
	margin-top:5px;
	color:var(--muted);
	font:9px/1.4 var(--mono);
	letter-spacing:.11em;
	text-transform:uppercase;
}
.legal-entry{
	max-width:900px;
}
.legal-entry h2{
	margin-top:42px;
	margin-bottom:12px;
}
.legal-entry h2:first-of-type{
	margin-top:18px;
}
.legal-entry p{
	max-width:82ch;
}


/* ============================================================
   22 · SOLARION INSTITUTIONAL SYSTEM · v1.3.0
   High-contrast, architectural, enterprise software aesthetic.
   ============================================================ */

:root{
  --paper:#f3f2ed;
  --paper-2:#eae9e3;
  --paper-text:#0d1014;
  --paper-muted:#505861;
  --paper-dim:#707982;
  --shadow:0 24px 70px rgba(0,0,0,.12);
}

/* More editorial scale and disciplined spacing */
body{
  font-size:16px;
  letter-spacing:-.006em;
}
h1{font-size:clamp(46px,6.4vw,92px);line-height:.96;letter-spacing:-.055em;font-weight:500;}
h2{font-size:clamp(34px,4.5vw,62px);line-height:1;letter-spacing:-.045em;}
h3{letter-spacing:-.025em;}
.wrap{--wide:1380px;}
.section{position:relative;padding-block:clamp(72px,8.5vw,132px);overflow:hidden;}
.section > .wrap{position:relative;z-index:2;}

/* Architectural section index */
main{counter-reset:solarion-section;}
main > .section{counter-increment:solarion-section;}
main > .section::before{
  content:"0" counter(solarion-section);
  position:absolute;
  top:26px;
  right:var(--gutter);
  z-index:1;
  font:9px/1 var(--mono);
  letter-spacing:.18em;
  color:var(--dim);
  opacity:.7;
}

/* Alternating institutional white field across public site */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero){
  --ink:#f3f2ed;
  --plate:#f8f7f3;
  --plate-2:#eeede7;
  --plate-3:#e4e3dd;
  --text:#0d1014;
  --muted:#505861;
  --dim:#747b82;
  --line:rgba(13,16,20,.12);
  --line-strong:rgba(13,16,20,.24);
  background:var(--paper);
  color:var(--paper-text);
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero)::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.58;
  background-image:
    linear-gradient(rgba(13,16,20,.042) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13,16,20,.042) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 85%);
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .card,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .plate,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .notice,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .layer{
  box-shadow:none;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .sim-controls{
  background:#f7f6f1;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .sim-out{
  background:#e8e7e1;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .field select,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .field input,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .field textarea{
  background:#fff;
  color:#0d1014;
}

/* Dark field receives more restrained blueprint construction lines */
body:not(.cp-portal) main > .section:nth-of-type(odd):not(.hero)::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, transparent 0 8%, rgba(255,255,255,.035) 8% calc(8% + 1px), transparent calc(8% + 1px) 92%, rgba(255,255,255,.035) 92% calc(92% + 1px), transparent calc(92% + 1px)),
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:auto,100% 88px;
  opacity:.7;
}

/* Header — cleaner, flatter, high-trust */
.site-header{
  background:rgba(8,10,12,.94);
  backdrop-filter:blur(20px) saturate(120%);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.site-header .wrap{height:76px;max-width:100%;width:100%;padding-inline:clamp(24px,3.2vw,52px);}
.brand b{font-size:18px;letter-spacing:-.035em;font-weight:600;}
.brand span{font-size:9px;letter-spacing:.19em;}
.nav ul{gap:clamp(18px,1.7vw,30px);}
.nav a{font-size:10px;letter-spacing:.16em;position:relative;border:0;}
.nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:#fff;
  transition:right .22s ease;
}
.nav a:hover::after,.nav .current-menu-item>a::after{right:0;}
.nav a:hover,.nav .current-menu-item>a{border:0;color:#fff;}
.nav-cta .btn,.site-header .btn{border-radius:0;padding:13px 18px;}

/* Hero — more cinematic and interactive without imagery */
.hero{
  min-height:min(820px,calc(100vh - 76px));
  display:flex;
  align-items:center;
  background:#090b0e;
}
.hero::before{
  content:"";
  position:absolute;
  inset:-15%;
  pointer-events:none;
  background:
    radial-gradient(620px circle at var(--mx,75%) var(--my,35%),rgba(255,255,255,.075),transparent 58%),
    linear-gradient(120deg,transparent 0 56%,rgba(255,255,255,.035) 56% 56.15%,transparent 56.15%),
    linear-gradient(30deg,transparent 0 70%,rgba(226,96,62,.10) 70% 70.12%,transparent 70.12%);
}
.hero::after{
  background:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 88%);
}
.hero .wrap{padding-block:clamp(80px,10vw,148px);}
.hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr);gap:clamp(48px,7vw,112px);}
.hero h1{max-width:12ch;}
.hero .lede{font-size:clamp(19px,1.55vw,24px);line-height:1.5;max-width:59ch;}
.hero-stats{gap:0;border-top-color:rgba(255,255,255,.16);}
.hero-stats>div{min-width:150px;padding:22px 34px 0 0;margin-right:34px;border-right:1px solid rgba(255,255,255,.10);}
.hero-stats>div:last-child{border-right:0;}

/* Receipt becomes a technical instrument panel */
.receipt{
  border-radius:0;
  background:rgba(16,20,24,.88);
  border-color:rgba(255,255,255,.18);
  box-shadow:0 48px 120px -70px #000;
  transform:perspective(1200px) rotateY(var(--ry,0deg)) rotateX(var(--rx,0deg));
  transition:transform .18s ease-out,border-color .2s ease;
}
.receipt:hover{border-color:rgba(255,255,255,.34);}
.receipt-head,.receipt-foot{background:rgba(255,255,255,.025);}
.receipt-row{grid-template-columns:112px minmax(0,1fr);padding:12px 0;}

/* Cards become severe, flat, interactive information planes */
.card,.plate,.notice,.layer,.sim,.btn,.field select,.field input,.field textarea{
  border-radius:0;
}
.card{
  position:relative;
  padding:30px;
  transition:transform .25s ease,border-color .25s ease,background .25s ease;
}
.card::before{
  content:"";
  position:absolute;
  width:18px;height:18px;
  top:-1px;left:-1px;
  border-top:1px solid var(--text);
  border-left:1px solid var(--text);
  opacity:.28;
  transition:width .25s ease,height .25s ease,opacity .25s ease;
}
.card:hover{
  transform:translateY(-4px);
  border-color:var(--line-strong);
}
.card:hover::before{width:34px;height:34px;opacity:.65;}
.card h3{font-size:clamp(22px,2vw,30px);}
.card p{font-size:15px;line-height:1.65;}

/* Buttons: enterprise / command style */
.btn{
  min-height:48px;
  justify-content:center;
  letter-spacing:.14em;
  font-size:10.5px;
  padding-inline:20px;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn--primary{
  background:#f2f2ee;
  color:#0a0c0f;
  border-color:#f2f2ee;
}
.btn--primary:hover{background:#fff;color:#000;border-color:#fff;}
body:not(.cp-portal) main > .section:nth-of-type(even) .btn--primary{
  background:#0d1014;color:#fff;border-color:#0d1014;
}
body:not(.cp-portal) main > .section:nth-of-type(even) .btn--primary:hover{background:#24282d;border-color:#24282d;}

/* More sophisticated tags and rules */
.tag{font-size:9.5px;letter-spacing:.2em;margin-bottom:18px;}
.rule{height:1px;width:80px;}
.tag--rule::after{opacity:.8;}

/* Layer stack — technical systems map */
.layer{
  min-height:76px;
  grid-template-columns:52px minmax(0,1fr) auto;
  border-left-width:1px;
}
.layer:hover,.layer[aria-expanded="true"]{
  transform:translateX(5px);
  border-color:var(--line-strong);
}
.layer-n{font-size:10px;}
.layer-t{font-size:11px;letter-spacing:.17em;}

/* Footer — institutional */
.site-footer{
  background:#07090b;
  padding-block:86px 42px;
}
.footer-grid{
  grid-template-columns:minmax(0,2.3fr) repeat(3,minmax(0,1fr));
  gap:clamp(34px,5vw,84px);
}
.site-footer .brand{
  display:grid;
  gap:5px;
}
.site-footer .brand b{font-size:22px;}
.site-footer .tag{color:#777f89;}
.site-footer li a{font-size:13px;}
.legal{margin-top:72px;padding-top:28px;}

/* Interactive scroll progress */
.cp-progress{
  position:fixed;
  top:0;left:0;
  height:2px;width:100%;
  transform-origin:left center;
  transform:scaleX(0);
  background:var(--signal);
  z-index:9999;
  pointer-events:none;
}

/* Reveal motion */
.cp-reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .65s cubic-bezier(.22,.61,.36,1),transform .65s cubic-bezier(.22,.61,.36,1);
}
.cp-reveal.is-visible{opacity:1;transform:none;}
.cp-reveal[data-delay="1"]{transition-delay:.06s;}
.cp-reveal[data-delay="2"]{transition-delay:.12s;}
.cp-reveal[data-delay="3"]{transition-delay:.18s;}

/* Active section hint in header */
.nav a.is-section-active{color:#fff;}
.nav a.is-section-active::after{right:0;}

/* Focus remains very clear */
:focus-visible{outline:1px solid currentColor;outline-offset:5px;}

/* Tablet/mobile refinement */
@media(max-width:1080px){
  .hero{min-height:auto;}
  .hero-grid{grid-template-columns:1fr;}
  .hero h1{max-width:13ch;}
  .receipt{max-width:720px;}
  .site-header .wrap{height:70px;}
  .nav{inset:70px 0 auto;background:rgba(8,10,12,.985);}
  .nav ul{padding-top:20px;}
  .nav a{font-size:11px;padding:18px 0;}
}
@media(max-width:700px){
  h1{font-size:clamp(42px,13vw,64px);}
  h2{font-size:clamp(30px,9vw,44px);}
  .section{padding-block:72px;}
  .hero .wrap{padding-block:72px;}
  .hero-stats>div{min-width:48%;margin:0;padding:18px 12px 0 0;border-right:0;}
  .card{padding:24px;}
  main>.section::before{right:20px;top:18px;}
  .footer-grid{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
  .cp-reveal{opacity:1;transform:none;}
  .receipt{transform:none!important;}
}

/* Admin bar offset */
.admin-bar .site-header{top:32px;}
@media(max-width:782px){.admin-bar .site-header{top:46px;}}


/* ============================================================
   23 · WHITE INSTITUTIONAL NAVIGATION · v1.3.3
   ============================================================ */

.site-header{
  background:rgba(250,249,245,.97);
  border-bottom:1px solid rgba(13,16,20,.14);
  color:#0d1014;
  box-shadow:0 1px 0 rgba(255,255,255,.7);
}

.site-header .brand,
.site-header .brand:visited{
  color:#0d1014;
}

.site-header .brand b,
.site-header .brand-company{
  color:#0d1014;
  text-shadow:none;
}

.site-header .brand span{
  color:#626a73;
}

.site-header .nav a,
.site-header .nav a:visited{
  color:#3e464f;
}

.site-header .nav a:hover,
.site-header .nav .current-menu-item > a,
.site-header .nav a.is-section-active{
  color:#0d1014;
}

.site-header .nav a::after{
  background:#0d1014;
}

.site-header .nav-toggle{
  color:#0d1014;
  border-color:rgba(13,16,20,.18);
  background:transparent;
}

.site-header .nav-toggle span,
.site-header .nav-toggle::before,
.site-header .nav-toggle::after{
  background:#0d1014;
}

/* Header CTA becomes dark on the white navigation rail. */
.site-header .btn,
.site-header .nav-cta .btn,
.site-header .btn--primary{
  background:#0d1014;
  color:#fff;
  border-color:#0d1014;
}

.site-header .btn:hover,
.site-header .nav-cta .btn:hover,
.site-header .btn--primary:hover{
  background:#252a30;
  color:#fff;
  border-color:#252a30;
}

/* Mobile menu follows the same white institutional treatment. */
@media(max-width:1080px){
  .site-header .nav{
    background:rgba(250,249,245,.995);
    border-bottom:1px solid rgba(13,16,20,.14);
    box-shadow:0 20px 50px rgba(0,0,0,.08);
  }

  .site-header .nav a,
  .site-header .nav a:visited{
    color:#252a30;
    border-bottom-color:rgba(13,16,20,.09);
  }

  .site-header .nav a:hover,
  .site-header .nav .current-menu-item > a{
    color:#000;
  }

  .site-header .nav a::after{
    background:#0d1014;
  }
}


/* ============================================================
   24 · HEADER MENU + CTA VISIBILITY FIX · v1.3.4
   ============================================================ */

/* Keep the primary header CTA unmistakably readable. */
.site-header .btn,
.site-header .btn:visited,
.site-header .btn:hover,
.site-header .btn:focus,
.site-header .btn:active,
.site-header .nav-cta .btn,
.site-header .nav-cta .btn:visited,
.site-header .nav-cta .btn:hover,
.site-header .nav-cta .btn:focus,
.site-header .nav-cta .btn:active,
.site-header .btn--primary,
.site-header .btn--primary:visited,
.site-header .btn--primary:hover,
.site-header .btn--primary:focus,
.site-header .btn--primary:active{
  color:#fff !important;
  -webkit-text-fill-color:#fff;
  text-shadow:none;
  opacity:1;
}

.site-header .btn,
.site-header .nav-cta .btn,
.site-header .btn--primary{
  background:#0b0d10;
  border-color:#0b0d10;
}

.site-header .btn:hover,
.site-header .nav-cta .btn:hover,
.site-header .btn--primary:hover{
  background:#24282d;
  border-color:#24282d;
}

/* Avoid inherited link-color rules overriding CTA contrast. */
.site-header a.btn,
.site-header a.btn:visited{
  color:#fff !important;
}


/* ============================================================
   25 · TRADEMARK SPACING + PRODUCT HERO FIX · v1.3.5
   ============================================================ */

/* Preserve the requested visual separation before trademark glyphs. */
h1, h2, h3, .brand, .tag, .meta, .receipt, .site-footer, .nav, p, li, a, span {
  font-kerning: normal;
}


/* ============================================================
   26 · SITE-WIDE CONTRAST NORMALIZATION · v1.3.6
   Fixes inherited dark-theme colors inside light institutional sections.
   ============================================================ */

/* Establish explicit foreground roles for light sections. */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero){
  --text:#0d1014;
  --muted:#535c65;
  --dim:#707982;
  --key:#365f9d;
  --signal:#b84e31;
  --verify:#176b50;
  --hold:#8a6517;
  --deny:#a93630;
  --ink:#0d1014;
  --plate:#f8f7f3;
  --plate-2:#eeede7;
  --plate-3:#e3e1da;
  --line:rgba(13,16,20,.13);
  --line-strong:rgba(13,16,20,.25);
  color:#0d1014;
}

/* Universal text hierarchy on light sections. */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) h1,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) h2,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) h3,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) h4,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) strong,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) b,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .layer-t,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .receipt-row div,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .kv dd,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) table.data td strong{
  color:#0d1014;
}

body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) p,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .lede,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .body,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .card p,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .layer-detail p,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) table.data td,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .notice,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .entry ul,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .entry ol{
  color:#535c65;
}

body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .tag,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .small,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .layer-n,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .layer-s,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .kv dt,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .field > label,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .field > .field-label{
  color:#707982;
}

/* Protocol flow was retaining its dark translucent background on white sections. */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .protocol-flow{
  background:#e7e5de;
  border-color:rgba(13,16,20,.17);
  box-shadow:none;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .protocol-flow span{
  color:#365f9d;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .protocol-flow b{
  color:#0d1014;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .protocol-flow small{
  color:#606a74;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .protocol-flow i{
  color:#6c7f98;
}

/* Blueprint labels and geometry remain visible but intentionally subtle. */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .bp-line span{
  color:#365f9d;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .bp-line b{
  color:#535c65;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .bp-coord{
  color:rgba(54,95,157,.62);
}

/* Cards / facts / technical plates should never inherit light text on light backgrounds. */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .card,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .plate,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .company-facts,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .notice,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .layer{
  background:rgba(255,255,255,.48);
  color:#0d1014;
  border-color:rgba(13,16,20,.14);
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .company-facts .fact-list dd{
  color:#0d1014;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .company-facts .fact-list dt{
  color:#65707a;
}

/* Data and sequence components */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .seq{
  background:rgba(13,16,20,.12);
  border-color:rgba(13,16,20,.12);
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .seq > div{
  background:#f4f3ee;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .seq b{
  color:#b84e31;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .seq p{
  color:#66707a;
}

/* Form and simulator surfaces */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .sim,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .sim-controls,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .sim-out{
  border-color:rgba(13,16,20,.14);
  color:#0d1014;
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .field select,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .field input,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .field textarea{
  background:#fff;
  color:#0d1014;
  border-color:rgba(13,16,20,.18);
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .switch{
  color:#535c65;
}

/* Pills need light-section-safe backgrounds as well as text colors. */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .pill--active,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .pill--permit{
  color:#176b50;
  border-color:rgba(23,107,80,.30);
  background:rgba(23,107,80,.07);
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .pill--suspended,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .pill--restrict{
  color:#7b5b18;
  border-color:rgba(123,91,24,.28);
  background:rgba(123,91,24,.07);
}
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .pill--revoked,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .pill--compromised,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .pill--deny,
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) .pill--expired{
  color:#a93630;
  border-color:rgba(169,54,48,.28);
  background:rgba(169,54,48,.07);
}

/* Dark sections: reinforce white hierarchy to prevent accidental light-theme inheritance. */
body:not(.cp-portal) main > .section:nth-of-type(odd):not(.hero){
  --text:#eef1f5;
  --muted:#9aa6b5;
  --dim:#74808f;
  color:#eef1f5;
}
body:not(.cp-portal) main > .section:nth-of-type(odd):not(.hero) h1,
body:not(.cp-portal) main > .section:nth-of-type(odd):not(.hero) h2,
body:not(.cp-portal) main > .section:nth-of-type(odd):not(.hero) h3,
body:not(.cp-portal) main > .section:nth-of-type(odd):not(.hero) strong,
body:not(.cp-portal) main > .section:nth-of-type(odd):not(.hero) b{
  color:#eef1f5;
}

/* Links use clear, accessible contrast on both fields. */
body:not(.cp-portal) main > .section:nth-of-type(even):not(.hero) a:not(.btn){
  color:#17202a;
}
body:not(.cp-portal) main > .section:nth-of-type(odd):not(.hero) a:not(.btn){
  color:#eef1f5;
}


/* ============================================================
   27 · INSTITUTIONAL CONTACT SYSTEM · v1.3.7
   ============================================================ */

.contact-layout{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);
  gap:clamp(64px,8vw,128px);
  align-items:start;
}

.contact-intro h2{
  max-width:10ch;
}

.contact-direct{
  margin-top:42px;
  padding-top:24px;
  border-top:1px solid var(--line);
}

.contact-direct > span{
  display:block;
  color:var(--dim);
  font:9px/1.3 var(--mono);
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:10px;
}

.contact-direct > a{
  display:inline-block;
  font-size:clamp(21px,2vw,28px);
  font-weight:500;
  letter-spacing:-.025em;
  text-decoration:none;
}

.contact-direct > p{
  margin-top:14px;
  max-width:54ch;
  font-size:13px;
}

.contact-assurance-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:48px;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.contact-assurance-grid > div{
  min-height:170px;
  padding:22px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.contact-assurance-grid span{
  display:block;
  color:var(--key);
  font:9px/1 var(--mono);
  margin-bottom:28px;
}

.contact-assurance-grid strong{
  display:block;
  margin-bottom:8px;
}

.contact-assurance-grid p{
  font-size:12px;
  line-height:1.55;
}

.contact-panel{
  border:1px solid var(--line);
  background:rgba(255,255,255,.02);
  padding:clamp(26px,3vw,44px);
  position:relative;
}

.contact-panel::before{
  content:"";
  position:absolute;
  left:-1px;
  top:-1px;
  width:34px;
  height:34px;
  border-top:1px solid var(--text);
  border-left:1px solid var(--text);
  opacity:.35;
}

.institutional-contact-form .form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.institutional-contact-form .field{
  margin:0;
}

.institutional-contact-form label{
  display:block;
  margin-bottom:8px;
  color:var(--dim);
  font:9px/1.3 var(--mono);
  letter-spacing:.13em;
  text-transform:uppercase;
}

.institutional-contact-form input,
.institutional-contact-form select,
.institutional-contact-form textarea{
  width:100%;
  min-height:52px;
  padding:13px 14px;
  background:rgba(255,255,255,.025);
  color:var(--text);
  border:1px solid var(--line);
  border-radius:0;
  font:inherit;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}

.institutional-contact-form textarea{
  min-height:190px;
  resize:vertical;
}

.institutional-contact-form input:focus,
.institutional-contact-form select:focus,
.institutional-contact-form textarea:focus{
  outline:none;
  border-color:var(--line-strong);
  background:rgba(255,255,255,.045);
  box-shadow:0 0 0 1px var(--line-strong);
}

.institutional-contact-form .field--message{
  margin-top:20px;
}

.contact-form-footer{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-top:26px;
  padding-top:24px;
  border-top:1px solid var(--line);
}

.contact-form-footer p{
  max-width:58ch;
  margin:0;
  font-size:11px;
  line-height:1.6;
  color:var(--dim);
}

.contact-alert{
  margin-bottom:28px;
  padding:18px 20px;
  border:1px solid var(--line);
}

.contact-alert strong{
  display:block;
  margin-bottom:4px;
}

.contact-alert p{
  margin:0;
  font-size:13px;
}

.contact-alert--success{
  border-color:rgba(37,126,92,.35);
  background:rgba(37,126,92,.07);
}

.contact-alert--error{
  border-color:rgba(169,54,48,.35);
  background:rgba(169,54,48,.07);
}

.contact-hp{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  white-space:nowrap !important;
}

.footer-email{
  display:inline-block;
  margin-top:8px;
  color:var(--muted);
  font:10px/1.4 var(--mono);
  letter-spacing:.04em;
  text-decoration:none;
}

.footer-email:hover{
  color:var(--text);
}

@media(max-width:980px){
  .contact-layout{
    grid-template-columns:1fr;
    gap:54px;
  }
}

@media(max-width:640px){
  .institutional-contact-form .form-grid{
    grid-template-columns:1fr;
  }

  .contact-assurance-grid{
    grid-template-columns:1fr;
  }

  .contact-assurance-grid > div{
    min-height:auto;
  }

  .contact-form-footer{
    align-items:stretch;
    flex-direction:column;
  }

  .contact-form-footer .btn{
    width:100%;
  }
}


/* ============================================================
   28 · COMPUTE PASSPORT MVP STATUS · v1.3.9
   ============================================================ */
.mvp-status-section .mvp-status-card{
  margin-top:10px;
  padding:clamp(26px,3vw,40px);
}
.mvp-status-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(28px,5vw,72px);
  margin-top:10px;
}
.mvp-status-grid ul{
  margin:0;
  padding-left:18px;
  color:var(--muted);
  font-size:14.5px;
  line-height:1.65;
}
.mvp-status-grid li{
  margin-bottom:7px;
}
@media(max-width:760px){
  .mvp-status-grid{
    grid-template-columns:1fr;
  }
}


/* v1.4.14 — footer robotics link correction */
.hero-title-divider{
  display:inline-block;
  margin:0 .14em;
  color:var(--dim);
  font-weight:400;
}
.hero-positioning{
  margin:14px 0 0;
  font-size:clamp(16px,1.45vw,22px);
  line-height:1.35;
  color:var(--muted);
  font-weight:500;
  letter-spacing:.01em;
}
@media (max-width:760px){
  .hero-title-divider{margin:0 .08em;}
  .hero-positioning{font-size:16px;}
}

/* ============================================================
   30 · MOBILE EXPERIENCE SYSTEM · v1.4.23
   Mobile-first refinements for the public site. Keeps the institutional
   hierarchy while improving touch targets, readable measure, overflow,
   navigation, forms, tables and dense technical components.
   ============================================================ */

html,
body{
  max-width:100%;
  overflow-x:clip;
}

@supports not (overflow:clip){
  html,
  body{overflow-x:hidden;}
}

@media(max-width:1080px){
  .site-header{
    -webkit-backdrop-filter:blur(18px);
    backdrop-filter:blur(18px);
  }

  .site-header .wrap{
    gap:16px;
  }

  .nav-toggle{
    min-width:44px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 13px;
    touch-action:manipulation;
  }

  .nav{
    inset:68px 0 auto;
    max-height:calc(100dvh - 68px);
    overflow-y:auto;
    overscroll-behavior:contain;
    background:rgba(8,10,13,.985);
    box-shadow:0 24px 60px rgba(0,0,0,.32);
    -webkit-overflow-scrolling:touch;
  }

  .nav.is-open{
    display:block;
  }

  body.cp-public-nav-open{
    overflow:hidden;
  }

  .nav ul{
    padding:8px var(--gutter) 8px;
  }

  .nav li{
    margin:0;
  }

  .nav a{
    min-height:50px;
    display:flex;
    align-items:center;
    padding:13px 0;
    border-bottom:0;
  }

  .nav .current-menu-item > a{
    color:var(--text);
  }

  .nav .current-menu-item > a::before{
    content:"";
    width:3px;
    height:18px;
    margin-right:10px;
    background:var(--signal);
  }

  .nav-cta{
    width:calc(100% - (var(--gutter) * 2));
    min-height:48px;
    justify-content:center;
    margin:14px var(--gutter) calc(18px + env(safe-area-inset-bottom));
  }

  .table-scroll{
    max-width:100%;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
}

@media(max-width:720px){
  :root{
    --gutter:max(18px, env(safe-area-inset-left));
    --step:50px;
  }

  body{
    font-size:16px;
    line-height:1.58;
  }

  h1{font-size:clamp(34px,10.5vw,46px);}
  h2{font-size:clamp(27px,8vw,34px);}
  h3{font-size:clamp(19px,5.8vw,23px);}

  .wrap{
    padding-left:max(18px, env(safe-area-inset-left));
    padding-right:max(18px, env(safe-area-inset-right));
  }

  .section{
    padding-block:50px;
  }

  .site-header .wrap{
    height:60px;
    gap:10px;
  }

  .brand{
    min-width:0;
    gap:7px;
  }

  .brand b,
  .site-header .brand-company{
    font-size:14px;
    flex:0 0 auto;
  }

  .brand span,
  .site-header .brand > span{
    max-width:150px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:7.5px;
    letter-spacing:.11em;
  }

  .nav{
    inset:60px 0 auto;
    max-height:calc(100dvh - 60px);
  }

  .hero .wrap{
    padding-top:52px;
    padding-bottom:52px;
  }

  .hero-grid{
    gap:34px;
  }

  .hero h1{
    max-width:100%;
  }

  .hero h1 .entity-mark{
    display:block;
  }

  .hero-title-divider{
    display:none;
  }

  .hero-positioning{
    margin-top:12px;
    max-width:30ch;
    font-size:16px;
  }

  .lede{
    font-size:17px;
    line-height:1.55;
  }

  .hero .lede{
    margin-top:18px;
  }

  .rule{
    margin-bottom:22px;
  }

  .btn-row{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:26px;
  }

  .btn-row .btn,
  .cta .btn{
    width:100%;
    min-height:48px;
    justify-content:center;
    text-align:center;
    padding:13px 16px;
  }

  .hero-stats{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    margin-top:34px;
    padding-top:0;
    border-top:1px solid var(--line);
    border-left:1px solid var(--line);
  }

  .hero-stats div{
    min-width:0;
    padding:16px 14px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }

  .hero-stats div strong{
    font-size:24px;
  }

  .hero-stats div span{
    font-size:9px;
    line-height:1.35;
  }

  .grid{
    gap:16px;
  }

  .split,
  .split--even{
    gap:28px;
  }

  .card{
    padding:20px;
  }

  .card p{
    font-size:15px;
  }

  .notice{
    padding:16px 17px;
  }

  .receipt-head,
  .receipt-foot{
    align-items:flex-start;
    flex-direction:column;
  }

  .receipt-body{
    padding:16px;
  }

  .receipt-row{
    grid-template-columns:78px minmax(0,1fr);
    gap:10px;
  }

  .receipt-row div,
  .cpid,
  .hash{
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  .layer{
    min-height:56px;
    gap:12px;
    padding:16px;
  }

  .layer-detail{
    padding:0 16px 18px 16px;
  }

  .sim-controls,
  .sim-out{
    padding:18px;
  }

  .field{
    margin-bottom:18px;
  }

  .field select,
  .field input[type="text"],
  .field input[type="number"],
  .field input[type="email"],
  .field input[type="password"],
  .field textarea,
  .institutional-contact-form input,
  .institutional-contact-form select,
  .institutional-contact-form textarea{
    min-height:48px;
    font-size:16px;
  }

  .switch{
    min-height:44px;
    align-items:flex-start;
    font-size:13px;
    line-height:1.45;
  }

  .switch input{
    width:18px;
    height:18px;
    flex:0 0 18px;
    margin-top:1px;
  }

  .filters{
    gap:7px;
    margin-bottom:20px;
  }

  .filters button{
    min-height:42px;
    padding:9px 13px;
    touch-action:manipulation;
  }

  .seq{
    grid-template-columns:1fr;
  }

  .seq > div{
    padding:18px;
  }

  .page-hero .wrap{
    padding-block:46px;
  }

  .page-hero h1{
    max-width:100%;
  }

  .page-hero .lede{
    margin-top:16px;
  }

  .page-hero .meta{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin-top:28px;
    padding-top:18px;
  }

  .entry{
    width:100%;
    max-width:100%;
  }

  .entry pre{
    padding:16px;
    max-width:100%;
    -webkit-overflow-scrolling:touch;
  }

  .cta{
    gap:22px;
    padding:24px 20px;
  }

  .protocol-flow{
    padding:18px;
  }

  .contact-layout{
    gap:36px;
  }

  .contact-direct{
    margin-top:28px;
  }

  .contact-direct > a{
    font-size:20px;
    overflow-wrap:anywhere;
  }

  .contact-assurance-grid{
    margin-top:32px;
  }

  .contact-panel{
    padding:20px;
  }

  .institutional-contact-form .field--message{
    margin-top:16px;
  }

  .institutional-contact-form textarea{
    min-height:150px;
  }

  .site-footer{
    padding-top:48px;
    padding-bottom:calc(28px + env(safe-area-inset-bottom));
  }

  .footer-grid{
    gap:28px 22px;
  }

  .site-footer li{
    margin-bottom:7px;
  }

  .site-footer li a{
    display:inline-flex;
    align-items:center;
    min-height:36px;
  }

  .legal{
    margin-top:32px;
    padding-top:20px;
  }

  /* Wide technical content stays usable without forcing the entire page wide. */
  .table-scroll{
    width:calc(100% + 18px);
    margin-right:-18px;
    padding-right:18px;
    padding-bottom:8px;
  }

  .table-scroll table.data{
    min-width:680px;
  }

  .graph-scroll{
    width:calc(100% + 18px);
    margin-right:-18px;
    padding-right:18px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }

  .graph-scroll .graph{
    width:760px;
    max-width:none;
  }
}

@media(max-width:520px){
  :root{
    --gutter:max(16px, env(safe-area-inset-left));
    --step:44px;
  }

  .wrap{
    padding-left:max(16px, env(safe-area-inset-left));
    padding-right:max(16px, env(safe-area-inset-right));
  }

  .brand span,
  .site-header .brand > span{
    display:none;
  }

  .hero .wrap{
    padding-top:44px;
    padding-bottom:46px;
  }

  .hero-stats{
    grid-template-columns:1fr 1fr;
  }

  .receipt-row{
    grid-template-columns:1fr;
    gap:4px;
    padding:11px 0;
  }

  .receipt-row span{
    padding-top:0;
  }

  .page-hero .meta{
    grid-template-columns:1fr;
  }

  .footer-grid{
    grid-template-columns:1fr;
    gap:24px;
  }

  .table-scroll{
    width:calc(100% + 16px);
    margin-right:-16px;
    padding-right:16px;
  }

  .graph-scroll{
    width:calc(100% + 16px);
    margin-right:-16px;
    padding-right:16px;
  }
}

@media(max-width:380px){
  h1{font-size:32px;}
  h2{font-size:26px;}

  .site-header .wrap{
    padding-inline:14px;
  }

  .nav-toggle{
    padding-inline:10px;
    font-size:10px;
  }

  .hero-stats{
    grid-template-columns:1fr;
  }
}

/* ============================================================
   31 · SOLARION WORDMARK HEADER · v1.4.24
   Use the approved Solarion AI wordmark asset as the primary
   corporate identifier while retaining a compact product position.
   ============================================================ */
.site-header .brand{
  display:grid;
  grid-template-columns:1fr;
  align-content:center;
  align-items:start;
  gap:3px;
  min-width:clamp(188px,18vw,286px);
  line-height:1;
}
.site-header .brand-logo{
  display:block;
  width:clamp(178px,16vw,250px);
  height:auto;
  max-width:100%;
  object-fit:contain;
  object-position:left center;
}
.site-header .brand > span{
  display:block;
  margin-top:2px;
  padding-left:2px;
  font-family:var(--mono);
  font-size:8.5px;
  line-height:1.25;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:#626a73;
  white-space:nowrap;
}

@media (max-width:1080px){
  .site-header .brand{
    min-width:0;
    flex:0 1 auto;
  }
  .site-header .brand-logo{
    width:190px;
  }
}

@media (max-width:620px){
  .site-header .brand-logo{
    width:168px;
  }
  .site-header .brand > span{
    font-size:7.5px;
    letter-spacing:.06em;
    max-width:178px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

@media (max-width:520px){
  .site-header .brand > span{
    display:none;
  }
  .site-header .brand-logo{
    width:158px;
  }
}

@media (max-width:380px){
  .site-header .brand-logo{
    width:142px;
  }
}


/* ============================================================
   34 · APPROVED SOLARION WORDMARK · v1.4.26
   Uses the supplied Solarion AI ™ artwork unchanged. The frame
   crops only with CSS, while multiply blending lets the white
   artwork field inherit the institutional header background.
   ============================================================ */
.site-header .brand-logo-frame{
  position:relative;
  display:block;
  width:clamp(178px,16vw,250px);
  aspect-ratio:6.72 / 1;
  overflow:hidden;
  flex:none;
  background:transparent;
  isolation:auto;
}
.site-header .brand-logo{
  position:absolute;
  display:block;
  width:143.1%;
  max-width:none;
  height:auto;
  left:-24.2%;
  top:-184.2%;
  margin:0;
  object-fit:initial;
  object-position:initial;
  mix-blend-mode:multiply;
}

@media (max-width:1080px){
  .site-header .brand-logo-frame{width:190px;}
  .site-header .brand-logo{width:143.1%;left:-24.2%;top:-184.2%;}
}
@media (max-width:620px){
  .site-header .brand-logo-frame{width:168px;}
}
@media (max-width:520px){
  .site-header .brand-logo-frame{width:158px;}
}
@media (max-width:380px){
  .site-header .brand-logo-frame{width:142px;}
}


/* ============================================================
   35 · HEADER WORDMARK CLEANUP · v1.4.27
   Approved Solarion AI ™ wordmark only: no descriptor below the
   logo. The exact supplied artwork is cropped in CSS and multiply
   blended so its white canvas disappears into the header surface.
   A versioned asset path prevents stale CDN/browser logo caching.
   ============================================================ */
.site-header .brand{
  display:flex;
  align-items:center;
  min-width:clamp(178px,16vw,250px);
  line-height:1;
}
.site-header .brand > span:not(.brand-logo-frame){
  display:none !important;
}
.site-header .brand-logo-frame{
  width:clamp(178px,16vw,250px);
  aspect-ratio:6.72 / 1;
  overflow:hidden;
  background:transparent;
}
.site-header .brand-logo{
  width:143.1%;
  max-width:none;
  left:-24.2%;
  top:-184.2%;
  mix-blend-mode:multiply;
  filter:none;
}
@media (max-width:1080px){.site-header .brand,.site-header .brand-logo-frame{width:190px;min-width:190px;}}
@media (max-width:620px){.site-header .brand,.site-header .brand-logo-frame{width:168px;min-width:168px;}}
@media (max-width:520px){.site-header .brand,.site-header .brand-logo-frame{width:158px;min-width:158px;}}
@media (max-width:380px){.site-header .brand,.site-header .brand-logo-frame{width:142px;min-width:142px;}}


/* ============================================================
   36 · HEADER LOGO RENDER FIX · v1.4.28
   The approved artwork is prepared as a tightly cropped transparent
   web asset. No positional cropping is required, so the mark cannot
   disappear when header dimensions or browser scaling change.
   ============================================================ */
.site-header .brand{
  display:flex;
  align-items:center;
  min-width:clamp(178px,16vw,250px);
  line-height:1;
}
.site-header .brand-logo-frame{
  position:static;
  display:block;
  width:clamp(178px,16vw,250px);
  aspect-ratio:auto;
  height:auto;
  overflow:visible;
  background:transparent;
  flex:none;
}
.site-header .brand-logo{
  position:static;
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0;
  left:auto;
  top:auto;
  object-fit:contain;
  object-position:left center;
  mix-blend-mode:normal;
  filter:none;
}
@media (max-width:1080px){
  .site-header .brand,.site-header .brand-logo-frame{width:190px;min-width:190px;}
}
@media (max-width:620px){
  .site-header .brand,.site-header .brand-logo-frame{width:168px;min-width:168px;}
}
@media (max-width:520px){
  .site-header .brand,.site-header .brand-logo-frame{width:158px;min-width:158px;}
}
@media (max-width:380px){
  .site-header .brand,.site-header .brand-logo-frame{width:142px;min-width:142px;}
}


/* ============================================================
   37 · HEADER WORDMARK VISIBILITY FIX · v1.4.29
   Direct image rendering prevents generic responsive span rules
   from hiding or constraining the approved Solarion AI ™ mark.
   ============================================================ */
.site-header .brand{
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  min-width:0 !important;
  width:auto !important;
  line-height:1 !important;
}
.site-header .brand-logo{
  position:static !important;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:clamp(178px,16vw,250px) !important;
  max-width:none !important;
  height:auto !important;
  margin:0 !important;
  transform:none !important;
  left:auto !important;
  top:auto !important;
  object-fit:contain !important;
  object-position:left center !important;
  mix-blend-mode:normal !important;
  filter:none !important;
}
@media (max-width:1080px){.site-header .brand-logo{width:190px !important;}}
@media (max-width:620px){.site-header .brand-logo{width:168px !important;}}
@media (max-width:520px){.site-header .brand-logo{display:block !important;width:158px !important;}}
@media (max-width:380px){.site-header .brand-logo{width:142px !important;}}

/* ============================================================
   39 · PRESS RELEASES · v1.4.33
   Institutional editorial layout informed by the restrained
   New York AI Group press-release system: strong hierarchy,
   narrow reading measure, media-contact rail and minimal chrome.
   ============================================================ */
body.cp-press{
  background:#f3f2ed;
  color:#111418;
}
body.cp-press main{
  background:#f3f2ed;
  color:#111418;
  counter-reset:none;
}
body.cp-press main::before,
body.cp-press main::after{
  content:none!important;
}
.press-wrap{
  width:min(100% - (2 * var(--gutter)),1180px);
  max-width:1180px;
  margin-inline:auto;
}
.press-kicker,
.press-list-label,
.press-aside-label,
.press-release-meta{
  font-family:var(--mono);
  font-size:10px;
  line-height:1.4;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#687078;
}
.press-index,
.press-release{
  background:#f3f2ed;
  color:#111418;
}
.press-index-hero{
  padding:clamp(68px,8vw,118px) 0 clamp(52px,6vw,82px);
  border-bottom:1px solid rgba(17,20,24,.14);
}
.press-index-hero .press-kicker{
  margin-bottom:22px;
}
.press-index-hero h1{
  max-width:780px;
  margin:0;
  font-size:clamp(42px,5.2vw,72px);
  line-height:.98;
  letter-spacing:-.05em;
  font-weight:500;
  color:#111418;
}
.press-index-lede{
  max-width:760px;
  margin:28px 0 0;
  font-size:clamp(17px,1.7vw,21px);
  line-height:1.55;
  color:#4f565d;
}
.press-index-grid{
  display:grid;
  grid-template-columns:minmax(180px,240px) minmax(0,1fr);
  gap:clamp(48px,7vw,96px);
  padding:clamp(50px,6vw,84px) 0 clamp(80px,9vw,132px);
}
.press-index-aside,
.press-release-aside{
  font-size:13px;
  line-height:1.55;
  color:#4e555c;
}
.press-index-aside .press-aside-label,
.press-release-aside .press-aside-label{
  display:block;
  margin-bottom:14px;
}
.press-index-aside strong,
.press-release-aside strong{
  display:block;
  color:#111418;
  font-size:13px;
  font-weight:600;
  margin-bottom:2px;
}
.press-index-aside a,
.press-release-aside a,
.press-release-copy a{
  color:#111418;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.press-list-label{
  margin:0 0 18px;
}
.press-release-card{
  position:relative;
  display:block;
  padding:32px 54px 34px 0;
  border-top:1px solid rgba(17,20,24,.18);
  border-bottom:1px solid rgba(17,20,24,.18);
  transition:opacity .18s ease;
}
.press-release-card:hover{
  opacity:.68;
}
.press-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:12px 22px;
  margin-bottom:22px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#697078;
}
.press-release-card h2{
  max-width:880px;
  margin:0;
  font-size:clamp(26px,3vw,40px);
  line-height:1.08;
  letter-spacing:-.035em;
  color:#111418;
}
.press-release-card p{
  max-width:820px;
  margin:18px 0 0;
  font-size:16px;
  line-height:1.6;
  color:#555d64;
}
.press-card-arrow{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  font-size:22px;
  font-weight:300;
  color:#111418;
}

.press-release-header{
  padding:clamp(60px,7.5vw,104px) 0 clamp(48px,6vw,78px);
  border-bottom:1px solid rgba(17,20,24,.16);
}
.press-release-heading{
  max-width:1040px;
}
.press-release-meta{
  display:flex;
  flex-wrap:wrap;
  gap:12px 28px;
  margin-bottom:26px;
}
.press-release-header h1{
  max-width:1050px;
  margin:0;
  font-size:clamp(40px,5.4vw,74px);
  line-height:.98;
  letter-spacing:-.052em;
  font-weight:500;
  color:#111418;
  text-wrap:balance;
}
.press-release-deck{
  max-width:880px;
  margin:28px 0 0;
  font-size:clamp(18px,2vw,23px);
  line-height:1.5;
  color:#50575e;
}
.press-release-body{
  padding:clamp(54px,6.5vw,90px) 0 clamp(90px,10vw,146px);
}
.press-release-grid{
  display:grid;
  grid-template-columns:minmax(170px,230px) minmax(0,720px);
  gap:clamp(52px,7vw,100px);
  justify-content:start;
}
.press-release-aside{
  position:sticky;
  top:110px;
  align-self:start;
}
.press-aside-block{
  padding-bottom:24px;
  border-bottom:1px solid rgba(17,20,24,.16);
}
.press-all-link{
  display:inline-flex;
  gap:8px;
  margin-top:22px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none!important;
}
.press-release-copy{
  max-width:720px;
  font-size:17px;
  line-height:1.72;
  color:#25292e;
}
.press-release-copy p{
  margin:0 0 1.35em;
}
.press-release-copy > p:first-child{
  font-size:18px;
  color:#171a1e;
}
.press-release-copy h2{
  margin:58px 0 18px;
  font-family:var(--mono);
  font-size:12px;
  line-height:1.35;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#111418;
  font-weight:650;
}
.press-release-copy h2:first-of-type{
  margin-top:54px;
}
.press-release-framework{
  margin:26px 0 30px!important;
  padding:20px 22px;
  border:1px solid rgba(17,20,24,.15);
  background:#ecebe6;
  font-family:var(--mono);
  font-size:13px;
  line-height:1.6;
  letter-spacing:.025em;
  color:#111418;
}
.press-release-questions{
  list-style:none;
  padding:0;
  margin:10px 0 34px;
  border-top:1px solid rgba(17,20,24,.14);
}
.press-release-questions li{
  position:relative;
  padding:15px 8px 15px 26px;
  border-bottom:1px solid rgba(17,20,24,.12);
  color:#24282d;
}
.press-release-questions li::before{
  content:"•";
  position:absolute;
  left:4px;
  color:#111418;
}
.press-release-copy blockquote{
  margin:52px 0;
  padding:4px 0 4px 28px;
  border-left:2px solid #c6623c;
}
.press-release-copy blockquote p{
  margin:0;
  font-size:clamp(21px,2.4vw,28px);
  line-height:1.45;
  letter-spacing:-.025em;
  color:#111418;
}
.press-release-copy blockquote cite{
  display:block;
  margin-top:22px;
  font-style:normal;
  font-size:13px;
  line-height:1.55;
  font-weight:600;
  color:#111418;
}
.press-release-copy blockquote cite span{
  font-weight:400;
  color:#656c73;
}

@media (max-width:860px){
  .press-index-grid,
  .press-release-grid{
    grid-template-columns:1fr;
    gap:38px;
  }
  .press-index-aside{
    display:grid;
    grid-template-columns:auto 1fr;
    column-gap:18px;
    align-items:start;
    padding-bottom:24px;
    border-bottom:1px solid rgba(17,20,24,.14);
  }
  .press-index-aside .press-aside-label{
    grid-row:1 / span 2;
  }
  .press-release-aside{
    position:static;
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
    padding-bottom:28px;
    border-bottom:1px solid rgba(17,20,24,.14);
  }
  .press-aside-block{
    padding:0;
    border:0;
  }
  .press-all-link{
    margin:0;
  }
  .press-release-copy{
    max-width:760px;
  }
}

@media (max-width:620px){
  .press-index-hero,
  .press-release-header{
    padding-top:50px;
    padding-bottom:42px;
  }
  .press-index-hero h1{
    font-size:clamp(36px,11vw,50px);
  }
  .press-release-header h1{
    font-size:clamp(34px,10vw,48px);
    line-height:1.02;
  }
  .press-release-deck{
    margin-top:22px;
    font-size:17px;
  }
  .press-release-card{
    padding-right:34px;
  }
  .press-release-card h2{
    font-size:26px;
  }
  .press-release-body{
    padding-top:42px;
  }
  .press-release-copy{
    font-size:16px;
    line-height:1.68;
  }
  .press-release-copy > p:first-child{
    font-size:16.5px;
  }
  .press-release-copy h2{
    margin-top:46px;
    font-size:11px;
  }
  .press-release-framework{
    padding:17px;
    overflow-wrap:anywhere;
  }
  .press-release-copy blockquote{
    margin:42px 0;
    padding-left:20px;
  }
  .press-release-copy blockquote p{
    font-size:21px;
  }
}
