PageSourceSearch

https://www.xyner.ai/assets/js/nav-2026-06-13.js?b=27

js xyner.ai collected 2026-10-05 14:03:16 UTC 47,102 bytes, 502 lines download raw bytes

1/* nav build 2026-06-13-35-link-explore */
2/* Shared header & footer for all pages.
3   Use: include <script src="/assets/js/layout.js" data-base="/"></script> on each page
4   (set data-base to "" for same-folder, "../" for one-deep, etc.)
5   then place <div id="site-nav"></div> and <div id="site-footer"></div>.
6*/
7(function () {
8  const script = document.currentScript;
9  const base = (script && script.dataset.base) || '';
10
11  // Reusable inline SVG icons (16x16 stroke style)
12  const I = {
13    target:   '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.5" fill="currentColor"/></svg>',
14    grid:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg>',
15    brain:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 4a3 3 0 0 0-3 3 3 3 0 0 0-3 3 3 3 0 0 0 1 2.2A3 3 0 0 0 4 15a3 3 0 0 0 3 3 3 3 0 0 0 3 2"/><path d="M15 4a3 3 0 0 1 3 3 3 3 0 0 1 3 3 3 3 0 0 1-1 2.2A3 3 0 0 1 20 15a3 3 0 0 1-3 3 3 3 0 0 1-3 2"/><path d="M12 4v16"/></svg>',
16    memory:   '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="6" rx="8" ry="3"/><path d="M4 6v6c0 1.7 3.6 3 8 3s8-1.3 8-3V6"/><path d="M4 12v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/></svg>',
17    plug:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 2v6"/><path d="M15 2v6"/><path d="M6 8h12v3a6 6 0 0 1-6 6 6 6 0 0 1-6-6V8z"/><path d="M12 17v5"/></svg>',
18    shield:   '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2 4 5v6c0 5 3.5 9 8 11 4.5-2 8-6 8-11V5z"/><path d="m9 12 2 2 4-4"/></svg>',
19    cloud:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 18a4 4 0 0 0 0-8 6 6 0 0 0-11.5-2A4 4 0 0 0 6 18z"/></svg>',
20    chart:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><rect x="7" y="13" width="3" height="5"/><rect x="12" y="9" width="3" height="9"/><rect x="17" y="5" width="3" height="13"/></svg>',
21    cycle:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 0 1 15-6.7L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-15 6.7L3 16"/><path d="M3 21v-5h5"/></svg>',
22    model:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="2.5"/><circle cx="18" cy="6" r="2.5"/><circle cx="12" cy="18" r="2.5"/><path d="M7.7 7.5 11 16M16.3 7.5 13 16M8 6h8"/></svg>',
23    coin:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v10M9 9.5c0-1.4 1.3-2.5 3-2.5s3 1.1 3 2.5-1.3 2.5-3 2.5-3 1.1-3 2.5 1.3 2.5 3 2.5 3-1.1 3-2.5"/></svg>',
24    shop:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3h18l-1.5 7h-15z"/><path d="M5 10v10h14V10"/><path d="M9 14h6"/></svg>',
25    users:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="8" r="3"/><path d="M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6"/><circle cx="17" cy="7" r="2.5"/><path d="M14.5 13.5c1-.9 2.3-1.5 2.5-1.5 2.5 0 4.5 2 4.5 4.5"/></svg>',
26    server:   '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="6" rx="1.5"/><rect x="3" y="14" width="18" height="6" rx="1.5"/><circle cx="7" cy="7" r="1" fill="currentColor"/><circle cx="7" cy="17" r="1" fill="currentColor"/></svg>',
27    chat:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12c0 4-4 7-9 7-1.4 0-2.7-.2-3.9-.7L3 20l1.5-4.2C3.5 14.5 3 13.3 3 12
27c0-4 4-7 9-7s9 3 9 7z"/></svg>',
28    handshake:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 12 8 9l-3 3 5 5 3-3"/><path d="m13 12 3-3 3 3-5 5-3-3"/><path d="M3 14V8h6M21 10v6h-6"/></svg>',
29    rocket:   '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 3c4 0 8 4 8 8l-7 7-7-7c0-4 4-8 6-8z"/><circle cx="14" cy="11" r="2"/><path d="m5 19 2-2M3 21l4-4M9 21l-2-2"/></svg>',
30    book:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h12a3 3 0 0 1 3 3v14H7a3 3 0 0 1-3-3z"/><path d="M19 18H7"/></svg>',
31    news:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="14" height="16" rx="1.5"/><path d="M17 8h4v10a2 2 0 0 1-2 2h-2"/><path d="M7 8h6M7 12h6M7 16h4"/></svg>',
32    mic:      '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="3" width="6" height="11" rx="3"/><path d="M5 11a7 7 0 0 0 14 0M12 18v3"/></svg>',
33    calendar: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18M8 3v4M16 3v4"/></svg>',
34    code:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="8 7 3 12 8 17"/><polyline points="16 7 21 12 16 17"/><line x1="14" y1="5" x2="10" y2="19"/></svg>',
35    bank:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 10 12 4l9 6"/><path d="M5 10v8M9 10v8M15 10v8M19 10v8M3 21h18"/></svg>',
36    heart:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21s-7-4.5-9-9.5C1.5 8 4 4 8 4c2 0 3.3 1 4 2 .7-1 2-2 4-2 4 0 6.5 4 5 7.5C19 16.5 12 21 12 21z"/></svg>',
37    flag:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 22V4M4 4h12l-2 4 2 4H4"/></svg>',
38    gear:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3h.1A1.7 1.7 0 0 0 10 4V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5h.1a1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8v.1A1.7 1.7 0 0 0 20.9 10H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/></svg>',
39    truck:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h11v10H3z"/><path d="M14 9h4l3 3v4h-7"/><circle cx="7" cy="18" r="2"/><circle cx="17" cy="18" r="2"/></svg>',
40    bolt:     '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 4 14 11 14 9 22 20 10 13 10 13 2"/></svg>',
41    bag:      '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 7h12l-1 14H7z"/><path d="M9 7V5a3 3 0 0 1 6 0v2"/></svg>',
42    radio:    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="2"/><path d="M16.2 7.8a6 6 0 0 1 0 8.5M7.8 16.3a6 6 0 0 1 0-8.5M19 5a10 10 0 0 1 0 14M5 19a10 10 0 0 1 0-14"/></svg>',
43  };
44
45  const menuItem = (icon, title, desc, href) => `
46    <a class="menu-item" href="${href}">
47      <span class="menu-icon">${icon}</span>
48      <span>
49        <span class="menu-title">${title}</span>
50        <span class="menu-desc">${desc}</span>
51      </span>
52    </a>`;
53
54  const navHTML = `
55  <nav class="nav">
56    <div class="nav-inner">
57      <a class="brand" href="/"><img src="/assets/img/xyner7-clean.png" alt="xyner.ai" fetchpriority="high" decoding="async" style="height:32px;width:auto;display:block"/></a>
58
59      <ul class="nav-links" id="navLinks">
60        <li class="nav-item">
61          <a class="nav-link" href="javascript:void(0)" onclick="(function(a){if(window.matchMedia('(max-width:1100px)').matches){var li=a.parentElement;var ul=li.parentElement;var willOpen=!li.classList.contains('is-open');ul.querySelectorAll('.nav-item.is-open').forEach(function(n){if(n!==li)n.classList.remove('is-open');});li.classList.toggle('is-open',willOpen);if(willOpen){requestAnimationFrame(function(){ul.scrollTop=Math.max(0,ul.scrollTop+li.getBoundingClientRect().top-ul.getBoundingClientRect().top-4);});}}return false;})(this);return false;">AI Platform <span class="chev"></span></a>
62          <div class="mega">
63            <ul>
64              <h5>The platform</h5>
65              ${menuItem(I.grid,    'Platform Overview',           'End-to-end agentic AI platform', `/platform/overview.html`)}
66              ${menuItem(I.server,  'Reference Architecture',      'Control plane, data plane', `/platform/architecture.html`)}
67              ${menuItem(I.brain,   'Reasoning & Planning',        'Chain-of-thought, decision trees', `/platform/reasoning-engine.html`)}
68              ${menuItem(I.users,   'Multi-Agent Orchestration',   'Specialist agents collaborate', `/platform/multi-agent.html`)}
69            </ul>
70            <ul>
71              <h5>Engineering</h5>
72              ${menuItem(I.plug,    'Enterprise Integrations',     '1000+ first-party connectors', `/platform/integrations.html`)}
73              ${menuItem(I.shield,  'Security & Trust',            'Guardrails, RBAC, audit',  `/platform/security.html`)}
74              ${menuItem(I.cloud,   'Deployment Models',           'Cloud, hybrid, on-prem, sovereign', `/platform/deployment.html`)}
75              ${menuItem(I.chart,   'Observability',               'Audit trails, traces, dashboards', `/platform/observability.html`)}
76            </ul>
77            <ul>
78              <h5>Operate &amp; extend</h5>
79              ${menuItem(I.cycle,   'Agent Lifecycle',             'Build, version, test, rollout',`/platform/lifecycle.html`)}
80              ${menuItem(I.model,   'Multi-LLM Routing',           'OpenAI, Claude, Gemini, Llama', `/platform/multi-llm.html`)}
81              ${menuItem(I.memory,  'Memory & Context',            'Persistent enterprise memory', `/platform/memory-context.html`)}
82              ${menuItem(I.shop,    'Agent Marketplace',           'Pre-built agents &amp; starter packs', `/platform/agent-marketplace.html`)}
83            </ul>
84            <div class="menu-footer">
85              <span>Explore the agent operating system for the enterprise.</span>
86              <a href="/platform/overview.html">View all platform pages →</a>
87            </div>
88          </div>
89        </li>
90
91        <li class="nav-item">
92          <a class="nav-link" href="javascript:void(0)" onclick="(function(a){if(window.matchMedia('(max-width:1100px)').matches){var li=a.parentElement;var ul=li.parentElement;var willOpen=!li.classList.contains('is-open');ul.querySelectorAll('.nav-item.is-open').forEach(function(n){if(n!==li)n.classList.remove('is-open');});li.classList.toggle('is-open',willOpen);if(willOpen){requestAnimationFrame(function(){ul.scrollTop=Math.max(0,ul.scrollTop+li.getBoundingClientRect().top-ul.getBoundingClientRect().top-4);});}}return false;})(this);return false;">Capabilities <span class="chev"></span></a>
93          <div class="mega">
94            <ul>
95              <h5>Autonomy &amp; reasoning</h5>
96              ${menuItem(I.target,'Autonomous Goal Execution',   'Goals in, outcomes out', `/capabilities/autonomous-goal-execution.html`)}
97              ${menuItem(I.users, 'Multi-Agent Orchestration',   'Specialist agents collaborate', `/capabilities/multi-agent-orchestration.html`)}
98              ${menuItem(I.brain, 'Reasoning &amp; Planning',    'Decompose, plan, adapt', `/capabilities/reasoning-planning.html`)}
99              ${menuItem(I.memory,'Memory &amp; Context',        'Long-running enterprise workflows', `/capabilities/memory-context.html`)}
100            </ul>
101            <ul>
102              <h5>Tools &amp; intelligence</h5>
103              ${menuItem(I.model, 'Multi-LLM Support',           'Model-agnostic by architecture', `/capabilities/multi-llm.html`)}
104              ${menuItem(I.book,  'RAG &amp; Grounding',         'Policy-aware retrieval', `/capabilities/rag.html`)}
105              ${menuItem(I.plug,  'Enterprise Integrations',     '1000+ first-party connectors', `/capabilities/integrations.html`)}
106              ${menuItem(I.bolt,  'Tool &amp; API Invocation',   'APIs, SQL, RPA, tickets', `/capabilities/tool-api-invocation.html`)}
107            </ul>
108            <ul>
109              <h5>Governance &amp; ops</h5>
110              ${menuItem(I.gear,   'Workflow Automation',        'Low-code process design', `/capabilities/workflow-automation.html`)}
111              ${menuItem(I.shield, 'RBAC &amp; Access',          'Fine-grained, role-inherited', `/capabilities/rbac.html`)}
112              ${menuItem(I.handshake,'Human Approval Gates',     'Checkpoints &amp; escalation', `/capabilities/human-approval.html`)}
113              ${menuItem(I.chart,  'Audit &amp; Observability',  'Replay, traces, dashboards', `/capabilities/audit-observability.html`)}
114            </ul>
115            <div class="menu-footer">
116              <span>22 first-class capabilities for the agentic enterprise.</span>
117              <a href="/capabilities/index.html">View all 22 capabilities →</a>
118            </div>
119          </div>
120        </li>
121
122        <li class="nav-item">
123          <a class="nav-link" href="javascript:void(0)" onclick="(function(a){if(window.matchMedia('(max-width:1100px)').matches){var li=a.parentElement;var ul=li.parentElement;var willOpen=!li.classList.contains('is-open');ul.querySelectorAll('.nav-item.is-open').forEach(function(n){if(n!==li)n.classList.remove('is-open');});li.classList.toggle('is-open',willOpen);if(willOpen){requestAnimationFrame(function(){ul.scrollTop=Math.max(0,ul.scrollTop+li.getBoundingClientRect().top-ul.getBoundingClientRect().top-4);});}}return false;})(this);return false;">Solutions <span class="chev"></span></a>
124          <div class="mega">
125            <ul>
126              <h5>Front office</h5>
127              ${menuItem(I.chat,  'Customer Support',            'End-to-end resolution', `/solutions/customer-support.html`)}
128              ${menuItem(I.rocket,'Sales Operations',            'Pipeline, RFP, deal desk', `/solutions/sales-ops.html`)}
129              ${menuItem(I.chart, 'Analytics &amp; Insights',    'NL-to-SQL, scorecards', `/solutions/analytics.html`)}
130              ${menuItem(I.radio, 'Event-Driven Automation',     'React in milliseconds', `/solutions/event-driven.html`)}
131            </ul>
132            <ul>
133              <h5>Back office</h5>
134              ${menuItem(I.coin,  'Finance &amp; Accounting',    'Close, AP, FP&amp;A, treasury', `/solutions/finance.html`)}
135              ${menuItem(I.bag,   'Procurement',                 'Source-to-settle on autopilot', `/solutions/procurement.html`)}
136              ${menuItem(I.users, 'Human Resources',             'Onboarding, helpdesk, talent', `/solutions/hr.html`)}
137              ${menuItem(I.server,'IT Service Management',       'Triage, remediate, change', `/solutions/itsm.html`)}
138            </ul>
139            <ul>
140              <h5>Cross-functional</h5>
141              ${menuItem(I.shield,'Compliance Operations',       'Continuous controls &amp; audit', `/solutions/compliance-ops.html`)}
142              ${menuItem(I.cycle, 'Agentic Process Mining',      'Discover, score, automate', `/solutions/process-mining.html`)}
143              ${menuItem(I.heart, 'Self-Healing Workflows',      'Adapt, recover, learn', `/solutions/self-healing.html`)}
144              ${menuItem(I.book,  'Legal Operations',            'Contracts, NDA, matter intake', `/solutions/legal-ops.html`)}
145            </ul>
146            <div class="menu-footer">
147              <span>Pre-built, customizable agentic solutions for every function.</span>
148              <a href="/solutions/index.html">All solutions →</a>
149            </div>
150          </div>
151        </li>
152
153        <li class="nav-item">
154          <a class="nav-link" href="javascript:void(0)" onclick="(function(a){if
154(window.matchMedia('(max-width:1100px)').matches){var li=a.parentElement;var ul=li.parentElement;var willOpen=!li.classList.contains('is-open');ul.querySelectorAll('.nav-item.is-open').forEach(function(n){if(n!==li)n.classList.remove('is-open');});li.classList.toggle('is-open',willOpen);if(willOpen){requestAnimationFrame(function(){ul.scrollTop=Math.max(0,ul.scrollTop+li.getBoundingClientRect().top-ul.getBoundingClientRect().top-4);});}}return false;})(this);return false;">Industries <span class="chev"></span></a>
155          <div class="mega">
156            <ul>
157              <h5>Financial services</h5>
158              ${menuItem(I.bank,    'Banking',                   'Fraud, KYC, complaints, lending', `/industries/banking.html`)}
159              ${menuItem(I.shield,  'Insurance',                 'Underwriting, claims, servicing', `/industries/insurance.html`)}
160              ${menuItem(I.chart,   'Capital Markets',           'Trade ops, settlement, research', `/industries/capital-markets.html`)}
161              ${menuItem(I.users,   'Professional Services',     'Engagements, knowledge, drafts', `/industries/professional-services.html`)}
162            </ul>
163            <ul>
164              <h5>Consumer &amp; healthcare</h5>
165              ${menuItem(I.shop,    'Retail &amp; CPG',          'Merchandising, store ops, support', `/industries/retail.html`)}
166              ${menuItem(I.radio,   'Telecommunications',        '
166Network ops, B2C/B2B', `/industries/telecom.html`)}
167              ${menuItem(I.heart,   'Healthcare &amp; Life Sciences','Prior auth, clinical workflows', `/industries/healthcare.html`)}
168              ${menuItem(I.calendar,'Hospitality &amp; Travel',  'Guest services, revenue, ops', `/industries/hospitality-travel.html`)}
169            </ul>
170            <ul>
171              <h5>Public &amp; industrial</h5>
172              ${menuItem(I.flag,    'Public Sector',             'Sovereign cloud, citizen services', `/industries/public-sector.html`)}
173              ${menuItem(I.bolt,    'Energy &amp; Utilities',    'Outage response, field ops', `/industries/energy.html`)}
174              ${menuItem(I.gear,    'Manufacturing',             'Supply, quality, shopfloor', `/industries/manufacturing.html`)}
175              ${menuItem(I.truck,   'Logistics &amp; Supply',    'Track, trace, exceptions', `/industries/logistics.html`)}
176            </ul>
177            <div class="menu-footer">
178              <span>Trusted across the world's most regulated industries.</span>
179              <a href="/industries/index.html">All industries →</a>
180            </div>
181          </div>
182        </li>
183
184        <li class="nav-item" data-nav="resources">
185          <a class="nav-link" href="javascript:void(0)" onclick="(function(a){if(window.matchMedia('(max-width:1100px)').matches){var li=a.parentElement;var ul=li.parentElement;var willOpen=!li.classList.contains('is-open');ul.querySelectorAll('.nav-item.is-open').forEach(function(n){if(n!==li)n.classList.remove('is-open');});li.classList.toggle('is-open',willOpen);if(willOpen){requestAnimationFrame(function(){ul.scrollTop=Math.max(0,ul.scrollTop+li.getBoundingClientRect().top-ul.getBoundingClientRect().top-4);});}}return false;})(this);return false;">Resources <span class="chev"></span></a>
186          <div class="mega">
187            <ul>
188              <h5>Learn</h5>
189              ${menuItem(I.news,    'Blog &amp; Insights',       'Perspectives on agentic AI', `/resources/blog.html`)}
190              ${menuItem(I.book,    'Whitepapers',               'In-depth reports', `/resources/whitepapers.html`)}
191              ${menuItem(I.target,  'Case Studies',              'Real customer outcomes', `/resources/case-studies.html`)}
192              ${menuItem(I.book,    'Agentic AI Glossary',       'Key terms, demystified', `/resources/glossary.html`)}
193            </ul>
194            <ul>
195              <h5>Engage</h5>
196              ${menuItem(I.mic,     'Webinars',                  'Live and on-demand', `/resources/webinars.html`)}
197              ${menuItem(I.calendar,'Events',                    'Conferences &amp; meetups', `/resources/events.html`)}
198              ${menuItem(I.shop,    'Agent Marketplace',         'Verified agents', `/resources/agent-marketplace.html`)}
199              ${menuItem(I.handshake,'Partner Program',          'SI, ISV, cloud, reseller', `/resources/partners.html`)}
200            </ul>
201            <ul>
202              <h5>Build &amp; operate</h5>
203              ${menuItem(I.code,    'Documentation',             'Build, deploy, operate', `/resources/documentation.html`)}
204              ${menuItem(I.bolt,    'API Reference',             'REST &amp; GraphQL APIs', `/resources/api-reference.html`)}
205              ${menuItem(I.shield,  'Trust Center',              'Security, privacy, compliance', `/resources/trust-center.html`)}
206              ${menuItem(I.chat,    'Support',                   'Premium support &amp; community', `/resources/support.html`)}
207            </ul>
208            <div class="menu-footer">
209              <span>Everything you need to design, build and operate agents.</span>
210              <a href="/resources/index.html">Browse all resources →</a>
211            </div>
212          </div>
213        </li>
214
215        <li class="nav-item">
216          <a class="nav-link" href="javascript:void(0)" onclick="(function(a){if(window.matchMedia('(max-width:1100px)').matches){var li=a.parentElement;var ul=li.parentElement;var willOpen=!li.classList.contains('is-open');ul.querySelectorAll('.nav-item.is-open').forEach(function(n){if(n!==li)n.classList.remove('is-open');});li.classList.toggle('is-open',willOpen);if(willOpen){requestAnimationFrame(function(){ul.scrollTop=Math.max(0,ul.scrollTop+li.getBoundingClientRect().top-ul.getBoundingClientRect().top-4);});}}return false;})(this);return false;">Company <span class="chev"></span></a>
217          <div class="mega">
218            <ul>
219              <h5>Who we are</h5>
220              ${menuItem(I.flag,    'About xyner',               'Mission, principles, team', `/company/about.html`)}
221              ${menuItem(I.calendar,'Request a Demo',            'See it in your environment', `/company/demo.html`)}
222              ${menuItem(I.heart,   'Sustainability',            'ESG, inclusion, responsibility', `/company/sustainability.html`)}
223            </ul>
224            <ul>
225              <h5>Engage</h5>
226              ${menuItem(I.target,  'Customers',                 'Who builds with xyner', `/company/customers.html`)}
227              ${menuItem(I.rocket,  'Careers',                   'Open roles across the world', `/company/careers.html`)}
228              ${menuItem(I.handshake,'Partners',                 'Cloud, SI, ISV, reseller', `/company/partners.html`)}
229            </ul>
230            <ul>
231              <h5>Trust &amp; security</h5>
232              ${menuItem(I.chat,    'Contact',                   'Sales, partners, support', `/company/contact.html`)}
233              ${menuItem(I.shield,  'Trust &amp; Security',      'How we earn your trust', `/company/trust.html`)}
234            </ul>
235            <div class="menu-footer">
236              <span>An operating team built for enterprise AI.</span>
237              <a href="/company/about.html">About xyner →</a>
238            </div>
239          </div>
240        </li>
241      </ul>
242
243      <div class="nav-cta">
244        <a class="btn btn-ghost" href="/company/contact.html">Contact us</a>
245        <a class="btn btn-primary" href="/company/demo.html">Request demo</a>
246        <button type="button" class="nav-toggle" aria-label="Toggle menu" aria-expanded="false" onclick="(function(b){var l=document.getElementById('navLinks');if(!l)return;var o=!l.classList.contains('open');var nv=document.querySelector('#site-nav nav.nav');if(nv){document.documentElement.style.setProperty('--drawer-top',Math.max(0,Math.round(nv.getBoundingClientRect().bottom))+'px');}l.classList.toggle('open',o);b.setAttribute('aria-expanded',o?'true':'false');document.body.classList.toggle('nav-open',o);document.documentElement.classList.toggle('nav-open',o);})(this);return false;">
247          <span class="burger-bars" aria-hidden="true"><span></span><span></span><span></span></span>
248        </button>
249      </div>
250    </div>
251  </nav>`;
252
253  const footerHTML = `
254  <footer class="footer">
255    <div class="container">
256      <div class="footer-grid">
257        <div class="footer-brand">
258          <a class="brand" href="/"><img src="/assets/img/xyner7-clean.png" alt="xyner.ai" fetchpriority="high" decoding="async" style="height:32px;width:auto;display:block"/></a>
259          <p>The autonomous agentic AI platform for the modern enterprise. Plan. Reason. Act. At scale.</p>
260        </div>
261        <div>
262          <h5>Platform</h5>
263          <ul>
264            <li><a href="/platform/overview.html">Overview</a></li>
265            <li><a href="/platform/architecture.html">Architecture</a></li>
266            <li><a href="/platform/multi-agent.html">Multi-Agent</a></li>
267            <li><a href="/platform/reasoning-engine.html">Reasoning</a></li>
268            <li><a href="/platform/security.html">Security</a></li>
269            <li><a href="/platform/deployment.html">Deployment</a></li>
270          </ul>
271        </div>
272        <div>
273          <h5>Solutions</h5>
274          <ul>
275            <li><a href="/solutions/finance.html">Finance</a></li>
276            <li><a href="/solutions/procurement.html">Procurement</a></li>
277            <li><a href="/solutions/hr.html">HR</a></li>
278            <li><a href="/solutions/itsm.html">ITSM</a></li>
279            <li><a href="/solutions/customer-support.html">Customer Support</a></li>
280            <li><a href="/solutions/analytics.html">Analytics</a></li>
281          </ul>
282        </div>
283        <div>
284          <h5>Industries</h5>
285          <ul>
286            <li><a href="/industries/banking.html">Banking</a></li>
287            <li><a href="/industries/insurance.html">Insurance</a></li>
288            <li><a href="/industries/healthcare.html">Healthcare</a></li>
289            <li><a href="/industries/public-sector.html">Public Sector</a></li>
290            <li><a href="/industries/manufacturing.html">Manufacturing</a></li>
291            <li><a href="/industries/retail.html">Retail</a></li>
292          </ul>
293        </div>
294        <div>
295          <h5>Resources</h5>
296          <ul>
297            <li><a href="/resources/blog.html">Blog</a></li>
298            <li><a href="/resources/case-studies.html">Case Studies</a></li>
299            <li><a href="/resources/documentation.html">Documentation</a></li>
300            <li><a href="/resources/whitepapers.html">Whitepapers</a></li>
301            <li><a href="/resources/glossary.html">Glossary</a></li>
302            <li><a href="/resources/trust-center.html">Trust Center</a></li>
303          </ul>
304        </div>
305        <div>
306          <h5>Company</h5>
307          <ul>
308            <li><a href="/company/about.html">About</a></li>
309            <li><a href="/company/careers.html">Careers</a></li>
310            <li><a href="/company/contact.html">Contact</a></li>
311            <li><a href="/company/demo.html">Request Demo</a></li>
312          </ul>
313        </div>
314      </div>
315            <div class="seo-topics" style="border-top:1px solid var(--border);padding:18px 0 14px;margin-top:10px">
316        <div style="font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-mute);opacity:0.7;margin-bottom:10px;font-weight:600">Explore</div>
317        <ul style="list-style:none;margin:0;padding:0">
318          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-platform.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Platform</a></li>
319          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/enterprise-agentic-ai.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Enterprise Agentic AI</a></li>
320          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-agent-platform.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Agent Platform</a></li>
321          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/autonomous-ai-platform.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Autonomous AI Platform</a></li>
322          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/enterprise-ai-agents.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Enterprise AI Agents</a></li>
323          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/multi-agent-ai-platform.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Multi-Agent AI Platform</a></li>
324          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-workforce-platform.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Workforce Platform</a></li>
325          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-agent-automation.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Agent Automation</a></li>
326          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/autonomous-ai-agents.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Autonomous AI Agents</a></li>
327          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-software.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Software</a></li>
328          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-framework.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Framework</a></li>
329          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-architecture.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Architecture</a></li>
330          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-agent-orchestration-platform.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Agent Orchestration</a></li>
331          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-agent-development-platform.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Agent Development Platform</a></li>
332          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/enterprise-ai-workforce.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Enterprise AI Workforce</a></li>
333          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-services.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Services</a></li>
334          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-implementation-services.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Implementation Services</a></li>
335          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-consulting-services.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Consulting Services</a></li>
336          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-development-services.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Development Services</a></li>
337          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/ai-transformation-services.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">AI Transformation Services</a></li>
338          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-consulting.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Consulting</a></li>
339          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-banking.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Banking</a></li>
340          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-healthcare.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Healthcare</a></li>
341          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-government.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Government</a></li>
342          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-telecom.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Telecom</a></li>
343          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-retail.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Retail</a></li>
344          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-manufacturing.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Manufacturing</a></li>
345          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-insurance.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI Insurance</a></li>
346          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/agentic-ai-bfsi.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI for BFSI</a></li>
347          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/hr-ai-agent.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">HR AI Agent</a></li>
348          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/finance-ai-agent.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Finance AI Agent</a></li>
349          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/customer-service-ai-agent.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Customer Service AI Agent</a></li>
350          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/sales-ai-agent.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Sales AI Agent</a></li>
351          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/procurement-ai-agent.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Procurement AI Agent</a></li>
352          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/topics/legal-ai-agent.html" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Legal AI Agent</a></li>
353        </ul>
354      </div>
355      <div class="seo-locations" style="border-top:1px solid var(--border);padding:18px 0 14px;margin-top:10px">
356        <div style="font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-mute);opacity:0.7;margin-bottom:10px;font-weight:600">Locations</div>
357        <ul style="list-style:none;margin:0;padding:0">
358          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/uae/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in UAE</a></li>
359          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/saudi-arabia/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in Saudi Arabia</a></li>
360          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/usa/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in USA</a></li>
361          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/uk/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in UK</a></li>
362          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/singapore/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in Singapore</a></li>
363          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/india/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in India</a></li>
364          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/germany/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in Germany</a></li>
365          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/netherlands/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in Netherlands</a></li>
366          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/australia/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-tra
366nsform:uppercase;text-decoration:none;font-weight:500">Agentic AI in Australia</a></li>
367          <li style="display:inline-block;margin:0 14px 6px 0"><a href="/qatar/agentic-ai-platform/" style="color:var(--text-mute);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;font-weight:500">Agentic AI in Qatar</a></li>
368        </ul>
369      </div>
370      <div class="footer-bottom">
371        <div>© <span data-year>2026</span> xyner.ai · All rights reserved.</div>
372        <div class="badges">
373          <span class="badge">SOC 2</span>
374          <span class="badge">ISO 27001</span>
375          <span class="badge">GDPR</span>
376          <span class="badge">HIPAA</span>
377        </div>
378      </div>
379    </div>
380  </footer>`;
381
382  function inject() {
383    const navHost = document.getElementById('site-nav');
384    const footHost = document.getElementById('site-footer');
385    // Only inject if empty (the static HTML may already include nav/footer)
386    if (navHost  && !navHost.querySelector('nav.nav'))    navHost.innerHTML  = navHTML;
387    if (footHost && !footHost.querySelector('footer.footer')) footHost.innerHTML = footerHTML;
388
389    // Bulletproof hamburger visibility: JS-force based on viewport width.
390    // Inline styles beat any stylesheet rule so this cannot be overridden.
391    function syncHamburger() {
392      const btn = document.querySelector('.nav-toggle');
393      const links = document.querySelector('.nav-links');
394      if (!btn) return;
395      const w = window.innerWidth;
396      if (w >= 1101) {
397        // Above 1100px: nav-links are visible, so hide hamburger completely
398        btn.style.setProperty('display', 'none', 'important');
399        btn.style.setProperty('visibility', 'hidden', 'important');
400        btn.style.setProperty('opacity', '0', 'important');
401        btn.style.setProperty('pointer-events', 'none', 'important');
402        if (links) {
403          links.style.setProperty('display', 'flex', 'important');
404          links.classList.remove('open');
405        }
406        // Drawer force-closed: release the scroll lock and reset toggle state
407        document.body.classList.remove('nav-open');
408        document.documentElement.classList.remove('nav-open');
409        btn.setAttribute('aria-expanded', 'false');
410      } else {
411        // 1100 or below: show hamburger, let stylesheet control the rest
412        btn.style.removeProperty('display');
413        btn.style.removeProperty('visibility');
414        btn.style.removeProperty('opacity');
415        btn.style.removeProperty('pointer-events');
416        if (links) {
417          links.style.removeProperty('display');
418        }
419      }
420    }
421    syncHamburger();
422    window.addEventListener('resize', syncHamburger, { passive: true });
423
424    // Mobile toggle is wired via inline onclick on the button itself
425    // (most foolproof against any event-listener interference).
426    // Year stamp
427    document.querySelectorAll('[data-year]').forEach(el => { el.textContent = new Date().getFullYear(); });
428
429    // Hover-intent: keep mega menu open with a small grace period when the
430    // cursor leaves the trigger so users can travel to the dropdown without
431    // it closing on them.
432    // Hover-intent: keep menus open while moving cursor between trigger and panel.
433    // Uses a generous 400ms grace period and tracks both the trigger and the mega.
434    document.querySelectorAll('.nav-item').forEach(item => {
435      let closeT;
436      // Hover only drives the menu on desktop; in drawer mode (≤1100px) taps do.
437      const desktop = () => window.matchMedia('(min-width:1101px)').matches;
438      const open  = () => { if (!desktop()) return; clearTimeout(closeT); document.querySelectorAll('.nav-item.is-open').forEach(n => { if (n !== item) n.classList.remove('is-open'); }); item.classList.add('is-open'); };
439      const close = () => { if (!desktop()) return; clearTimeout(closeT); closeT = setTimeout(() => item.classList.remove('is-open'), 400); };
440      item.addEventListener('mouseenter', open);
441      item.addEventListener('mouseleave', close);
442      const mega = item.querySelector('.mega');
443      if (mega) {
444        mega.addEventListener('mouseenter', open);
445        mega.addEventListener('mouseleave', close);
446      }
447    });
448  }
449
450  if (document.readyState === 'loading') {
451    document.addEventListener('DOMContentLoaded', inject);
452  } else { inject(); }
453})();
454
455
456/* =========================================================
457   Google Analytics 4
458   Measurement ID: G-8YEHYHH3H5
459   Loads gtag.js asynchronously, initialises, and exposes
460   window.gtag for custom event tracking.
461   Runs once even if layout.js is loaded multiple times.
462   ========================================================= */
463(function () {
464  if (window.__xynerGA4Loaded) return;
465  window.__xynerGA4Loaded = true;
466  var GA_ID = 'G-8YEHYHH3H5';
467
468  function loadGA4() {
469    if (window.__xynerGA4Booted) return;
470    window.__xynerGA4Booted = true;
471    var s = document.createElement('script');
472    s.async = true;
473    s.src = 'https://www.googletagmanager.com/gtag/js?id=' + GA_ID;
474    document.head.appendChild(s);
475    window.dataLayer = window.dataLayer || [];
476    function gtag(){ window.dataLayer.push(arguments); }
477    window.gtag = gtag;
478    gtag('js', new Date());
479    gtag('config', GA_ID, { anonymize_ip: true, send_page_view: true });
480  }
481
482  // Defer GA4: load only on first user interaction OR 5s after page load
483  function bootOnInteraction(){
484    loadGA4();
485    ['scroll','mousemove','touchstart','keydown','click'].forEach(function(ev){
486      window.removeEventListener(ev, bootOnInteraction, {passive:true, capture:true});
487    });
488  }
489  function scheduleLoad(){
490    ['scroll','mousemove','touchstart','keydown','click'].forEach(function(ev){
491      window.addEventListener(ev, bootOnInteraction, {passive:true, capture:true, once:true});
492    });
493    setTimeout(loadGA4, 5000);
494  }
495  if (document.readyState === 'complete') {
496    scheduleLoad();
497  } else {
498    window.addEventListener('load', scheduleLoad);
499  }
500})();
501
502/* WhatsApp widget loads from whatsapp-widget.js */

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.