/* Self-hosted webfonts. Archivo and IBM Plex Mono are both under the SIL Open Font
   License 1.1, which permits redistribution; the licences are in fonts/.

   Subsets are latin and latin-ext — exactly what fonts.gstatic.com served before, so
   glyph coverage is unchanged. Seven characters used in the copy (→ ↗ ↔ ▾ ₂ ⁰ ⁻)
   fall outside both subsets and render in the fallback stack; that was already true
   when Google served the fonts, so nothing about the page changes.

   Archivo is one variable file per subset spanning 400-700. Google was already serving
   it that way: the four weight URLs all resolved to the same bytes. */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/archivo-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
--bg:#08090B;--bg2:#0B0D10;--pnl:#0F1216;
--line:rgba(255,255,255,.10);--line2:rgba(255,255,255,.058);
--tx:#F2F3F5;--tx2:#9AA1AB;--tx3:#7B838D;
--acc:#F2F3F5;                       /* structural / parent */
--cool:#2E86FF;--cool2:#5AA1FF;      /* intelligent systems */
--warm:#E8763A;--warm2:#F08F5C;      /* energy & industry */
--coolg:rgba(46,134,255,.13);--warmg:rgba(232,118,58,.11);
/* Feedback states. A separate axis from the domain palette in DESIGN-RULES §2: these
   encode the outcome of an action, never a content domain. Green is the KyperX green
   already used on ai.kyperx.com, so a confirmation reads the same on both sites. */
--ok:#5FC48E;--okl:rgba(95,196,142,.42);
--bad:#E5837A;--badl:rgba(229,131,122,.42);
--d:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
--m:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
--ez:cubic-bezier(.22,.61,.36,1);
--mk:url("data:image/png;base64,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")}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font-family:var(--d);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%}
.grain{position:fixed;inset:0;z-index:70;pointer-events:none;opacity:.03;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--acc);color:#08090B;padding:12px 18px;font-family:var(--m);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.skip:focus{left:12px;top:12px}
.ct{max-width:1360px;margin:0 auto;padding:0 46px}
@media(max-width:1180px){.ct{padding:0 34px}}
@media(max-width:860px){.ct{padding:0 22px}}

/* ---------- type ---------- */
h1{font-size:clamp(2.5rem,6vw,5rem);font-weight:700;letter-spacing:-.045em;line-height:1;margin:0 0 28px;max-width:17ch;text-wrap:balance}
h2{font-size:clamp(1.85rem,3.4vw,2.85rem);font-weight:600;letter-spacing:-.035em;line-height:1.08;margin:0 0 18px;max-width:20ch;text-wrap:balance}
h3{font-size:1.375rem;font-weight:600;letter-spacing:-.026em;line-height:1.16;margin:0 0 12px}
h4{font-size:1.0625rem;font-weight:600;letter-spacing:-.016em;margin:0 0 8px}
.lede{font-size:clamp(1.0625rem,1.45vw,1.3125rem);line-height:1.52;color:var(--tx2);max-width:60ch;margin:0 0 34px}
.lbl{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx3);display:flex;align-items:center;gap:12px;margin:0 0 24px}
.lbl:before{content:"";height:1px;width:26px;background:var(--acc);flex:none}
.lbl.c:before{background:var(--cool)}.lbl.w:before{background:var(--warm)}
.mono{font-family:var(--m);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--tx3)}

/* ---------- system line: SENSE -> COMPUTE -> ... ---------- */
.sysl{display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);margin:0}
.sysl b{font-weight:400;color:var(--tx2)}
.sysl i{font-style:normal;color:var(--tx3);opacity:.55;padding:0 5px}
.sysl.c b{color:var(--cool2)}.sysl.w b{color:var(--warm2)}

/* ---------- status ---------- */
.stat{display:inline-flex;align-items:center;gap:9px;font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);border:1px solid var(--line2);padding:7px 12px;margin:0 0 18px}
.stat:before{content:"";width:5px;height:5px;background:var(--tx3);transform:rotate(45deg);flex:none}
.stat.live{color:var(--cool2);border-color:rgba(46,134,255,.32)}
.stat.live:before{background:var(--cool)}

/* ---------- header ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;border-bottom:1px solid transparent;transition:background .3s,border-color .3s}
header.stuck{background:rgba(8,9,11,.82);backdrop-filter:blur(14px);border-bottom-color:var(--line2)}
.hi{display:flex;align-items:center;justify-content:space-between;height:76px;gap:26px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--tx)}
.mk{width:26px;height:22px;background:var(--acc);-webkit-mask:var(--mk) center/contain no-repeat;mask:var(--mk) center/contain no-repeat;flex:none}
.wm{font-size:17px;font-weight:600;letter-spacing:-.015em}
nav{display:flex;gap:34px;align-items:center}
nav a{position:relative;color:var(--tx2);text-decoration:none;font-size:14px;padding:4px 0}
nav a:after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--acc);transition:width .35s var(--ez)}
nav a:hover{color:var(--tx)}nav a:hover:after{width:100%}
nav a.cur{color:var(--tx)}nav a.cur:after{width:100%}
nav a.ext:after{background:var(--cool)}
nav a:focus-visible,.brand:focus-visible{outline:2px solid var(--acc);outline-offset:4px}
.nvi{position:relative;display:flex;align-items:center;gap:7px}
.nvt{background:none;border:none;color:var(--tx3);cursor:pointer;font-size:11px;padding:0;line-height:1;font-family:var(--d);
 display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:0 -5px}
@media(pointer:coarse){.nvt{min-width:44px;min-height:44px;margin:0 -8px 0 0}}
.nvt:hover{color:var(--tx)}.nvt:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.dd{position:absolute;top:calc(100% + 14px);left:-16px;min-width:262px;background:rgba(11,13,16,.97);backdrop-filter:blur(14px);border:1px solid var(--line);padding:8px 0;display:none;flex-direction:column;z-index:60}
.dd.open{display:flex}
/* hover bridge: the panel sits 14px below the trigger; without this the pointer
   crosses dead space on the way down and mouseleave closes the menu. 15px so a
   subpixel-rounded seam cannot open up. position:absolute is load-bearing --
   .dd is a flex column, so a static pseudo-element would become a flex item and
   add 15px of phantom space at the top of the panel. */
