:root {
  --navy: #07182d;
  --navy-2: #0b2340;
  --navy-3: #102d50;
  --blue: #1769e0;
  --blue-soft: #e9f1ff;
  --gold: #e5a414;
  --gold-soft: #fff3d6;
  --teal: #0b9a91;
  --teal-soft: #e1f6f4;
  --violet: #7458d8;
  --violet-soft: #eeeaff;
  --orange: #e66e19;
  --orange-soft: #fff0e5;
  --ink: #0a1728;
  --muted: #607089;
  --canvas: #f5f7fa;
  --surface: #ffffff;
  --surface-2: #eef2f6;
  --line: #dce3ea;
  --line-dark: rgba(255,255,255,.14);
  --white: #fff;
  --shadow-sm: 0 10px 30px rgba(7,24,45,.07);
  --shadow-md: 0 22px 60px rgba(7,24,45,.11);
  --shadow-lg: 0 38px 100px rgba(7,24,45,.18);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 28px;
  --max: 1240px;
  --header: 78px;
  --ease: cubic-bezier(.22,.8,.22,1);
}

html[data-theme="dark"] {
  --ink: #edf4ff;
  --muted: #a9b7ca;
  --canvas: #061322;
  --surface: #0c1d31;
  --surface-2: #10243b;
  --line: #233b56;
  --blue-soft: #102b50;
  --gold-soft: #382d12;
  --teal-soft: #0c302e;
  --violet-soft: #251e48;
  --orange-soft: #3b2114;
  --shadow-sm: 0 10px 30px rgba(0,0,0,.18);
  --shadow-md: 0 22px 60px rgba(0,0,0,.26);
  --shadow-lg: 0 38px 100px rgba(0,0,0,.32);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--canvas); overflow-x: clip; max-width: 100%; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--canvas);
  font-family: "Lato", "Segoe UI", Arial, sans-serif;
  overflow-x: clip;
  max-width: 100%;
  cursor: none;
  transition: background-color .35s, color .35s;
}
button, input, select, textarea { font: inherit; }
a, button, input, select, textarea, label { cursor: none; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { border: 0; }
svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
::selection { background: #bdd6ff; color: #07182d; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 20px; height: 20px; flex: 0 0 auto; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.section { padding: 116px 0; position: relative; }
h1, h2, h3, .metric-row strong, .stats-row strong, .orbit-badge span {
  font-family: "Inter Display", "Lato", "Segoe UI", Arial, sans-serif;
}


.page-progress { position: fixed; z-index: 1600; top: 0; left: 0; width: 0; height: 3px; background: var(--gold); }
.cursor-dot, .cursor-ring { position: fixed; z-index: 3000; pointer-events: none; left: 0; top: 0; transform: translate(-50%,-50%); border-radius: 50%; }
.cursor-dot { width: 6px; height: 6px; background: var(--gold); }
.cursor-ring { width: 38px; height: 38px; border: 1px solid rgba(23,105,224,.62); display: grid; place-items: center; transition: width .22s, height .22s, background .22s, border-color .22s; }
.cursor-ring span { font-size: 0; color: var(--navy); font-weight: 850; white-space: nowrap; }
.cursor-ring.active { width: 68px; height: 68px; background: rgba(255,255,255,.87); border-color: var(--gold); box-shadow: var(--shadow-sm); }
.cursor-ring.active span { font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }

.site-header { position: fixed; z-index: 1200; top: 0; left: 0; right: 0; height: var(--header); color: var(--white); transition: .3s var(--ease); }
.site-header.scrolled { background: rgba(7,24,45,.96); color: var(--white); border-bottom: 1px solid rgba(255,255,255,.11); box-shadow: 0 10px 30px rgba(0,0,0,.20); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.nav-wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.brand { display: inline-flex; align-items: center; width: 260px; }
.brand img { width: 100%; height: auto; filter: none; transition: opacity .3s, transform .3s; }
.site-header.scrolled .brand img { filter: none; }
.site-header.open .brand img { filter: none; }
.desktop-nav { display: flex; align-items: center; gap: 6px; }
.desktop-nav a { padding: 10px 13px; border-radius: 999px; font-size: 13px; font-weight: 760; color: currentColor; opacity: .76; transition: .22s; }
.desktop-nav a:hover, .desktop-nav a.active { opacity: 1; background: rgba(255,255,255,.1); }
.site-header.scrolled .desktop-nav a:hover, .site-header.scrolled .desktop-nav a.active { background: rgba(255,255,255,.10); }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.icon-button { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: currentColor; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.18); transition: .22s; }
.site-header.scrolled .icon-button { background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.18); }
.icon-button:hover { transform: translateY(-2px); }
.theme-toggle .moon-icon { display: none; }
html[data-theme="dark"] .theme-toggle .sun-icon { display: none; }
html[data-theme="dark"] .theme-toggle .moon-icon { display: block; }
.mobile-menu-button { display: none; }
.mobile-panel { display: none; }

.button { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 23px; border-radius: 999px; font-size: 14px; font-weight: 850; transition: transform .22s var(--ease), box-shadow .22s, background-color .22s, color .22s; }
.button:hover { transform: translateY(-3px); }
.button-small { min-height: 44px; padding: 0 17px; font-size: 12px; }
.button-primary { background: var(--blue); color: var(--white); box-shadow: 0 14px 32px rgba(23,105,224,.23); }
.button-primary:hover { background: #0f5ac6; box-shadow: 0 18px 40px rgba(23,105,224,.29); }
.button-accent { background: var(--gold); color: var(--navy); box-shadow: 0 15px 35px rgba(229,164,20,.25); }
.button-accent:hover { background: #f0b325; }
.button-ghost { color: var(--white); border: 1px solid rgba(255,255,255,.26); background: rgba(255,255,255,.07); }
.button-ghost:hover { background: rgba(255,255,255,.13); }
.button-dark { background: var(--navy); color: var(--white); }

.eyebrow { display: inline-flex; align-items: center; color: var(--blue); text-transform: uppercase; font-size: 11px; letter-spacing: .17em; font-weight: 900; }
.eyebrow > span:empty { display: none !important; }
.eyebrow-light { color: #77b3ff; }
.section-heading { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); gap: 70px; align-items: end; margin-bottom: 48px; }
.section-heading h2 { margin: 15px 0 0; max-width: 790px; font-size: clamp(2.45rem, 4.8vw, 5.2rem); line-height: .97; letter-spacing: -.065em; }
.section-heading p { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.8; }

.hero { position: relative; min-height: 100svh; padding: 132px 0 82px; display: flex; align-items: center; color: var(--white); background: var(--navy); overflow: hidden; }
#networkCanvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .62; }
.hero::before { content: ""; position: absolute; top: 0; right: 0; width: 46%; height: 100%; background: #0a2039; border-left: 1px solid rgba(255,255,255,.07); }
.hero::after { content: ""; position: absolute; width: 430px; height: 430px; border: 1px solid rgba(255,255,255,.09); right: -180px; top: 120px; border-radius: 50%; }
.hero-rings { position: absolute; right: 4%; bottom: 4%; width: 330px; height: 330px; opacity: .5; }
.hero-rings i { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; animation: orbitSpin 18s linear infinite; }
.hero-rings i:nth-child(2) { inset: 55px; border-color: rgba(229,164,20,.27); animation-direction: reverse; animation-duration: 13s; }
.hero-rings i:nth-child(3) { inset: 110px; border-color: rgba(23,105,224,.35); animation-duration: 9s; }
.hero-rings i::after { content: ""; width: 8px; height: 8px; background: var(--gold); position: absolute; left: 50%; top: -4px; border-radius: 50%; }
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1fr) minmax(480px,.92fr); gap: 84px; align-items: center; }
.hero-copy h1 { margin: 20px 0 27px; max-width: 770px; font-size: clamp(4rem, 7.4vw, 7.7rem); line-height: .89; letter-spacing: -.075em; }
.hero-copy h1 em { color: var(--gold); font-style: normal; display: inline-block; min-width: 5.7ch; }
.hero-copy > p { max-width: 650px; color: #b7c5d8; line-height: 1.85; font-size: clamp(1rem,1.3vw,1.13rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 33px; color: #9fb0c6; font-size: 12px; }
.hero-trust span:not(:first-child)::before { content: "•"; color: var(--gold); margin-right: 10px; }
.trust-mark { color: var(--white); font-weight: 900; }
.hero-stage { position: relative; min-height: 570px; display: grid; align-items: center; }
.stage-frame { position: relative; z-index: 2; width: 100%; border: 1px solid rgba(255,255,255,.16); background: #0d2744; border-radius: 24px; box-shadow: 0 36px 100px rgba(0,0,0,.36); overflow: hidden; transform-style: preserve-3d; }
.stage-toolbar { height: 50px; display: flex; align-items: center; gap: 12px; padding: 0 18px; border-bottom: 1px solid rgba(255,255,255,.11); color: #b8c7da; font-size: 11px; }
.stage-toolbar b { margin-left: auto; color: #9ae2c4; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.stage-dots { display: flex; gap: 6px; }
.stage-dots i { width: 7px; height: 7px; border-radius: 50%; background: #58708d; }
.stage-dots i:first-child { background: #ef6d6d; }.stage-dots i:nth-child(2){ background: var(--gold); }.stage-dots i:nth-child(3){ background: #57c195; }
.stage-body { display: grid; grid-template-columns: 55px 1fr; min-height: 460px; }
.stage-side { padding: 16px 0; display: flex; flex-direction: column; align-items: center; gap: 20px; border-right: 1px solid rgba(255,255,255,.1); }
.stage-logo { width: 29px; height: 29px; border-radius: 9px; display: grid; place-items: center; background: var(--blue); color: var(--white); font-size: 10px; font-weight: 950; }
.stage-side span { width: 18px; height: 3px; background: #3a5472; border-radius: 99px; }
.stage-side span.active { background: var(--gold); width: 25px; }
.stage-main { padding: 21px; }
.metric-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.metric-row article { padding: 15px; border-radius: 14px; background: #102f50; border: 1px solid rgba(255,255,255,.08); }
.metric-row small, .metric-row span { display: block; color: #91a6bf; font-size: 9px; }
.metric-row strong { display: block; margin: 5px 0 3px; font-size: 25px; letter-spacing: -.05em; }
.chart-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 10px; margin-top: 10px; }
.line-card, .activity-card { min-height: 245px; padding: 15px; border-radius: 14px; background: #0a213a; border: 1px solid rgba(255,255,255,.08); }
.line-card header, .activity-card header { display: flex; justify-content: space-between; color: #d5e0ed; font-size: 10px; }
.line-card header small, .activity-card header small { color: #718aa6; }
.line-card svg { width: 100%; height: 180px; margin-top: 18px; overflow: visible; }
.chart-grid-line { stroke: rgba(255,255,255,.07); stroke-width: 1; }
.chart-line { stroke: #4b9cff; stroke-width: 4; fill: none; stroke-dasharray: 900; stroke-dashoffset: 900; animation: drawLine 2.7s .7s var(--ease) forwards; }
.chart-point { fill: var(--gold); stroke: var(--gold); animation: pointPulse 1.8s infinite; }
.activity-list { display: grid; gap: 15px; margin-top: 24px; }
.activity-list div { display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 9px; color: #a9bbce; font-size: 9px; }
.activity-list i { width: 7px; height: 7px; border-radius: 50%; }.activity-list i.blue{background:#4b9cff}.activity-list i.gold{background:var(--gold)}.activity-list i.teal{background:#48c9bd}.activity-list i.violet{background:#9b83ff}
.activity-list b { color: #dfe8f2; font-size: 8px; }
.stage-footer { margin-top: 10px; min-height: 48px; border-radius: 14px; background: #102f50; border: 1px solid rgba(255,255,255,.08); padding: 0 15px; display: flex; align-items: center; justify-content: space-between; font-size: 9px; color: #9eb1c6; }
.status-dot { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: #51ce96; box-shadow: 0 0 0 5px rgba(81,206,150,.09); }
.pulse-bars { display: flex; align-items: end; gap: 3px; height: 20px; }.pulse-bars i{width:3px;background:#4b9cff;border-radius:2px;animation:bars 1s ease-in-out infinite alternate}.pulse-bars i:nth-child(1){height:5px}.pulse-bars i:nth-child(2){height:12px;animation-delay:.1s}.pulse-bars i:nth-child(3){height:8px;animation-delay:.2s}.pulse-bars i:nth-child(4){height:17px;animation-delay:.3s}.pulse-bars i:nth-child(5){height:10px;animation-delay:.4s}.pulse-bars i:nth-child(6){height:14px;animation-delay:.5s}
.floating-chip { position: absolute; z-index: 3; display: flex; align-items: center; gap: 12px; min-width: 235px; padding: 13px; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; background: #102d4c; box-shadow: 0 22px 60px rgba(0,0,0,.32); }
.floating-chip b,.floating-chip small { display: block; }.floating-chip b{font-size:11px}.floating-chip small{margin-top:3px;color:#9eb0c4;font-size:8px}.chip-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center}.chip-icon.blue{background:#1769e0}.chip-icon.gold{background:#cc8d0d}.chip-icon.teal{background:#0b8b83}
.chip-one { right: -45px; top: 5px; animation: floatY 4.7s ease-in-out infinite; }.chip-two{left:-62px;bottom:70px;animation:floatY 5.2s .8s ease-in-out infinite}.chip-three{right:-30px;bottom:-10px;animation:floatY 4.9s .3s ease-in-out infinite}
.hero-scroll { position: absolute; z-index: 2; left: 22px; bottom: 35px; display: flex; align-items: center; gap: 13px; transform: rotate(-90deg); transform-origin: left center; color: #8297b2; text-transform: uppercase; letter-spacing: .15em; font-size: 8px; }.hero-scroll i{width:55px;height:1px;background:#8297b2;position:relative}.hero-scroll i::after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:var(--gold);right:0;top:-2.5px;animation:scrollDot 1.8s ease-in-out infinite}

.capability-strip { position: relative; width: 100%; max-width: 100vw; overflow: hidden; contain: layout paint; background: var(--gold); color: var(--navy); border-block: 1px solid #c98c09; }
.marquee-track { position: relative; width: max-content; display: flex; align-items: center; gap: 25px; padding: 14px 0; animation: marquee 34s linear infinite; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .11em; }
.marquee-track i { width: 6px; height: 6px; border-radius: 50%; background: var(--navy); }

.solutions-section { background: var(--canvas); }
.solution-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.solution-card { position: relative; min-height: 665px; display: flex; flex-direction: column; padding: 29px; border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; transform-style: preserve-3d; transition: transform .28s var(--ease), box-shadow .28s, border-color .28s; }
.solution-card:hover { box-shadow: var(--shadow-md); border-color: #b7c6d7; }
.solution-card::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--card-accent); }
.blue-card{--card-accent:var(--blue);--card-soft:var(--blue-soft)}.gold-card{--card-accent:var(--gold);--card-soft:var(--gold-soft)}.violet-card{--card-accent:var(--violet);--card-soft:var(--violet-soft)}
.solution-card header { display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; }
.solution-icon { width: 50px; height: 50px; border-radius: 15px; display: grid; place-items: center; background: var(--card-soft); color: var(--card-accent); }.solution-icon .icon{width:24px;height:24px}.solution-card header small{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.11em;font-size:8px;font-weight:900}.solution-card h3{margin:4px 0 0;font-size:25px;letter-spacing:-.035em}.solution-number{align-self:start;color:#b5c0cd;font-size:11px;font-weight:900}
.solution-card > p { color: var(--muted); line-height: 1.72; margin: 23px 0; min-height: 78px; }
.solution-columns { display: grid; gap: 22px; }
.solution-columns > div { padding-top: 20px; border-top: 1px solid var(--line); }
.solution-card h4,.learning-card h4 { margin:0 0 13px;color:var(--card-accent,var(--gold));font-size:10px;text-transform:uppercase;letter-spacing:.15em; }
.solution-card ul,.learning-card ul { list-style:none;padding:0;margin:0;display:grid;gap:9px;color:var(--muted);font-size:12px;line-height:1.45; }
.solution-card li,.learning-card li { position:relative;padding-left:17px; }.solution-card li::before,.learning-card li::before{content:"";position:absolute;left:0;top:.52em;width:6px;height:6px;border-radius:50%;background:var(--card-accent,var(--gold))}
.text-link { margin-top: auto; padding-top: 25px; display: inline-flex; align-items: center; gap: 9px; color: var(--blue); font-size: 12px; font-weight: 900; }.text-link .icon{width:17px;height:17px;transition:transform .22s}.text-link:hover .icon{transform:translateX(5px)}

.learning-section { background: var(--navy); color: var(--white); overflow: hidden; }
.learning-section::before { content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Ccircle cx='2' cy='2' r='1' fill='%2336516f'/%3E%3C/svg%3E");background-size:28px 28px;opacity:.22; }
.learning-layout { position: relative; display: grid; grid-template-columns: .76fr 1.24fr; gap: 68px; align-items: start; }
.learning-intro { position: sticky; top: 120px; }
.learning-intro h2 { margin: 18px 0 25px; font-size: clamp(2.7rem,5vw,5.3rem); line-height: .96; letter-spacing: -.065em; }
.learning-intro p { color: #aebed2; line-height: 1.85; }
.learning-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 33px; }
.learning-metrics div { padding: 16px; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: #0c223c; }.learning-metrics strong{display:block;font-size:22px;color:var(--gold)}.learning-metrics span{display:block;margin-top:5px;color:#8fa4bd;font-size:9px;line-height:1.4}
.learning-cards { display: grid; gap: 18px; }
.learning-card { --card-accent: var(--gold); padding: 31px; border: 1px solid rgba(255,255,255,.13); background: #0d2744; border-radius: 22px; box-shadow: 0 28px 80px rgba(0,0,0,.2); transform-style: preserve-3d; }
.learning-card-top { display:flex;align-items:center;justify-content:space-between; }.learning-code{font-size:11px;letter-spacing:.16em;color:#7e96b2;font-weight:900}.learning-card .solution-icon.orange{background:#4a2812;color:#ff9c54}.learning-card .solution-icon.amber{background:#42320d;color:#ffd36d}
.learning-card h3 { margin: 18px 0 10px; font-size: 27px; letter-spacing: -.04em; }.learning-card > p{color:#aebed2;line-height:1.75}.learning-list-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:26px;margin-top:28px}.learning-list-grid>div{padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}.learning-card ul{color:#aebed2}.light-link{color:#8bbcff}

.implementation-section { background: var(--surface); }
.process-track { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; }
.process-track::before { content:"";position:absolute;left:8%;right:8%;top:34px;height:1px;background:var(--line); }
.process-card { position:relative;padding:86px 23px 25px;border:1px solid var(--line);border-radius:18px;background:var(--canvas);min-height:330px;transition:.25s var(--ease); }.process-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-md)}
.process-card::after { content:attr(data-step);position:absolute;right:18px;top:17px;color:#b9c4d0;font-size:11px;font-weight:900; }
.process-icon { position:absolute;z-index:2;left:22px;top:10px;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#fff;border:7px solid var(--surface); }.process-icon.blue{background:var(--blue)}.process-icon.gold{background:var(--gold);color:var(--navy)}.process-icon.violet{background:var(--violet)}.process-icon.teal{background:var(--teal)}
.process-card small{color:var(--blue);font-size:9px;text-transform:uppercase;letter-spacing:.14em;font-weight:900}.process-card h3{margin:11px 0 13px;font-size:22px;line-height:1.12;letter-spacing:-.035em}.process-card p{color:var(--muted);font-size:13px;line-height:1.7;margin:0}
.implementation-banner { margin-top: 20px; padding: 28px 30px; border-radius: 18px; background: var(--gold); color: var(--navy); display:flex;align-items:center;justify-content:space-between;gap:25px; }.implementation-banner span{text-transform:uppercase;letter-spacing:.15em;font-size:9px;font-weight:950}.implementation-banner h3{margin:7px 0 0;font-size:25px;letter-spacing:-.035em;max-width:760px}

.company-section { background: var(--canvas); }
.company-layout { display:grid;grid-template-columns:.92fr 1.08fr;gap:75px;align-items:center; }
.company-image { position:relative;min-height:650px; }.company-image>img{width:calc(100% - 55px);height:100%;position:absolute;inset:0 55px 0 0;object-fit:cover;border-radius:26px;box-shadow:var(--shadow-lg);filter:saturate(.76) contrast(1.03)}
.company-image::after{content:"";position:absolute;inset:auto 55px 0 0;height:42%;background:rgba(7,24,45,.7);border-radius:0 0 26px 26px}
.image-label{position:absolute;z-index:2;left:28px;bottom:30px;color:#fff;max-width:310px}.image-label span{display:block;color:#8fc0ff;text-transform:uppercase;letter-spacing:.15em;font-size:9px;font-weight:900}.image-label b{display:block;margin-top:9px;font-size:25px;line-height:1.12}
.orbit-badge{position:absolute;z-index:3;right:0;top:70px;width:150px;height:150px;border-radius:50%;display:grid;place-content:center;text-align:center;background:var(--gold);color:var(--navy);box-shadow:var(--shadow-md);animation:floatY 5s ease-in-out infinite}.orbit-badge::before{content:"";position:absolute;inset:-14px;border:1px solid var(--gold);border-radius:50%;animation:orbitSpin 10s linear infinite}.orbit-badge::after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--blue);top:-18px;left:50%}.orbit-badge span{font-size:34px;font-weight:950;letter-spacing:-.05em}.orbit-badge small{text-transform:uppercase;letter-spacing:.15em;font-size:8px;font-weight:900}
.company-copy h2{margin:16px 0 25px;font-size:clamp(2.6rem,4.8vw,5rem);line-height:.96;letter-spacing:-.06em}.company-copy>p{color:var(--muted);line-height:1.85}.company-points{display:grid;gap:11px;margin:28px 0}.company-points div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}.company-points .icon{width:25px;height:25px;padding:5px;border-radius:50%;background:var(--blue-soft);color:var(--blue)}.company-points span{color:var(--muted);font-size:13px;line-height:1.55}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:32px}.stats-row div{padding:18px;border-radius:15px;background:var(--surface);border:1px solid var(--line)}.stats-row strong{display:block;font-size:29px;letter-spacing:-.05em;color:var(--blue)}.stats-row strong::after{content:"+"}.stats-row div:last-child strong::after{content:"%"}.stats-row span{display:block;margin-top:6px;color:var(--muted);font-size:9px;line-height:1.4}

.partners-section { background: var(--surface); }
.partner-group { display:grid;grid-template-columns:220px 1fr;gap:30px;padding:28px 0;border-top:1px solid var(--line); }.learning-partners{margin-top:12px}
.partner-label{display:flex;gap:14px;align-items:flex-start;padding-top:8px}.partner-label>span{color:#bdc7d2;font-size:10px;font-weight:900}.partner-label small{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-size:8px;font-weight:900}.partner-label h3{margin:4px 0 0;font-size:23px}
.logo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.learning-logos{grid-template-columns:repeat(4,1fr);max-width:770px}.logo-grid figure{margin:0;height:115px;padding:10px;border:1px solid var(--line);background:#fff;border-radius:14px;display:grid;place-items:center;overflow:hidden;transition:.25s}.logo-grid figure:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:#b6c4d5}.logo-grid img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(.12);transition:.25s}.logo-grid figure:hover img{filter:none;transform:scale(1.04)}

.contact-section { background: var(--canvas); }
.contact-shell { display:grid;grid-template-columns:.7fr 1.3fr;border:1px solid var(--line);border-radius:28px;background:var(--surface);box-shadow:var(--shadow-md);overflow:hidden; }
.contact-panel { position:relative;padding:52px;background:var(--navy);color:#fff;overflow:clip;contain:paint; }.contact-panel h2{margin:17px 0 18px;font-size:clamp(2.35rem,4vw,4.25rem);line-height:.98;letter-spacing:-.055em}.contact-panel>p{color:#aebed2;line-height:1.75}.contact-list{display:grid;gap:12px;margin-top:35px}.contact-list>a,.contact-list>div{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;padding:13px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:#0d2744}.contact-list>*>span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#173c64;color:#90c1ff}.contact-list small,.contact-list b{display:block}.contact-list small{color:#7f97b3;font-size:8px;text-transform:uppercase;letter-spacing:.12em}.contact-list b{margin-top:4px;font-size:11px;line-height:1.5}.contact-pattern{position:absolute;right:-40px;bottom:-40px;width:220px;height:220px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;transform:rotate(12deg);opacity:.38}.contact-pattern i{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:pointPulse 2s infinite}.contact-pattern i:nth-child(2n){animation-delay:.3s}.contact-pattern i:nth-child(3n){animation-delay:.6s}
.meeting-form { padding: 48px; }
.form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:1px solid var(--line)}.form-heading span{color:var(--blue);text-transform:uppercase;letter-spacing:.14em;font-size:9px;font-weight:900}.form-heading h3{margin:7px 0 0;font-size:30px;letter-spacing:-.04em}.form-heading>.icon{width:36px;height:36px;color:var(--blue)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px}.meeting-form label>span,.meeting-form legend{display:block;margin-bottom:8px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.meeting-form input,.meeting-form select,.meeting-form textarea{width:100%;border:1px solid var(--line);background:var(--canvas);color:var(--ink);border-radius:11px;outline:none;padding:13px 14px;font-size:12px;transition:.2s}.meeting-form input:focus,.meeting-form select:focus,.meeting-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,105,224,.1)}.meeting-form .invalid{border-color:#d84949!important;box-shadow:0 0 0 3px rgba(216,73,73,.1)!important}.schedule-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin:20px 0}.schedule-grid fieldset{margin:0;padding:15px;border:1px solid var(--line);border-radius:13px}.date-options,.time-options{display:grid;gap:7px}.date-options{grid-template-columns:repeat(4,1fr)}.time-options{grid-template-columns:repeat(2,1fr)}.choice-button{padding:10px 6px;border-radius:9px;background:var(--canvas);color:var(--muted);border:1px solid var(--line);font-size:9px;font-weight:800;transition:.2s}.choice-button:hover,.choice-button.selected{background:var(--blue);border-color:var(--blue);color:#fff}.choice-button b,.choice-button span{display:block}.choice-button b{font-size:14px}.choice-button span{margin-top:2px;font-size:7px;text-transform:uppercase;letter-spacing:.08em}.full-field{display:block}.form-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px}.form-footer p{margin:0;color:var(--muted);font-size:10px}.form-footer p.error{color:#d84949}

.site-footer { background: #04101f; color: #dce7f5; padding: 65px 0 20px; }
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:55px}.footer-brand img{width:245px;filter:brightness(0) invert(1)}.footer-brand p,.footer-grid>div>p{color:#8fa4bd;font-size:12px;line-height:1.7;max-width:330px}.footer-grid h3{margin:0 0 18px;color:#fff;font-size:12px}.footer-grid a{display:block;margin:10px 0;color:#90a4bb;font-size:11px;transition:.2s}.footer-grid a:hover{color:#fff;transform:translateX(3px)}.footer-bottom{margin-top:42px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:20px;color:#71869e;font-size:10px}.footer-bottom a{color:#9fb4cb}
.toast{position:fixed;z-index:2400;right:24px;bottom:24px;min-width:310px;padding:16px 18px;border-radius:14px;background:var(--navy);color:#fff;border:1px solid rgba(255,255,255,.13);box-shadow:var(--shadow-lg);transform:translateY(150%);opacity:0;transition:.4s var(--ease)}.toast.show{transform:none;opacity:1}.toast strong,.toast span{display:block}.toast span{margin-top:4px;color:#9fb2c8;font-size:11px}

.reveal { opacity: 0; transform: translateY(34px); transition: opacity .75s var(--ease), transform .75s var(--ease); transition-delay: var(--delay,0ms); }
.reveal.visible { opacity: 1; transform: none; }

@keyframes orbitSpin { to { transform: rotate(360deg); } }
@keyframes drawLine { to { stroke-dashoffset: 0; } }
@keyframes pointPulse { 50% { opacity: .35; transform: scale(.75); transform-origin:center; } }
@keyframes bars { to { height: 4px; opacity:.45; } }
@keyframes floatY { 50% { transform: translateY(-12px); } }
@keyframes scrollDot { 50% { right: calc(100% - 6px); } }
@keyframes marquee { to { transform: translateX(-50%); } }

@media (max-width: 1120px) {
  .desktop-nav { display: none; }
  .mobile-menu-button { display: grid; }
  .hero-grid { grid-template-columns: 1fr; gap: 55px; }
  .hero-copy { max-width: 850px; }
  .hero-stage { width: min(720px,100%); margin-inline: auto; }
  .hero::before { width: 100%; opacity:.45; }
  .solution-grid { grid-template-columns: 1fr; }
  .solution-card { min-height: 0; }
  .solution-columns { grid-template-columns: 1fr 1fr; }
  .learning-layout { grid-template-columns: 1fr; }
  .learning-intro { position: static; }
  .process-track { grid-template-columns: repeat(2,1fr); }
  .process-track::before { display:none; }
  .company-layout { grid-template-columns: 1fr; }
  .company-image { min-height: 580px; }
  .contact-shell { grid-template-columns: 1fr; }
  .partner-group { grid-template-columns: 1fr; }
  .logo-grid { grid-template-columns: repeat(4,1fr); }
  .footer-grid { grid-template-columns: 1.2fr repeat(3,.8fr); gap:30px; }
  .mobile-panel{position:absolute;top:var(--header);left:20px;right:20px;padding:14px;border-radius:18px;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-md)}
  .site-header.open{background:rgba(7,24,45,.96);color:var(--white);border-bottom:1px solid rgba(255,255,255,.11)}
  .site-header.open .mobile-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.mobile-panel a{padding:13px;border-radius:10px;background:var(--canvas);font-size:12px;font-weight:800}.site-header.open .icon-button{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.09)}
}

@media (max-width: 780px) {
  :root { --header: 70px; }
  body, a, button, input, select, textarea, label { cursor: auto; }
  .cursor-dot,.cursor-ring { display:none; }
  .container { width: min(calc(100% - 28px), var(--max)); }
  .section { padding: 82px 0; }
  .brand { width: 205px; }
  .nav-actions .button { display:none; }
  .hero { padding: 116px 0 78px; }
  .hero-grid { gap: 45px; }
  .hero-copy h1 { font-size: clamp(3.15rem,15vw,5.4rem); }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .button { width:100%; }
  .hero-trust { display:grid;gap:10px; }.hero-trust span:not(:first-child)::before{display:none}
  .hero-stage { min-height: 460px; }
  .stage-frame { transform:none!important; }
  .stage-main { padding:12px; }.metric-row{grid-template-columns:1fr}.metric-row article:nth-child(n+2){display:none}.chart-grid{grid-template-columns:1fr}.activity-card{display:none}.line-card{min-height:220px}.stage-footer{display:none}.stage-body{min-height:360px}.floating-chip{min-width:205px}.chip-one{right:-18px}.chip-two{left:-14px;bottom:20px}.chip-three{display:none}.hero-scroll{display:none}
  .section-heading { grid-template-columns:1fr;gap:22px; }.section-heading h2{font-size:clamp(2.5rem,12vw,4.3rem)}
  .solution-columns { grid-template-columns:1fr; }
  .learning-list-grid { grid-template-columns:1fr; }
  .learning-metrics { grid-template-columns:1fr; }
  .process-track { grid-template-columns:1fr; }.process-card{min-height:0}.implementation-banner{align-items:flex-start;flex-direction:column}.implementation-banner .button{width:100%}
  .company-image{min-height:500px}.company-image>img{width:100%;right:0}.company-image::after{right:0}.orbit-badge{width:112px;height:112px;right:-6px}.orbit-badge span{font-size:26px}.image-label{left:20px}.stats-row{grid-template-columns:1fr}
  .logo-grid,.learning-logos{grid-template-columns:repeat(2,1fr)}.logo-grid figure{height:100px}
  .contact-panel,.meeting-form{padding:30px 22px}.form-grid,.schedule-grid{grid-template-columns:1fr}.date-options{grid-template-columns:repeat(2,1fr)}.form-footer{align-items:stretch;flex-direction:column}.form-footer .button{width:100%}
  .footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column}
}

@media (max-width: 480px) {
  .brand { width: 175px; }
  .section { padding: 72px 0; }
  .hero-copy h1 { font-size: 3.35rem; }
  .hero-stage { min-height: 420px; }
  .stage-frame { border-radius:18px }.stage-toolbar{font-size:9px}.floating-chip{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;margin:10px 0 0;animation:none;width:100%}.hero-stage{display:block}.stage-frame{margin-bottom:13px}.solution-card,.learning-card{padding:24px}.solution-card header{grid-template-columns:auto 1fr}.solution-number{display:none}.contact-panel h2{font-size:2.7rem}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.toast{left:14px;right:14px;min-width:0}
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
  .reveal { opacity:1; transform:none; }
  .marquee-track { animation:none; }
}

@media (max-width: 780px) { .contact-pattern { right: -10px; bottom: -10px; width: 180px; height: 180px; transform: none; } }

/* =========================================================
   ULTIMATE V2 — viewport hero, refined messaging, neural motion
   ========================================================= */
.section-heading {
  grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr);
  gap: clamp(36px, 5vw, 72px);
  align-items: center;
}
.section-heading h2 {
  max-width: 760px;
  font-size: clamp(2.35rem, 4.15vw, 4.55rem);
  line-height: .99;
}
.section-heading p {
  max-width: 570px;
  font-size: .98rem;
  line-height: 1.75;
}

.hero {
  height: 100svh;
  min-height: 700px;
  max-height: 980px;
  padding: calc(var(--header) + clamp(16px, 2.7vh, 30px)) 0 clamp(24px, 4vh, 46px);
}
.hero-grid {
  width: min(calc(100% - 48px), 1360px);
  height: 100%;
  grid-template-columns: minmax(0, .92fr) minmax(470px, 1.08fr);
  gap: clamp(48px, 5.5vw, 86px);
}
.hero-copy h1 {
  margin: clamp(12px, 2vh, 20px) 0 clamp(16px, 2.4vh, 25px);
  max-width: 700px;
  font-size: clamp(3.85rem, 6.25vw, 6.7rem);
  line-height: .87;
}
.hero-copy > p {
  max-width: 610px;
  font-size: clamp(.92rem, 1.08vw, 1.08rem);
  line-height: 1.7;
}
.hero-actions { margin-top: clamp(20px, 3vh, 30px); }
.hero-trust { margin-top: clamp(18px, 2.8vh, 30px); }
.hero-stage {
  min-height: 0;
  height: clamp(440px, 61vh, 540px);
}
.stage-frame { height: clamp(410px, 56vh, 505px); }
.stage-body { min-height: 0; height: calc(100% - 50px); }
.stage-main { display: grid; grid-template-rows: auto 1fr auto; min-height: 0; }
.chart-grid { min-height: 0; }
.line-card, .activity-card { min-height: 0; }
.line-card svg { height: clamp(118px, 18vh, 178px); }

#networkCanvas {
  opacity: .92;
  filter: saturate(1.12);
}
.neural-status {
  position: absolute;
  z-index: 3;
  right: clamp(22px, 3vw, 54px);
  top: calc(var(--header) + 18px);
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  border: 1px solid rgba(143,192,255,.2);
  border-radius: 999px;
  background: rgba(7,24,45,.72);
  color: #9db9da;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
  animation: neuralFloat 4.8s ease-in-out infinite;
}
.neural-status i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #54d5bd;
  box-shadow: 0 0 0 0 rgba(84,213,189,.38);
  animation: neuralPulse 1.8s ease-out infinite;
}

@keyframes neuralFloat {
  50% { transform: translate3d(-8px, 6px, 0); }
}
@keyframes neuralPulse {
  70% { box-shadow: 0 0 0 9px rgba(84,213,189,0); }
  100% { box-shadow: 0 0 0 0 rgba(84,213,189,0); }
}

@media (min-width: 1121px) and (max-height: 850px) {
  :root { --header: 70px; }
  .brand { width: 230px; }
  .desktop-nav a { padding: 8px 11px; font-size: 12px; }
  .button-small { min-height: 40px; }
  .hero { min-height: 660px; padding: calc(var(--header) + 13px) 0 22px; }
  .hero-grid { grid-template-columns: minmax(0,.9fr) minmax(450px,1.1fr); gap: 52px; }
  .hero-copy h1 { font-size: clamp(3.6rem, 5.7vw, 5.8rem); margin: 10px 0 14px; }
  .hero-copy > p { line-height: 1.55; font-size: .94rem; }
  .hero-actions { margin-top: 18px; }
  .hero-trust { margin-top: 16px; font-size: 10px; }
  .hero-stage { height: min(58vh, 475px); }
  .stage-frame { height: min(54vh, 445px); }
  .stage-toolbar { height: 44px; }
  .stage-body { height: calc(100% - 44px); }
  .stage-main { padding: 15px; }
  .metric-row article { padding: 11px; }
  .metric-row strong { font-size: 21px; }
  .line-card, .activity-card { padding: 12px; }
  .activity-list { gap: 10px; margin-top: 16px; }
  .stage-footer { min-height: 39px; }
  .floating-chip { min-width: 212px; padding: 10px; }
  .chip-icon { width: 34px; height: 34px; }
  .chip-one { top: -4px; right: -30px; }
  .chip-two { left: -40px; bottom: 56px; }
  .chip-three { right: -18px; bottom: -2px; }
}

@media (min-width: 1121px) and (max-height: 720px) {
  .hero { min-height: 620px; }
  .hero-copy h1 { font-size: clamp(3.25rem, 5.2vw, 5.15rem); }
  .hero-copy > p { max-width: 560px; }
  .hero-trust { display: none; }
  .hero-stage { height: 415px; }
  .stage-frame { height: 395px; }
  .line-card svg { height: 106px; margin-top: 10px; }
  .metric-row article:nth-child(3) { display: none; }
  .metric-row { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 1120px) {
  .hero { height: auto; max-height: none; min-height: 100svh; }
  .hero-grid { width: min(calc(100% - 40px), var(--max)); height: auto; }
  .hero-stage { height: auto; min-height: 570px; }
  .stage-frame { height: auto; }
  .stage-body { min-height: 460px; height: auto; }
  .neural-status { top: calc(var(--header) + 10px); right: 20px; }
}

@media (max-width: 720px) {
  .section-heading { grid-template-columns: 1fr; gap: 18px; }
  .section-heading h2 { font-size: clamp(2.2rem, 11.5vw, 3.45rem); }
  .neural-status { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .neural-status, .neural-status i { animation: none; }
}

/* =========================================================
   V3 — Scroll-directed storytelling layer
   Progressive enhancement: desktop gets cinematic scroll scenes;
   tablet/mobile keep a light, conventional document flow.
   ========================================================= */

.scroll-story {
  --story-progress: 0;
  --story-progress-pct: 0%;
  --story-grid-y: 0px;
  --story-core-scale: .92;
  --story-rotate-x: 0deg;
  --story-rotate-y: 0deg;
  --orbit-a-rot: 0deg;
  --orbit-b-rot: 28deg;
  --orbit-c-rot: -14deg;
  --story-step: 0;
  position: relative;
  height: 410svh;
  background: #061629;
  color: var(--white);
}
.story-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 680px;
  overflow: hidden;
  display: grid;
  align-items: center;
  isolation: isolate;
}
.story-sticky::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    radial-gradient(circle at 76% 52%, rgba(23,105,224,.16), transparent 33%),
    radial-gradient(circle at 22% 74%, rgba(229,164,20,.08), transparent 28%),
    #061629;
}
.story-sticky::after {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  opacity: .13;
  background-image:
    linear-gradient(rgba(255,255,255,.11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.11) 1px, transparent 1px);
  background-size: 64px 64px;
  transform: translate3d(0, var(--story-grid-y), 0);
}
.story-ambient i {
  position: absolute;
  border: 1px solid rgba(121,185,255,.12);
  border-radius: 50%;
  pointer-events: none;
}
.story-ambient i:first-child { width: 46vw; aspect-ratio: 1; right: -17vw; top: -22vw; }
.story-ambient i:nth-child(2) { width: 28vw; aspect-ratio: 1; left: -12vw; bottom: -13vw; border-color: rgba(229,164,20,.13); }
.story-ambient i:nth-child(3) { width: 11vw; aspect-ratio: 1; left: 47%; top: 11%; border-color: rgba(255,255,255,.08); }

.story-stage {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,.95fr) minmax(480px,1.05fr);
  align-items: center;
  gap: clamp(48px, 6vw, 100px);
  height: 100%;
  padding-top: var(--header);
}
.story-copy { position: relative; z-index: 3; }
.story-lines { position: relative; height: min(50vh, 470px); margin-top: 22px; }
.story-line {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0;
  transform: translate3d(0, 44px, 0) scale(.985);
  filter: blur(8px);
  pointer-events: none;
  transition: opacity .42s var(--ease), transform .52s var(--ease), filter .52s var(--ease);
}
.story-line.is-active {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  filter: blur(0);
  pointer-events: auto;
}
.story-line small {
  color: #7eb5fa;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 900;
}
.story-line h2 {
  margin: 15px 0 20px;
  max-width: 700px;
  font-size: clamp(3.1rem, 5.4vw, 6.1rem);
  line-height: .91;
  letter-spacing: -.065em;
}
.story-line p {
  max-width: 630px;
  margin: 0;
  color: #aebed2;
  font-size: 1rem;
  line-height: 1.8;
}

.story-visual {
  --visual-rotate: 0deg;
  position: relative;
  z-index: 2;
  width: min(44vw, 610px);
  aspect-ratio: 1;
  justify-self: end;
  transform: perspective(1200px) rotateX(var(--story-rotate-x)) rotateY(var(--story-rotate-y));
  transform-style: preserve-3d;
}
.story-core {
  position: absolute;
  left: 50%; top: 50%;
  z-index: 4;
  width: 39%;
  aspect-ratio: 1;
  transform: translate(-50%,-50%) translateZ(48px) scale(var(--story-core-scale));
  border-radius: 50%;
  display: grid;
  place-content: center;
  text-align: center;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(10,34,61,.86);
  box-shadow: 0 35px 100px rgba(0,0,0,.38), inset 0 0 70px rgba(23,105,224,.13);
  backdrop-filter: blur(18px);
}
.story-core::before {
  content: "";
  position: absolute;
  inset: 11px;
  border-radius: inherit;
  border: 1px dashed rgba(229,164,20,.28);
  animation: orbitSpin 22s linear infinite;
}
.story-core-kicker { color:#7b96b6; font-size:8px; letter-spacing:.18em; text-transform:uppercase; font-weight:900; }
.story-core strong { display:block; margin:8px 0 4px; color:var(--gold); font-size:clamp(25px,3vw,43px); letter-spacing:-.055em; }
.story-core small { color:#9eb2ca; font-size:9px; }
.story-orbit { position:absolute; left:50%; top:50%; border-radius:50%; border:1px solid rgba(255,255,255,.13); transform:translate(-50%,-50%) rotate(var(--orbit-a-rot)); }
.story-orbit::after { content:""; position:absolute; width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 22px rgba(229,164,20,.6); top:-5px; left:50%; }
.orbit-a { width:58%; aspect-ratio:1; }
.orbit-b { width:78%; aspect-ratio:1; border-color:rgba(78,155,255,.18); transform:translate(-50%,-50%) rotate(var(--orbit-b-rot)); }
.orbit-c { width:98%; aspect-ratio:1; border-style:dashed; border-color:rgba(255,255,255,.08); transform:translate(-50%,-50%) rotate(var(--orbit-c-rot)); }
.story-node {
  position:absolute;
  z-index:3;
  min-width:112px;
  padding:12px 14px;
  border-radius:15px;
  background:rgba(12,36,62,.88);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 48px rgba(0,0,0,.25);
  backdrop-filter:blur(12px);
  transition: opacity .35s, transform .45s var(--ease), border-color .35s, background .35s;
}
.story-node span { display:block; color:#f5f8fd; font-size:12px; font-weight:900; }
.story-node small { display:block; margin-top:4px; color:#8198b4; font-size:8px; text-transform:uppercase; letter-spacing:.12em; }
.story-node-a { left:1%; top:26%; transform:translate3d(var(--node-a-x,0px), var(--node-a-y,0px), 30px); }
.story-node-b { right:-2%; top:18%; transform:translate3d(var(--node-b-x,0px), var(--node-b-y,0px), 40px); }
.story-node-c { left:8%; bottom:18%; transform:translate3d(var(--node-c-x,0px), var(--node-c-y,0px), 26px); }
.story-node-d { right:-1%; bottom:23%; transform:translate3d(var(--node-d-x,0px), var(--node-d-y,0px), 38px); }
.story-progress {
  position:absolute;
  z-index:6;
  left:20px;
  bottom:34px;
  width:calc(100% - 40px);
  height:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.story-progress::before { content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:rgba(255,255,255,.14); }
.story-progress-fill { position:absolute; left:0; top:50%; height:2px; width:var(--story-progress-pct); background:var(--gold); transform-origin:left center; }
.story-progress i { position:relative; z-index:2; width:8px; height:8px; border-radius:50%; background:#536a84; box-shadow:0 0 0 7px #061629; transition:.28s; }
.story-progress i.active { background:var(--gold); transform:scale(1.25); }

/* Product cards become a scroll stack on large screens. */
@media (min-width: 1121px) {
  .solutions-section { padding-bottom: 64px; }
  .scroll-stack { display:block; position:relative; padding-bottom:14vh; }
  .scroll-stack .solution-card {
    --stack-scale: 1;
    --stack-y: 0px;
    --stack-opacity: 1;
    position: sticky;
    top: calc(var(--header) + 30px);
    width: 100%;
    min-height: min(690px, calc(100svh - var(--header) - 62px));
    margin: 0 0 15vh;
    padding: clamp(30px,4vw,54px);
    display:grid;
    grid-template-columns:minmax(250px,.75fr) minmax(480px,1.25fr);
    grid-template-rows:auto 1fr auto;
    column-gap:clamp(42px,6vw,92px);
    align-items:start;
    opacity:var(--stack-opacity);
    transform:translate3d(0,var(--stack-y),0) scale(var(--stack-scale));
    transform-origin:50% 12%;
    box-shadow:0 40px 110px rgba(7,24,45,.16);
    transition:border-color .25s, box-shadow .25s;
  }
  .scroll-stack .solution-card:nth-child(1){ z-index:1; }
  .scroll-stack .solution-card:nth-child(2){ z-index:2; }
  .scroll-stack .solution-card:nth-child(3){ z-index:3; margin-bottom:4vh; }
  .scroll-stack .solution-card header { grid-column:1; }
  .scroll-stack .solution-card > p { grid-column:1; min-height:0; font-size:15px; align-self:start; }
  .scroll-stack .solution-columns { grid-column:2; grid-row:1 / span 2; grid-template-columns:1fr 1fr; gap:30px; }
  .scroll-stack .solution-card .text-link { grid-column:1 / -1; align-self:end; justify-self:start; }
  .scroll-stack .solution-card h3 { font-size:clamp(2.2rem,4vw,4.7rem); }
  .scroll-stack .solution-number { font-size:12px; }
  .scroll-stack .solution-card ul { font-size:13px; gap:11px; }
}

/* Learning cards retain the sticky editorial layout, with scroll depth. */
@media (min-width: 1121px) {
  .learning-section { padding-top: 150px; padding-bottom: 150px; }
  .learning-layout { gap:clamp(65px,8vw,115px); }
  .learning-intro { top:calc(var(--header) + 62px); }
  .learning-cards { gap:22vh; padding-bottom:14vh; }
  .learning-card[data-learning-card] {
    --learning-shift: 0px;
    --learning-scale: 1;
    --learning-opacity: 1;
    min-height:66svh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    opacity:var(--learning-opacity);
    transform:translate3d(0,var(--learning-shift),0) scale(var(--learning-scale));
    transform-origin:center top;
  }
}

/* Vertical scroll drives a horizontal implementation journey. */
.process-scroll-scene { position:relative; }
.process-progress { display:none; }
@media (min-width: 1121px) {
  .implementation-section { overflow:clip; }
  .process-scroll-scene { height:310svh; margin-top:10px; }
  .process-sticky {
    position:sticky;
    top:calc(var(--header) + 12px);
    height:calc(100svh - var(--header) - 24px);
    min-height:610px;
    display:flex;
    align-items:center;
    overflow:hidden;
  }
  .process-track {
    --process-x: 0px;
    display:flex;
    grid-template-columns:none;
    gap:24px;
    width:max-content;
    padding:40px max(4vw, 32px) 58px 0;
    transform:translate3d(var(--process-x),0,0);
    will-change:transform;
  }
  .process-track::before { display:none; }
  .process-card {
    flex:0 0 min(63vw, 600px);
    min-height:min(510px, 62svh);
    padding:110px 42px 42px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    box-shadow:0 24px 70px rgba(7,24,45,.08);
  }
  .process-card:hover { transform:none; }
  .process-card::after { right:32px; top:28px; font-size:15px; }
  .process-icon { left:34px; top:25px; width:62px; height:62px; }
  .process-card small { font-size:10px; }
  .process-card h3 { max-width:430px; margin:16px 0 18px; font-size:clamp(2.2rem,4vw,4.25rem); line-height:.98; }
  .process-card p { max-width:510px; font-size:14px; }
  .process-progress {
    display:block;
    position:absolute;
    z-index:4;
    left:0;
    right:4vw;
    bottom:34px;
    height:2px;
    background:var(--line);
  }
  .process-progress span { display:block; width:0; height:100%; background:var(--blue); }
  .implementation-banner { margin-top:52px; }
}

/* Company reveal gets a controlled image wipe and counter-motion. */
.company-image#companyVisual {
  --company-inset-y: 8%;
  --company-inset-x: 6%;
  --company-scale: .94;
  --company-img-scale: 1.08;
  clip-path: inset(var(--company-inset-y) var(--company-inset-x) round 26px);
  transform:scale(var(--company-scale));
  transform-origin:center center;
}
.company-image#companyVisual > img {
  transform:scale(var(--company-img-scale));
  transition:filter .35s;
}
.company-copy#companyCopy {
  --company-copy-shift: 42px;
  transform:translate3d(0,var(--company-copy-shift),0);
}

/* Partner marks rise in sequence as the grids enter. */
.logo-grid[data-logo-grid] figure {
  --logo-rise: 0px;
  --logo-opacity: 1;
  transform:translate3d(0,var(--logo-rise),0);
  opacity:var(--logo-opacity);
}

/* Motion-aware hover: card transforms are owned by scroll scenes. */
@media (min-width:1121px) {
  .scroll-stack .tilt-card:hover,
  .learning-card[data-learning-card]:hover { box-shadow:var(--shadow-lg); }
}

@media (max-width:1120px) {
  .scroll-story { height:auto; padding:110px 0; }
  .story-sticky { position:relative; height:auto; min-height:0; overflow:visible; }
  .story-stage { grid-template-columns:1fr; height:auto; padding-top:0; gap:55px; }
  .story-lines { height:auto; display:grid; gap:35px; }
  .story-line { position:relative; opacity:1; filter:none; transform:none; pointer-events:auto; padding:0 0 34px; border-bottom:1px solid rgba(255,255,255,.1); }
  .story-line h2 { font-size:clamp(2.7rem,8vw,4.8rem); }
  .story-visual { width:min(620px,90vw); justify-self:center; }
  .story-progress { display:none; }
  .process-scroll-scene { height:auto; }
  .process-sticky { position:static; height:auto; min-height:0; overflow:visible; }
  .process-progress { display:none; }
  .process-track { transform:none!important; }
  .company-image#companyVisual { clip-path:none; transform:none; }
  .company-image#companyVisual > img { transform:none; }
  .company-copy#companyCopy { transform:none; }
  .logo-grid[data-logo-grid] figure { transform:none; opacity:1; }
}

@media (max-width:720px) {
  .scroll-story { padding:88px 0; }
  .story-stage { gap:38px; }
  .story-line { padding-bottom:27px; }
  .story-line h2 { margin:12px 0 15px; font-size:clamp(2.35rem,12vw,3.6rem); }
  .story-line p { font-size:.94rem; line-height:1.7; }
  .story-visual { width:min(430px,94vw); }
  .story-node { min-width:92px; padding:9px 11px; }
  .story-node span { font-size:10px; }
  .story-node small { font-size:7px; }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-story { height:auto; padding:100px 0; }
  .story-sticky { position:relative; height:auto; min-height:0; overflow:visible; }
  .story-stage { grid-template-columns:1fr; height:auto; padding-top:0; }
  .story-lines { height:auto; display:grid; gap:32px; }
  .story-line { position:relative; opacity:1; transform:none; filter:none; pointer-events:auto; }
  .story-visual { display:none; }
  .story-progress { display:none; }
  .process-scroll-scene { height:auto; }
  .process-sticky { position:static; height:auto; min-height:0; overflow:visible; }
  .process-progress { display:none; }
  .process-track { transform:none!important; }
  .company-image#companyVisual,
  .company-image#companyVisual > img,
  .company-copy#companyCopy,
  .logo-grid[data-logo-grid] figure { transform:none!important; clip-path:none!important; opacity:1!important; }
}
.story-node.active {
  border-color: rgba(229,164,20,.7);
  background: rgba(24,54,88,.96);
  box-shadow: 0 20px 60px rgba(0,0,0,.3), 0 0 0 1px rgba(229,164,20,.14);
}
.story-node.active span { color: var(--gold); }
