
/* =====================================================================
   NEXALIAN HOMEPAGE
   Type: Geist + Geist Mono (c) 2023 Vercel with basement.studio,
   SIL Open Font License 1.1. Embedded so the page has no external requests.
   Structure: one dark intro zone (nav, hero, modules), one light reading
   body, dark footer. One accent (teal); coral and gold are status colors only.
   ===================================================================== */
@font-face{font-family:"Geist";src:url(/assets/fonts/Geist.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(/assets/fonts/GeistMono.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

/* Tokens ---------------------------------------------------------------- */
:root{
  --navy-950:#060E1A; --navy-900:#0A1628; --navy-850:#0E1E36; --navy-800:#132744;
  --line-dark:rgba(148,178,214,.14); --line-dark-strong:rgba(148,178,214,.26);
  --on-dark:#F2F5F9; --on-dark-muted:#B3C0D0; --on-dark-subtle:#8798AE;
  --paper:#F3F6F9; --surface:#FCFDFE; --tint:#E6F7FB;
  --line:#DCE3EB; --line-strong:#C3CDD9;
  --ink:#0B1A2C; --body:#3B4858; --muted:#5B6879;
  --teal:#3FE6F6; --teal-hover:#7AF0FA; --teal-ink:#0A6D93;
  --risk:#FF7A8A; --warn:#E0B05A;
  --focus:var(--teal-ink);
  --sans:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --r-sm:0.5rem; --r:0.75rem; --r-lg:1rem; --r-xl:1.25rem;
  --shadow:0 1.125rem 2.5rem -1.375rem rgba(11,26,44,.28);
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-in-out:cubic-bezier(.77,0,.175,1);
  --container:75rem; --gutter:1.5rem;
}

/* Base ------------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5.5rem;-webkit-text-size-adjust:100%;scrollbar-color:#9AA8B8 var(--paper);accent-color:var(--teal-ink)}
body{margin:0;font-family:var(--sans);font-size:1.0625rem;line-height:1.6;color:var(--body);background:var(--paper);caret-color:var(--teal-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
::selection{background:rgba(63,230,246,.32);color:inherit}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3{margin:0;color:var(--ink);font-weight:600;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}
p{margin:0;text-wrap:pretty}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:0.125rem solid var(--focus);outline-offset:0.1875rem;border-radius:0.25rem}
.dark{--focus:var(--teal)}
.skip{position:absolute;left:-624.9375rem;top:0.5rem;z-index:200;background:var(--teal);color:var(--navy-950);padding:0.625rem 0.875rem;border-radius:var(--r-sm);font-weight:600}
.skip:focus{left:0.75rem}
.eyebrow{margin-bottom:0.875rem;color:var(--teal-ink);font-size:0.9375rem;font-weight:500;letter-spacing:0}
#nxProgress{position:fixed;top:0;left:0;right:0;height:0.125rem;z-index:100;background:var(--teal);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
#navSentinel{position:absolute;top:0;left:0;width:0.0625rem;height:3rem;pointer-events:none}

/* Utility bar + navigation ---------------------------------------------- */
.liveTopbar{background:var(--navy-950);border-bottom:0.0625rem solid var(--line-dark);color:var(--on-dark-muted);font-size:0.8438rem;line-height:1.3}
.liveTopbarInner{max-width:var(--container);margin:0 auto;padding:0.625rem var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:0.5rem 1.5rem;flex-wrap:wrap}
.liveTopbarServing{font-weight:500}
.liveTopbarContact{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.liveTopbarEmail,.liveTopbarPhone{display:inline-flex;align-items:center;gap:0.5rem;color:var(--on-dark);font-weight:500;font-variant-numeric:tabular-nums;transition:color 150ms ease}
.mailIcon,.phoneIcon{display:inline-flex;width:1rem;height:1rem;color:var(--teal)}
.mailIcon svg,.phoneIcon svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

.nav{position:sticky;top:0;z-index:50;background:var(--navy-900);border-bottom:0.0625rem solid var(--line-dark);transition:box-shadow 200ms ease}
.nav.is-scrolled{box-shadow:0 0.75rem 1.875rem -0.875rem rgba(2,8,18,.8)}
.navin{display:flex;align-items:center;gap:2rem;height:4.5rem}
.brand{display:flex;align-items:center;flex:none;color:var(--on-dark)}
.wordmark{display:inline-flex;align-items:baseline;font-size:1.6875rem;font-weight:600;letter-spacing:-.025em;line-height:1;color:var(--on-dark)}
.wordmark .x{display:inline-block;flex:none;width:.5em;height:.5em;margin:0 .035em 0 .045em;overflow:visible}
.links{display:flex;align-items:center;gap:1.75rem;margin-left:auto;font-size:0.9375rem;font-weight:500;color:#C3CEDC}
.links a{position:relative;padding:0.5rem 0;transition:color 150ms ease}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:0.125rem;height:0.0938rem;background:var(--teal);transform:scaleX(0);transform-origin:100% 50%;transition:transform 220ms var(--ease-out)}
.nav .btn{min-height:2.5rem;padding:0 1rem;font-size:0.9062rem}

.mnav{display:none;position:relative;margin-left:auto}
.mnav summary{list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;gap:0.625rem;min-height:2.75rem;padding:0 0.875rem;border:0.0625rem solid var(--line-dark-strong);border-radius:var(--r-sm);color:var(--on-dark);font-size:0.9062rem;font-weight:500;transition:background-color 150ms ease,transform 160ms var(--ease-out)}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary::before{content:"";width:1rem;height:0.625rem;background:linear-gradient(currentColor 0 0) top/100% 0.0938rem no-repeat,linear-gradient(currentColor 0 0) center/100% 0.0938rem no-repeat,linear-gradient(currentColor 0 0) bottom/100% 0.0938rem no-repeat}
.mnav[open] summary{background:rgba(255,255,255,.06)}
.mnavPanel{position:absolute;right:0;top:calc(100% + 0.625rem);width:min(16.25rem,calc(100vw - 2rem));display:grid;gap:0.125rem;padding:0.5rem;background:var(--navy-850);border:0.0625rem solid var(--line-dark-strong);border-radius:var(--r);box-shadow:0 1.5rem 3rem -1rem rgba(2,8,18,.75);transform-origin:top right}
.mnavPanel a{padding:0.75rem 0.875rem;border-radius:var(--r-sm);color:#DCE4EE;font-size:0.9688rem;font-weight:500;transition:background-color 150ms ease}
.mnavPanel a:hover{background:rgba(255,255,255,.06)}
.mnavPanel .mdemo{display:none;margin-top:0.375rem;background:var(--teal);color:var(--navy-950);font-weight:600;text-align:center}

/* Buttons + text links -------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;min-height:3rem;padding:0 1.375rem;border-radius:var(--r-sm);border:0.0625rem solid transparent;font-size:0.9688rem;font-weight:600;letter-spacing:-.005em;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform 160ms var(--ease-out),background-color 200ms ease,color 200ms ease}
.btn.primary{background:var(--teal);color:#04122B}
/* The secondary hero action is a text link, not a second boxed button */
.btn.ghost{min-height:3rem;padding:0 0.25rem;background:none;color:var(--on-dark)}
.btn.ghost::after{content:"";width:0.4375rem;height:0.4375rem;margin-left:0.125rem;border-top:0.0938rem solid currentColor;border-right:0.0938rem solid currentColor;transform:rotate(45deg);transition:transform 200ms var(--ease-out)}

/* Hero ------------------------------------------------------------------ */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-900);color:var(--on-dark-muted);padding:4.5rem 0 5.5rem}
.hero::before{content:"";position:absolute;right:-12%;top:-30%;width:70%;height:130%;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,rgba(63,230,246,.10),transparent)}
.heroGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:4rem;align-items:center}
.heroPlatformLine{display:flex;flex-wrap:wrap;align-items:center;gap:0.625rem 0.75rem;margin-bottom:1.75rem;color:var(--on-dark-muted);font-size:0.9375rem;font-weight:500;line-height:1.45}
.heroAICISO{display:inline-flex;align-items:center;padding:0.3125rem 0.625rem;border:0.0625rem solid rgba(63,230,246,.45);border-radius:0.375rem;color:var(--teal);font-family:var(--mono);font-size:0.8125rem;font-weight:600;letter-spacing:.04em}
.hero h1{max-width:15ch;margin-bottom:1.625rem;color:var(--on-dark);font-size:clamp(2.625rem,5.1vw,4.125rem);font-weight:600;line-height:1.02;letter-spacing:-.035em}
.gradientText{color:var(--teal)}
.nowrap{white-space:nowrap}
.heroCopy>p{max-width:52ch;margin-bottom:2.25rem;color:#BAC6D5;font-size:1.1562rem;line-height:1.62}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem 1.75rem}
.heroVisual{position:relative}
.nxPause{position:absolute;right:0.25rem;bottom:-3.5rem;display:inline-flex;align-items:center;gap:0.5rem;padding:0.625rem 0;background:none;border:0;color:var(--on-dark-subtle);font-size:0.8125rem;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color 150ms ease}
.nxPause::before{content:"";width:0.5625rem;height:0.625rem;background:linear-gradient(currentColor 0 0) left/0.1875rem 100% no-repeat,linear-gradient(currentColor 0 0) right/0.1875rem 100% no-repeat}
.nxPause[aria-pressed="true"]::before{background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%)}

/* Story stage: the hero's authored sequence */
.storyOrbit{position:relative;padding:0.75rem;border:0.0625rem solid var(--line-dark);border-radius:var(--r-xl);background:var(--navy-850);box-shadow:0 3.125rem 5.625rem -3.125rem rgba(2,8,18,.9)}
.storyStage{position:relative;height:31.25rem}
.chaosLabel{position:absolute;top:0.625rem;left:50%;z-index:9;transform:translateX(-50%);white-space:nowrap;color:var(--risk);font-family:var(--mono);font-size:0.6875rem;font-weight:600;letter-spacing:.12em;transition:color 300ms ease}
.dataChip{position:absolute;z-index:8;display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 0.75rem;border-radius:var(--r-sm);border:0.0625rem solid rgba(255,122,138,.35);background:var(--navy-900);color:#E6ECF3;font-size:0.7812rem;font-weight:500;white-space:nowrap;opacity:0;transform:scale(.95);transition:opacity 300ms var(--ease-out),transform 300ms var(--ease-out),border-color 400ms ease}
.dataChip i{width:0.375rem;height:0.375rem;border-radius:50%;background:var(--risk);transition:background-color 400ms ease}
.dataChip.on{opacity:1;transform:none}
.storyStage.is-connected .dataChip{border-color:rgba(63,230,246,.4)}
.storyStage.is-connected .dataChip i{background:var(--teal)}
.dc1{left:0.75rem;top:3rem}.dc2{right:0.75rem;top:2.75rem}.dc3{left:0.25rem;top:12.875rem}.dc4{right:0.25rem;top:12.5rem}.dc5{left:1.25rem;bottom:2.75rem}.dc6{right:0.75rem;bottom:3rem}
.flowSvg{position:absolute;inset:1.25rem 0 0;z-index:2;width:100%;height:calc(100% - 3.75rem);overflow:visible}
.flowSvg path{fill:none;stroke:rgba(63,230,246,.5);stroke-width:1.5;stroke-dasharray:6 8;stroke-dashoffset:140;opacity:0;transition:opacity 400ms ease}
.flowSvg path.on{opacity:1;animation:dataFlow 3.2s linear infinite}
.intelligenceCore{position:absolute;left:50%;top:50%;z-index:7;width:13.75rem;height:13.75rem;display:grid;align-content:center;justify-items:center;gap:0.375rem;padding:1.5rem;text-align:center;border-radius:50%;border:0.0625rem solid rgba(63,230,246,.3);background:radial-gradient(circle at 50% 38%,#163558,var(--navy-900) 72%);opacity:.4;transform:translate(-50%,-50%) scale(.92);transition:opacity 500ms var(--ease-out),transform 500ms var(--ease-out),border-color 500ms ease,box-shadow 500ms ease}
.intelligenceCore.live{opacity:1;transform:translate(-50%,-50%) scale(1);border-color:rgba(63,230,246,.7);box-shadow:0 0 0 0.5rem rgba(63,230,246,.05),0 1.5rem 3rem -1rem rgba(2,8,18,.7)}
.intelligenceCore small{color:var(--teal);font-family:var(--mono);font-size:0.625rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.intelligenceCore strong{color:var(--on-dark);font-size:2.25rem;font-weight:600;line-height:1;letter-spacing:-.025em}
.intelligenceCore span{max-width:10rem;color:var(--on-dark-muted);font-family:var(--mono);font-size:0.625rem;font-weight:500;letter-spacing:.06em;line-height:1.45}
.corePulse{position:absolute;inset:-0.875rem;border:0.0625rem solid rgba(63,230,246,.3);border-radius:50%;opacity:0;pointer-events:none}
.live .corePulse{animation:coreWave 3.6s var(--ease-out) infinite}
.decisionRail{position:absolute;left:50%;bottom:0.5rem;z-index:10;width:calc(100% - 1rem);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.5rem;opacity:0;transform:translate(-50%,0.75rem);transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out)}
.decisionRail.on{opacity:1;transform:translate(-50%,0)}
.decision{display:flex;flex-direction:column;justify-content:center;min-height:5.25rem;padding:0.75rem 0.625rem;text-align:center;background:var(--navy-900);border:0.0625rem solid var(--line-dark-strong);border-radius:0.625rem}
.decision small{display:block;margin-bottom:0.375rem;color:var(--teal);font-family:var(--mono);font-size:0.625rem;font-weight:600;letter-spacing:.1em}
.decision b{color:var(--on-dark);font-size:0.8438rem;font-weight:600;line-height:1.3}
.outcomeCard{position:absolute;left:50%;top:50%;z-index:12;width:22.5rem;max-width:86%;padding:1.375rem;text-align:center;background:var(--navy-900);border:0.0625rem solid rgba(63,230,246,.5);border-radius:var(--r);box-shadow:0 1.875rem 3.75rem -1.25rem rgba(2,8,18,.8);opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.96);transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out)}
.outcomeCard.on{opacity:1;transform:translate(-50%,-50%) scale(1);transition-duration:400ms}
.outcomeCard small{display:block;color:var(--teal);font-family:var(--mono);font-size:0.6562rem;font-weight:600;letter-spacing:.12em}
.outcomeCard strong{display:block;margin:0.375rem 0;color:var(--on-dark);font-size:1.25rem;font-weight:600;line-height:1.25}
.outcomeCard span{display:block;color:var(--on-dark-muted);font-size:0.8125rem;line-height:1.5}
.execDash{position:absolute;inset:0;z-index:20;padding:1rem;background:#0B1A2E;border:0.0625rem solid rgba(63,230,246,.32);border-radius:var(--r);opacity:0;pointer-events:none;transform:scale(.98) translateY(0.375rem);transition:opacity 300ms var(--ease-out),transform 300ms var(--ease-out)}
.execDash.on{opacity:1;transform:none;transition-duration:400ms}
.storyStage.is-resetting *:not(.execDash){transition:none!important}
.dashTop{padding-bottom:0.75rem;border-bottom:0.0625rem solid var(--line-dark)}
.dashTop small{display:block;color:var(--teal);font-family:var(--mono);font-size:0.625rem;font-weight:600;letter-spacing:.1em}
.dashTop strong{display:block;margin-top:0.1875rem;color:var(--on-dark);font-size:1.0625rem;font-weight:600}
.dashGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.5rem;margin-top:0.75rem}
.metric,.chartCard,.priorityCard{padding:0.75rem;background:var(--navy-800);border:0.0625rem solid var(--line-dark);border-radius:var(--r-sm)}
.metric small{display:block;color:var(--on-dark-subtle);font-family:var(--mono);font-size:0.5938rem;font-weight:500;letter-spacing:.06em}
.metric b{display:block;margin:0.1875rem 0;color:var(--on-dark);font-family:var(--mono);font-size:1.5625rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.metric em{display:block;color:var(--on-dark-subtle);font-size:0.6875rem;font-style:normal;line-height:1.3}
.chartCard{grid-column:span 2}
.chartTitle{display:flex;justify-content:space-between;align-items:center;gap:0.5rem;color:var(--on-dark);font-size:0.75rem;font-weight:600}
.chartTitle small{color:var(--teal);font-family:var(--mono);font-size:0.5938rem;font-weight:600;letter-spacing:.08em}
.trend{display:block;width:100%;height:4.875rem;margin-top:0.25rem}
.gridline{fill:none;stroke:rgba(148,178,214,.16);stroke-width:1}
.riskLine{fill:none;stroke:var(--teal);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:400;stroke-dashoffset:400}
.execDash.on .riskLine{animation:drawLine 1.4s .3s var(--ease-in-out) forwards}
.endDot{fill:var(--teal);opacity:0}
.execDash.on .endDot{animation:appear .3s 1.6s forwards}
.chartFoot{display:flex;justify-content:space-between;gap:0.5rem;color:var(--on-dark-subtle);font-size:0.6562rem}
.chartFoot b{color:var(--teal);font-weight:600}
.priorityRow{display:grid;grid-template-columns:0.5rem 1fr auto;gap:0.5rem;align-items:center;padding:0.5rem 0;border-top:0.0625rem solid var(--line-dark);color:var(--on-dark-muted);font-size:0.7188rem;line-height:1.35}
.priorityRow:first-of-type{margin-top:0.375rem}
.priorityRow i{width:0.375rem;height:0.375rem;border-radius:50%}
.priorityRow .high{background:var(--risk)}.priorityRow .med{background:var(--warn)}
.priorityRow b{color:var(--on-dark);font-family:var(--mono);font-size:0.5938rem;letter-spacing:.06em}
.boardTakeaway{margin-top:0.5rem;padding:0.625rem 0.75rem;border:0.0625rem solid rgba(63,230,246,.28);background:rgba(63,230,246,.06);border-radius:var(--r-sm)}
.boardTakeaway small{display:block;color:var(--teal);font-family:var(--mono);font-size:0.5938rem;font-weight:600;letter-spacing:.1em}
.boardTakeaway b{color:var(--on-dark);font-size:0.7812rem;font-weight:600;line-height:1.4}

/* Proof band: the narrative and three facts, moved out of the hero ------ */
.heroProof{background:var(--navy-900);border-top:0.0625rem solid var(--line-dark);padding:2.5rem 0 3rem}
.heroProofGrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2.5rem 4rem;align-items:start}
.heroNarrative{max-width:58ch;color:var(--on-dark-muted);font-size:1.0312rem;line-height:1.65}
.heroNarrative b{color:var(--on-dark);font-weight:600}
.micro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;color:var(--on-dark-subtle);font-size:0.875rem;line-height:1.45}
.micro>div{padding-left:1rem;border-left:0.0625rem solid var(--line-dark-strong)}
.micro b{display:block;margin-bottom:0.25rem;color:var(--on-dark);font-size:1rem;font-weight:600}

/* Modules strip + stats ------------------------------------------------- */
.aiCisoModulesSection{background:var(--navy-950);padding-top:3rem}
.aiCisoModulesInner{max-width:var(--container);margin:0 auto}
.platformModulesStatement{padding:0 var(--gutter);text-align:center;color:var(--on-dark);font-family:var(--mono);font-size:0.8125rem;font-weight:600;letter-spacing:.14em}
/* The separator glyph is drawn as a short rule instead */
.platformModulesDivider{display:inline-block;width:1.75rem;height:0.0625rem;margin:0 0.875rem;vertical-align:middle;background:var(--teal);font-size:0}
.nexModulesTicker{margin-top:1.5rem;padding:1.125rem 0;border-top:0.0625rem solid var(--line-dark);border-bottom:0.0625rem solid var(--line-dark);overflow:hidden}
.nexModulesViewport{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.nexModulesTrack{display:flex;width:max-content}
.tickGroup{display:flex;align-items:center;flex:none;gap:1.75rem;padding-right:1.75rem;white-space:nowrap}
.tickGroup span{color:#C6D0DD;font-size:0.9375rem;font-weight:500}
.tickGroup i{display:inline-block;width:0.0625rem;height:0.875rem;background:var(--line-dark-strong);font-size:0}
.tickGroup .nexModulesLabel{padding:0.375rem 0.625rem;border:0.0625rem solid rgba(63,230,246,.4);border-radius:0.375rem;color:var(--teal);font-family:var(--mono);font-size:0.7188rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.tickerBottomSeparator{display:none}
.moduleFlexibilityMessage{padding:1.75rem var(--gutter);text-align:center}
/* Frameworks ribbon mirrors the modules ribbon and runs the other way */
.fwTicker{margin:0 0 2.5rem}
.moduleFlexibilityMessage strong{display:block;color:var(--on-dark);font-family:var(--mono);font-size:0.7812rem;font-weight:600;letter-spacing:.1em}
.moduleFlexibilityMessage span{display:block;max-width:60ch;margin:0.625rem auto 0;color:var(--on-dark-muted);font-size:1rem}
.nxStats{background:var(--navy-950);padding-bottom:4.5rem}
.nxStatsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:0.0625rem solid var(--line-dark)}
.nxStat{display:flex;align-items:baseline;gap:1.375rem;padding:2rem 0 0}
.nxStat+.nxStat{padding-left:2.5rem;border-left:0.0625rem solid var(--line-dark)}
.nxStat b{flex:none;min-width:1.4em;color:var(--on-dark);font-family:var(--mono);font-size:4rem;font-weight:500;line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.nxStat span{max-width:32ch;color:var(--on-dark-muted);font-size:1rem;line-height:1.45}

/* Light reading body ---------------------------------------------------- */
.section{padding:7rem 0 7.5rem;background:var(--paper)}
.section.alt{background:var(--surface)}
.sectionHead{max-width:47.5rem;margin-bottom:3.5rem}
.sectionHead h2{margin-bottom:1.25rem;font-size:clamp(1.9375rem,3.5vw,2.875rem);line-height:1.1;letter-spacing:-.03em}
.sectionHead p{max-width:64ch;color:var(--body);font-size:1.125rem;line-height:1.65}
.num{color:var(--teal-ink);font-family:var(--mono);font-size:0.7812rem;font-weight:500;letter-spacing:.06em}

/* 1. Problem: a three-step flow along one connecting line */
.flow{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem}
.flowLine{position:absolute;left:0;right:0;top:0;height:0.0625rem;background:var(--line-strong)}
.flowLine::after{content:"";position:absolute;inset:-0.0312rem 0;background:var(--teal-ink);transform-origin:0 50%}
.flowStep{position:relative;padding-top:2rem}
.flowStep::before{content:"";position:absolute;left:0;top:-0.25rem;width:0.5625rem;height:0.5625rem;border-radius:0.125rem;background:var(--paper);border:0.0938rem solid var(--teal-ink)}
.flowStep .num{display:block;margin-bottom:0.875rem}
.flowStep h3{margin-bottom:0.625rem;font-size:1.3125rem;letter-spacing:-.015em}
.flowStep p{max-width:36ch;font-size:1rem;line-height:1.6}

/* 2. GRC story panel */
.grcStory{margin-top:5.5rem;padding:3rem;background:var(--surface);border:0.0625rem solid var(--line);border-radius:var(--r-lg)}
.grcStoryHead{max-width:40rem;margin-bottom:3rem}
.grcStoryHead .eyebrow{margin-bottom:0.625rem}
.grcStoryHead h3{margin-bottom:0.75rem;font-size:clamp(1.4375rem,2.4vw,1.8125rem);line-height:1.2;letter-spacing:-.022em}
.grcStoryHead p{font-size:1.0312rem}
.storyCanvas{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.25rem}
.storyTrack{position:absolute;top:1.4375rem;left:10%;right:10%;height:0.125rem;background:var(--line);border-radius:0.0625rem}
.storyProgress{width:100%;height:100%;border-radius:inherit;background:var(--teal-ink);transform:scaleX(0);transform-origin:0 50%;transition:transform 500ms var(--ease-in-out)}
.storyStep{position:relative;z-index:1;text-align:center;opacity:.4;transform:translateY(0.5rem);transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out)}
.storyStep.on{opacity:1;transform:none}
.storyIcon{display:grid;place-items:center;width:3rem;height:3rem;margin:0 auto 1.25rem;border-radius:50%;background:var(--surface);border:0.0938rem solid var(--line-strong);color:var(--muted);font-family:var(--mono);font-size:0.8125rem;font-weight:600;font-variant-numeric:tabular-nums;transition:background-color 300ms ease,border-color 300ms ease,color 300ms ease}
.storyStep.on .storyIcon{background:var(--teal-ink);border-color:var(--teal-ink);color:#fff}
.storyStep small{display:block;margin-bottom:0.375rem;color:var(--teal-ink);font-family:var(--mono);font-size:0.6875rem;font-weight:600;letter-spacing:.08em}
.storyStep b{display:block;margin-bottom:0.375rem;color:var(--ink);font-size:1.0312rem;font-weight:600;line-height:1.3}
.storyStep p{font-size:0.9062rem;line-height:1.55;color:var(--body)}
.storyResult{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:1.5rem;padding:1.25rem 1.5rem;background:var(--navy-900);border-radius:var(--r);opacity:0;transform:translateY(0.5rem);transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out)}
.storyResult.on{opacity:1;transform:none}
.storyResult small{display:block;margin-bottom:0.1875rem;color:var(--teal);font-family:var(--mono);font-size:0.6562rem;font-weight:600;letter-spacing:.1em}
.storyResult strong{color:var(--on-dark);font-size:1.0312rem;font-weight:600}
.storyResult span{color:var(--on-dark-muted);font-size:0.9062rem}

/* 3. Platform: one dark console object inside the light page */
.stackGrid{display:grid;grid-template-columns:minmax(0,1fr) 22.5rem;gap:0.75rem;padding:0.75rem;background:var(--navy-900);border-radius:var(--r-xl);box-shadow:var(--shadow)}
.visual{position:relative;padding:1.25rem;background:var(--navy-850);border-radius:var(--r)}
.stack{position:relative;z-index:1;display:flex;flex-direction:column;gap:0.5rem}
.layer{position:relative;padding:0.9375rem 1.25rem;text-align:center;background:var(--navy-800);border:0.0625rem solid var(--line-dark);border-radius:0.625rem;opacity:.25;transform:translateY(0.5rem);transition:opacity 300ms var(--ease-out),transform 300ms var(--ease-out),border-color 300ms ease}
.layer.on{opacity:1;transform:none;border-color:rgba(63,230,246,.28)}
.layer strong{display:block;color:var(--on-dark);font-size:1.0312rem;font-weight:600}
.layer small{display:block;margin-top:0.1875rem;color:var(--on-dark-subtle);font-size:0.7812rem}
.spine{position:absolute;left:50%;top:1.25rem;bottom:1.25rem;z-index:0;width:0.0625rem;transform:translateX(-50%);background:linear-gradient(to top,transparent,var(--teal) 15%,var(--teal) 85%,transparent);opacity:0;transition:opacity 400ms ease}
.spine.on{opacity:.7}
.ai{position:absolute;left:50%;top:50%;z-index:5;width:min(72%,27.5rem);padding:1.25rem 1.5rem;text-align:center;background:var(--navy-950);border:0.0625rem solid rgba(63,230,246,.6);border-radius:0.875rem;box-shadow:0 1.875rem 3.75rem -1.25rem rgba(2,8,18,.85);opacity:0;transform:translate(-50%,calc(-50% + 0.625rem)) scale(.97);transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out)}
.ai.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.ai small{color:var(--teal);font-family:var(--mono);font-size:0.6562rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.ai b{display:block;margin:0.25rem 0 0.375rem;color:var(--on-dark);font-size:2.125rem;font-weight:600;line-height:1.1;letter-spacing:-.025em}
.ai span{display:block;color:var(--on-dark-muted);font-size:0.875rem;line-height:1.5}
.side{padding:1.75rem;background:var(--navy-850);border-radius:var(--r);color:var(--on-dark-muted)}
.side .eyebrow{color:var(--teal)}
.side h3{color:var(--on-dark)}
.distTools,.distGrc{opacity:.3;transform:translateY(0.375rem);transition:opacity 300ms var(--ease-out),transform 300ms var(--ease-out)}
.distTools.on,.distGrc.on{opacity:1;transform:none}
.distTools small,.distGrc small{color:var(--on-dark-subtle);font-family:var(--mono);font-size:0.6562rem;font-weight:600;letter-spacing:.08em}
.distGrc small{color:var(--teal)}
.distTools h3,.distGrc h3{margin:0.375rem 0 0.625rem;font-size:1.3125rem;letter-spacing:-.015em}
.distGrc p{font-size:0.9375rem;line-height:1.6}
.toolPills{display:flex;flex-wrap:wrap;gap:0.375rem}
.toolPills span{padding:0.25rem 0.5625rem;border:0.0625rem solid var(--line-dark-strong);border-radius:0.375rem;color:var(--on-dark-muted);font-family:var(--mono);font-size:0.7188rem}
.distConnector{display:flex;align-items:center;gap:0.625rem;margin:1.125rem 0;color:var(--teal);font-family:var(--mono);font-size:0.625rem;font-weight:600;letter-spacing:.1em;white-space:nowrap;opacity:.25;transition:opacity 300ms ease}
.distConnector.on{opacity:1}
.distConnector i{flex:1;height:0.0625rem;background:rgba(63,230,246,.4)}
.leaderQuestions{margin-top:1.375rem;border-top:0.0625rem solid var(--line-dark)}
.q{padding:0.75rem 0;border-bottom:0.0625rem solid var(--line-dark);color:var(--on-dark);font-size:0.9062rem;font-weight:500;line-height:1.4;opacity:.3;transform:translateX(0.5rem);transition:opacity 300ms ease,transform 300ms var(--ease-out)}
.q.on{opacity:1;transform:none}
.q small{display:block;margin-bottom:0.125rem;color:var(--teal);font-family:var(--mono);font-size:0.625rem;font-weight:600;letter-spacing:.1em}
.animControls{margin-top:1.25rem}
#replay{display:inline-flex;align-items:center;min-height:2.5rem;padding:0 0.875rem;background:transparent;border:0.0625rem solid var(--line-dark-strong);border-radius:var(--r-sm);color:var(--on-dark);font-size:0.875rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color 150ms ease,border-color 150ms ease,transform 160ms var(--ease-out)}

/* 4. Services: a numbered two-column index */
.indexList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3.5rem 5rem}
.indexItem .num{position:relative;display:block;margin-bottom:1rem;padding-top:1.125rem}
.indexItem .num::before{content:"";position:absolute;left:0;top:0;width:2rem;height:0.125rem;background:var(--teal-ink);transform-origin:0 50%}
.indexItem h3{margin-bottom:0.625rem;font-size:1.375rem;letter-spacing:-.018em}
.indexItem p{max-width:46ch;font-size:1.0312rem}

/* 5. Shift: comparison */
.shift{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.compare{padding:2.5rem;background:var(--surface);border:0.0625rem solid var(--line);border-radius:var(--r-lg)}
.compare h3{margin-bottom:1.375rem;font-size:1.4375rem;letter-spacing:-.02em}
.compare ul{margin:0;padding:0;list-style:none}
.compare li{position:relative;padding:0.9375rem 0 0.9375rem 2.25rem;border-top:0.0625rem solid var(--line);font-size:1rem;line-height:1.55;color:var(--body)}
.compare li::before{content:"";position:absolute;left:0.25rem;top:1.625rem;width:0.75rem;height:0.0938rem;background:var(--muted)}
.compare.good{background:var(--navy-900);border-color:var(--navy-900);box-shadow:var(--shadow)}
.compare.good h3{color:var(--on-dark)}
.compare.good li{border-color:var(--line-dark);color:#DCE4EE}
.compare.good li::before{left:0.3125rem;top:1.25rem;width:0.375rem;height:0.6875rem;background:none;border-right:0.1094rem solid var(--teal);border-bottom:0.1094rem solid var(--teal);transform:rotate(40deg)}

/* 6. Why AI CISO: a six-cell bento with real variation */
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}
.cell{display:flex;flex-direction:column;justify-content:flex-end;min-height:13.75rem;padding:2rem;background:var(--paper);border:0.0625rem solid var(--line);border-radius:var(--r-lg);transition:border-color 200ms ease,transform 200ms var(--ease-out)}
.cell .num{margin-bottom:auto;padding-bottom:1.75rem}
.cell h3{margin-bottom:0.625rem;font-size:1.375rem;letter-spacing:-.018em}
.cell p{max-width:44ch;font-size:1rem}
.cell:nth-child(1){grid-column:span 4;min-height:17.5rem;background:var(--navy-900);border-color:var(--navy-900)}
.cell:nth-child(1) .num{color:var(--teal)}
.cell:nth-child(1) h3{color:var(--on-dark);font-size:1.875rem;letter-spacing:-.028em}
.cell:nth-child(1) p{color:var(--on-dark-muted);font-size:1.0625rem}
.cell:nth-child(2){grid-column:span 2}
.cell:nth-child(3){grid-column:span 2}
.cell:nth-child(4){grid-column:span 2;background:var(--tint);border-color:#CFEAF3}
.cell:nth-child(5){grid-column:span 2}
.cell:nth-child(6){grid-column:span 6;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:end;gap:0.5rem 3rem;min-height:0}
.cell:nth-child(6) .num{grid-column:1/-1;padding-bottom:0.75rem}
.cell:nth-child(6) h3{margin:0;font-size:1.625rem}

/* 7. Industries: a ruled grid, not pills */
.industries{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.0625rem;background:var(--line);border:0.0625rem solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.pill{display:flex;align-items:flex-end;min-height:7.5rem;padding:1.5rem;background:var(--paper);color:var(--ink);font-size:1.125rem;font-weight:500;letter-spacing:-.01em;line-height:1.3;transition:background-color 200ms ease,color 200ms ease}

/* 8. About: heading beside a short ruled list */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem 6rem;align-items:start}
.split .sectionHead{position:sticky;top:7.5rem;margin-bottom:0}
.ruled .ruledItem{padding:1.875rem 0 2.125rem;border-top:0.0625rem solid var(--line-strong)}
.ruled .ruledItem:last-child{border-bottom:0.0625rem solid var(--line-strong)}
.ruledItem .num{display:block;margin-bottom:0.75rem}
.ruledItem h3{margin-bottom:0.5rem;font-size:1.375rem;letter-spacing:-.018em}
.ruledItem p{font-size:1.0312rem}

/* 9. CTA */
.ctaBand{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:3rem;padding:4.5rem 4rem;background:var(--navy-900);border-radius:var(--r-xl);box-shadow:var(--shadow)}
.ctaBand::before{content:"";position:absolute;right:-10%;top:-60%;width:60%;height:220%;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,rgba(63,230,246,.12),transparent)}
.ctaBand .eyebrow{color:var(--teal)}
.ctaBand h2{max-width:20ch;margin-bottom:1rem;color:var(--on-dark);font-size:clamp(1.8125rem,3.1vw,2.5rem);line-height:1.12;letter-spacing:-.03em}
.ctaBand p{max-width:56ch;color:var(--on-dark-muted);font-size:1.0938rem;line-height:1.6}
.ctaBand .btn{flex:none;min-height:3.375rem;padding:0 1.75rem;font-size:1rem}

/* Footer ---------------------------------------------------------------- */
footer{background:var(--navy-950);color:var(--on-dark-subtle);padding:5rem 0 2.25rem}
.nxFooterColumns{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:3rem;padding-bottom:3.5rem;border-bottom:0.0625rem solid var(--line-dark)}
.nxFooterCol{display:flex;flex-direction:column;align-items:flex-start;gap:0.75rem}
.nxFooterCol h3{margin-bottom:0.5rem;color:var(--on-dark);font-family:var(--mono);font-size:0.7188rem;font-weight:600;letter-spacing:.12em}
.nxFooterCol a{color:var(--on-dark-muted);font-size:0.9688rem;transition:color 150ms ease}
.nxFooterContact div{color:var(--on-dark-subtle);font-size:0.9688rem}
.nxFooterContact strong{color:var(--on-dark);font-weight:600}
.nxFooterContact .nxDemoLink{margin-top:0.375rem;color:var(--teal);font-weight:600}
.foot{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3.5rem;align-items:start;padding:2.25rem 0;border-bottom:0.0625rem solid var(--line-dark);font-size:0.8438rem;line-height:1.7}
.foot>div:last-child{max-width:90ch}
.footerCopyright{padding-top:1.5rem;font-size:0.8438rem}

/* Motion ---------------------------------------------------------------- */
@keyframes dataFlow{to{stroke-dashoffset:0}}
@keyframes coreWave{0%{opacity:.6;transform:scale(.92)}100%{opacity:0;transform:scale(1.2)}}
@keyframes drawLine{to{stroke-dashoffset:0}}
@keyframes appear{to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(1.125rem)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes menuIn{from{opacity:0;transform:scale(.96) translateY(-0.25rem)}to{opacity:1;transform:none}}
@keyframes ticker{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@keyframes progress{to{transform:scaleX(1)}}

/* Reading progress: native scroll timeline, no scroll listener */
@supports (animation-timeline:scroll()){
  #nxProgress{animation:progress linear both;animation-timeline:scroll(root)}
}

@media (hover:hover) and (pointer:fine){
  .liveTopbarEmail:hover,.liveTopbarPhone:hover{color:var(--teal)}
  .links a:hover{color:var(--on-dark)}
  .links a:hover::after{transform:scaleX(1);transform-origin:0 50%}
  .btn.primary:hover{background:var(--teal-hover)}
  .btn.ghost:hover{color:var(--teal)}
  .btn.ghost:hover::after{transform:translateX(0.1875rem) rotate(45deg)}
  .mnav summary:hover{background:rgba(255,255,255,.06)}
  .nxPause:hover{color:var(--on-dark)}
  #replay:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.4)}
  .cell:hover{border-color:var(--line-strong)}
  .cell:nth-child(1):hover{border-color:var(--navy-900)}
  .pill:hover{background:var(--surface);color:var(--teal-ink)}
  .nxFooterCol a:hover{color:var(--on-dark)}
  .nxFooterContact .nxDemoLink:hover{color:var(--teal-hover)}
  .nexModulesTicker:hover .nexModulesTrack{animation-play-state:paused}
}

@media (prefers-reduced-motion:no-preference){
  .btn:active,.mnav summary:active,#replay:active{transform:scale(.97)}
  @media (hover:hover) and (pointer:fine){
    .btn.primary:hover{transform:translateY(-0.0625rem)}
    .btn.primary:hover:active{transform:translateY(-0.0625rem) scale(.97)}
    .cell:hover{transform:translateY(-0.125rem)}
  }

  /* Hero: one staggered arrival, then the story stage */
  .js .heroCopy>*{animation:rise 750ms var(--ease-out) both}
  .js .heroCopy>:nth-child(1){animation-delay:60ms}
  .js .heroCopy>:nth-child(2){animation-delay:140ms}
  .js .heroCopy>:nth-child(3){animation-delay:230ms}
  .js .heroCopy>:nth-child(4){animation-delay:320ms}
  .js .heroVisual{animation:rise 950ms var(--ease-out) 260ms both}

  /* Reveals. Hidden states exist only while [data-reveal] is present, so
     removing the attribute after the reveal leaves the final state intact. */
  .js [data-reveal]{opacity:0;transform:translateY(1rem);transition:opacity 650ms var(--ease-out),transform 650ms var(--ease-out);transition-delay:calc(var(--i,0) * 60ms)}
  /* Headings rise through a mask */
  .js [data-reveal="mask"]{opacity:1;transform:translateY(.45em);clip-path:inset(0 0 100% 0);transition:clip-path 800ms var(--ease-out),transform 800ms var(--ease-out);transition-delay:calc(var(--i,0) * 60ms)}
  /* Dark panels open like a shutter */
  .js [data-reveal="curtain"]{opacity:1;transform:none;clip-path:inset(0 0 100% 0 round 1.25rem);transition:clip-path 900ms var(--ease-in-out)}
  /* The problem flow: line draws, steps light up as it reaches them */
  .js [data-reveal="flow"]{opacity:1;transform:none}
  .js [data-reveal="flow"] .flowLine::after{transform:scaleX(0);transition:transform 1200ms var(--ease-in-out) 150ms}
  .js [data-reveal="flow"] .flowStep{opacity:.25;transition:opacity 500ms ease}
  .js [data-reveal="flow"] .flowStep:nth-of-type(2){transition-delay:250ms}
  .js [data-reveal="flow"] .flowStep:nth-of-type(3){transition-delay:700ms}
  .js [data-reveal="flow"] .flowStep:nth-of-type(4){transition-delay:1150ms}
  /* Index ticks draw in */
  .js .indexItem[data-reveal] .num::before{transform:scaleX(0);transition:transform 600ms var(--ease-out) calc(var(--i,0) * 60ms + 200ms)}
  .js [data-reveal].is-in{opacity:1;transform:none;clip-path:inset(0 0 -20% 0)}
  .js [data-reveal="curtain"].is-in{clip-path:inset(0 0 0 0 round 1.25rem)}
  .js [data-reveal="flow"].is-in .flowLine::after,.js .indexItem[data-reveal].is-in .num::before{transform:none}
  .js [data-reveal="flow"].is-in .flowStep{opacity:1}

  .mnav[open] .mnavPanel{animation:menuIn 180ms var(--ease-out)}
  .nexModulesTrack{animation:ticker 52s linear infinite}
  .fwTrack{animation-direction:reverse}
}

html.nx-paused .flowSvg path,html.nx-paused .corePulse,html.nx-paused .nexModulesTrack{animation-play-state:paused}

/* Reduced motion: no movement; short fades and state colors are kept */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .flowSvg path.on,.live .corePulse,.execDash.on .riskLine,.execDash.on .endDot{animation:none}
  .riskLine{stroke-dashoffset:0}
  .endDot{opacity:1}
  .js .heroCopy,.js .heroVisual{animation:fade 250ms ease both}
  .js [data-reveal]{opacity:0;transition:opacity 250ms ease}
  .js [data-reveal].is-in{opacity:1}
  .dataChip,.intelligenceCore,.decisionRail,.outcomeCard,.execDash,.layer,.ai,.q,.distTools,.distGrc,.storyStep,.storyResult{transition-property:opacity,border-color,background-color,color,box-shadow}
  .storyProgress{transition:none}
  #nxProgress{display:none}
  .nexModulesViewport{-webkit-mask-image:none;mask-image:none}
  .tickGroup{flex:1;flex-wrap:wrap;justify-content:center;gap:0.625rem 1.125rem;padding:0 var(--gutter);white-space:normal}
  .tickGroup[aria-hidden="true"]{display:none}
  .nexModulesTrack{width:auto}
}

/* Responsive ------------------------------------------------------------ */
@media (max-width:1100px){
  .links{display:none}
  .mnav{display:block}
  .navin{gap:0.75rem}
  .heroGrid{grid-template-columns:1fr;gap:4rem}
  .heroVisual{width:100%;max-width:42.5rem;margin:0 auto}
  .stackGrid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .split .sectionHead{position:static}
}
@media (max-width:900px){
  .section{padding:5.25rem 0 5.75rem}
  .heroProofGrid{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr;gap:0}
  .flowLine{left:0;right:auto;top:0;bottom:0;width:0.0625rem;height:auto}
  .flowLine::after{transform-origin:50% 0}
  .js [data-reveal="flow"] .flowLine::after{transform:scaleY(0)}
  .flowStep{padding:0 0 2.5rem 2rem}
  .flowStep::before{left:-0.25rem;top:0.25rem}
  .indexList{grid-template-columns:1fr;gap:2.75rem}
  .shift{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr 1fr}
  .cell:nth-child(n){grid-column:span 1}
  .cell:nth-child(1),.cell:nth-child(6){grid-column:1/-1}
  .cell:nth-child(6){display:flex}
  .industries{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grcStory{padding:2rem}
  .storyCanvas{grid-template-columns:1fr;gap:1rem}
  .storyTrack{display:none}
  .storyStep{display:grid;grid-template-columns:3rem 1fr;column-gap:1rem;text-align:left;transform:translateX(0.5rem)}
  .storyStep.on{transform:none}
  .storyIcon{grid-row:span 3;margin:0}
  .storyResult{display:block}
  .storyResult span{display:block;margin-top:0.375rem}
  .ctaBand{flex-direction:column;align-items:flex-start;gap:2rem;padding:3rem 2.25rem}
  .nxFooterColumns{grid-template-columns:1fr 1fr}
  .nxFooterContact{grid-column:1/-1}
  .foot{grid-template-columns:1fr;gap:1.25rem}
  .nxStatsGrid{grid-template-columns:1fr}
  .nxStat+.nxStat{padding-left:0;border-left:0;margin-top:0.5rem}
}
@media (max-width:640px){
  :root{--gutter:1rem}
  body{font-size:1.0312rem}
  .liveTopbarInner{justify-content:center;text-align:center}
  .liveTopbarContact{justify-content:center;gap:0.5rem 1.25rem}
  .navin{height:4rem}
  .wordmark{font-size:1.5rem}
  .nav>.navin>.btn{display:none}
  .mnavPanel .mdemo{display:block}
  .hero{padding:3rem 0 6rem}
  .heroPlatformLine{font-size:0.875rem}
  .heroCopy>p{font-size:1.0625rem}
  .actions{flex-direction:column;align-items:stretch}
  .actions .btn.primary{width:100%}
  .actions .btn.ghost{justify-content:flex-start}
  .micro{grid-template-columns:1fr;gap:1rem}
  .storyOrbit{padding:0.5rem}
  .storyStage{height:35rem}
  .dataChip{padding:0.375rem 0.5625rem;font-size:0.7188rem;gap:0.375rem}
  .dc1{left:0.25rem;top:2.5rem}.dc2{right:0.25rem;top:5.25rem}.dc3{left:0;top:11.875rem}.dc4{right:0;top:12.25rem}.dc5{left:0.375rem;bottom:9.375rem}.dc6{right:0.375rem;bottom:12.25rem}
  .intelligenceCore{width:8.75rem;height:8.75rem;padding:0.75rem;gap:0.25rem;top:46%}
  .intelligenceCore small{font-size:0.5312rem}
  .intelligenceCore strong{font-size:1.5rem}
  .intelligenceCore span{font-size:0.5rem;max-width:6.875rem}
  .corePulse{inset:-0.625rem}
  .decisionRail{grid-template-columns:repeat(2,minmax(0,1fr));gap:0.375rem;width:calc(100% - 0.5rem);bottom:0.25rem}
  .decision{min-height:4rem;padding:0.5rem}
  .decision small{font-size:0.5625rem;margin-bottom:0.1875rem}
  .decision b{font-size:0.75rem}
  .execDash{padding:0.75rem}
  .dashTop strong{font-size:0.875rem}
  .dashGrid{gap:0.375rem}
  .metric{padding:0.5rem}
  .metric small{font-size:0.5rem;letter-spacing:.02em}
  .metric b{font-size:1.1875rem}
  .metric em{font-size:0.625rem}
  .chartCard,.priorityCard{grid-column:1/-1;padding:0.625rem}
  .trend{height:3rem}
  .priorityRow{padding:0.3125rem 0}
  .boardTakeaway{padding:0.5rem 0.625rem}
  .boardTakeaway b{font-size:0.7188rem}
  .nxStat b{font-size:3.25rem}
  .section{padding:4.5rem 0 5rem}
  .sectionHead{margin-bottom:2.5rem}
  .sectionHead p{font-size:1.0625rem}
  .grcStory{margin-top:4rem;padding:1.5rem 1.25rem}
  .layer{padding:0.75rem 0.875rem}
  .layer strong{font-size:0.9375rem}
  .layer small{font-size:0.7188rem}
  .ai{width:86%;padding:1rem}
  .ai b{font-size:1.75rem}
  .side{padding:1.375rem}
  .bento{grid-template-columns:1fr}
  .cell{min-height:0;padding:1.625rem 1.375rem}
  .cell:nth-child(1) h3{font-size:1.5625rem}
  .cell .num{padding-bottom:1.25rem}
  .industries{grid-template-columns:1fr 1fr}
  .pill{min-height:5.5rem;padding:1.125rem 1rem;font-size:1rem}
  .compare{padding:1.75rem 1.375rem}
  .ctaBand{padding:2.5rem 1.375rem;border-radius:var(--r-lg)}
  .ctaBand .btn{width:100%}
  .nxFooterColumns{grid-template-columns:1fr;gap:2.25rem}
  footer{padding-top:3.75rem}
}

/* Franchise partner badge */
.partnerBadge{flex:none;display:inline-flex;align-items:center;gap:0.875rem;white-space:nowrap;padding:0.875rem 1.25rem 0.875rem 1rem;border:0.0625rem solid rgba(63,230,246,.35);border-radius:var(--r);background:rgba(63,230,246,.05)}
.partnerBadge .seal{flex:none;width:1.875rem;height:1.875rem}
.badgeText small{display:block;color:var(--teal);font-family:var(--mono);font-size:0.6562rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.badgeText b{display:block;margin-top:0.1875rem;color:var(--on-dark);font-size:1rem;font-weight:600;letter-spacing:-.01em}
.badgeText em{display:block;margin-top:0.0625rem;color:var(--on-dark-muted);font-size:0.8125rem;font-style:normal}
.partnerIntro{display:flex;align-items:center;gap:1.75rem;max-width:none}
.heroProofGrid{grid-template-columns:1fr;gap:2rem}
.heroProof .micro{max-width:48.75rem;padding-top:1.75rem;border-top:0.0625rem solid var(--line-dark)}
.partnerIntro p{max-width:62ch}
.partnerIntro p{max-width:46ch}
.footBadge{margin-top:1.5rem;padding:0.625rem 1rem 0.625rem 0.75rem;gap:0.75rem}
.footBadge .seal{width:1.5rem;height:1.5rem}
.footBadge .badgeText b{font-size:0.875rem}
/* The eight questions */
.askLead{max-width:64ch;margin-bottom:1.5rem;color:var(--body);font-size:1.125rem}
.askLead b{color:var(--ink);font-weight:600}
.askList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3.5rem;margin:0;padding:0;list-style:none;border-top:0.0625rem solid var(--line-strong)}
.askList li{display:flex;align-items:baseline;gap:1.125rem;padding:1.125rem 0;border-bottom:0.0625rem solid var(--line);color:var(--ink);font-size:1.125rem;font-weight:500;line-height:1.4}
.askList .num{flex:none;width:2ch}
@media(max-width:900px){.partnerIntro{flex-direction:column;align-items:flex-start;gap:1.125rem}.askList{grid-template-columns:1fr}}

/* Stats: six figures in a grid, each with its own top rule */
.nxStatsGrid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:3rem;border-top:0}
.nxStat,.nxStat+.nxStat{flex-direction:column;align-items:flex-start;gap:0.875rem;margin:0;padding:1.75rem 0 2rem;border-left:0;border-top:0.0625rem solid var(--line-dark)}
.nxStat b{font-size:3.25rem;white-space:nowrap}
.nxStat b em{font-style:normal}
.nxStatsNote{grid-column:1/-1;margin:0.25rem 0 0;color:var(--on-dark-muted);font-size:0.8125rem}
@media (max-width:1100px){.nxStatsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.nxStat b{font-size:2.875rem}}
@media (max-width:640px){.nxStatsGrid{grid-template-columns:1fr}.nxStat b{font-size:2.625rem}}

/* Modules band, simplified: one heading, one moving ribbon, one still row */
.aiCisoModulesSection{padding-top:4.5rem}
.moduleFlexibilityMessage{padding:0 var(--gutter) 2rem;text-align:center}
.moduleFlexibilityMessage h2{margin:0;color:var(--on-dark);font-size:clamp(1.625rem,3vw,2.125rem);font-weight:600;letter-spacing:-.02em;line-height:1.15;text-wrap:balance}
.moduleFlexibilityMessage p{max-width:58ch;margin:0.75rem auto 0;color:var(--on-dark-muted);font-size:1.0625rem;text-wrap:pretty}
.nexModulesTicker{margin-top:0;border-bottom:0}
.fwRow{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0.375rem 0;margin:0;padding:1.375rem var(--gutter) 3.5rem;color:var(--on-dark-subtle);font-size:0.875rem}
.fwRow span{white-space:nowrap}
.fwRow span:not(.fwLead):not(:last-child)::after{content:'·';margin:0 0.75rem;color:var(--line-dark-strong)}
.fwRow .fwLead{margin-right:1rem;color:var(--on-dark-muted);font-weight:500}
@media (max-width:640px){.fwRow{justify-content:flex-start}.fwRow .fwLead{flex-basis:100%;margin:0 0 0.25rem}}

/* Ribbons as one band: modules lead, frameworks sit quieter beneath and run the other way */
.nexModulesTicker{margin-top:0;padding:1rem 0;border-top:0.0625rem solid var(--line-dark);border-bottom:0}
.aiCisoModulesSection{padding-bottom:0}
/* Light band separating the ribbons from the stats */
.nxStats{border-top:4.5rem solid var(--paper);padding-top:3rem}
.fwTicker{margin:0;padding:0.875rem 0;border-bottom:0}
.fwTicker .tickGroup span{color:var(--on-dark-subtle);font-size:0.875rem}
.fwTicker .tickGroup .nexModulesLabel{border-color:var(--line-dark-strong);color:var(--on-dark-muted);font-size:0.6875rem}
/* Stats, calmer: smaller figures, no per-item rules, more air */
.nxStatsGrid{column-gap:3.5rem;row-gap:0.75rem}
.nxStat,.nxStat+.nxStat{gap:0.625rem;padding:1.5rem 0 1.75rem;border-top:0.0625rem solid var(--line-dark)}
.nxStat b{font-size:2.75rem;letter-spacing:-.04em}
.nxStat span{font-size:0.9375rem;max-width:34ch}
.nxStatsNote{margin-top:0.75rem;padding-top:1.25rem;border-top:0.0625rem solid var(--line-dark)}
@media (max-width:1100px){.nxStat b{font-size:2.5rem}}
@media (max-width:640px){.nxStat b{font-size:2.375rem}.nxStatsGrid{row-gap:0.25rem}}

/* Franchise badge animation: the seal draws in when the badge comes into view, then a soft light passes across every few seconds */
.partnerBadge{position:relative;overflow:hidden;isolation:isolate}
.partnerBadge::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 35%,rgba(63,230,246,.16) 50%,transparent 65%);transform:translateX(-120%);pointer-events:none}
@media (prefers-reduced-motion:no-preference){
  .badgeAnim .seal circle,.badgeAnim .seal path{stroke-dasharray:1;stroke-dashoffset:1}
  .badgeAnim.on .seal circle{stroke-dashoffset:0;transition:stroke-dashoffset 900ms var(--ease-out)}
  .badgeAnim.on .seal path{stroke-dashoffset:0;transition:stroke-dashoffset 450ms var(--ease-out) 650ms}
  .badgeAnim.on::after{animation:badgeSheen 7s var(--ease-in-out) 1.2s infinite}
  .badgeAnim.on{animation:badgeGlow 7s ease-in-out 1.2s infinite}
}
@keyframes badgeSheen{0%{transform:translateX(-120%)}18%,100%{transform:translateX(120%)}}
@keyframes badgeGlow{0%,100%{border-color:rgba(63,230,246,.35)}9%{border-color:rgba(63,230,246,.7)}20%{border-color:rgba(63,230,246,.35)}}
html.nx-paused .badgeAnim::after,html.nx-paused .badgeAnim{animation-play-state:paused}

/* Industries: indexed tiles, staggered rise, accent lines that draw in, a slow light drifting across the grid */
.industries{position:relative;isolation:isolate}
.industries::after{content:"";position:absolute;inset:-40%;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 42%,rgba(63,230,246,.13) 50%,transparent 58%);transform:translateX(-60%)}
.pill{position:relative;display:grid;grid-template-rows:auto 1fr auto;align-items:start;gap:0;min-height:10.5rem;padding:1.5rem 1.5rem 1.625rem;overflow:hidden}
.pillNum{color:var(--muted);font-family:var(--mono);font-size:0.75rem;font-weight:500;letter-spacing:.08em;font-variant-numeric:tabular-nums;transition:color 200ms ease}
.pillName{align-self:end;margin-top:1.75rem;color:var(--ink);font-size:1.125rem;font-weight:500;letter-spacing:-.01em;line-height:1.3;transition:transform 260ms var(--ease-out),color 200ms ease}
.pillBar{display:block;width:2rem;height:0.125rem;margin-top:0.875rem;background:var(--teal-ink);transform-origin:0 50%;transition:width 300ms var(--ease-out)}
.pill::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0.125rem;background:var(--teal-ink);transform:scaleY(0);transform-origin:50% 100%;transition:transform 300ms var(--ease-out)}
@media (prefers-reduced-motion:no-preference){
  .js .pill[data-reveal]{transform:translateY(0.875rem)}
  .js .pill[data-reveal].is-in{transform:none}
  .js .pill[data-reveal] .pillBar{transform:scaleX(0)}
  .js .pill[data-reveal].is-in .pillBar{transform:none;transition:transform 600ms var(--ease-out) calc(var(--i,0) * 70ms + 320ms),width 300ms var(--ease-out)}
  .js .pill[data-reveal] .pillNum{opacity:0}
  .js .pill[data-reveal].is-in .pillNum{opacity:1;transition:opacity 400ms ease calc(var(--i,0) * 70ms + 200ms)}
  .industries::after{animation:industrySweep 9s var(--ease-in-out) 1.5s infinite}
}
@keyframes industrySweep{0%{transform:translateX(-60%)}45%,100%{transform:translateX(60%)}}
html.nx-paused .industries::after{animation-play-state:paused}
@media (hover:hover) and (pointer:fine){
  .pill:hover{background:var(--surface)}
  .pill:hover .pillNum{color:var(--teal-ink)}
  .pill:hover .pillName{color:var(--ink);transform:translateY(-0.1875rem)}
  .pill:hover .pillBar{width:4rem}
  .pill:hover::before{transform:scaleY(1)}
}
@media (max-width:640px){.pill{min-height:7.75rem;padding:1.125rem 1rem 1.25rem}.pillName{margin-top:1.125rem;font-size:1rem}}