.dd:before{content:"";position:absolute;left:0;right:0;top:-15px;height:15px}
.dd a{padding:11px 18px;font-size:13.5px;color:var(--tx2)}
.dd a:after{display:none}
.dd a:hover{background:rgba(255,255,255,.045);color:var(--tx)}
.ddl{padding:8px 18px 10px;font-family:var(--m);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx3);border-bottom:1px solid var(--line2);margin-bottom:6px}
.mnav{display:none;background:none;border:1px solid var(--line);color:var(--tx);font-family:var(--m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:10px 15px;cursor:pointer}
.mpanel{display:none;flex-direction:column;background:rgba(11,13,16,.98);backdrop-filter:blur(16px);border-top:1px solid var(--line2);padding:12px 22px 22px}
.mpanel.open{display:flex}
.mpanel a{color:var(--tx2);text-decoration:none;padding:14px 0;border-bottom:1px solid var(--line2);font-size:1rem}
.mpanel a.sub{padding-left:20px;font-size:.9062rem;color:var(--tx3)}
@media(max-width:1000px){nav{display:none}.mnav{display:block}}

/* ---------- page + spine ---------- */
main{position:relative}
.page{display:none}.page.on{display:block}
.spine{position:absolute;left:22px;top:0;bottom:0;width:1px;background:var(--line2);z-index:1;pointer-events:none}
.spine b{position:absolute;top:0;left:0;width:1px;background:linear-gradient(180deg,rgba(242,243,245,.05),rgba(242,243,245,.5));display:block}
.spine .br{position:absolute;left:0;width:20px;height:20px}
.spine .br s{position:absolute;left:0;top:0;width:14px;height:14px;border-left:1px solid var(--line2);border-bottom:1px solid var(--line2);transform:rotate(-45deg);transform-origin:left top;text-decoration:none}
.spine .br u{position:absolute;left:-2px;top:-2px;width:5px;height:5px;background:var(--line);transform:rotate(45deg);transition:background .4s var(--ez)}
.spine .br.on u{background:var(--acc)}
@media(max-width:1260px){.spine{display:none}}
section{position:relative;border-top:1px solid var(--line2)}
section:first-of-type{border-top:none}
.pad{padding-top:118px;padding-bottom:118px}
.padS{padding-top:86px;padding-bottom:86px}
@media(max-width:860px){.pad{padding-top:72px;padding-bottom:72px}.padS{padding-top:56px;padding-bottom:56px}}

/* ---------- buttons ---------- */
.cta{display:flex;flex-wrap:wrap;gap:13px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;font-size:.9375rem;font-weight:500;text-decoration:none;border:1px solid transparent;transition:.28s var(--ez);cursor:pointer;font-family:var(--d)}
.btn:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.b1{background:var(--acc);color:#08090B}.b1:hover{background:#fff;transform:translateY(-2px)}
.b2{border-color:var(--line);color:var(--tx);background:transparent}
.b2:hover{border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.035);transform:translateY(-2px)}
.b3{border-color:rgba(46,134,255,.4);color:var(--cool2);background:rgba(46,134,255,.06)}
.b3:hover{border-color:var(--cool);background:rgba(46,134,255,.12);transform:translateY(-2px)}
.ar{transition:transform .28s var(--ez)}.btn:hover .ar{transform:translateX(4px)}
.lnk{display:inline-flex;align-items:center;gap:9px;color:var(--tx);text-decoration:none;font-size:.9375rem;font-weight:500;border-bottom:1px solid var(--line);padding-bottom:5px;transition:.28s var(--ez)}
.lnk:hover{border-bottom-color:var(--acc);gap:13px}
.lnk:focus-visible{outline:2px solid var(--acc);outline-offset:4px}
.lnk.c{color:var(--cool2);border-bottom-color:rgba(46,134,255,.3)}.lnk.c:hover{border-bottom-color:var(--cool)}
.lnk.w{color:var(--warm2);border-bottom-color:rgba(232,118,58,.3)}.lnk.w:hover{border-bottom-color:var(--warm)}

/* ---------- section head ---------- */
.shead{display:grid;gap:16px;margin-bottom:58px}
@media(min-width:960px){.shead{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px;align-items:end}}
.shead p{margin:0;color:var(--tx2);font-size:1.0625rem;line-height:1.62;max-width:56ch}
.shead a.lnk{margin-top:20px}

/* ---------- diagram primitives ---------- */
.figc{overflow-x:auto;overflow-y:hidden}
.fig{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:14px}
.fig svg{display:block;width:100%;height:auto}
.figcap{font-family:var(--m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3);padding:13px 2px 2px;border-top:1px solid var(--line2);margin-top:14px}
.d-bx{fill:#12161C;stroke:rgba(255,255,255,.22);stroke-width:1;transition:.3s var(--ez)}
.d-bx.c{stroke:rgba(46,134,255,.5);fill:rgba(46,134,255,.07)}
.d-bx.w{stroke:rgba(232,118,58,.5);fill:rgba(232,118,58,.07)}
.d-bx.sep{fill:none;stroke-dasharray:5 4;stroke:rgba(255,255,255,.26)}
.d-bx.on{stroke:var(--acc);fill:rgba(242,243,245,.08);stroke-width:1.5}
.d-ln{fill:none;stroke:rgba(255,255,255,.24);stroke-width:1;transition:.3s var(--ez)}
.d-ln.c{stroke:rgba(46,134,255,.55)}.d-ln.w{stroke:rgba(232,118,58,.55)}
.d-ln.sep{stroke-dasharray:5 4;stroke:rgba(255,255,255,.2)}
.d-ln.on{stroke:var(--acc);stroke-width:1.6}
.d-t{font-family:"Archivo",sans-serif;font-size:12.5px;fill:#E9EBEE;font-weight:500}
.d-s{font-family:"IBM Plex Mono",monospace;font-size:9.5px;fill:#7C838C;letter-spacing:.07em}
.d-h{font-family:"IBM Plex Mono",monospace;font-size:10px;fill:#9AA1AB;letter-spacing:.14em}
.d-c{fill:#5AA1FF}.d-w{fill:#F08F5C}

/* ---------- hero ---------- */
.hero{position:relative;padding:172px 0 96px;overflow:hidden;border-bottom:1px solid var(--line2)}
.hglow{position:absolute;z-index:0;top:-30%;right:-8%;width:900px;height:900px;border-radius:50%;pointer-events:none;
 background:radial-gradient(circle,var(--coolg) 0%,rgba(46,134,255,0) 62%)}
.hglow2{position:absolute;z-index:0;bottom:-46%;right:14%;width:760px;height:760px;border-radius:50%;pointer-events:none;
 background:radial-gradient(circle,var(--warmg) 0%,rgba(232,118,58,0) 64%)}
.hero .ct{position:relative;z-index:2}
.hgrid{display:grid;gap:46px;align-items:center}
@media(min-width:1040px){.hgrid{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:70px}}
h1 .ln{display:block;overflow:hidden}h1 .ln>span{display:block}
.htax{margin-top:52px;padding-top:24px;border-top:1px solid var(--line2);display:flex;flex-wrap:wrap;gap:14px 40px}
.htax a{text-decoration:none;display:flex;align-items:center;gap:11px;font-family:var(--m);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx2);transition:.26s var(--ez)}
.htax a:hover{color:var(--tx)}
.htax i{width:7px;height:7px;transform:rotate(45deg);flex:none;font-style:normal}
.htax .ic{background:var(--cool)}.htax .iw{background:var(--warm)}
.htax a:focus-visible{outline:2px solid var(--acc);outline-offset:4px}
.hbraid{position:relative;min-height:330px}
.hbraid svg{display:block;width:100%;height:auto}
@media(max-width:1039px){.hbraid{min-height:230px;max-width:480px}}

/* ---------- N braided threads (pinned, layout contract) ---------- */
.brWrap{position:relative}
.brStage{position:sticky;top:0;height:100vh;display:grid;align-items:center;
 grid-template-columns:clamp(280px,26vw,400px) minmax(0,1fr);
 gap:clamp(24px,4vw,64px);padding:0 46px;overflow:hidden;
 border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);background:#090B0E}
.brRail{position:relative;z-index:3;min-height:250px}
.brP{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .42s var(--ez);pointer-events:none}
.brP.on{opacity:1}
.brP .pn{font-family:var(--m);font-size:11px;letter-spacing:.17em;text-transform:uppercase;margin:0 0 14px;color:var(--tx3)}
.brP.is .pn{color:var(--cool2)}.brP.ei .pn{color:var(--warm2)}.brP.fin .pn{color:var(--acc)}
.brP h3{font-size:clamp(1.4rem,2.3vw,2rem);font-weight:600;letter-spacing:-.032em;line-height:1.12;margin:0 0 14px}
.brP p{font-size:.9688rem;line-height:1.6;color:var(--tx2);margin:0 0 14px;max-width:42ch}
.brCanvas{position:relative;height:min(78vh,640px)}
.brCanvas svg{position:absolute;inset:0;width:100%;height:100%}
.th{fill:none;stroke-width:1.9;stroke-linejoin:miter}
#tA{stroke:var(--cool)}#tB{stroke:var(--warm)}
#tM{stroke:var(--acc);stroke-width:2.6;fill:none}
.tg{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.14em}
.tg-c{fill:#5AA1FF}.tg-w{fill:rgba(232,118,58,.8)}
.xn{opacity:0;transition:opacity .5s var(--ez)}
.xn.vis{opacity:1}
.xn rect{fill:#090B0E;stroke:rgba(255,255,255,.36);stroke-width:1.4;transition:.45s var(--ez)}
.xn .xl{stroke:rgba(255,255,255,.2);stroke-width:1;transition:.45s var(--ez)}
.xn .xt{font-family:"IBM Plex Mono",monospace;font-size:12.5px;fill:#878E98;letter-spacing:.1em;text-transform:uppercase;transition:.45s var(--ez)}
.xn.on rect{fill:var(--acc);stroke:var(--acc)}
.xn.on .xl{stroke:rgba(255,255,255,.52)}
.xn.on .xt{fill:#E9EBEE}
.brKey{position:absolute;right:0;top:14px;z-index:4;display:flex;flex-direction:column;gap:9px;
 font-family:var(--m);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--tx3)}
.brKey span{display:flex;align-items:center;gap:9px}
.brKey i{width:20px;height:2px;font-style:normal}
/* stacked fallback */
.brStatic{display:none}
.brStatic .bs{border-top:1px solid var(--line2);padding:34px 0}
.brStatic .bs:first-child{border-top:none}
.brStatic .bs .pn{font-family:var(--m);font-size:11px;letter-spacing:.17em;text-transform:uppercase;margin:0 0 12px;color:var(--tx3)}
.brStatic .bs.is .pn{color:var(--cool2)}.brStatic .bs.ei .pn{color:var(--warm2)}.brStatic .bs.fin .pn{color:var(--acc)}
.brStatic h3{font-size:1.375rem;margin:0 0 12px}
.brStatic p{color:var(--tx2);font-size:.9688rem;margin:0 0 16px;max-width:60ch}
.brStatic svg{display:block;width:100%;max-width:400px;height:auto;margin-top:6px}
.brwrapstatic .brStage{display:none}
.brwrapstatic{height:auto!important}
.brwrapstatic .brStatic{display:block}
@media(max-width:1100px){.brStage{display:none}.brWrap{height:auto!important}.brStatic{display:block}}

/* ---------- focus cards ---------- */
.fa2{display:grid;gap:0;border-top:1px solid var(--line2)}
@media(min-width:940px){.fa2{grid-template-columns:1fr 1fr;gap:0}}
.fa{padding:44px 0 40px;border-bottom:1px solid var(--line2);position:relative}
@media(min-width:940px){.fa{padding:46px 46px 44px 0}.fa+.fa{padding-left:46px;border-left:1px solid var(--line2)}}
.fa .fn{font-family:var(--m);font-size:11px;letter-spacing:.16em;color:var(--tx3);margin:0 0 16px}
.fa.c .fn{color:var(--cool2)}.fa.w .fn{color:var(--warm2)}
.fa h3{font-size:clamp(1.5rem,2.3vw,1.95rem);letter-spacing:-.03em;margin:0 0 16px}
.fa p{color:var(--tx2);font-size:1rem;line-height:1.62;margin:0 0 24px;max-width:46ch}
.fa .topics{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 28px}
.fa .topics i{font-style:normal;font-family:var(--m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
 color:var(--tx3);border:1px solid var(--line2);padding:7px 11px}
.fa.c .topics i:hover{border-color:rgba(46,134,255,.4);color:var(--cool2)}
.fa.w .topics i:hover{border-color:rgba(232,118,58,.4);color:var(--warm2)}
.fa .sysl{margin:0 0 4px;padding:16px 0;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}

/* ---------- G annotated prose ---------- */
.apr{display:grid;gap:34px;align-items:start}
@media(min-width:960px){.apr{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px}}
.aprose{font-size:clamp(1.125rem,1.7vw,1.4375rem);line-height:1.62;color:var(--tx2);letter-spacing:-.012em;margin:0}
.tm{background:none;border:none;padding:0;font:inherit;color:var(--tx);cursor:pointer;position:relative;
 border-bottom:1px dashed rgba(255,255,255,.32);transition:.24s var(--ez);font-family:inherit}
.tm:hover,.tm.on{color:var(--acc);border-bottom-color:var(--acc);border-bottom-style:solid}
.tm:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.apanel{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:30px 30px 26px;position:relative}
.apanel:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--acc),transparent);opacity:.55}
.apanel .an{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx3);margin:0 0 14px}
.apanel h3{font-size:1.1875rem;letter-spacing:-.022em;margin:0 0 12px}
.apanel p{margin:0 0 20px;color:var(--tx2);font-size:.9375rem;line-height:1.64}
.apanel svg{display:block;width:100%;height:auto;border-top:1px solid var(--line2);padding-top:18px}

/* ---------- development work ---------- */
.wk{border-top:1px solid var(--line2);padding:56px 0}
.wk:last-of-type{border-bottom:1px solid var(--line2)}
.wkg{display:grid;gap:30px;align-items:start}
@media(min-width:1000px){.wkg{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:60px}}
.wk .wn{font-family:var(--m);font-size:11px;letter-spacing:.16em;color:var(--tx3);margin:0 0 18px}
.wk h3{font-size:clamp(1.4rem,2.1vw,1.8rem);letter-spacing:-.03em;margin:0 0 16px}
.wk p{color:var(--tx2);font-size:1rem;line-height:1.63;margin:0 0 24px;max-width:52ch}

/* ---------- capabilities ---------- */
.capw{display:grid;gap:36px;align-items:start}
@media(min-width:1040px){.capw{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:56px}}
.caps{display:grid;gap:0;border-top:1px solid var(--line2)}
.cp{text-align:left;background:none;border:none;border-bottom:1px solid var(--line2);padding:20px 0;cursor:pointer;
 font-family:var(--d);color:var(--tx2);transition:.26s var(--ez);display:block;width:100%}
.cp:hover,.cp.on{padding-left:10px;color:var(--tx)}
.cp:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.cp .cn{font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);display:block;margin-bottom:7px;transition:color .26s}
.cp.on .cn{color:var(--acc)}
.cp .cpt{display:block;font-size:1.0625rem;font-weight:600;letter-spacing:-.026em;line-height:1.16;color:inherit}
.cp .cpx{display:block;margin:8px 0 0;font-size:.9062rem;line-height:1.56;color:var(--tx2)}
.cpp:focus-visible{outline:2px solid var(--acc);outline-offset:10px}
.cpd{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:30px}
.cpd .cdn{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc);margin:0 0 14px}
.cpd h3{font-size:1.25rem;letter-spacing:-.024em;margin:0 0 14px}
.cpd p{margin:0 0 22px;color:var(--tx2);font-size:.9688rem;line-height:1.64}
.cpd svg{display:block;width:100%;height:auto;border-top:1px solid var(--line2);padding-top:20px}
.cpd .cgo{margin-top:20px}

/* ---------- band (KyperX AI) ---------- */
.band{border:1px solid var(--line2);background:linear-gradient(150deg,rgba(46,134,255,.055),rgba(11,13,16,.4) 58%);padding:52px 54px}
@media(max-width:800px){.band{padding:34px 24px}}
.bandg{display:grid;gap:34px;align-items:center}
@media(min-width:1000px){.bandg{grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:60px}}
.band h2{margin-bottom:16px}
.band p{color:var(--tx2);font-size:1rem;line-height:1.64;margin:0 0 16px;max-width:52ch}
.band svg{display:block;width:100%;height:auto}

/* ---------- K assembly ---------- */
.asmWrap{position:relative}
.asmStage{position:sticky;top:0;height:100vh;display:grid;align-items:center;
 grid-template-columns:clamp(270px,24vw,370px) minmax(0,1fr);
 gap:clamp(24px,4vw,56px);padding:0 46px;overflow:hidden;
 border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);background:#090B0E}
.asmRail{position:relative;z-index:3;min-height:220px}
.asmP{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .42s var(--ez)}
.asmP.on{opacity:1}
.asmP .pn{font-family:var(--m);font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--tx3);margin:0 0 14px}
.asmP h3{font-size:clamp(1.35rem,2.2vw,1.9rem);font-weight:600;letter-spacing:-.03em;line-height:1.14;margin:0 0 12px}
.asmP p{font-size:.9688rem;line-height:1.6;color:var(--tx2);margin:0;max-width:40ch}
.asmCanvas{position:relative;height:min(74vh,600px)}
.asmCanvas svg{position:absolute;inset:0;width:100%;height:100%}
.el{opacity:0;transform:translateY(12px);transition:opacity .6s var(--ez),transform .6s var(--ez)}
.el.on{opacity:1;transform:none}
.a-bx{fill:#0E1217;stroke:rgba(255,255,255,.26);stroke-width:1}
.a-bx.acc{stroke:var(--acc);stroke-width:1.4}
.a-bx.c{stroke:rgba(46,134,255,.6);fill:rgba(46,134,255,.07)}
.a-bx.w{stroke:rgba(232,118,58,.6);fill:rgba(232,118,58,.07)}
.a-bx.sep{fill:none;stroke-dasharray:5 4;stroke:rgba(255,255,255,.28)}
.a-ln{fill:none;stroke:rgba(255,255,255,.24);stroke-width:1}
.a-ln.acc{stroke:rgba(242,243,245,.55)}
.a-ln.c{stroke:rgba(46,134,255,.55)}.a-ln.w{stroke:rgba(232,118,58,.55)}
.a-ln.sep{stroke-dasharray:5 4;stroke:rgba(255,255,255,.22)}
.a-t{font-family:"Archivo",sans-serif;font-size:13px;font-weight:500;fill:#E9EBEE}
.a-s{font-family:"IBM Plex Mono",monospace;font-size:9px;fill:#787F89;letter-spacing:.1em}
.asmStatic{display:none}
.asmwrapstatic .asmStage{display:none}
.asmwrapstatic{height:auto!important}
.asmwrapstatic .asmStatic{display:block}
@media(max-width:1100px){.asmStage{display:none}.asmWrap{height:auto!important}.asmStatic{display:block}}
.asmStatic .as{border-top:1px solid var(--line2);padding:26px 0}
.asmStatic .as:first-child{border-top:none}
.asmStatic .as .pn{font-family:var(--m);font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--tx3);margin:0 0 10px}
.asmStatic h3{font-size:1.25rem;margin:0 0 10px}
.asmStatic p{color:var(--tx2);font-size:.9375rem;margin:0;max-width:58ch}

/* ---------- page head ---------- */
.phead{padding:150px 0 62px;border-bottom:1px solid var(--line2);position:relative;overflow:hidden}
.phead h1{font-size:clamp(2.1rem,4.4vw,3.5rem);margin-bottom:22px;max-width:21ch}
.phead .lede{margin-bottom:30px}
.crumb{font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);margin:0 0 20px}
.crumb a{color:var(--tx2);text-decoration:none;display:inline-block;padding:8px 0;margin:-8px 0}.crumb a:hover{color:var(--tx)}
.crumb a:focus-visible{outline:2px solid var(--acc);outline-offset:3px}

/* ---------- focus area page blocks ---------- */
.fab{display:grid;gap:40px;align-items:start}
@media(min-width:1000px){.fab{grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:64px}}
.fab .arch{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:26px}
.fab .arch svg{display:block;width:100%;height:auto}
.tpx{display:grid;gap:0;border-top:1px solid var(--line2);margin-top:34px}
@media(min-width:720px){.tpx{grid-template-columns:1fr 1fr;gap:0 44px}}
.tp{padding:20px 0;border-bottom:1px solid var(--line2)}
.tp h3{margin:0 0 6px;font-size:1rem}
.tp p{margin:0;color:var(--tx2);font-size:.9062rem;line-height:1.56}

/* ---------- O scale ladder ---------- */
.scWrap{position:relative}
.scStage{position:sticky;top:0;height:100vh;display:grid;align-items:center;
 grid-template-columns:clamp(270px,24vw,380px) minmax(0,1fr);
 gap:clamp(24px,4vw,56px);padding:0 46px;overflow:hidden;
 border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);background:#090B0E}
.scRail{position:relative;z-index:3;min-height:210px}
.scP{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .4s var(--ez)}
.scP.on{opacity:1}
.scP .pn{font-family:var(--m);font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--tx3);margin:0 0 14px}
.scP h3{font-size:clamp(1.3rem,2.1vw,1.8rem);letter-spacing:-.03em;line-height:1.14;margin:0 0 12px}
.scP p{font-size:.9375rem;line-height:1.6;color:var(--tx2);margin:0;max-width:40ch}
.scCanvas{position:relative;height:min(72vh,580px)}
.scCanvas svg{position:absolute;inset:0;width:100%;height:100%}
.so *{vector-effect:non-scaling-stroke;fill:none;stroke:rgba(255,255,255,.3);stroke-width:1}
.so.acc *{stroke:rgba(242,243,245,.72)}
.so.cool *{stroke:rgba(46,134,255,.7)}
.so.warm *{stroke:rgba(232,118,58,.7)}
.scRead{position:absolute;right:0;bottom:16px;z-index:4;text-align:right;font-family:var(--m)}
.scCap{position:absolute;left:0;bottom:16px;z-index:4;margin:0;max-width:64%;font-family:var(--m);font-size:11px;letter-spacing:.1em;line-height:1.6;text-transform:uppercase;color:var(--tx3)}
.scRead b{display:block;font-size:22px;font-weight:400;color:var(--tx);letter-spacing:.02em}
.scRead b sup{font-size:13px}
.scRead span{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx3)}
.scStatic{display:none}
.scwrapstatic .scStage{display:none}
.scwrapstatic{height:auto!important}
.scwrapstatic .scStatic{display:block}
@media(max-width:1100px){.scStage{display:none}.scWrap{height:auto!important}.scStatic{display:block}}
.scStatic .ss{display:grid;grid-template-columns:88px 1fr;gap:20px;border-top:1px solid var(--line2);padding:22px 0;align-items:start}
.scStatic .ss:first-child{border-top:none}
.scStatic .ss .sm{font-family:var(--m);font-size:11px;letter-spacing:.06em;color:var(--tx3);padding-top:3px}
.scStatic h3{margin:0 0 7px;font-size:1.0625rem;letter-spacing:-.016em;line-height:1.55}
.scStatic .ss p{margin:0;color:var(--tx2);font-size:.9062rem;line-height:1.56}
.scStatic .figcap{margin-top:0}

/* ---------- B blueprint zoom ---------- */
.bpWrap{position:relative}
.bpStage{position:sticky;top:0;height:100vh;display:grid;align-items:center;
 grid-template-columns:clamp(270px,24vw,360px) minmax(0,1fr);
 gap:clamp(24px,4vw,56px);padding:0 46px;overflow:hidden;
 border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);background:#090B0E}
.bpRail{position:relative;z-index:3;min-height:230px}
.bpP{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .4s var(--ez)}
.bpP.on{opacity:1}
.bpP .pn{font-family:var(--m);font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--cool2);margin:0 0 14px}
.bpP h3{font-size:clamp(1.3rem,2.1vw,1.8rem);letter-spacing:-.03em;line-height:1.14;margin:0 0 12px}
.bpP p{font-size:.9375rem;line-height:1.6;color:var(--tx2);margin:0 0 12px;max-width:40ch}
.bpP ol{margin:0;padding-left:18px;color:var(--tx2);font-size:.9062rem;line-height:1.55}
.bpP li{margin-bottom:8px}
.bpCanvas{position:relative;height:min(74vh,600px)}
.bpCanvas svg{position:absolute;inset:0;width:100%;height:100%}
.bp-bx{fill:#0E1217;stroke:rgba(255,255,255,.26);stroke-width:1;transition:.4s var(--ez)}
.bp-bx.c{stroke:rgba(46,134,255,.55);fill:rgba(46,134,255,.06)}
.bp-ln{fill:none;stroke:rgba(255,255,255,.26);stroke-width:1}
.bp-ln.c{stroke:rgba(46,134,255,.55)}
.bp-rail{fill:none;stroke:rgba(46,134,255,.42);stroke-width:1}
.bp-t{font-family:"Archivo",sans-serif;font-size:12.5px;font-weight:500;fill:#E9EBEE}
.bp-s{font-family:"IBM Plex Mono",monospace;font-size:8.6px;fill:#787F89;letter-spacing:.09em}
.bp-h{font-family:"IBM Plex Mono",monospace;font-size:9.5px;fill:#5AA1FF;letter-spacing:.15em}
#BL1,#BL2,#BL3{transition:opacity .3s linear}
#BL1.zoomin .fade{opacity:.28;transition:opacity .5s var(--ez)}
.bpStatic{display:none}
.bpwrapstatic .bpStage{display:none}
.bpwrapstatic{height:auto!important}
.bpwrapstatic .bpStatic{display:block}
@media(max-width:1100px){.bpStage{display:none}.bpWrap{height:auto!important}.bpStatic{display:block}}
.bpStatic .bl{border-top:1px solid var(--line2);padding:32px 0}
.bpStatic .bl:first-child{border-top:none}
.bpStatic .bl .pn{font-family:var(--m);font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--cool2);margin:0 0 12px}
.bpStatic h3{font-size:1.25rem;margin:0 0 12px}
.bpStatic p{color:var(--tx2);font-size:.9375rem;margin:0 0 16px;max-width:58ch}
.bpStatic ol{color:var(--tx2);font-size:.9062rem;padding-left:18px;margin:0 0 16px}
.bpStatic li{margin-bottom:8px}
.bpStatic svg{display:block;width:100%;max-width:420px;height:auto;border:1px solid var(--line2);background:var(--bg2);padding:14px}

/* ---------- requirement triples ---------- */
.reqs{display:grid;gap:0;border-top:1px solid var(--line2);margin-top:36px}
@media(min-width:820px){.reqs{grid-template-columns:repeat(3,1fr);gap:0 40px}}
.rq{padding:24px 0;border-bottom:1px solid var(--line2)}
.rq .rn{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--cool2);margin:0 0 12px}
.rq p{margin:0;color:var(--tx2);font-size:.9375rem;line-height:1.58}
.openp{margin-top:26px;padding-top:20px;border-top:1px solid var(--line2);font-family:var(--m);font-size:11px;
 letter-spacing:.1em;line-height:1.85;color:var(--tx3)}
.openp b{color:var(--tx2);font-weight:400;letter-spacing:.15em}

/* ---------- key statement ---------- */
.kst{border-left:2px solid var(--acc);padding:6px 0 6px 26px;margin:36px 0 0;max-width:44ch}
.kst p{margin:0;font-size:clamp(1.25rem,2vw,1.625rem);font-weight:600;letter-spacing:-.03em;line-height:1.24;color:var(--tx)}
.kst.c{border-left-color:var(--cool)}.kst.w{border-left-color:var(--warm)}
.kst small{display:block;margin-top:14px;font-size:.9375rem;font-weight:400;letter-spacing:0;color:var(--tx2);line-height:1.6}

/* ---------- E living flow ---------- */
.flowfig{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:22px}
.flowfig svg{display:block;width:100%;height:auto;min-width:640px}
.fl-n{fill:#0E1217;stroke:rgba(255,255,255,.26);stroke-width:1;transition:.3s var(--ez)}
.fl-n.w{stroke:rgba(232,118,58,.55);fill:rgba(232,118,58,.07)}
.fl-n.c{stroke:rgba(46,134,255,.55);fill:rgba(46,134,255,.07)}
.fl-n.sep{fill:none;stroke-dasharray:5 4;stroke:rgba(255,255,255,.26)}
.fl-p{fill:none;stroke:rgba(255,255,255,.22);stroke-width:1}
.fl-p.w{stroke:rgba(232,118,58,.45)}.fl-p.c{stroke:rgba(46,134,255,.45)}
.fl-p.sep{stroke-dasharray:5 4;stroke:rgba(255,255,255,.2)}
.fs{cursor:pointer}
.fs:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.fl-dim{opacity:.26;transition:opacity .3s var(--ez)}

/* ---------- propagation chains ---------- */
.chains{display:grid;gap:0;border-top:1px solid var(--line2)}
@media(min-width:900px){.chains{grid-template-columns:1fr 1fr;gap:0 46px}}
.ch{padding:28px 0;border-bottom:1px solid var(--line2)}
.ch h3{font-family:var(--m);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--warm2);margin:0 0 18px;font-weight:500}
.ch ol{margin:0;padding:0;list-style:none;counter-reset:c}
.ch li{position:relative;padding:0 0 14px 26px;color:var(--tx2);font-size:.9375rem;line-height:1.5}
.ch li:before{content:"";position:absolute;left:3px;top:8px;width:6px;height:6px;border-right:1px solid rgba(232,118,58,.6);
 border-bottom:1px solid rgba(232,118,58,.6);transform:rotate(-45deg)}
.ch li:after{content:"";position:absolute;left:6px;top:18px;bottom:0;width:1px;background:var(--line2)}
.ch li:last-child{padding-bottom:0}
.ch li:last-child:after{display:none}
.chnote{font-family:var(--m);font-size:11px;letter-spacing:.09em;color:var(--tx3);margin-top:30px;line-height:1.8}

/* ---------- P time-to-value ---------- */
.hzfig{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:22px}
.hzfig svg{display:block;width:100%;height:auto;min-width:620px}
.hz-ax{stroke:rgba(255,255,255,.18);stroke-width:1}
.hz-s{font-family:"IBM Plex Mono",monospace;font-size:9.5px;fill:#787F89;letter-spacing:.14em;text-anchor:middle}
.hz-l{font-family:"Archivo",sans-serif;font-size:12.5px;fill:#E9EBEE;font-weight:500}
.hz-k{font-family:"IBM Plex Mono",monospace;font-size:9px;fill:#787F89;letter-spacing:.1em}
.hz-b{height:10px}
.hz-b.solid{fill:rgba(46,134,255,.5);stroke:var(--cool);stroke-width:1}
.hz-b.open{fill:none;stroke:rgba(232,118,58,.75);stroke-width:1;stroke-dasharray:5 4}

/* ---------- about blocks ---------- */
.two{display:grid;gap:0;border-top:1px solid var(--line2)}
@media(min-width:900px){.two{grid-template-columns:1fr 1fr;gap:0 52px}}
.tw2{padding:34px 0;border-bottom:1px solid var(--line2)}
.tw2 h3{font-size:1.375rem;margin:0 0 12px}
.tw2 p{color:var(--tx2);font-size:.9688rem;line-height:1.62;margin:0 0 20px;max-width:44ch}
.procfig{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:22px}
.procfig svg{display:block;width:100%;height:auto;min-width:660px}

/* ---------- leadership ---------- */
.lead{display:grid;gap:24px;align-items:center;border-top:1px solid var(--line2);padding-top:40px}
@media(min-width:760px){.lead{grid-template-columns:152px minmax(0,1fr);gap:40px}}
.lead img,.prof img{display:block;width:100%;height:auto;aspect-ratio:1/1;border:1px solid var(--line2);background:#fff}
.lead img{max-width:152px}
.lead .lbl{margin-bottom:14px}
.lead h3,.prof h3{margin:0 0 6px}
.role{font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);margin:0 0 14px}
.lead p:not(.lbl):not(.role){color:var(--tx2);font-size:1rem;line-height:1.62;margin:0 0 18px;max-width:60ch}
.prof{display:grid;gap:28px;align-items:start;border-top:1px solid var(--line2);padding-top:44px;scroll-margin-top:96px}
@media(min-width:860px){.prof{grid-template-columns:280px minmax(0,1fr);gap:56px}}
.prof img{max-width:220px}
@media(min-width:860px){.prof img{max-width:280px}}
.prof p:not(.lbl):not(.role){color:var(--tx2);font-size:1.0312rem;line-height:1.66;margin:0 0 16px;max-width:62ch}
.ctaend{border-top:1px solid var(--line2)}

/* ---------- legal pages ---------- */
.legal{max-width:74ch}
.legal h2{font-size:1.1875rem;font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:46px 0 14px;max-width:none}
.legal h2:first-child{margin-top:0}
.legal h3{font-size:1rem;font-weight:600;margin:26px 0 8px}
.legal p{color:var(--tx2);margin:0 0 14px;line-height:1.68}
.legal ul{color:var(--tx2);margin:0 0 16px;padding-left:19px}
.legal li{margin:0 0 9px;line-height:1.62}
.legal strong{color:var(--tx);font-weight:600}
.legal a{color:var(--tx);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.legal a:hover{text-decoration-color:var(--acc)}
.legal .upd{font-family:var(--m);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--tx3);
 border-top:1px solid var(--line2);padding-top:18px;margin-top:44px}
/* An unresolved fact. Deliberately loud: build-site.py refuses to treat a build
   containing one of these as publishable. Never replace a .tbc with a plausible guess. */
.tbc{color:var(--bad);font-family:var(--m);font-size:.84em;letter-spacing:.04em;
 border:1px solid var(--badl);padding:1px 6px;white-space:nowrap}
.draftnote{border:1px solid var(--badl);background:rgba(229,131,122,.05);padding:20px 22px;margin:0 0 40px}
.draftnote p{margin:0;color:var(--tx2);font-size:.9375rem;line-height:1.6}
.draftnote b{color:var(--bad);font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:9px}

/* ---------- form ---------- */
.form{display:grid;gap:20px;max-width:660px}
@media(min-width:700px){.fr2{display:grid;grid-template-columns:1fr 1fr;gap:20px}}
label{display:block;font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);margin-bottom:9px}
input,textarea,select{width:100%;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.38);color:var(--tx);
 font-family:var(--d);font-size:.9688rem;padding:13px 14px;border-radius:0}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
textarea{min-height:132px;resize:vertical}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#9AA1AB 50%),linear-gradient(135deg,#9AA1AB 50%,transparent 50%);
 background-position:calc(100% - 20px) 21px,calc(100% - 14px) 21px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:42px}
.err{color:var(--bad);font-size:.875rem;margin-top:8px;display:none}
.err.on{display:block}
.formnote{font-family:var(--m);font-size:11.5px;letter-spacing:.05em;color:var(--tx3);margin-top:8px;line-height:1.7}
.formnote a{color:var(--tx2);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--line2)}
.formnote a:hover{color:var(--tx);text-decoration-color:var(--acc)}
#fstat{margin-top:18px;font-size:.9375rem;color:var(--tx2);display:none;padding:15px 17px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
#fstat.on{display:block}
#fstat.ok{border-color:var(--okl);color:var(--ok)}
#fstat.bad{border-color:var(--badl);color:var(--bad)}
#fstat:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.form button[disabled]{opacity:.5;cursor:progress}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--bad)}
/* Formspree discards any submission where _gotcha is filled. display:none keeps it away
   from assistive technology as well as from sighted visitors. */
.hp{display:none}
.caside{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:28px;margin-top:12px}
.caside h2{font-size:1.125rem;font-weight:600;letter-spacing:-.018em;line-height:1.25;margin:0 0 10px;max-width:none}
.caside p{margin:0 0 18px;color:var(--tx2);font-size:.9375rem;line-height:1.6}
.caside p.cdet{font-family:var(--m);font-size:11.5px;letter-spacing:.06em;line-height:1.95;color:var(--tx3)}
.caside p:last-child{margin-bottom:0}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line2);padding:70px 0 34px;background:var(--bg2)}
.fg{display:grid;gap:38px}
@media(min-width:900px){.fg{grid-template-columns:2.1fr 1fr 1fr 1fr}}
footer h2{font-family:var(--m);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx3);margin:0 0 16px;font-weight:500}
footer ul{list-style:none;margin:0;padding:0}footer li{margin-bottom:3px}
footer li a{display:inline-block;padding:4px 0}
footer a{color:var(--tx2);text-decoration:none;font-size:.9062rem}
footer a:hover{color:var(--tx)}
footer a:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.fd{color:var(--tx2);font-size:.9375rem;margin:16px 0 0;line-height:1.62;max-width:34ch}
.fcap{margin:26px 0 0;padding-top:14px;border-top:1px solid var(--line2);font-family:var(--m);font-size:11px;letter-spacing:.04em;line-height:1.7;color:var(--tx3);max-width:44ch}
.fcap a{font-family:inherit;font-size:inherit;color:var(--tx2);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line);display:inline-block;padding:3px 0;margin:-3px 0}
.fcap a:hover{color:var(--tx);text-decoration-color:var(--acc)}
.fb{margin-top:54px;padding-top:24px;border-top:1px solid var(--line2);display:flex;flex-wrap:wrap;gap:14px 26px;
 justify-content:space-between;font-size:.8125rem;color:var(--tx3)}
