  :root{
    /* ── LIGHT THEME — "Arctic Graphite" + brass accent ──
       Near-white stream, Ice side rails, graphite text, brass accent. */
    --sumi:#15191B;        /* footer / tooltip panels (kept dark for contrast) */
    --sumi-2:#1E2326;
    --paper:#F2F4F5;       /* stream — arctic-graphite near-white */
    --paper-2:#E5EAF1;     /* tinted band — bluish ice */
    --paper-rail:#D7E0EC;  /* signals rail — bluish Ice */
    --ink:#222A2C;         /* Graphite */
    --mist:#5A666A;        /* Steel (darkened for AA on the near-white) */
    --mist-d:#8A9498;
    --jade:#0A739C;        /* primary accent — deep cyan (AA on near-white) */
    --jade-soft:#1190C0;
    --cyan:#18A8E0;        /* primary accent — bright cyan */
    --cyan-soft:#4FBEEE;
    --brass:#8A6A14;       /* secondary accent — brass (AA for small text) */
    --brass-strong:#C9A24B;/* bright brass — for fills (e.g. CTA hover) */
    --shu:#B5472B;         /* vermilion — Aerendir seal */
    --line:rgba(34,42,44,.14);
    --line-d:rgba(255,255,255,.10);
    --rail:280px;
    --rail-collapsed:76px;
    --signals:var(--rail);  /* keep right rail exactly equal to the left */
    --ease:cubic-bezier(.22,.61,.36,1);
    --nist-tip:"FIDO2, WebAuthn/CTAP, NIST PIV, NIST Zero Trust Architecture, NIST SP 800-57, and FIPS requirements.";
    --fido-filter:none;  /* FIDO mark is black ink — invert it for dark mode below */
    --logo-teal:url("/assets/img/logo-teal.png");
    --logo-shu:url("/assets/img/logo-shu.png");
    /* themeable surfaces */
    --topbar:rgba(242,244,245,.82);
    --sig-hover:rgba(255,255,255,.5);
    --scrollthumb:rgba(34,42,44,.18);
    --hero-blend:multiply;
    --hero-filter:none;
    /* hero artwork → brand duotone (jade shadows → cyan highlights), light theme */
    --hero-art-filter:grayscale(1) contrast(1.12);
    --hero-art-blend:multiply;
    --hero-art-bg:#f2f4f5;
    /* light: lift the darks toward one lighter brand color (no dark jade end) */
    --hero-tint-bg:var(--cyan);
    --hero-tint-blend:screen;
    --hero-tint-opacity:.6;
    /* left rail — bluish Ice panel in light mode */
    --rail-bg:#D7E0EC;
    --rail-text:#495457;
    --rail-strong:#222A2C;
    --rail-dim:#67737A;
    --rail-line:rgba(34,42,44,.14);
    --rail-hover:rgba(34,42,44,.06);
    color-scheme:light;
  }
  /* ── DARK THEME (default; toggled via [data-theme]) ── */
  :root[data-theme="dark"]{
    --fido-filter:invert(1);  /* black FIDO mark → white on dark surfaces */
    --sumi:#171B1E;        /* rail / footer panels — slightly raised */
    --sumi-2:#23282C;
    --paper:#0F1315;       /* stream */
    --paper-2:#191E21;     /* tinted bands / cta */
    --paper-rail:#121618;  /* signals */
    --ink:#ECEDE6;         /* primary text */
    --mist:#9AA39D;
    --mist-d:#727B76;
    --jade:#2C9488;
    --jade-soft:#42B3A4;
    --cyan:#3DBBEC;
    --cyan-soft:#6FD0F4;
    --brass:#C9A24B;
    --brass-strong:#D4AE55;
    --line:rgba(255,255,255,.10);
    --line-d:rgba(255,255,255,.07);
    --topbar:rgba(15,19,21,.82);
    --sig-hover:rgba(255,255,255,.045);
    --scrollthumb:rgba(255,255,255,.16);
    --hero-blend:screen;
    --hero-filter:invert(1) hue-rotate(180deg);
    /* hero artwork → brand duotone (jade shadows → cyan highlights), dark theme */
    --hero-art-filter:invert(1) grayscale(1) contrast(1.2) brightness(1.08);
    --hero-art-blend:screen;
    --hero-art-bg:#0f1315;
    --hero-tint-bg:linear-gradient(118deg,var(--jade),var(--cyan));
    --hero-tint-blend:multiply;
    --hero-tint-opacity:.42;
    /* left rail — dark panel in dark mode */
    --rail-bg:var(--sumi);
    --rail-text:#C9CEC9;
    --rail-strong:#fff;
    --rail-dim:#727B76;
    --rail-line:rgba(255,255,255,.10);
    --rail-hover:rgba(255,255,255,.04);
    color-scheme:dark;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;background:var(--paper);overflow-x:clip}
  body{
    font-family:"Open Sans",system-ui,sans-serif;
    background:var(--paper);color:var(--ink);
    display:flex;min-height:100vh;font-weight:300;-webkit-font-smoothing:antialiased;
  }
  ::selection{background:var(--jade);color:#fff}
  a{color:inherit;text-decoration:none}
  .eyebrow{font-family:"Montserrat",sans-serif;font-size:11px;letter-spacing:.34em;text-transform:uppercase;font-weight:500;color:var(--jade)}
  /* Light mode: section eyebrows carry the brass secondary accent (cyan stays primary). */
  :root:not([data-theme="dark"]) .eyebrow{color:var(--brass)}

  /* ── Aerendir seal (vermilion). Swap inner .seal-logo for the real logo asset. ── */
  .seal{
    border:1.5px solid var(--shu);border-radius:9px;
    display:grid;place-items:center;background:rgba(181,71,43,.07);
    flex:0 0 40px;width:40px;height:40px;
  }
  .seal-logo{font-family:"Playfair Display",serif;font-weight:600;color:var(--shu);
    font-size:21px;line-height:1}
  .seal-dark{background:var(--sumi-2)}
  .seal-mark{width:66%;height:66%;background:var(--logo-shu) center/contain no-repeat;display:block}
  .av-mark{width:60%;height:60%;background:var(--logo-shu) center/contain no-repeat;display:block}

  /* ───────────────────────── LEFT RAIL ───────────────────────── */
  .rail{
    width:var(--rail);flex:0 0 var(--rail);background:var(--rail-bg);color:var(--rail-text);z-index:20;
    border-right:1px solid var(--line);
    transition:width .42s var(--ease),flex-basis .42s var(--ease);
  }
  /* column stretches to full page height (bg fills, no gap); inner stays pinned at 100vh */
  .rail-inner{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
    padding:28px 0 22px;overflow:hidden}
  body.collapsed .rail{width:var(--rail-collapsed);flex-basis:var(--rail-collapsed)}
  .brand{display:flex;align-items:center;padding:2px 26px 30px}
  /* light rail: teal logo shows as-is; dark rail: brighten for contrast */
  .brand-logo{height:60px;width:auto;display:block;filter:none;
    transition:opacity .25s var(--ease)}
  :root[data-theme="dark"] .brand-logo{filter:brightness(1.8) saturate(1.1)}
  body.collapsed .brand-logo{opacity:0;pointer-events:none}
  .wordmark{font-family:"Playfair Display",serif;font-size:21px;letter-spacing:.16em;font-weight:500;
    white-space:nowrap;transition:opacity .25s var(--ease)}
  .wordmark span{color:var(--jade-soft)}
  .logo-r{display:inline-block;width:1em;height:1em;vertical-align:-0.16em;margin:0 .03em;
    background:var(--logo-teal) center/contain no-repeat}
  body.collapsed .wordmark{opacity:0;pointer-events:none}
  body.collapsed .brand::before{content:"";width:28px;height:28px;display:block;
    background:var(--logo-teal) center/contain no-repeat}

  .toggle{position:absolute;top:34px;right:18px;width:26px;height:26px;border:none;background:transparent;
    cursor:pointer;display:grid;place-items:center;color:var(--rail-dim);
    transition:color .2s,transform .42s var(--ease)}
  .toggle:hover{color:var(--rail-strong)}
  body.collapsed .toggle{transform:rotate(180deg);right:25px}

  .nav{margin-top:6px;flex:1;overflow-y:auto;overflow-x:hidden}
  .nav::-webkit-scrollbar{width:0}
  .nav-group-label{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--rail-dim);
    padding:18px 26px 8px;white-space:nowrap;transition:opacity .25s var(--ease)}
  body.collapsed .nav-group-label{opacity:0}
  .nav-item{display:flex;align-items:center;gap:16px;padding:11px 24px;color:var(--rail-text);cursor:pointer;
    position:relative;white-space:normal;transition:color .2s,background .2s}
  body.collapsed .nav-item{white-space:nowrap}
  .nav-item svg{flex:0 0 20px;width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;
    stroke-linecap:round;stroke-linejoin:round}
  .nav-item .lbl{font-size:14.5px;font-weight:400;letter-spacing:.02em;line-height:1.3;transition:opacity .25s var(--ease)}
  body.collapsed .nav-item .lbl{opacity:0}
  .nav-item::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:2px;height:0;background:linear-gradient(var(--jade),var(--cyan));transition:height .25s var(--ease)}
  .nav-item:hover,.nav-item.active{color:var(--rail-strong)}
  .nav-item.active::before{height:22px}
  .nav-item .chev{margin-left:auto;width:14px;height:14px;opacity:.5;transition:opacity .25s}
  body.collapsed .nav-item .chev{opacity:0}

  /* Products → static group label (listing page hidden); four boxes always shown (indent = hierarchy) */
  .nav-static{cursor:default}
  .nav-static:not(.active):hover{color:var(--rail-text)}
  .nav-sub{display:block;padding:6px 18px 12px 56px}
  .nav-sub a{display:block;font-size:12.5px;font-weight:500;line-height:1.45;color:var(--rail-text);letter-spacing:.03em;
    padding:9px 12px;margin-top:8px;border:1px solid var(--rail-line);border-radius:7px;
    transition:color .2s,border-color .2s,background .2s}
  .nav-sub a:first-child{margin-top:0}
  .nav-sub a:hover{color:var(--rail-strong);border-color:var(--cyan);background:var(--rail-hover)}
  .nav-sub a.active{color:var(--rail-strong);border-color:var(--jade);background:var(--rail-hover)}
  body.collapsed .nav-sub{display:none}

  .rail-foot{padding:20px 26px 0;border-top:1px solid var(--rail-line);display:flex;align-items:center;
    gap:14px;white-space:nowrap}
  .rail-foot:hover .seal-cap b{color:var(--rail-strong)}
  .rail-foot:hover .seal{border-color:var(--cyan)}
  .seal-cap{font-size:11px;color:var(--rail-dim);line-height:1.5;transition:opacity .25s var(--ease)}
  .seal-cap b{display:block;color:var(--rail-text);font-weight:400;letter-spacing:.04em}
  body.collapsed .seal-cap{opacity:0}

  /* ───────────────────────── CENTER STREAM ───────────────────────── */
  .stream{flex:1;min-width:0;display:flex;flex-direction:column}
  .topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:24px;
    padding:0 clamp(28px,4vw,64px);height:68px;background:var(--topbar);
    backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
  .navbar-burger{display:none;width:34px;height:34px;border:none;background:transparent;cursor:pointer;
    color:var(--ink);place-items:center;margin-left:-6px;flex:0 0 auto}
  .navbar-burger svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round}
  .crumb{font-size:12px;letter-spacing:.12em;color:var(--mist);text-transform:uppercase}
  .crumb b{color:var(--ink);font-weight:500}
  .ver{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--jade);
    border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-weight:500;white-space:nowrap}
  .search{margin-left:auto;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);
    padding:6px 2px;width:min(220px,24vw)}
  .search svg{width:15px;height:15px;stroke:var(--mist);fill:none;stroke-width:1.6}
  .search input{border:none;background:transparent;outline:none;font-family:inherit;font-size:13px;
    font-weight:300;color:var(--ink);width:100%}
  .search input::placeholder{color:var(--mist)}
  .lang{display:flex;gap:13px;font-size:12px;letter-spacing:.08em;color:var(--mist)}
  .lang a.on{color:var(--ink);font-weight:500}
  .lang a{cursor:pointer;transition:color .2s}
  .lang a:hover{color:var(--jade)}
  .theme-toggle{width:30px;height:30px;border:none;background:transparent;cursor:pointer;margin-left:auto;
    color:var(--mist);display:grid;place-items:center;transition:color .2s}
  .theme-toggle:hover{color:var(--jade)}
  .theme-toggle svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.6;
    stroke-linecap:round;stroke-linejoin:round;grid-area:1/1}
  :root[data-theme="dark"] .theme-toggle .ic-moon{display:none}
  :root:not([data-theme="dark"]) .theme-toggle .ic-sun{display:none}

  .feed{flex:1;padding:0 clamp(28px,4vw,64px);max-width:1700px;width:100%;margin-inline:auto}
  /* Signals-collapsed pages (News): use the freed-up width and center the feed,
     so wide screens get a balanced multi-column grid instead of a left-stuck 2-up. */
  body.feed-wide .feed{max-width:1640px;margin-inline:auto}
  .block{padding:clamp(60px,8vh,112px) 0;border-bottom:1px solid var(--line)}
  .block:last-child{border-bottom:none}
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
  .reveal.in{opacity:1;transform:none}

  /* HERO */
  .hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(28px,4vw,72px);align-items:center}
  .hero-art{margin:0;min-width:0}
  .hero-art img,.hero-art video{width:100%;height:auto;display:block;mix-blend-mode:var(--hero-blend);filter:var(--hero-filter)}
  /* Home hero only (plain .hero-art) → brand jade→cyan duotone. Product/Technology
     heroes carry .tech-art and are intentionally excluded — leave them untouched. */
  .hero-art:not(.tech-art),.duo-art{position:relative;isolation:isolate;
    border-radius:14px;overflow:hidden;background:var(--hero-art-bg)}
  .duo-art{margin:0}
  .hero-art:not(.tech-art) img,.hero-art:not(.tech-art) video,.duo-art img,.duo-art video{width:100%;height:auto;display:block;
    mix-blend-mode:var(--hero-art-blend);filter:var(--hero-art-filter)}
  .hero-art:not(.tech-art)::after,.duo-art::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:var(--hero-tint-bg);
    mix-blend-mode:var(--hero-tint-blend);opacity:var(--hero-tint-opacity)}
  /* Rounded corners on all content figure images (heroes, product shots, etc.) */
  .feed figure img{border-radius:14px}
  /* Full-colour illustrations/photos shown as-is in a neutral themed frame
     (no duotone). Works in light & dark; used for product/tech heroes. */
  .art-frame{margin:0;min-width:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;
    background:var(--paper-2)}
  .art-frame img,.art-frame video{display:block;width:100%;height:auto;border-radius:0;mix-blend-mode:normal;filter:none}
  .hero .art-frame{align-self:center}
  /* ── Edge feather: melt non-demo media into the page background (both themes).
     Fades each media's four edges to transparent and drops the card border.
     Excludes demo videos (.demo-*), the contact map (.map-*), and headshots (.person-photo). ── */
  :root{
    --feather:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 7%,#000 93%,transparent 100%);
    --feather-soft:linear-gradient(to right,transparent 0,#000 4%,#000 96%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 5%,#000 95%,transparent 100%);
  }
  /* media that fills its figure → feather the whole figure, drop the card chrome */
  .media-feather,.art-frame,.hero-art:not(.tech-art),.duo-art{
    border:0;border-radius:0;
    -webkit-mask-image:var(--feather);-webkit-mask-composite:source-in;
    mask-image:var(--feather);mask-composite:intersect}
  /* media centered/smaller than its figure, or sitting beside text → feather the media itself */
  .tech-art img,.how-art img,.how-art-plain img,.cap-figure img{
    -webkit-mask-image:var(--feather);-webkit-mask-composite:source-in;
    mask-image:var(--feather);mask-composite:intersect}
  .how-art{border:0;background:none;padding:0}
  .how-art-plain img,.cap-figure img{border:0;border-radius:0}
  /* diagrams keep their light card (dark text needs the backing) — gentle feather only */
  .art-diagram{border:0;border-radius:0;
    -webkit-mask-image:var(--feather-soft);-webkit-mask-composite:source-in;
    mask-image:var(--feather-soft);mask-composite:intersect}
  @media(max-width:980px){
    .hero .art-frame{order:-1;max-width:520px;width:100%;margin-inline:auto}
  }
  /* Wide diagrams: keep a constant light mat so dark labels stay legible in dark mode. */
  .art-diagram{margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;
    background:#f1f4f8;padding:clamp(16px,3vw,32px)}
  .art-diagram img{display:block;width:100%;height:auto;border-radius:0;mix-blend-mode:normal;filter:none}
  /* Spacing when a diagram closes out a how-it-works section */
  .how-diagram{margin-top:clamp(30px,4.5vw,52px)}
  /* Light/dark diagram pair — show the variant matching the active theme.
     Selectors scoped to .how-diagram to outrank ".art-frame img{display:block}". */
  .how-diagram .diag-dark{display:none}
  :root[data-theme="dark"] .how-diagram .diag-light{display:none}
  :root[data-theme="dark"] .how-diagram .diag-dark{display:block}
  /* transparent colored SVG illustration — no photo blend/invert */
  .tech-art img{mix-blend-mode:normal;filter:none;max-width:440px;margin-inline:auto}
  @media(max-width:980px){
    .hero{grid-template-columns:1fr}
    .hero-art{order:-1;max-width:520px;width:100%;margin-inline:auto}
    /* stacked: restore comfortable gap between kicker, copy and image */
    .hero:has(.hero-kicker){row-gap:clamp(22px,5vw,36px)}
  }
  .hero-copy{max-width:680px}
  .hero .eyebrow{font-size:15px;letter-spacing:.26em}
  /* Product hero eyebrow → full-width kicker across the hero (wraps only if it
     truly can't fit — never forces the column wider, so no overflow on tablet). */
  .hero .hero-kicker{grid-column:1 / -1;margin:0;max-width:100%}
  .hero:has(.hero-kicker){row-gap:14px}
  .hero h1{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(40px,6vw,74px);
    line-height:1.04;letter-spacing:.01em;margin:22px 0 26px}
  /* home hero is a full sentence (not 3 words) — scale it down to fit */
  .hero:not(.solo) h1{font-size:clamp(30px,3.7vw,52px);line-height:1.12}
  .hero h1 em{font-style:normal;background:linear-gradient(96deg,var(--jade),var(--cyan));
    -webkit-background-clip:text;background-clip:text;color:transparent}
  .hero p{font-size:clamp(15px,1.4vw,18px);line-height:1.85;color:var(--mist);max-width:54ch;font-weight:300}
  .actions{display:flex;align-items:center;gap:28px;margin-top:40px;flex-wrap:wrap}
  .btn{display:inline-flex;align-items:center;gap:11px;font:inherit;font-size:13.5px;letter-spacing:.06em;
    font-weight:400;color:var(--ink);background:transparent;cursor:pointer;
    appearance:none;-webkit-appearance:none;border:0;border-bottom:1px solid var(--ink);padding:0 0 5px;
    transition:gap .25s var(--ease),color .2s,border-color .2s}
  .btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6}
  .btn:hover{gap:18px;color:var(--brass);border-color:var(--brass)}
  .btn.ghost{border-color:transparent;color:var(--mist)}
  .btn.ghost:hover{color:var(--brass)}

  /* PILLARS */
  .pillars{display:grid;grid-template-columns:repeat(3,1fr)}
  .pillar{padding:0 36px;border-left:1px solid var(--line)}
  .pillar:first-child{padding-left:0;border-left:none}
  .pillar .tick{width:26px;height:2px;background:var(--jade);display:block}
  /* Icon accent for the home pillars (replaces the plain tick with a line icon) */
  .pillar .pillar-ic{display:block;width:30px;height:30px;color:var(--jade)}
  .pillar h3{font-family:"Playfair Display",serif;font-weight:500;font-size:24px;margin:18px 0 12px;
    letter-spacing:.02em}
  .pillar .pillar-ic + h3{margin-top:16px}
  .pillar p{font-size:14px;line-height:1.8;color:var(--mist);font-weight:300}

  /* FEATURED */
  .feature{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,5vw,80px);align-items:start}
  .q{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(32px,4vw,52px);
     line-height:1.12;letter-spacing:.01em}
  .feature .label{margin-top:26px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--jade)}
  .feature .label b{color:var(--ink);font-weight:600}
  .feature .desc{margin-top:22px;font-size:16px;line-height:1.85;color:var(--mist);font-weight:300}
  .chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
  .chip{font-size:12px;letter-spacing:.05em;color:var(--ink);border:1px solid var(--line);
    border-radius:999px;padding:7px 15px;background:rgba(255,255,255,.4)}
  .verified{display:flex;align-items:center;gap:14px;margin-top:38px}
  .verified .seal{flex:0 0 46px;width:46px;height:46px}
  .verified .seal-logo{font-size:24px}
  .verified small{font-size:13px;color:var(--mist);line-height:1.5}
  .verified small b{display:block;color:var(--ink);font-weight:500;letter-spacing:.04em}

  /* MISSION */
  .mission{background:var(--paper-2);margin:0 calc(-1*clamp(28px,4vw,64px));
    padding:clamp(70px,10vh,120px) clamp(28px,4vw,64px);text-align:center;border-bottom:1px solid var(--line)}
  .mission .eyebrow{display:block;margin-bottom:30px}
  .mission blockquote{font-family:"Montserrat",sans-serif;font-weight:500;font-size:clamp(28px,4vw,46px);
    line-height:1.4;letter-spacing:.01em;max-width:18ch;margin:0 auto}
  .mission blockquote .jade{background:linear-gradient(96deg,var(--jade),var(--cyan));
    -webkit-background-clip:text;background-clip:text;color:transparent}
  .mission .sub{margin-top:34px;font-size:15px;line-height:1.85;color:var(--mist);max-width:56ch;
    margin-left:auto;margin-right:auto;font-weight:300}

  /* ECOSYSTEM INDEX */
  .sec-head{margin-bottom:52px;max-width:62ch}
  /* Home products heading spans the full content column */
  #index .sec-head{max-width:none}
  /* Capabilities heading has no body paragraph — let it use the full width (one line) */
  .sec-head.cap-head{max-width:none}
  .sec-head h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(28px,3.4vw,40px);
    margin:18px 0 14px;letter-spacing:.01em}
  .sec-head p{font-size:15px;line-height:1.8;color:var(--mist);font-weight:300}
  .group{margin-bottom:44px}.group:last-child{margin-bottom:0}
  .group-title{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist);
    padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:4px}
  .prow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:30px;
    padding:24px 4px;border-bottom:1px solid var(--line);cursor:pointer;position:relative;
    transition:padding-left .3s var(--ease)}
  .prow:hover{padding-left:18px}
  .prow.soon{opacity:.4;pointer-events:none;cursor:default}
  .prow::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--jade);
    transition:width .4s var(--ease)}
  .prow:hover::after{width:100%}
  .prow .pq{font-family:"Playfair Display",serif;font-size:clamp(22px,2.4vw,29px);font-weight:400;letter-spacing:.01em}
  .prow:hover .pq{color:var(--jade)}
  .prow .pmeta{text-align:right;white-space:nowrap}
  .prow .pname{font-size:14px;font-weight:500;letter-spacing:.08em}
  .prow .pdesc{font-size:12px;color:var(--mist);margin-top:4px;letter-spacing:.03em}

  /* INNER PAGES: solo hero, prose, two-up cards, stat band, CTA */
  .hero.solo{grid-template-columns:1fr}
  .prose p{font-size:16px;line-height:1.85;color:var(--mist);font-weight:300;max-width:64ch;margin:0 0 20px}
  .prose a{color:var(--jade);text-decoration:underline;text-underline-offset:3px;transition:color .2s}
  .prose a:hover{color:var(--cyan)}
  .prose p:last-child{margin-bottom:0}
  .pillars.duo{grid-template-columns:repeat(2,1fr)}
  .stats{display:grid;grid-template-columns:repeat(3,1fr)}
  .stat{padding:0 34px;border-left:1px solid var(--line)}
  .stat:first-child{padding-left:0;border-left:none}
  .stat .n{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(28px,3.4vw,42px);color:var(--jade);line-height:1.05}
  .stat .sl{margin-top:14px;font-size:13.5px;line-height:1.7;color:var(--mist);font-weight:300}
  .note{margin-top:42px;font-size:15px;color:var(--ink);font-weight:400;letter-spacing:.01em}
  .cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px 28px;
    background:var(--paper-2);padding:clamp(28px,4vw,44px) clamp(28px,4vw,48px);border-radius:16px}
  .cta p{font-family:"Playfair Display",serif;font-size:clamp(19px,2.2vw,27px);font-weight:400;color:var(--ink);
    flex:1 1 16rem}
  .cta .btn{flex:0 0 auto}
  /* actions block can shrink + wrap so its buttons never overflow the band */
  .cta .cta-actions{flex:0 1 auto;min-width:0}
  .cta .btn{white-space:nowrap}
  /* Primary CTA: blue (cyan) by default, brass on hover. Fixed dark text for
     contrast on both the cyan and the brass across light & dark themes. */
  .btn.solid{background:var(--cyan);color:#10202A;border:1px solid var(--cyan);padding:13px 24px;border-radius:8px;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
  .btn.solid:hover{background:var(--brass-strong);border-color:var(--brass-strong);color:#10202A}
  /* "Coming soon" CTA: visible but non-interactive */
  .btn.solid.is-soon,.btn.solid:disabled{opacity:.5;cursor:default;pointer-events:none}
  .btn.solid.is-soon:hover,.btn.solid:disabled:hover{background:var(--cyan);border-color:var(--cyan);color:#10202A}
  .btn.solid svg{fill:currentColor}

  /* HOME: four product boxes */
  .prodgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.6vw,20px)}
  .prodbox{position:relative;display:block;border:1px solid var(--line);border-radius:12px;
    padding:clamp(24px,2.6vw,34px);background:var(--paper-2);
    transition:border-color .25s var(--ease),transform .25s var(--ease)}
  .prodbox:hover{border-color:var(--cyan);transform:translateY(-3px)}
  .pb-name{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--jade);font-weight:600}
  .pb-q{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(20px,2.1vw,26px);
    line-height:1.15;margin:14px 0 12px;color:var(--ink)}
  .pb-blurb{font-size:14px;line-height:1.7;color:var(--mist);font-weight:300;max-width:42ch}
  .pb-arrow{position:absolute;top:clamp(24px,2.6vw,34px);right:clamp(24px,2.6vw,34px);color:var(--mist);
    transition:color .2s,transform .25s var(--ease)}
  .pb-arrow svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
  .prodbox:hover .pb-arrow{color:var(--cyan);transform:translateX(4px)}
  @media(max-width:760px){ .prodgrid{grid-template-columns:1fr} }
  /* checklist — capability ticks (jade box + check), themes via --jade */
  .checklist{list-style:none;display:grid;gap:15px;max-width:64ch}
  .checklist li{display:flex;gap:14px;font-size:16px;line-height:1.7;color:var(--ink);font-weight:300}
  .checklist li::before{content:"";flex:0 0 20px;width:20px;height:20px;margin-top:3px;border-radius:5px;
    background:var(--jade) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/12px no-repeat}
  .checklist a{color:var(--jade);text-decoration:underline;text-underline-offset:3px;transition:color .2s}
  .checklist a:hover{color:var(--cyan)}
  @media(max-width:760px){
    .stats{grid-template-columns:1fr;gap:28px}
    .stat{border-left:none;padding:0}
    .pillars.duo{grid-template-columns:1fr}
  }

  /* FOOTER */
  .foot{background:var(--sumi);color:#C9CEC9;margin:0 calc(-1*clamp(28px,4vw,64px));
    padding:clamp(56px,8vh,90px) clamp(28px,4vw,64px) 40px}
  .foot-grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:48px}
  .foot-brand .wm{font-family:"Playfair Display",serif;font-size:24px;letter-spacing:.14em;color:#fff}
  .foot-brand .wm span{color:var(--jade-soft)}
  /* official registered logo (teal letters + cyan swoosh); lift slightly on dark */
  .foot-logo{height:50px;width:auto;display:block}
  .foot-brand p{font-size:13.5px;line-height:1.85;color:var(--mist-d);margin-top:18px;max-width:34ch;font-weight:300}
  .fcol h4{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist-d);line-height:1.2;margin-bottom:20px}
  /* continuation column (blank heading): reserve the heading's height so links align */
  .fcol-spacer{height:13.2px;margin-bottom:20px}
  .fcol a{display:block;font-size:14px;color:#C9CEC9;padding:7px 0;font-weight:300;transition:color .2s}
  .fcol a:hover{color:#fff}
  .foot-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-top:56px;padding-top:26px;
    border-top:1px solid var(--line-d);font-size:12px;color:var(--mist-d);letter-spacing:.04em}
  .foot-bar a{flex:0 0 auto}
  .foot-bar .lang{margin-left:auto}.foot-bar .lang b{color:#fff}.foot-bar .lang span{color:var(--mist-d)}
  .foot-bar a{color:var(--mist-d);transition:color .2s}.foot-bar a:hover{color:#fff}
  /* Social share row (footer is dark in both themes) */
  .foot-socials{display:flex;justify-content:space-between;gap:28px 56px;flex-wrap:wrap;
    margin-top:44px;padding-top:30px;border-top:1px solid var(--line-d)}
  @media(max-width:760px){ .foot-socials{flex-direction:column;gap:26px} }
  .foot-share-label{display:block;font-family:"Montserrat",sans-serif;font-size:10px;letter-spacing:.28em;
    text-transform:uppercase;color:var(--mist-d);margin-bottom:16px}
  .foot-share-icons{display:flex;flex-wrap:wrap;gap:10px}
  .share-ic{position:relative;width:36px;height:36px;border:1px solid var(--line-d);border-radius:9px;display:grid;
    place-items:center;color:#C9CEC9;cursor:pointer;background:transparent;transition:color .2s,border-color .2s,background .2s,transform .2s}
  .share-ic svg{width:17px;height:17px;display:block}
  .share-ic:hover{color:#fff;border-color:var(--cyan);background:rgba(255,255,255,.05);transform:translateY(-2px)}
  /* "Link copied!" tooltip on the Instagram copy button */
  .share-ic.copied::after{content:attr(data-copied-label);position:absolute;bottom:calc(100% + 8px);left:50%;
    transform:translateX(-50%);background:var(--sumi-2);color:#fff;font-family:"Montserrat",sans-serif;
    font-size:10.5px;letter-spacing:.04em;padding:5px 9px;border-radius:6px;white-space:nowrap;pointer-events:none;
    box-shadow:0 6px 18px rgba(0,0,0,.35)}

  /* ── Legal / privacy-policy long-form ── */
  .legal{max-width:none}
  .legal h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(22px,2.6vw,30px);
    letter-spacing:.01em;margin:48px 0 14px;padding-top:8px}
  .legal h2:first-child{margin-top:0}
  .legal h3{font-family:"Montserrat",sans-serif;font-weight:600;font-size:13px;letter-spacing:.08em;
    text-transform:uppercase;color:var(--jade);margin:30px 0 10px}
  .legal p{font-size:15.5px;line-height:1.85;color:var(--mist);font-weight:300;margin:0 0 18px}
  .legal ul{margin:0 0 20px;padding-left:22px;display:flex;flex-direction:column;gap:10px}
  .legal li{font-size:15.5px;line-height:1.7;color:var(--mist);font-weight:300}
  .legal li::marker{color:var(--jade)}
  .legal a{color:var(--jade);text-decoration:underline;text-underline-offset:3px}
  .legal strong{color:var(--ink);font-weight:600}

  /* ───────────────────────── RIGHT SIGNALS RAIL ───────────────────────── */
  .signals{
    flex:0 0 var(--signals);width:var(--signals);
    background:var(--paper-rail);border-left:1px solid var(--line);
    transition:width .42s var(--ease),flex-basis .42s var(--ease),opacity .3s,border-color .3s;
  }
  .sig-inner{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}
  /* Collapse only applies on mobile/tablet (<1240px); see media query below. */
  .sig-head{display:flex;align-items:center;gap:12px;padding:0 22px;height:68px;
    border-bottom:1px solid var(--line);background:var(--paper-rail);position:sticky;top:0;z-index:2}
  .sig-head h3{font-family:"Playfair Display",serif;font-weight:500;font-size:18px;letter-spacing:.04em;
    white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .sig-title-link{color:inherit;text-decoration:none;transition:color .2s}
  .sig-title-link:hover{color:var(--cyan)}
  @keyframes pulse{0%{transform:scale(.6);opacity:.7}100%{transform:scale(1.8);opacity:0}}
  .sig-collapse{margin-left:auto;width:26px;height:26px;border:none;background:transparent;cursor:pointer;
    display:none;place-items:center;color:var(--mist);transition:color .2s}
  .sig-collapse:hover{color:var(--ink)}
  .sig-filters{display:flex;gap:8px;padding:16px 22px;border-bottom:1px solid var(--line);
    flex-wrap:wrap;background:var(--paper-rail)}
  .fchip{font-size:11.5px;letter-spacing:.06em;color:var(--mist);background:transparent;border:1px solid var(--line);
    border-radius:999px;padding:5px 13px;cursor:pointer;transition:.2s;white-space:nowrap}
  .fchip:hover{color:var(--brass);border-color:var(--brass)}
  .fchip.on{background:var(--cyan);color:#10202A;border-color:var(--cyan)}
  .fchip.on:hover{background:var(--brass-strong);border-color:var(--brass-strong);color:#10202A}

  .sig-scroll{flex:1;overflow-y:auto;padding:6px 0 30px}
  .sig-scroll::-webkit-scrollbar{width:6px}
  .sig-scroll::-webkit-scrollbar-thumb{background:var(--scrollthumb);border-radius:3px}
  .sig{padding:20px 22px;border-bottom:1px solid var(--line);transition:background .2s;cursor:pointer}
  .sig:hover{background:var(--sig-hover)}
  .sig-link{display:block;color:inherit;text-decoration:none}
  .sig-top{display:flex;align-items:center;gap:10px;margin-bottom:11px}
  .av{flex:0 0 30px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
    font-size:12px;font-weight:500;color:#fff;font-family:"Playfair Display",serif}
  .av.jade{background:var(--jade)}
  .av.aer{background:rgba(181,71,43,.08);border:1.5px solid var(--shu);color:var(--shu)}
  .badge{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
    padding:3px 8px;border-radius:4px}
  .badge.x{background:var(--ink);color:var(--paper)}
  .badge.news{background:rgba(21,117,107,.12);color:var(--jade)}
  .badge.article{background:rgba(110,118,114,.14);color:var(--mist)}
  .sig-src{font-size:12px;color:var(--mist);letter-spacing:.02em}
  .sig-src b{color:var(--ink);font-weight:500}
  .sig-src .tick{color:var(--jade);font-size:11px}
  .sig-text{font-size:14px;line-height:1.6;color:var(--ink);font-weight:300}
  .sig-head4{font-family:"Playfair Display",serif;font-weight:500;font-size:16px;line-height:1.4;color:var(--ink)}
  .sig-excerpt{font-size:13px;line-height:1.65;color:var(--mist);margin-top:8px;font-weight:300}
  .sig-metrics{display:flex;gap:18px;margin-top:12px;font-size:12px;color:var(--mist);letter-spacing:.03em}
  .sig-loader{display:flex;align-items:center;justify-content:center;gap:10px;padding:26px;
    font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mist)}
  .spin{width:15px;height:15px;border:2px solid var(--line);border-top-color:var(--jade);border-radius:50%;
    animation:spin .8s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}

  .sig-reopen{display:none;position:fixed;right:0;top:50%;z-index:30;transform:translateY(-50%) translateX(105%);
    background:var(--sumi);color:#E9EBE7;border:none;cursor:pointer;padding:18px 11px;
    border-radius:8px 0 0 8px;writing-mode:vertical-rl;font-family:inherit;font-size:12px;
    letter-spacing:.22em;text-transform:uppercase;transition:transform .42s var(--ease);
    box-shadow:-8px 0 24px rgba(0,0,0,.14)}
  body.signals-collapsed .sig-reopen{transform:translateY(-50%) translateX(0)}
  .sig-reopen:hover{color:var(--jade-soft)}

  /* ───────────────────────── NEWS page: filter tabs + feed cards ───────────────────────── */
  .newsfilters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 34px}
  .newsfilter{font-size:12.5px;letter-spacing:.05em;color:var(--mist);border:1px solid var(--line);
    border-radius:999px;padding:7px 16px;cursor:pointer;background:transparent;transition:.2s}
  .newsfilter:hover{color:var(--ink)}
  .newsfilter.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .newsgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(16px,2vw,24px)}
  /* News page — categorized rows */
  .news-cat{padding:clamp(32px,4.5vh,56px) 0;border-bottom:1px solid var(--line)}
  .news-cat:last-child{border-bottom:none}
  .news-cat-head{display:flex;align-items:center;gap:18px;margin-bottom:26px;flex-wrap:wrap}
  .news-ext{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mist);
    border:1px solid var(--line);border-radius:999px;padding:3px 11px}
  .news-follow{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
  .news-follow a{display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:.04em;
    color:var(--mist);border:1px solid var(--line);border-radius:999px;padding:6px 13px;
    text-decoration:none;transition:color .2s,border-color .2s}
  .news-follow a:hover{color:var(--jade);border-color:var(--jade)}
  .news-follow svg{width:13px;height:13px;flex:0 0 13px}
  /* Mobile: follow buttons align left and wrap instead of overflowing the right edge */
  @media(max-width:760px){ .news-follow{margin-left:0;width:100%} }
  .news-cat-head h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(22px,2.6vw,30px);
    letter-spacing:.01em;margin:0}
  .news-seeall{font-size:12px;letter-spacing:.05em;color:var(--jade);border:1px solid var(--line);
    border-radius:999px;padding:6px 15px;transition:color .2s,border-color .2s,background .2s}
  .news-seeall:hover{color:var(--cyan);border-color:var(--cyan)}
  .news-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:clamp(16px,1.8vw,24px)}
  .nc-net{width:15px;height:15px;flex:0 0 15px;margin-left:auto;color:var(--mist)}
  .badge.press{background:rgba(41,171,226,.12);color:var(--cyan)}
  /* Back link (press archive / detail pages) */
  .back-link[hidden]{display:none}
  .back-link{display:flex;width:fit-content;align-items:center;gap:8px;margin-bottom:18px;
    font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--mist);
    text-decoration:none;transition:color .2s}
  .back-link:hover{color:var(--ink)}
  .back-link svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;
    stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
  .back-link:hover svg{transform:translateX(-3px)}
  /* Blog detail + press archive */
  /* Blog/press detail: smaller heading + subtitle (matches product-page sizing) */
  .hero.post-hero h1{font-size:clamp(28px,3.4vw,40px);line-height:1.15}
  .post-sub{font-family:"Playfair Display",serif;font-weight:400;font-size:clamp(18px,2vw,25px);
    line-height:1.35;color:var(--ink);margin:12px 0 0;max-width:60ch}
  .post-byline{color:var(--mist);font-size:14px;letter-spacing:.02em}
  .post-body p{max-width:none;margin-bottom:18px}
  .post-body p:last-child{margin-bottom:0}
  .post-body h3{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(18px,2vw,23px);
    margin:30px 0 12px}
  /* FAQ accordion */
  .faq-cat{padding:clamp(26px,4vw,44px) 0;border-bottom:none}
  .faq-cat:last-of-type{padding-bottom:clamp(56px,9vh,104px)}
  .faq-cat-title{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--jade);margin-bottom:22px}
  .faq-list{display:flex;flex-direction:column;gap:12px}
  /* FAQ hero + questions fill the full content column (no narrow caps) */
  .faq-hero .hero-copy{max-width:none}
  .faq-hero .hero p{max-width:64ch}
  .faq-item{border:1px solid var(--line);border-radius:12px;background:var(--paper-2);overflow:hidden}
  .faq-q{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
    gap:20px;padding:19px clamp(18px,2.4vw,26px);font-family:"Playfair Display",serif;font-weight:500;
    font-size:clamp(17px,1.7vw,20px);line-height:1.4;color:var(--ink);transition:color .2s}
  .faq-q::-webkit-details-marker{display:none}
  .faq-q::marker{content:""}
  .faq-item:hover .faq-q,.faq-item[open] .faq-q{color:var(--jade)}
  .faq-ico{position:relative;flex:0 0 24px;width:24px;height:24px;border:1px solid var(--line);
    border-radius:50%;transition:border-color .2s}
  .faq-item:hover .faq-ico,.faq-item[open] .faq-ico{border-color:var(--jade)}
  .faq-ico::before,.faq-ico::after{content:"";position:absolute;left:50%;top:50%;
    background:currentColor;transform:translate(-50%,-50%)}
  .faq-ico::before{width:11px;height:1.6px}
  .faq-ico::after{width:1.6px;height:11px;transition:transform .25s var(--ease)}
  .faq-item[open] .faq-ico::after{transform:translate(-50%,-50%) scaleY(0)}
  .faq-a{padding:0 clamp(18px,2.4vw,26px) 22px}
  .faq-a p{font-size:15px;line-height:1.85;color:var(--mist);font-weight:300;max-width:none}
  .faq-a strong{color:var(--ink);font-weight:600}
  .faq-a a{color:var(--jade);text-decoration:underline;text-underline-offset:3px;transition:color .2s}
  .faq-a a:hover{color:var(--cyan)}
  .fido-cert{display:block;width:auto;height:auto;max-width:200px;margin:20px 0 4px;filter:var(--fido-filter)}
  .faq-photo{display:block;width:100%;max-width:760px;height:auto;margin:22px 0 4px;
    border:1px solid var(--line);border-radius:12px}
  .faq-item[open] .faq-a{animation:faqIn .3s var(--ease)}
  @keyframes faqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .press-list{display:grid;max-width:880px}
  .press-item{display:grid;grid-template-columns:130px 1fr;gap:clamp(16px,3vw,44px);
    padding:26px 0;border-top:1px solid var(--line);color:inherit;transition:opacity .2s}
  .press-list li:first-child .press-item{border-top:none;padding-top:0}
  a.press-item:hover .press-meta h3{color:var(--cyan)}
  .press-meta h3{transition:color .2s}
  .press-date{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mist);padding-top:6px}
  .press-item h3{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(18px,2.1vw,24px);
    line-height:1.3;margin:0 0 8px}
  .press-item p{font-size:15px;line-height:1.7;color:var(--mist);font-weight:300;margin:0}
  @media(max-width:640px){ .press-item{grid-template-columns:1fr;gap:6px} }
  .newscard{display:block;border:1px solid var(--line);border-radius:12px;
    padding:clamp(20px,2.2vw,28px);background:var(--paper-2);
    transition:border-color .25s var(--ease),transform .25s var(--ease)}
  a.newscard:hover{border-color:var(--cyan);transform:translateY(-3px)}
  .newscard .nc-top{display:flex;align-items:center;gap:10px;margin-bottom:14px}
  .nc-src{font-size:12.5px;color:var(--mist);letter-spacing:.02em}
  .nc-src b{color:var(--ink);font-weight:500}
  .nc-src .tick{color:var(--cyan);font-size:11px}
  .nc-title{font-family:"Playfair Display",serif;font-weight:500;font-size:18px;line-height:1.35;color:var(--ink);margin-bottom:10px}
  a.newscard:hover .nc-title{color:var(--cyan)}
  .nc-excerpt{font-size:14px;line-height:1.65;color:var(--mist);font-weight:300}
  .nc-text{font-size:15px;line-height:1.6;color:var(--ink);font-weight:300}
  .nc-metrics{display:flex;gap:18px;margin-top:14px;font-size:12.5px;color:var(--mist);letter-spacing:.03em}
  @media(max-width:760px){ .newsgrid{grid-template-columns:1fr} }

  /* ───────────────────────── CONTACT: map + location cards ───────────────────────── */
  .map-head{display:flex;align-items:center;gap:12px;margin-bottom:22px}
  .map-panel{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;
    isolation:isolate;background:var(--hero-art-bg);aspect-ratio:3/2}
  .map-img{display:block;width:100%;height:100%;object-fit:cover;
    mix-blend-mode:var(--hero-art-blend);filter:var(--hero-art-filter)}
  /* brand jade→cyan duotone over the world map (arc + markers sit above it) */
  .map-panel::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:var(--hero-tint-bg);mix-blend-mode:var(--hero-tint-blend);opacity:var(--hero-tint-opacity)}
  .map-arc{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
  .map-arc path{stroke:var(--cyan);stroke-width:1.6;stroke-dasharray:5 7;stroke-linecap:round;
    opacity:.7;vector-effect:non-scaling-stroke}
  .map-marker{position:absolute;transform:translate(-50%,-50%);z-index:3}
  .mdot{display:block;width:12px;height:12px;border-radius:50%;background:var(--cyan);
    box-shadow:0 0 0 4px rgba(41,171,226,.18);position:relative}
  .mdot::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid var(--cyan);
    animation:pulse 2.4s ease-out infinite}
  .mlabel{position:absolute;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);
    background:var(--topbar);backdrop-filter:blur(6px);padding:4px 9px;border-radius:5px;
    border:1px solid var(--line);white-space:nowrap}
  .m-below .mlabel{left:50%;top:16px;transform:translateX(-50%)}
  .m-right .mlabel{left:16px;top:50%;transform:translateY(-50%)}
  .m-left .mlabel{right:16px;top:50%;transform:translateY(-50%)}

  .loc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(20px,3vw,40px)}
  .loc-card{border:1px solid var(--line);border-radius:12px;padding:clamp(24px,3vw,38px);background:var(--paper-2)}
  .loc-card h3{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(20px,2.2vw,26px);
    margin:14px 0 18px;color:var(--ink)}
  .loc-addr{font-style:normal;display:block;font-size:14.5px;line-height:1.7;color:var(--mist);font-weight:300}
  .loc-addr span{display:block}
  .loc-rows{margin-top:22px;display:grid;gap:12px}
  .loc-row{display:flex;justify-content:space-between;gap:16px;align-items:baseline;
    border-top:1px solid var(--line);padding-top:12px}
  /* sub-row: a follow-on detail (e.g. text/phone) grouped tight under the row above */
  .loc-row.sub{border-top:0;padding-top:0;margin-top:-4px}
  .loc-rows:has(.loc-row.sub){gap:14px}
  .loc-row .rl{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mist)}
  .loc-row a{color:var(--jade);font-size:14.5px;transition:color .2s}
  .loc-row a:hover{color:var(--cyan)}
  .loc-sites{display:grid;gap:24px}
  .loc-site h4{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
  .loc-site a{display:inline-block;margin-top:8px;color:var(--jade);font-size:14.5px;transition:color .2s}
  .loc-site a:hover{color:var(--cyan)}

  /* ── Partnerships ── */
  .partner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(20px,2.5vw,32px)}
  .partner-card{display:flex;flex-direction:column;background:var(--paper-2);border:1px solid var(--line);
    border-radius:14px;padding:clamp(26px,3vw,40px);transition:border-color .2s,transform .2s,background .2s}
  .partner-card:hover{border-color:var(--cyan);transform:translateY(-3px)}
  .partner-logo{min-height:84px;display:flex;align-items:center;margin-bottom:22px}
  /* logo tile: each partner logo sits on a brand-appropriate plate */
  .partner-logo.fit-contain,.partner-logo.fit-cover{height:104px;min-height:0;justify-content:center;
    border-radius:11px;overflow:hidden}
  .partner-logo.fit-contain{padding:20px 22px}
  .partner-logo.fit-contain img{max-height:100%;max-width:100%;width:auto;height:auto;display:block}
  .partner-logo.fit-cover img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
  .partner-wordmark{font-family:"Montserrat",sans-serif;font-weight:700;font-size:clamp(24px,2.6vw,32px);
    letter-spacing:-.01em;line-height:1.1}
  .partner-desc{font-size:15px;line-height:1.75;color:var(--mist);font-weight:300;margin:0 0 22px;flex:1}
  .partner-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;letter-spacing:.04em;
    color:var(--jade);font-weight:500;transition:color .2s}
  .partner-card:hover .partner-link{color:var(--cyan)}
  /* Product demo video — left-aligned heading (like other sections), centered video + caption.
     Heading and caption span the full content column (no narrow caps). */
  .demo-section .sec-head{max-width:none}
  .demo-wrap{max-width:920px;margin:0 auto;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#000}
  .demo-video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#000}
  .demo-desc{font-size:15.5px;line-height:1.8;color:var(--mist);font-weight:300;max-width:none;margin:24px auto 0;text-align:center}
  .demo-note{font-size:13.5px;line-height:1.7;color:var(--mist);font-weight:300;max-width:none;text-align:center;
    margin:18px auto 0;padding:14px 18px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}

  /* NIST compliance tooltip — hover/focus reveals the standards list (text in --nist-tip) */
  .nist{position:relative;border-bottom:1px dotted currentColor;cursor:help;color:inherit;font:inherit;
    outline:none;white-space:nowrap}
  .nist::after{content:var(--nist-tip);position:absolute;left:50%;top:calc(100% + 11px);transform:translateX(-50%);
    width:max-content;max-width:min(300px,76vw);background:var(--paper-2);color:var(--ink);border:1px solid var(--line);
    border-radius:10px;padding:11px 14px;font-family:"Montserrat",sans-serif;font-size:13px;line-height:1.55;
    font-weight:400;letter-spacing:.01em;text-align:left;white-space:normal;
    box-shadow:0 12px 34px rgba(0,0,0,.34);opacity:0;visibility:hidden;transition:opacity .18s var(--ease);
    z-index:80;pointer-events:none}
  .nist::before{content:"";position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);
    border:6px solid transparent;border-bottom-color:var(--line);
    opacity:0;visibility:hidden;transition:opacity .18s var(--ease);z-index:80;pointer-events:none}
  .nist:hover::after,.nist:focus::after,.nist:hover::before,.nist:focus::before{opacity:1;visibility:visible}
  @media(prefers-reduced-motion:reduce){.nist::after,.nist::before{transition:none}}

  /* Jump-to-top — desktop only; appears near the end of the page, bottom-right of the center column */
  .to-top{position:fixed;bottom:26px;right:calc(var(--signals) + 26px);z-index:40;
    width:46px;height:46px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
    background:var(--cyan);color:#10202A;border:1px solid var(--cyan);box-shadow:0 8px 24px rgba(0,0,0,.28);
    opacity:0;visibility:hidden;transform:translateY(10px);
    transition:opacity .25s var(--ease),transform .25s var(--ease),background .2s var(--ease),border-color .2s var(--ease)}
  .to-top.show{opacity:1;visibility:visible;transform:none}
  .to-top:hover{background:var(--brass-strong);border-color:var(--brass-strong)}
  .to-top svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  body.signals-collapsed .to-top,body.no-signals .to-top{right:26px}
  @media(max-width:980px){.to-top{display:none!important}}
  @media(prefers-reduced-motion:reduce){.to-top{transition:opacity .2s}}

  /* Careers — what we offer */
  /* Careers blurb spans the full content column (not the 64ch prose cap) */
  #careers .prose p{max-width:none}
  .careers-benefits{margin-top:clamp(34px,4vw,52px)}
  .benefits-h{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(20px,2.2vw,26px);
    margin-bottom:24px;letter-spacing:.01em}

  /* Become-a-partner band */
  .become{background:var(--paper-2);border:1px solid var(--line);border-radius:16px;
    padding:clamp(34px,5vw,68px);text-align:center}
  .become .eyebrow{display:block;margin-bottom:14px}
  .become h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(26px,3.2vw,40px);
    letter-spacing:.01em;margin:0 0 16px}
  .become p{font-size:16px;line-height:1.8;color:var(--mist);font-weight:300;max-width:56ch;margin:0 auto 30px}

  /* ── Contact modal (homepage + product CTAs) ── */
  .cmodal{position:fixed;inset:0;z-index:80;display:none;place-items:center;padding:24px}
  .cmodal.open{display:grid}
  .cmodal-backdrop{position:absolute;inset:0;background:rgba(8,11,13,.62);backdrop-filter:blur(3px)}
  .cmodal-box{position:relative;z-index:1;width:min(540px,100%);background:var(--paper);color:var(--ink);
    border:1px solid var(--line);border-radius:16px;padding:clamp(28px,4vw,44px);
    box-shadow:0 30px 80px rgba(0,0,0,.4);animation:cmodal-in .28s var(--ease)}
  @keyframes cmodal-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  .cmodal-close{position:absolute;top:16px;right:16px;width:34px;height:34px;border:none;background:transparent;
    cursor:pointer;color:var(--mist);display:grid;place-items:center;border-radius:8px;transition:color .2s,background .2s}
  .cmodal-close:hover{color:var(--ink);background:var(--paper-2)}
  .cmodal-title{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(21px,2.5vw,29px);
    line-height:1.25;letter-spacing:.01em;margin:0 32px 26px 0;max-width:26ch}
  .cmodal-people{display:flex;flex-direction:column;gap:22px}
  .cperson{display:flex;flex-direction:column;gap:5px}
  .cp-name{font-weight:600;font-size:16px;color:var(--ink)}
  .cp-role{font-weight:400;color:var(--mist)}
  .cp-line{font-size:15px;color:var(--jade);width:fit-content;transition:color .2s}
  .cp-line:hover{color:var(--cyan)}
  @media(prefers-reduced-motion:reduce){.cmodal-box{animation:none}}

  /* ── Order / purchase form modal (reuses the .cmodal shell) ── */
  .order-box{width:min(560px,100%)}
  .order-form{display:flex;flex-direction:column;gap:17px}
  .of-field{display:flex;flex-direction:column;gap:7px}
  .of-field label{font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--jade)}
  .of-req{color:var(--cyan)}
  .of-field input,.of-select{width:100%;font:inherit;font-size:15px;color:var(--ink);
    background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;
    transition:border-color .18s,box-shadow .18s}
  .of-field input::placeholder{color:var(--mist)}
  .of-field input:focus,.of-select:focus{outline:none;border-color:var(--cyan);
    box-shadow:0 0 0 3px rgba(41,171,226,.18)}
  .of-select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:40px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237A868A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 13px center}
  .of-phone{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr);gap:10px}
  .of-consent{font-size:12.5px;line-height:1.6;color:var(--mist);margin:3px 0 0}
  .of-consent a{color:var(--jade);text-decoration:underline;text-underline-offset:3px;transition:color .2s}
  .of-consent a:hover{color:var(--cyan)}
  .of-submit{display:flex;width:100%;justify-content:center;margin-top:8px}
  @media(max-width:480px){ .of-phone{grid-template-columns:1fr} }

  /* responsive */
  @media(max-width:1240px){
    .signals{position:fixed;top:0;right:0;z-index:31;box-shadow:-20px 0 60px rgba(0,0,0,.16)}
    body:not(.signals-collapsed) .feed{max-width:none}
    /* Right-rail collapse is mobile/tablet-only (removed on desktop). */
    body.signals-collapsed .signals{width:0;flex-basis:0;opacity:0;border-left-color:transparent}
    .sig-collapse{display:grid}
    .sig-reopen{display:block}
  }
  @media(max-width:1080px){
    .feature{grid-template-columns:1fr;gap:38px}
    /* Footer: brand on its own full-width row, link columns in a tidy 3-up below */
    .foot-grid{grid-template-columns:repeat(3,1fr)}
    .foot-brand{grid-column:1/-1;margin-bottom:8px}
  }
  @media(max-width:760px){
    /* Left rail → off-canvas drawer (opened by the top-bar hamburger) */
    .rail{position:fixed;left:0;top:0;height:100dvh;width:min(84vw,300px);flex-basis:auto;
      transform:translateX(-100%);transition:transform .4s var(--ease);z-index:60;padding-top:18px}
    body.nav-open .rail{transform:none;box-shadow:12px 0 50px rgba(0,0,0,.45)}
    body.collapsed .rail{width:min(84vw,300px)}      /* desktop collapse N/A on mobile */
    .rail .toggle{display:none}
    /* Use the dynamic viewport (excludes browser chrome) so the drawer matches the
       visible area, and give the scrollable nav bottom room so its last items (FAQ)
       clear iOS Safari's floating URL/toolbar and the home indicator. */
    .rail-inner{height:100dvh}
    .nav{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
    .wordmark,.nav-item .lbl,.nav-group-label,.seal-cap{opacity:1!important} /* always expanded in drawer */
    .stream{margin-left:0}
    .nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:55;
      opacity:0;visibility:hidden;transition:opacity .3s var(--ease)}
    body.nav-open .nav-backdrop{opacity:1;visibility:visible}
    .navbar-burger{display:grid}
    .topbar{gap:12px;padding:0 18px}
    .search{display:none}
    .theme-toggle{margin-left:auto}
    .feed{padding:0 20px}
    .pillars{grid-template-columns:1fr}
    .pillar{border-left:none;padding:0 0 28px}
    .pillar:not(:last-child){border-bottom:1px solid var(--line);margin-bottom:28px}
    .foot-grid{grid-template-columns:1fr 1fr;gap:34px}
    .loc-grid{grid-template-columns:1fr}
    .map-panel{aspect-ratio:4/3}
    .signals{width:min(90vw,360px)}
    .cta{flex-direction:column;align-items:flex-start;gap:18px}
    .cta p{flex:0 0 auto}
    .hero .eyebrow{font-size:13px}
  }
  /* Landscape phones (short viewports, but wider than the 760px breakpoint):
     collapse the left rail into the hamburger drawer so it doesn't eat the screen.
     max-width guard keeps tablets/laptops (taller in landscape) on the full rail. */
  @media (max-height:500px) and (max-width:1024px){
    .rail{position:fixed;left:0;top:0;height:100dvh;width:min(80vw,300px);flex-basis:auto;
      transform:translateX(-100%);transition:transform .4s var(--ease);z-index:60}
    .rail-inner{height:100dvh;overflow-y:auto;padding:18px 0 calc(96px + env(safe-area-inset-bottom))}
    body.nav-open .rail{transform:none;box-shadow:12px 0 50px rgba(0,0,0,.45)}
    body.collapsed .rail{width:min(80vw,300px)}
    .rail .toggle{display:none}
    .wordmark,.nav-item .lbl,.nav-group-label,.seal-cap{opacity:1!important}
    .stream{margin-left:0}
    .nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:55;
      opacity:0;visibility:hidden;transition:opacity .3s var(--ease)}
    body.nav-open .nav-backdrop{opacity:1;visibility:visible}
    .navbar-burger{display:grid}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition-duration:.001ms!important}
    .reveal{opacity:1;transform:none}
  }
  :focus-visible{outline:2px solid var(--jade);outline-offset:3px;border-radius:3px}