.fb ul{display:flex;gap:22px;margin:-4px 0}.fb li{margin:0}
.fb a{font-size:.8125rem;color:var(--tx3)}

/* grid items must be allowed to shrink below their content's min-content width,
   otherwise a wide diagram inside one expands the whole layout viewport */
.hgrid>*,.apr>*,.wkg>*,.capw>*,.bandg>*,.fab>*,.two>*,.fa2>*,.lead>*,.prof>*,.tpx>*,.chains>*,
.caps>*,.reqs>*,.shead>*,.brStage>*,.asmStage>*,.scStage>*,.bpStage>*,.fr2>*,.fg>*,.scStatic .ss>*{min-width:0}
.figc{max-width:100%}
@media(max-width:860px){.role,.figcap,.formnote,label,.stat,.crumb,.chnote,.openp,.fcap,.legal .upd,.fa .topics i,.caside p.cdet,footer h2{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto}}
/* ---------------- V3.1 copy components (14 Sep 2026) ---------------- */
.hgrid.solo{grid-template-columns:minmax(0,1fr)}
.hero h1{max-width:24ch}
.htax .htl{flex-basis:100%;font-family:var(--m);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx3)}
.reqs.nt .rq .rn{color:var(--acc)}
.rq .prd{margin:14px 0 0;color:var(--tx3);font-size:.875rem;line-height:1.56}
.rq .prd b{font-family:var(--m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:400;margin-right:4px}
.pgm{margin:0 0 20px;max-width:56ch}
.pgm dt{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx3);margin:0 0 6px}
.pgm dd{margin:0 0 16px;color:var(--tx2);font-size:1rem;line-height:1.6}
.lead+.cta{margin-top:40px}
.shead+.lead{margin-top:-18px}
.tp .stat{margin:12px 0 10px}
.tp .lnk{margin-top:4px}
.codet{font-family:var(--m);font-size:11.5px;letter-spacing:.06em;line-height:1.95;color:var(--tx3);margin:0}
/* .wk p and .tp p out-rank .stat and .figcap; restore their label sizes inside program rows */
.wk p.stat,.tp p.stat{font-size:11px;line-height:1.4;max-width:none}
.wk p.figcap{font-size:11px;line-height:1.6;margin:14px 0 0;max-width:none}
@media(max-width:860px){.wk p.stat,.tp p.stat,.wk p.figcap{font-size:12px}}
/* ---------------- V3.1 presentation pass (15 Sep 2026) ---------------- */
/* hero visual: solution space (A2) */
.hvis{position:relative;min-height:330px}
.hvis svg{display:block;width:100%;height:auto;overflow:visible}
@media(max-width:1039px){.hvis{min-height:230px;max-width:480px}}
.hvis .qg{stroke:rgba(255,255,255,.14);stroke-width:1;stroke-dasharray:3 6;fill:none}
.hvis .qn{fill:#08090B;stroke:rgba(255,255,255,.42);stroke-width:1.2}
.hvis .qn.out{opacity:.26}
.hvis .qn.keep{fill:rgba(242,243,245,.10);stroke:var(--acc);stroke-width:1.5}
.hvis .qp{fill:none;stroke:var(--acc);stroke-width:1.7;stroke-linejoin:miter}
@media(min-width:1040px){.hero .hgrid:not(.solo) h1{font-size:clamp(2.75rem,3.7vw,3.6rem);max-width:none}}
/* a section heading without an intro paragraph uses the full width */
.shead>div:only-child{grid-column:1/-1}
.shead>div:only-child h2{max-width:24ch}
/* text-only sections: shorter bottom run into the next section */
.pad:has(>.shead:only-child){padding-bottom:64px}
.pad>.shead:only-child{margin-bottom:0}
/* Research & Development: three numbered panels */
.reqs.nt{counter-reset:rq;border-top:0;gap:16px;margin-top:0}
@media(min-width:760px){.reqs.nt{gap:20px}}
.reqs.nt .rq{counter-increment:rq;position:relative;border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:30px 28px 26px}
.reqs.nt .rq:before{content:"";position:absolute;left:-1px;top:-1px;width:44px;height:2px;background:var(--acc)}
.reqs.nt .rq .rn{display:flex;align-items:baseline;gap:14px;font-family:inherit;font-size:1.375rem;font-weight:600;letter-spacing:-.022em;text-transform:none;color:var(--tx);margin:0 0 14px}
.reqs.nt .rq .rn:before{content:counter(rq,decimal-leading-zero);font-family:var(--m);font-size:11px;font-weight:400;letter-spacing:.16em;color:var(--tx3)}
.reqs.nt .rq p{font-size:.9688rem;line-height:1.6}
.reqs.nt .rq .prd{border-top:1px solid var(--line2);padding-top:14px;margin-top:20px;font-size:.875rem}
/* programs: the figure stays beside the copy while it is read */
@media(min-width:1000px){.wkg>.figc{position:sticky;top:112px}}
/* capabilities: larger panel that stays in view, with an index numeral */
@media(min-width:1040px){.cpd{position:sticky;top:112px;padding:40px 40px 36px;min-height:300px}}
.cpp{position:relative}
.cpp:after{content:attr(data-n);position:absolute;right:0;top:-6px;font-family:var(--m);font-size:clamp(44px,5vw,68px);line-height:1;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px rgba(242,243,245,.16);pointer-events:none}
.cpd h3{font-size:clamp(1.375rem,2vw,1.625rem);margin-bottom:16px;padding-right:90px}
.cpd p{font-size:1.0313rem;line-height:1.66;max-width:52ch}
.cp{position:relative}
.cp.on:before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:2px;background:var(--acc)}
/* development stages: a row of four cards */
.tpx.stages,.tpx.progs{border-top:0;gap:16px;margin-top:0}
@media(min-width:720px){.tpx.stages{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.tpx.stages{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1000px){.tpx.progs{grid-template-columns:repeat(3,1fr)}}
.tpx.stages .tp,.tpx.progs .tp{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:26px 24px 24px;display:flex;flex-direction:column}
.tpx.stages .tp h3{display:flex;align-items:center;gap:10px;font-family:var(--m);font-size:11px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--tx);margin:0 0 14px}
.tpx.stages .tp h3:before{content:"";width:6px;height:6px;flex:none;background:var(--tx3);transform:rotate(45deg)}
.tpx.stages .tp:last-child h3:before{background:var(--acc)}
.tpx.stages .tp p,.tpx.progs .tp p{font-size:.9688rem;line-height:1.6}
.tpx.progs .tp h3{font-size:1.25rem;letter-spacing:-.02em;margin:0 0 12px}
.tpx.progs .tp .stat{margin:auto 0 14px;align-self:flex-start;padding-top:7px}
.tpx.progs .tp p:first-of-type{margin-bottom:18px}
.tpx.progs .tp p.stat{font-size:11px;line-height:1.4}
@media(max-width:860px){.tpx.progs .tp p.stat{font-size:12px}}
/* Intelligent Systems program summary as one panel */
.pgmbox{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:34px 30px 30px}
@media(min-width:1000px){.pgmbox{padding:44px 44px 40px}.pgmbox .pgm{max-width:none;display:grid;grid-template-rows:auto 1fr;grid-auto-flow:column;grid-auto-columns:1fr;gap:0 44px}}
/* About company details */
.codet .lnk{font:inherit;letter-spacing:inherit;color:var(--tx2)}
/* ---------------- V3.2 copy components (15 Sep 2026) ---------------- */
/* capability panels: Produces / Why it matters */
.cpd p.cpk b{display:block;font-family:var(--m);font-size:10.5px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);margin:0 0 6px}
.cpd p.cpk+p.cpk{border-top:1px solid var(--line2);padding-top:18px}
/* Intelligent Systems: research status lines */
.pgm.stl{margin:4px 0 0;max-width:62ch}
.pgm.stl dd:last-child{margin-bottom:0}
/* About: development maturity in two labelled groups */
.lbl.stg{margin:0 0 16px}
.tpx.stages+.lbl.stg{margin-top:40px}
@media(min-width:1100px){.tpx.stages.s3,.tpx.stages.s1{grid-template-columns:repeat(3,1fr)}}
@media(min-width:720px) and (max-width:1099px){.tpx.stages.s3{grid-template-columns:repeat(3,1fr)}.tpx.stages.s1{grid-template-columns:repeat(3,1fr)}}
.tpx.stages.s3 .tp:last-child h3:before{background:var(--tx3)}
.tpx.stages.s1 .tp h3:before{background:var(--acc)}
/* About company: corporate information */
.coinf{color:var(--tx2);font-size:.9688rem;line-height:1.62;max-width:62ch;margin:22px 0 0}
/* Home hero: three headline lines stay whole on phones */
@media(max-width:599px){.hero h1{font-size:clamp(1.75rem,9vw,2.5rem)}}
/* Energy & Industry: evaluation scope */
.tpx.evs{margin-top:0}
/* ---------------- Commercial engagement layer (16 Sep 2026) ---------------- */
/* hub: engagement paths */
.paths{display:grid;gap:16px}
@media(min-width:900px){.paths{grid-template-columns:1fr 1fr;gap:20px}}
.pth{position:relative;display:flex;flex-direction:column;border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:30px 28px 28px}
.pth:before{content:"";position:absolute;left:-1px;top:-1px;width:44px;height:2px;background:var(--acc)}
.pth h3{font-family:var(--m);font-size:11px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--tx3);margin:0 0 16px}
.pth .pq{font-size:clamp(1.1875rem,1.7vw,1.4375rem);font-weight:600;letter-spacing:-.022em;line-height:1.3;color:var(--tx);margin:0 0 16px;max-width:32ch}
.pth p{color:var(--tx2);font-size:.9688rem;line-height:1.6;margin:0 0 20px;max-width:52ch}
.pth .po{margin:auto 0 22px;padding-top:16px;border-top:1px solid var(--line2);font-size:.9062rem}
.pth .po b{display:block;font-family:var(--m);font-size:10.5px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);margin:0 0 6px}
.pth .lnk{align-self:flex-start}
/* four numbered steps */
@media(min-width:820px){.reqs.nt.n4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1180px){.reqs.nt.n4{grid-template-columns:repeat(4,1fr)}}
/* questions */
.qlist{list-style:none;counter-reset:ql;margin:0;padding:0;display:grid;border-top:1px solid var(--line2)}
@media(min-width:900px){.qlist{grid-template-columns:1fr 1fr;gap:0 52px}}
.qlist li{counter-increment:ql;display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line2);font-size:1.0625rem;line-height:1.5;color:var(--tx);letter-spacing:-.01em}
.qlist li:before{content:counter(ql,decimal-leading-zero);flex:none;font-family:var(--m);font-size:11px;letter-spacing:.16em;color:var(--tx3);padding-top:5px}
/* engagement anatomy: provide / does / receive / not covered (mechanism U) */
.anat{display:grid;gap:16px}
@media(min-width:760px){.anat{grid-template-columns:1fr 1fr}}
@media(min-width:1180px){.anat{grid-template-columns:repeat(4,1fr)}}
.anc{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:26px 24px 20px}
.anc.no{background:none;border:1px dashed rgba(255,255,255,.2)}
.anc h3{font-family:var(--m);font-size:11px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--tx);margin:0 0 18px}
.anc ul{list-style:none;margin:0;padding:0}
.anc li{position:relative;padding-left:18px;margin:0 0 12px;color:var(--tx2);font-size:.9375rem;line-height:1.55}
.anc li:before{content:"";position:absolute;left:1px;top:.6em;width:5px;height:5px;background:var(--tx3);transform:rotate(45deg)}
.anc.no li:before{background:none;border:1px solid var(--tx3);width:4px;height:4px}
/* link rows */
.lnks{display:flex;flex-wrap:wrap;gap:16px 34px;margin-top:30px}
.shead+.lnks{margin-top:0}
.tpx.evs .tp p+p{margin-top:12px}
.phead .stat{margin:0 0 30px}
/* enquiry form */
label .opt{font-family:var(--d);font-size:.8125rem;letter-spacing:0;text-transform:none;color:var(--tx3);margin-left:8px}
.hint{color:var(--tx3);font-size:.875rem;line-height:1.55;margin:-2px 0 10px}
.fctx{border:1px solid var(--line);border-left:2px solid var(--acc);padding:14px 16px;color:var(--tx2);font-size:.9375rem;line-height:1.55;margin:0}
.fctx[hidden]{display:none}
textarea.sm{min-height:96px}
/* paired fields keep the form's 20px rhythm when they stack below 700px */
.fr2{display:grid;gap:20px}
select:invalid{color:var(--tx3)}
select[aria-invalid="true"]{border-color:var(--bad)}
.caside .lnk{font-size:.9375rem}
/* footer: five columns */
@media(min-width:900px){.fg{grid-template-columns:repeat(4,1fr)}.fg>div:first-child{grid-column:1/-1}}
@media(min-width:1180px){.fg{grid-template-columns:1.6fr 1fr 1.3fr 1fr 1fr}.fg>div:first-child{grid-column:auto}}
.paths>*,.anat>*,.qlist>*{min-width:0}
@media(max-width:860px){.pth h3,.anc h3,.pth .po b,label .opt{font-size:12px}}
/* ---------------- Commercial pages: visual and conversion pass (16 Sep 2026) ---------------- */
/* split hero */
.phg{display:grid;gap:44px;align-items:center}
@media(min-width:1040px){.phg{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:64px}}
.phg>*{min-width:0}
.phv{width:100%;max-width:460px;justify-self:center}
.phv svg{display:block;width:100%;height:auto}
@media(max-width:1039px){.phv{max-width:400px;justify-self:start}}
.dv .dv-l{fill:none;stroke:rgba(255,255,255,.3);stroke-width:1}
.dv .dv-l.on{stroke:var(--acc);stroke-width:1.6}
.dv .dv-l.sep{stroke-dasharray:4 5;stroke:rgba(255,255,255,.3)}
.dv .dv-l.dim{stroke:rgba(255,255,255,.14)}
.dv .dv-t{stroke:rgba(255,255,255,.22);stroke-width:3}
.dv .dv-k{fill:#08090B;stroke:rgba(255,255,255,.55);stroke-width:1.2}
.dv .dv-k.on{fill:var(--acc);stroke:var(--acc)}
.dv .dv-k.dim{stroke:rgba(255,255,255,.2)}
.dv .dv-o{fill:none;stroke:rgba(255,255,255,.55);stroke-width:1.2;stroke-dasharray:3 3}
.hfacts{list-style:none;margin:30px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 28px}
.hfacts li{display:flex;align-items:center;gap:10px;font-family:var(--m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--tx2)}
.hfacts li:before{content:"";width:6px;height:6px;border:1px solid var(--acc);transform:rotate(45deg);flex:none}
.phead .cta+.hfacts{margin-top:28px}
/* hub path finder */
.pf,.fcard{position:relative;border:1px solid var(--line);background:linear-gradient(170deg,rgba(242,243,245,.04),var(--bg2) 62%);padding:28px 26px 26px}
.pf:before,.fcard:before{content:"";position:absolute;left:-1px;top:-1px;width:56px;height:2px;background:var(--acc)}
.pf-h{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx3);margin:0 0 10px}
.pf-q{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:0 0 18px;color:var(--tx)}
.pf-opts{display:grid;gap:8px;margin:0 0 22px;padding:0;border:0;min-width:0}
.pf-opts legend{padding:0}
.pf-o{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:rgba(255,255,255,.02);border:1px solid var(--line2);color:var(--tx2);font-family:var(--d);font-size:.9688rem;line-height:1.4;padding:13px 16px;cursor:pointer;border-radius:0;transition:border-color .18s var(--ez),color .18s var(--ez),background .18s var(--ez)}
.pf-o:before{content:"";width:8px;height:8px;border:1px solid var(--tx3);transform:rotate(45deg);flex:none;transition:.18s var(--ez)}
.pf-o:hover{border-color:rgba(255,255,255,.3);color:var(--tx)}
.pf-o{position:relative}
.pf-o input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.pf-o:focus-within{outline:2px solid var(--acc);outline-offset:2px}
.pf-o:has(input:focus:not(:focus-visible)){outline:none}
.pf-o.on{border-color:var(--acc);color:var(--tx);background:rgba(242,243,245,.06)}
.pf-o.on:before{background:var(--acc);border-color:var(--acc)}
.pf-out{border-top:1px solid var(--line2);padding-top:20px}
.pf-k{font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);margin:0 0 6px}
.pf-t{font-size:1.375rem;font-weight:600;letter-spacing:-.024em;line-height:1.2;margin:0 0 8px;color:var(--tx)}
.pf-d{color:var(--tx2);font-size:.9375rem;line-height:1.55;margin:0 0 20px;min-height:3.1em}
.pf-act{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
/* phones: the path finder sits below the fold, so the hub hero keeps its own action */
@media(min-width:1040px){.phm{display:none}}
/* Australia facts card */
.fdl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px 22px;margin:4px 0 20px}
.fdl dt{font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);padding-top:3px}
.fdl dd{margin:0;color:var(--tx);font-size:.9688rem;line-height:1.5}
.fdl a{color:var(--tx);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.fdl a:hover{text-decoration-color:var(--acc)}
.fnote{color:var(--tx3);font-size:.875rem;line-height:1.55;margin:0 0 18px;padding-top:16px;border-top:1px solid var(--line2)}
@media(max-width:420px){.fdl{grid-template-columns:1fr;gap:4px}.fdl dd{margin-bottom:10px}}
/* hub path cards: glyph */
.pth .pg{position:absolute;top:24px;right:24px;width:72px;height:48px;overflow:visible}
.pg *{fill:none;stroke:rgba(255,255,255,.34);stroke-width:1}
.pg .on{stroke:var(--acc);stroke-width:1.4}
.pg rect.on{fill:rgba(242,243,245,.14)}
.pg .sep{stroke-dasharray:3 3}
.pth h3{padding-right:90px}
.pth .pq{padding-right:40px}
.pth{transition:border-color .18s var(--ez)}
.pth:hover{border-color:var(--line)}
/* numbered audience and scoping cards */
.tpx.aud{border-top:0;gap:14px;counter-reset:au}
@media(min-width:720px){.tpx.aud{grid-template-columns:1fr 1fr;gap:14px}}
@media(min-width:1100px){.tpx.aud{grid-template-columns:repeat(3,1fr)}}
.tpx.aud .tp{counter-increment:au;position:relative;border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:24px 22px 22px;transition:border-color .18s var(--ez)}
.tpx.aud .tp:hover{border-color:var(--line)}
.tpx.aud .tp:before{content:counter(au,decimal-leading-zero);display:block;font-family:var(--m);font-size:11px;letter-spacing:.16em;color:var(--tx3);margin:0 0 14px}
.tpx.aud .tp:after{content:"";position:absolute;top:26px;right:22px;width:7px;height:7px;border:1px solid var(--tx3);transform:rotate(45deg)}
.tpx.aud .tp h3{font-size:1.0625rem;margin:0 0 8px;padding-right:18px}
/* question cards */
.qlist.qc{border-top:0;gap:14px}
.qlist.qc li{border:1px solid var(--line2);background:linear-gradient(170deg,var(--pnl),var(--bg2));padding:22px 22px}
/* engagement steps connected in sequence */
@media(min-width:1180px){.reqs.nt.flow .rq:not(:last-child):after{content:"";position:absolute;top:44px;right:-21px;width:21px;height:1px;background:var(--acc);z-index:1}}
/* scope anatomy glyphs and flow */
.anc{position:relative}
.anc h3{display:flex;align-items:center;gap:12px}
.ag{position:relative;display:inline-block;width:16px;height:16px;flex:none}
.ag:before{content:"";position:absolute;inset:2px;border:1px solid var(--tx2)}
.ag-do:before{transform:rotate(45deg);background:var(--acc);border-color:var(--acc);inset:3px}
.ag-out:before{background:rgba(242,243,245,.45);border-color:var(--acc)}
.ag-no:before{border-style:dashed;border-color:var(--tx3)}
@media(min-width:1180px){
 .anat{column-gap:20px}
 .anc:nth-child(1):after,.anc:nth-child(2):after{content:"";position:absolute;top:35px;right:-21px;width:21px;height:1px;background:var(--acc);z-index:1}
 .anc.no{margin-left:10px}
}
/* mid-page CTA band */
.midcta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 30px;margin-top:40px;padding:22px 26px;border:1px solid var(--line);border-left:2px solid var(--acc);background:rgba(242,243,245,.025)}
.midcta p{margin:0;color:var(--tx2);font-size:1rem;line-height:1.55;max-width:60ch}
.midcta p b{color:var(--tx);font-weight:600}
/* conversion panel */
.cvp{position:relative;display:grid;gap:36px;border:1px solid var(--line);background:linear-gradient(150deg,rgba(242,243,245,.055),rgba(11,13,16,.4) 55%);padding:44px 40px}
.cvp:before{content:"";position:absolute;left:-1px;top:-1px;width:72px;height:2px;background:var(--acc)}
@media(min-width:960px){.cvp{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;padding:56px}}
@media(max-width:600px){.cvp{padding:32px 22px}}
.cvp>*{min-width:0}
.cvp h2{margin-bottom:16px}
.cvl>p:not(.lbl):not(.cvr){color:var(--tx2);font-size:1.0625rem;line-height:1.6;margin:0 0 28px;max-width:48ch}
.cvr{margin:22px 0 0;font-size:.875rem;color:var(--tx3);line-height:1.55;max-width:46ch}
.cvs{border-top:1px solid var(--line2);padding-top:28px}
@media(min-width:960px){.cvs{border-top:0;border-left:1px solid var(--line2);padding:4px 0 0 44px}}
.cvk{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx3);margin:0 0 16px}
.cvi{list-style:none;margin:0 0 30px;padding:0}
.cvi li{position:relative;padding-left:26px;margin:0 0 13px;color:var(--tx);font-size:1rem;line-height:1.5}
.cvi li:before{content:"";position:absolute;left:2px;top:.42em;width:8px;height:8px;border:1px solid var(--acc);transform:rotate(45deg)}
.cvn{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx2);margin:0 0 26px}
.cvn i{font-style:normal;color:var(--tx3)}
.cvm{margin:0;font-size:.9375rem;color:var(--tx3)}
.cvm a{color:var(--tx2);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.cvm a:hover{color:var(--tx);text-decoration-color:var(--acc)}
/* sticky CTA: shown once the hero has scrolled away, hidden at the conversion panel and footer */
.scta{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(8,9,11,.9);backdrop-filter:blur(14px);border-top:1px solid var(--line);transition:transform .42s var(--ez),opacity .42s var(--ez),visibility 0s}
.scta.off{transform:translateY(110%);opacity:0;visibility:hidden;transition:transform .42s var(--ez),opacity .42s var(--ez),visibility 0s linear .42s}
.scta .ct{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px}
.scta p{margin:0;font-family:var(--m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx2)}
.scta .btn{padding:11px 20px}
@media(max-width:600px){.scta p{display:none}.scta .ct{min-height:0;padding-top:10px;padding-bottom:10px}.scta .btn{width:100%;justify-content:center}}
@media(max-width:860px){.hfacts li,.pf-h,.pf-k,.fdl dt,.cvk,.cvn,.scta p{font-size:12px}}
