PageSourceSearch

https://ticketon.io/

html ticketon.io collected 2026-09-28 06:26:06 UTC 163,132 bytes, 562 lines download raw bytes

1<!DOCTYPE html><html lang="en"> <head><!-- Авто-язык: на первом визите определяем язык по браузеру и уводим на
2         локализованную версию (/ru, /de, …); далее уважаем явный выбор из
3         переключателя (cookie ticketon_lang). Только для локализуемых страниц —
4         юр-страницы и прочее не трогаем, чтобы не словить 404. Выполняется до
5         рендера → без мигания. -->
5<script>
6      (function () {
7        var S = ['en', 'ru', 'uk', 'es', 'de', 'fr', 'pt'], D = 'en';
8        var LOC = { '/': 1, '/pricing': 1, '/teyra': 1, '/contact': 1 };
9        var parts = location.pathname.split('/');
10        var hasPrefix = S.indexOf(parts[1]) >= 0;
11        var cur = hasPrefix ? parts[1] : D;
12        var bp = (hasPrefix ? '/' + parts.slice(2).join('/') : location.pathname).replace(/\/+$/, '') || '/';
13        function ck(n) { var m = document.cookie.match('(^|; )' + n + '=([^;]+)'); return m ? m[2] : null; }
14        function setck(v) { document.cookie = 'ticketon_lang=' + v + '; path=/; max-age=31536000; samesite=lax'; }
15        var target = ck('ticketon_lang');
16        if (!target) {
17          var nav = (navigator.language || '').slice(0, 2).toLowerCase();
18          target = S.indexOf(nav) >= 0 ? nav : D;
19          setck(target);
20        }
21        if (!LOC[bp] || !target || target === cur) return;
22        var dest = target === D ? bp : '/' + target + (bp === '/' ? '' : bp);
23        if (dest !== location.pathname) location.replace(dest + location.search + location.hash);
24      })();
25    </script>
25<script>document.documentElement.classList.add('js');</script>
25<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><meta name="theme-color" content="#5D87FF"><meta name="generator" content="Astro v5.18.2"><title>TicketON — One inbox for Telegram, Shopify &amp; website chat</title><meta name="description" content="TicketON is the omnichannel support platform that unifies Telegram, your Shopify store and website live chat in one inbox — with an AI agent that drafts replies, automations that route every ticket, and analytics that show what works."><link rel="canonical" href="https://ticketon.io/"><meta name="robots" content="index, follow"><link rel="alternate" hreflang="en" href="https://ticketon.io/"><link rel="alternate" hreflang="ru" href="https://ticketon.io/ru"><link rel="alternate" hreflang="uk" href="https://ticketon.io/uk"><link rel="alternate" hreflang="es" href="https://ticketon.io/es"><link rel="alternate" hreflang="de" href="https://ticketon.io/de"><link rel="alternate" hreflang="fr" href="https://ticketon.io/fr"><link rel="alternate" hreflang="pt" href="https://ticketon.io/pt"><link rel="alternate" hreflang="x-default" href="https://ticketon.io/"><!-- Open Graph --><meta property="og:type" content="website"><meta property="og:site_name" content="TicketON"><meta property="og:title" content="TicketON — One inbox for Telegram, Shopify &#38; website chat"><meta property="og:description" content="TicketON is the omnichannel support platform that unifies Telegram, your Shopify store and website live chat in one inbox — with an AI agent that drafts replies, automations that route every ticket, and analytics that show what works."><meta property="og:url" content="https://ticketon.io/"><meta property="og:image" content="https://ticketon.io/og.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:image:alt" content="TicketON — One inbox for Telegram, Shopify &#38; website chat"><meta property="og:locale" content="en_US"><meta property="og:locale:alternate" content="ru_RU"><meta property="og:locale:alternate" content="uk_UA"><meta property="og:locale:alternate" content="es_ES"><meta property="og:locale:alternate" content="de_DE"><meta property="og:locale:alternate" content="fr_FR"><meta property="og:locale:alternate" content="pt_BR"><!-- Twitter --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="TicketON — One inbox for Telegram, Shopify &#38; website chat"><meta name="twitter:description" content="TicketON is the omnichannel support platform that unifies Telegram, your Shopify store and website live chat in one inbox — with an AI agent that drafts replies, automations that route every ticket, and analytics that show what works."><meta name="twitter:image" content="https://ticketon.io/og.png"><meta name="twitter:image:alt" content="TicketON — One inbox for Telegram, Shopify &#38; website chat">
25<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://ticketon.io/#org","name":"TicketON","url":"https://ticketon.io","logo":"https://ticketon.io/favicon.svg"},{"@type":"SoftwareApplication","name":"TicketON","applicationCategory":"BusinessApplication","operatingSystem":"Web","description":"TicketON is the omnichannel support platform that unifies Telegram, your Shopify store and website live chat in one inbox — with an AI agent that drafts replies, automations that route every ticket, and analytics that show what works.","offers":{"@type":"Offer","price":"0","priceCurrency":"USD","description":"Free plan available"},"publisher":{"@id":"https://ticketon.io/#org"}}]}</script>
25<link rel="stylesheet" href="/_astro/a.n4-N1tQo.css">
26<style>.cookie-consent[data-astro-cid-garwan2p][hidden]{display:none}.cookie-consent[data-astro-cid-garwan2p]{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:60;max-width:28rem;margin-inline:auto;display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--foreground);box-shadow:var(--shadow-pop);font-size:.9rem}@media(min-width:640px){.cookie-consent[data-astro-cid-garwan2p]{left:1.25rem;right:auto;margin-inline:0}}.cookie-consent[data-astro-cid-garwan2p] .cc-text[data-astro-cid-garwan2p]{margin:0;line-height:1.55;color:var(--muted-foreground)}.cookie-consent[data-astro-cid-garwan2p] a[data-astro-cid-garwan2p]{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.cc-actions[data-astro-cid-garwan2p]{display:flex;gap:.5rem;justify-content:flex-end}.cc-btn[data-astro-cid-garwan2p]{border-radius:var(--radius-md);padding:.45rem .95rem;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid transparent}.cc-btn-ghost[data-astro-cid-garwan2p]{background:transparent;border-color:var(--border);color:var(--foreground)}.cc-btn-primary[data-astro-cid-garwan2p]{background:var(--primary);color:var(--primary-foreground)}.lang-switcher[data-astro-cid-a2mxz4y6]>summary[data-astro-cid-a2mxz4y6]::-webkit-details-marker{display:none}.lang-switcher[data-astro-cid-a2mxz4y6][open] .lang-chevron[data-astro-cid-a2mxz4y6]{transform:rotate(180deg)}
27.sc-text[data-astro-cid-bnxxdwxg]{opacity:0;transform:translateY(-16px);transition:opacity .5s ease,transform .55s cubic-bezier(.22,1,.36,1)}.sc-text[data-astro-cid-bnxxdwxg].is-active{opacity:1;transform:translateY(0)}.sc-card[data-astro-cid-bnxxdwxg]{opacity:0;transform-origin:top center;will-change:transform,opacity,filter}.sc-card[data-astro-cid-bnxxdwxg].is-active{opacity:1}@media(prefers-reduced-motion:reduce){.sc-text[data-astro-cid-bnxxdwxg]{transition:opacity .3s ease;transform:none}}.marquee[data-astro-cid-7s7xinkd]{overflow:hidden}.marquee-track[data-astro-cid-7s7xinkd]{animation:hl-marquee var(--dur, 42s) linear infinite}.marquee[data-astro-cid-7s7xinkd]:hover .marquee-track[data-astro-cid-7s7xinkd]{animation-play-state:paused}@keyframes hl-marquee{to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.marquee-track[data-astro-cid-7s7xinkd]{animation:none}}
28</style></head> <body>  <header class="fixed inset-x-0 top-0 z-50"> <div class="wrap pt-3 sm:pt-4"> <div class="relative flex h-14 items-center justify-between gap-3 rounded-2xl border border-border/70 bg-white/80 pl-2.5 pr-2.5 shadow-[0_10px_30px_-14px_rgba(16,24,40,0.22)] backdrop-blur-md"> <a href="/" class="flex items-center gap-2 rounded-lg px-1.5 py-1.5 transition-colors hover:bg-secondary/60" aria-label="TicketON"> <svg viewBox="0 0 504 334" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="size-[22px] text-primary" aria-hidden="true"> <path d="M0 166.951C0 188.875 4.34544 210.585 12.7882 230.84C21.231 251.095 33.6058 269.5 49.206 285.002C64.8062 300.505 83.3264 312.803 103.709 321.193C124.092 329.583 145.938 333.901 168 333.901L168 242.079C158.072 242.079 148.241 240.135 139.069 236.36C129.897 232.584 121.563 227.05 114.543 220.074C107.522 213.098 101.954 204.816 98.1546 195.701C94.3553 186.586 92.3999 176.817 92.3999 166.951H0Z"></path> <path d="M504 166.951C504 188.875 499.655 210.585 491.212 230.84C482.769 251.095 470.395 269.5 454.794 285.002C439.194 300.505 420.674 312.803 400.291 321.193C379.909 329.583 358.063 333.901 336.001 333.901V242.079C345.929 242.079 355.759 240.135 364.931 236.36C374.104 232.584 382.438 227.05 389.458 220.074C396.478 213.098 402.047 204.816 405.846 195.701C409.645 186.586 411.601 176.817 411.601 166.951H504Z"></path> <path d="M504 166.951C504 145.027 499.655 123.316 491.212 103.061C482.769 82.8056 470.395 64.4012 454.794 48.8985C439.194 33.3957 420.674 21.0983 400.291 12.7083C379.909 4.31828 358.063 -9.58336e-07 336.001 0V91.8224C345.929 91.8224 355.759 93.7656 364.931 97.5411C374.104 101.317 382.438 106.85 389.458 113.827C396.478 120.803 402.047 129.085 405.846 138.2C409.645 147.315 411.601 157.085 411.601 166.951H504Z"></path> <path d="M168 166.95C168 145.026 172.346 123.316 180.789 103.061C189.231 82.8056 201.606 64.4012 217.206 48.8985C232.807 33.3957 251.327 21.0983 271.709 12.7083C292.092 4.31828 313.939 -9.58336e-07 336.001 0V91.8224C326.073 91.8224 316.242 93.7656 307.069 97.5411C297.897 101.317 289.563 106.85 282.543 113.827C275.523 120.803 269.954 129.085 266.155 138.2C262.356 147.315 260.4 157.084 260.4 166.95H168Z"></path> <path d="M336 242.081H168V333.903H336V242.081Z"></path> <path d="M92.4034 0.00133011H0.00352479V166.951H92.4034V0.00133011Z"></path> </svg> <span class="text-[16px] font-bold tracking-tight text-foreground">TicketON</span> </a> <nav class="hidden flex-1 items-center justify-center gap-1 md:flex"> <a href="/teyra" class="rounded-lg px-3 py-1.5 text-[13.5px] font-medium text-muted-foreground transition-colors hover:text-foreground">Teyra AI</a><a href="/pricing" class="rounded-lg px-3 py-1.5 text-[13.5px] font-medium text-muted-foreground transition-colors hover:text-foreground">Pricing</a><a href="/help" class="rounded-lg px-3 py-1.5 text-[13.5px] font-medium text-muted-foreground transition-colors hover:text-foreground">Help Center</a> </nav> <div class="flex items-center gap-1.5"> <!-- Logged-out (default for first-time visitors). The script below swaps
29             to "Go to dashboard" when a session-flag cookie is present on this
30             domain (set by the app on the app.* subdomain). --> <div data-auth-out class="flex items-center gap-1.5"> <a href="https://app.ticketon.io/login" class="hidden rounded-md px-3.5 py-2 text-sm font-semibold text-foreground transition-colors hover:bg-secondary sm:inline-flex">Log in</a> <a class="inline-flex shrink-0 items-center justify-center gap-2 rounded-md font-semibold outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring/45 focus-visible:ring-offset-2 whitespace-nowrap h-10 px-4 text-sm bg-primary text-primary-foreground hover:bg-primary/90 " href="https://app.ticketon.io/register"> Start free </a> </div> <div data-auth-in class="hidden items-center gap-1.5"> <a class="inline-flex shrink-0 items-center justify-center gap-2 rounded-md font-semibold outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring/45 focus-visible:ring-offset-2 whitespace-nowrap h-10 px-4 text-sm bg-primary text-primary-foreground hover:bg-primary/90 " href="https://app.ticketon.io"> Go to dashboard </a> </div> </div> </div> </div> </header> 
30<script>
31  (function () {
32    // The app sets a non-httpOnly "ticketon_auth" flag cookie on the parent
33    // domain while a session exists. If it's here, this browser is logged in —
34    // show "Go to dashboard" instead of "Log in / Start free".
35    function loggedIn(name) {
36      return document.cookie.split('; ').some(function (c) {
37        return c.indexOf(name + '=') === 0 && c.length > name.length + 1;
38      });
39    }
40    if (loggedIn('ticketon_auth')) {
41      var out = document.querySelector('[data-auth-out]');
42      var inn = document.querySelector('[data-auth-in]');
43      if (out) out.style.display = 'none';
44      if (inn) { inn.classList.remove('hidden'); inn.classList.add('flex'); }
45    }
46  })();
47</script>
47 <main> <section class="relative isolate overflow-hidden border-b border-border"> <!-- soft colorful mesh (Filo-style), in our brand tones --> <div class="pointer-events-none absolute inset-x-0 top-0 -z-10 h-[940px]" style="background: radial-gradient(40% 50% at 15% 8%, rgba(93,135,255,0.55), transparent 60%), radial-gradient(42% 52% at 85% 3%, rgba(139,118,255,0.5), transparent 60%), radial-gradient(46% 44% at 58% 27%, rgba(96,196,255,0.4), transparent 60%), radial-gradient(38% 42% at 99% 38%, rgba(120,145,255,0.45), transparent 60%), radial-gradient(36% 40% at 1% 32%, rgba(150,130,255,0.4), transparent 60%); -webkit-mask-image: linear-gradient(to bottom, #000 48%, transparent); mask-image: linear-gradient(to bottom, #000 48%, transparent);"></div> <div class="wrap relative pt-32 pb-12 text-center sm:pt-40"> <span class="mb-7 inline-flex items-center gap-2.5 rounded-full border border-border bg-card/80 px-2.5 py-1.5 shadow-soft backdrop-blur-sm"> <span class="flex -space-x-1.5"> <span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full ring-2 ring-card size-5"><img src="/channels/telegram.svg" alt="" class="size-full object-cover" loading="lazy"></span> <span class="inline-flex size-5 items-center justify-center rounded-full bg-[#eef2ff] text-primary ring-2 ring-card"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" /></svg></span> <span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full ring-2 ring-card size-5 bg-white"><img src="/channels/shopify.svg" alt="" class="size-[76%] object-contain" loading="lazy"></span> <span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full ring-2 ring-card size-5"><img src="/channels/web-widget.svg" alt="" class="size-full object-cover" loading="lazy"></span> </span> <span class="text-[13px] font-medium text-foreground">One inbox for every channel</span> </span> <h1 class="mx-auto max-w-4xl text-balance text-[2.7rem] font-bold leading-[1.03] tracking-[-0.035em] text-foreground sm:text-[4.4rem]"> One workspace for every<br class="hidden sm:block"> <span class="text-primary">customer conversation</span> </h1> <p class="mx-auto mt-6 max-w-xl text-pretty text-lg text-muted-foreground"> Bring Telegram, Email, Shopify and your website into one inbox — and let AI resolve the repetitive half so your team can focus on the rest. </p> <div class="mt-8 flex flex-col items-center justify-center gap-3 sm:flex-row"> <a class="inline-flex shrink-0 items-center justify-center gap-2 rounded-md font-semibold outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring/45 focus-visible:ring-offset-2 whitespace-nowrap h-11 px-5 text-[0.95rem] bg-primary text-primary-foreground hover:bg-primary/90 " href="https://app.ticketon.io/register"> Start for free </a> <a class="inline-flex shrink-0 items-center justify-center gap-2 rounded-md font-semibold outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring/45 focus-visible:ring-offset-2 whitespace-nowrap h-11 px-5 text-[0.95rem] border border-border bg-card text-foreground hover:bg-secondary " href="https://app.ticketon.io/register"> Book a demo </a> </div> <p class="mt-5 text-sm text-muted-foreground">Free plan · No credit card · Live in minutes</p> </div> <div class="relative mx-auto max-w-[1180px] px-5 pb-20 sm:px-8"> <div class="hero-3d-scene"> <div class="hero-3d-card overflow-hidden rounded-2xl border border-border bg-card shadow-card" data-hero-3d> <!-- Скриншот рабочего пространства (HERO). Положи широкий десктоп-скрин
48             в public/screens/hero-workspace.png — карточка сама даёт рамку/тень/
49             3D-наклон. Чтобы вернуть кодовый мок — <AppPreview /> в истории git. --> <img src="/screens/hero-workspace.png" alt="Ticketon — one workspace for every customer conversation" class="block h-auto w-full"> </div> </div> <div class="mt-9 flex flex-wrap items-center justify-center gap-x-8 gap-y-3 text-sm text-muted-foreground"> <span class="font-medium">Works with</span> <span class="flex items-center gap-2"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-5"><img src="/channels/telegram.svg" alt="" class="size-full object-cover" loading="lazy"></span> Telegram</span> <span class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-5 text-primary" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" /></svg> Email</span> <span class="flex items-center gap-2"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-5 bg-white"><img src="/channels/shopify.svg" alt="" class="size-[76%] object-contain" loading="lazy"></span> Shopify</span> <span class="flex items-center gap-2"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-5"><img src="/channels/web-widget.svg" alt="" class="size-full object-cover" loading="lazy"></span> Website widget</span> </div> </div> </section> 
49<script>
50  /* Hero 3D parallax scroll-reveal: the app preview lies back in 3D and stands
51     up to face you as you scroll. Pure scrollY → rAF, so it's smooth and works
52     in every browser (no scroll-timeline dependency). */
53  (() => {
54    const card = document.querySelector('[data-hero-3d]');
55    if (!card) return;
56    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
57
58    const MAX_ROT = 10; // degrees of tilt at rest (top of page) — kept subtle
59    let ticking = false;
60
61    const apply = () => {
62      ticking = false;
63      const flatAt = Math.max(420, window.innerHeight * 0.82); // scroll px to stand fully up
64      const y = window.scrollY || window.pageYOffset || 0;
65      const p = Math.min(1, Math.max(0, y / flatAt));
66      const e = 1 - (1 - p) * (1 - p); // easeOutQuad
67      const rot = (1 - e) * MAX_ROT;
68      const scale = 0.975 + 0.025 * e;
69      card.style.transform = 'rotateX(' + rot.toFixed(2) + 'deg) scale(' + scale.toFixed(3) + ')';
70    };
71    const onScroll = () => {
72      if (!ticking) { ticking = true; requestAnimationFrame(apply); }
73    };
74
75    apply();
76    window.addEventListener('scroll', onScroll, { passive: true });
77    window.addEventListener('resize', onScroll, { passive: true });
78  })();
79</script>
79 <!-- scroll-fill statement: words darken in reading order as you scroll --> <section class="bg-background py-28 sm:py-40"> <div class="wrap"> <p data-scroll-fill class="mx-auto max-w-4xl text-center text-[1.7rem] font-semibold leading-[1.34] tracking-tight sm:text-[2.6rem] sm:leading-[1.32]">  <span class="scroll-fill-word">Every</span>  <span class="scroll-fill-word">conversation</span>  <span class="scroll-fill-word">answered.</span>  <span class="scroll-fill-word">Every</span>  <span class="scroll-fill-word">order</span>  <span class="scroll-fill-word">handled.</span>  <span class="scroll-fill-word">While</span>  <span class="scroll-fill-word">your</span>  <span class="scroll-fill-word">team</span>  <span class="scroll-fill-word">sleeps</span>  <span class="scroll-fill-word">or</span>  <span class="scroll-fill-word">ships</span>  <span class="scroll-fill-word">the</span>  <span class="scroll-fill-word">next</span>  <span class="scroll-fill-word">big</span>  <span class="scroll-fill-word">thing,</span>  <span class="scroll-fill-word">Teyra</span>  <span class="scroll-fill-word">keeps</span>  <span class="scroll-fill-word">the</span>  <span class="scroll-fill-word">inbox</span>  <span class="scroll-fill-word">moving.</span> </p> </div> </section> 
79<script>
80  /* Word-by-word scroll fill: a single scroll-progress scalar for the paragraph
81     drives a fill index, so words darken in reading order (even within a line)
82     as it crosses the screen, and lighten again on scroll-up. scrollY → rAF,
83     so it's smooth and works in every browser (no scroll-timeline needed). */
84  (() => {
85    const root = document.querySelector('[data-scroll-fill]');
86    if (!root) return;
87    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
88
89    const words = Array.from(root.querySelectorAll('.scroll-fill-word'));
90    const N = words.length;
91    const FEATHER = 4; // how many words sit mid-transition at once (soft edge)
92    let ticking = false;
93
94    const apply = () => {
95      ticking = false;
96      const vh = window.innerHeight || 1;
97      const r = root.getBoundingClientRect();
98      const center = r.top + r.height / 2;
99      // q: 0 when the paragraph centre is low on screen (80%), 1 when high (20%)
100      let q = (vh * 0.8 - center) / (vh * 0.6);
101      q = q < 0 ? 0 : q > 1 ? 1 : q;
102      const f = q * (N + FEATHER);
103      for (let i = 0; i < N; i++) {
104        let p = (f - i) / FEATHER;
105        p = p < 0 ? 0 : p > 1 ? 1 : p;
106        const pct = (24 + 76 * p).toFixed(1); // 24% faint → 100% foreground
107        words[i].style.color = 'color-mix(in srgb, var(--foreground) ' + pct + '%, var(--background))';
108      }
109    };
110    const onScroll = () => { if (!ticking) { ticking = true; requestAnimationFrame(apply); } };
111
112    apply();
113    window.addEventListener('scroll', onScroll, { passive: true });
114    window.addEventListener('resize', onScroll, { passive: true });
115  })();
116</script>
116 <!-- the four pillars, each a real mini-interface (bento) --> <section class="bg-surface py-20 sm:py-24"> <div class="wrap"> <div class="reveal mx-auto max-w-2xl text-center"> <p class="eyebrow justify-center">The platform</p> <h2 class="mt-4 text-[2rem] font-bold leading-[1.08] tracking-tight text-foreground sm:text-[2.7rem]">Everything support needs, in one place</h2> <p class="mt-4 text-lg text-muted-foreground">Not a feature list — the actual screens. Inbox, AI, copilot, triggers and analytics, all on the same data.</p> </div> <div class="stagger-grid mt-12 grid grid-cols-1 gap-4 lg:grid-cols-6"> <!-- top row: two hero tiles --> <article class="group flex flex-col overflow-hidden rounded-2xl border border-border bg-card shadow-soft transition-colors hover:border-primary/30 hover:shadow-card lg:col-span-3"> <div class="flex flex-1 items-center justify-center overflow-hidden bg-surface p-6 sm:p-10 min-h-[300px] sm:min-h-[340px]"><div class="w-full rounded-xl border border-border bg-card shadow-soft max-w-[470px]"> <div class="flex items-center gap-2 border-b border-border px-4 py-3"> <h3 class="flex-1 text-sm font-semibold text-foreground">All chats</h3> <span class="rounded-full bg-secondary px-2 py-0.5 text-xs font-semibold text-muted-foreground">26</span> </div> <div> <div class="flex items-center gap-3 px-4 py-2.5 bg-accent"> <div class="relative shrink-0"> <span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-10 text-[13px]" style="background-color:#2563eb">S</span> <span class="absolute -bottom-0.5 -right-0.5"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full ring-2 ring-card size-[17px] bg-white"><img src="/channels/shopify.svg" alt="" class="size-[76%] object-contain" loading="lazy"></span></span> </div> <div class="min-w-0 flex-1"> <div class="flex items-center justify-between gap-2"> <span class="truncate text-[13.5px] font-semibold text-foreground">Sophie Müller</span> <span class="shrink-0 text-[11px] text-muted-foreground tabular-nums">14:04</span> </div> <div class="mt-0.5 flex items-center gap-1.5"> <span class="flex min-w-0 flex-1 items-center gap-1.5 text-[12.5px] text-muted-foreground/80" aria-label="typing…"> <span class="inline-flex shrink-0 items-center gap-1 align-middle"> <span class="inline-block size-1.5 animate-typing-dot rounded-full bg-muted-foreground/80" style="animation-delay:0ms"></span> <span class="inline-block size-1.5 animate-typing-dot rounded-full bg-muted-foreground/80" style="animation-delay:150ms"></span> <span class="inline-block size-1.5 animate-typing-dot rounded-full bg-muted-foreground/80" style="animation-delay:300ms"></span> </span> <span class="lt-type min-w-0 truncate">Can I change the shipping address?</span> </span> <img src="/status/new.svg" alt="" class="size-5 shrink-0"> </div> </div> </div><div class="flex items-center gap-3 px-4 py-2.5"> <div class="relative shrink-0"> <span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-10 text-[13px]" style="background-color:#4f46e5">E</span> <span class="absolute -bottom-0.5 -right-0.5"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full ring-2 ring-card size-[17px]"><img src="/channels/web-widget.svg" alt="" class="size-full object-cover" loading="lazy"></span></span> </div> <div class="min-w-0 flex-1"> <div class="flex items-center justify-between gap-2"> <span class="truncate text-[13.5px] font-semibold text-foreground">Emma Carter</span> <span class="shrink-0 text-[11px] text-muted-foreground tabular-nums">13:46</span> </div> <div class="mt-0.5 flex items-center gap-1.5"> <span class="min-w-0 flex-1 truncate text-[12.5px] font-medium text-foreground/90">Is the Aurora jacket back in size M?</span> <img src="/status/awaiting-client.svg" alt="" class="size-5 shrink-0"> </div> </div> </div><div class="flex items-center gap-3 px-4 py-2.5"> <div class="relative shrink-0"> <span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-10 text-[13px]" style="background-color:#0d9488">L</span> <span class="absolute -bottom-0.5 -right-0.5"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full ring-2 ring-card size-[17px]"><img src="/channels/telegram.svg" alt="" class="size-full object-cover" loading="lazy"></span></span> </div> <div class="min-w-0 flex-1"> <div class="flex items-center justify-between gap-2"> <span class="truncate text-[13.5px] font-semibold text-foreground">Liam Novak</span> <span class="shrink-0 text-[11px] text-muted-foreground tabular-nums">13:58</span> </div> <div class="mt-0.5 flex items-center gap-1.5"> <span class="min-w-0 flex-1 truncate text-[12.5px] text-muted-foreground">Thanks for the quick help!</span> <img src="/status/closed.svg" alt="" class="size-5 shrink-0"> </div> </div> </div><div class="flex items-center gap-3 px-4 py-2.5"> <div class="relative shrink-0"> <span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-10 text-[13px]" style="background-color:#db2777">J</span> <span class="absolute -bottom-0.5 -right-0.5"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full ring-2 ring-card size-[17px] bg-white"><img src="/channels/shopify.svg" alt="" class="size-[76%] object-contain" loading="lazy"></span></span> </div> <div class="min-w-0 flex-1"> <div class="flex items-center justify-between gap-2"> <span class="truncate text-[13.5px] font-semibold text-foreground">James Wong</span> <span class="shrink-0 text-[11px] text-muted-foreground tabular-nums">11:20</span> </div> <div class="mt-0.5 flex items-center gap-1.5"> <span class="min-w-0 flex-1 truncate text-[12.5px] text-muted-foreground">Where is my refund for #1031?</span> <img src="/status/awaiting-client.svg" alt="" class="size-5 shrink-0"> </div> </div> </div> </div> </div> 
116<script>
117  (function () {
118    var el = document.querySelector('.lt-type');
119    if (!el) return;
120    var msg = 'Can I change the shipping address?';
121    if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
122      el.textContent = msg;
123      return;
124    }
125    var i = 0, dir = 1;
126    function tick() {
127      el.textContent = msg.slice(0, i);
128      if (dir > 0) {
129        if (i < msg.length) { i++; setTimeout(tick, 65 + Math.random() * 55); }
130        else { dir = -1; setTimeout(tick, 1500); }
131      } else {
132        if (i > 0) { i--; setTimeout(tick, 26); }
133        else { dir = 1; setTimeout(tick, 650); }
134      }
135    }
136    tick();
137  })();
138</script>
138</div> <div class="border-t border-border p-6 min-h-[7rem]"><h3 class="text-[1.15rem] font-semibold tracking-tight text-foreground">Shared inbox</h3><p class="mt-1.5 text-[14.5px] leading-relaxed text-muted-foreground">Every channel as one thread per customer — with full history and status.</p></div> </article> <article class="group flex flex-col overflow-hidden rounded-2xl border border-border bg-card shadow-soft transition-colors hover:border-primary/30 hover:shadow-card lg:col-span-3"> <div class="flex flex-1 items-center justify-center overflow-hidden bg-surface p-6 sm:p-10 min-h-[300px] sm:min-h-[340px]"><div class="w-full max-w-[490px] rounded-xl border border-border bg-card p-5 shadow-soft"><div class="grid grid-cols-3 gap-3"><div><p class="truncate text-[11px] font-medium text-muted-foreground">First response</p><p class="mt-1 text-xl font-bold tabular-nums text-foreground">1m 12s</p><p class="mt-0.5 inline-flex items-center gap-1 text-[11px] font-medium text-success">↓ 18%</p></div><div><p class="truncate text-[11px] font-medium text-muted-foreground">SLA ≤ 5 min</p><p class="mt-1 text-xl font-bold tabular-nums text-foreground">94%</p><p class="mt-0.5 inline-flex items-center gap-1 text-[11px] font-medium text-success">↑ 6%</p></div><div><p class="truncate text-[11px] font-medium text-muted-foreground">CSAT</p><p class="mt-1 text-xl font-bold tabular-nums text-foreground">96%</p><p class="mt-0.5 inline-flex items-center gap-1 text-[11px] font-medium text-success">↑ 2%</p></div></div><div class="mt-5 border-t border-border pt-4"><div class="mb-2 flex items-center justify-between"><span class="text-[13px] font-medium text-foreground">Dialogs over the period</span><div class="flex items-center gap-3 text-[10.5px] text-muted-foreground"><span class="inline-flex items-center gap-1"><span class="size-1.5 rounded-full bg-primary"></span> Created</span><span class="inline-flex items-center gap-1"><span class="size-1.5 rounded-full bg-success"></span> Closed</span></div></div><svg viewBox="0 0 320 92" preserveAspectRatio="none" class="h-24 w-full overflow-visible"><line x1="6" x2="314" y1="26" y2="26" class="text-border" stroke="currentColor" stroke-width="1" vector-effect="non-scaling-stroke" stroke-dasharray="3 4"></line><line x1="6" x2="314" y1="46" y2="46" class="text-border" stroke="currentColor" stroke-width="1" vector-effect="non-scaling-stroke" stroke-dasharray="3 4"></line><line x1="6" x2="314" y1="66" y2="66" class="text-border" stroke="currentColor" stroke-width="1" vector-effect="non-scaling-stroke" stroke-dasharray="3 4"></line><g class="bento-wipe"><polygon points="6,86 6.0,45.4 57.3,33.9 108.7,37.7 160.0,20.0 211.3,26.3 262.7,6.0 314.0,12.3 314,86" class="text-primary" fill="currentColor" fill-opacity="0.08" stroke="none"></polygon><polyline points="6.0,45.4 57.3,33.9 108.7,37.7 160.0,20.0 211.3,26.3 262.7,6.0 314.0,12.3" class="text-primary" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke"></polyline><polyline points="6.0,50.4 57.3,41.6 108.7,42.8 160.0,28.9 211.3,31.4 262.7,14.9 314.0,16.2" class="text-success" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke"></polyline></g></svg><div class="mt-1 flex justify-between px-0.5 text-[10px] text-muted-foreground"><span>M</span><span>T</span><span>W</span><span>T</span><span>F</span><span>S</span><span>S</span></div></div></div></div> <div class="border-t border-border p-6 min-h-[7rem]"><h3 class="text-[1.15rem] font-semibold tracking-tight text-foreground">Analytics</h3><p class="mt-1.5 text-[14.5px] leading-relaxed text-muted-foreground">Response times, volume and CSAT — by channel, team and agent.</p></div> </article> <!-- bottom row: three supporting tiles --> <article class="group flex flex-col overflow-hidden rounded-2xl border border-border bg-card shadow-soft transition-colors hover:border-primary/30 hover:shadow-card lg:col-span-2"> <div class="flex flex-1 items-center justify-center overflow-hidden bg-surface p-5 sm:p-6 min-h-[200px]"><div class="w-full max-w-[330px]" data-teyra><div data-teyra-scroll class="h-[188px] space-y-2 overflow-hidden [scroll-behavior:smooth]"><div data-id="c1" class="teyra-step flex justify-start"><div class="max-w-[86%] rounded-2xl rounded-tl-md border border-border bg-card px-3 py-1.5 text-[12px] leading-snug text-foreground shadow-sm">Hi! I’ve changed my mind about #1042 — can you cancel it and refund me? 🙏</div></div><div data-id="ty1" class="teyra-step flex justify-end"><div class="rounded-2xl rounded-br-md bg-secondary px-3 py-2"><span class="inline-flex items-center gap-1 align-middle"><span class="inline-block size-1.5 animate-typing-dot rounded-full bg-muted-foreground
138/80" style="animation-delay:0ms"></span><span class="inline-block size-1.5 animate-typing-dot rounded-full bg-muted-foreground/80" style="animation-delay:150ms"></span><span class="inline-block size-1.5 animate-typing-dot rounded-full bg-muted-foreground/80" style="animation-delay:300ms"></span></span></div></div><div data-id="t1" class="teyra-step flex justify-end"><div class="max-w-[84%] rounded-2xl rounded-br-md border border-violet-400/30 bg-gradient-to-br from-violet-500/[0.13] to-indigo-500/[0.07] px-3 py-1.5 text-[12px] leading-snug text-foreground shadow-[0_8px_22px_-16px_rgba(124,108,255,0.35)]">Of course — let me pull up your order and sort it out right now.</div></div><div data-id="think" class="teyra-step flex justify-center"><span class="shimmer-think inline-block w-[210px] text-center text-[11.5px]" data-think>Looking up order #1042…</span></div><div data-id="t2" class="teyra-step flex justify-end"><div class="max-w-[84%] rounded-2xl rounded-br-md border border-violet-400/30 bg-gradient-to-br from-violet-500/[0.13] to-indigo-500/[0.07] px-3 py-1.5 text-[12px] leading-snug text-foreground shadow-[0_8px_22px_-16px_rgba(124,108,255,0.35)]">All done — your $56 refund is on its way! 💜</div></div><div data-id="t3" class="teyra-step flex justify-center"><span class="inline-flex items-center gap-1.5 rounded-full bg-secondary px-3 py-1 text-[10.5px] font-medium text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3 text-emerald-600" aria-hidden="true"><path d="M18 6 7 17l-5-5" /> <path d="m22 10-7.5 7.5L13 16" /></svg> Order #1042 cancelled · $56 refunded · Shopify</span></div></div></div>
139
140  
140<script>
141    (function () {
142      var root = document.querySelector('[data-teyra]');
143      if (!root) return;
144      var scroll = root.querySelector('[data-teyra-scroll]');
145      var get = function (id) { return root.querySelector('[data-id="' + id + '"]'); };
146      var thinkEl = root.querySelector('[data-think]');
147      var order = ['c1', 'ty1', 't1', 'think', 't2', 't3'];
148      var thoughts = ['Looking up order #1042…', 'Checking refund eligibility…', 'Cancelling the order in Shopify…', 'Issuing the $56 refund…'];
149      function show(id) { var el = get(id); if (!el) return; el.style.display = 'flex'; void el.offsetWidth; el.classList.add('is-in'); }
150      function hide(id) { var el = get(id); if (!el) return; el.classList.remove('is-in'); el.style.display = 'none'; }
151      var timers = [];
152      function at(ms, fn) { timers.push(setTimeout(fn, ms)); }
153      function reset() { timers.forEach(clearTimeout); timers = []; order.forEach(hide); if (thinkEl) thinkEl.textContent = thoughts[0]; if (scroll) scroll.scrollTop = 0; }
154      function cycle() {
155        reset();
156        at(250, function () { show('c1'); });
157        at(1150, function () { show('ty1'); });
158        at(2350, function () { hide('ty1'); show('t1'); });
159        at(3250, function () { show('think'); });
160        at(4150, function () { if (thinkEl) thinkEl.textContent = thoughts[1]; });
161        at(5050, function () { if (thinkEl) thinkEl.textContent = thoughts[2]; });
162        at(5950, function () { if (thinkEl) thinkEl.textContent = thoughts[3]; });
163        at(7050, function () { hide('think'); show('t2'); });
164        at(8050, function () { show('t3'); });
165        at(11000, cycle);
166      }
167      function staticAll() { ['c1', 't1', 't2', 't3'].forEach(show); }
168      function begin() {
169        if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) { staticAll(); return; }
170        cycle();
171      }
172      if ('IntersectionObserver' in window) {
173        var io = new IntersectionObserver(function (es) { es.forEach(function (e) { if (e.isIntersecting) { begin(); io.unobserve(e.target); } }); }, { threshold: 0.4 });
174        io.observe(root);
175      } else { begin(); }
176    })();
177  </script>
177</div> <div class="border-t border-border p-5 h-[7.5rem] shrink-0"><h3 class="text-[1.1rem] font-semibold tracking-tight text-foreground">Teyra AI</h3><p class="mt-1.5 text-[14px] leading-relaxed text-muted-foreground">Answers from your docs, cites the source — and acts on Shopify.</p></div> </article> <article class="group flex flex-col overflow-hidden rounded-2xl border border-border bg-card shadow-soft transition-colors hover:border-primary/30 hover:shadow-card lg:col-span-2"> <div class="flex flex-1 items-center justify-center overflow-hidden bg-surface p-5 sm:p-6 min-h-[200px]"><div class="w-full max-w-[316px]" data-feed><div class="mb-2.5 flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4 text-primary" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /></svg><span class="text-sm font-semibold text-foreground">Triggers</span></div><div data-feed-list class="h-[178px] space-y-1.5 overflow-hidden"></div><!-- event templates (hidden), cloned by the script --><div hidden><div data-tpl="0" class="feed-row flex items-center gap-2.5 rounded-xl border border-border bg-card px-2.5 py-2 shadow-soft"><span class="grid size-7 shrink-0 place-items-center rounded-lg bg-accent text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="8" cy="21" r="1" /> <circle cx="19" cy="21" r="1" /> <path d="M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12" /></svg></span><div class="min-w-0 flex-1"><div class="truncate text-[12px] font-medium text-foreground">Abandoned cart → 10% code</div><div class="feed-age text-[10px] text-muted-foreground">now</div></div><span class="feed-rev shrink-0 rounded-full bg-emerald-500/15 px-1.5 py-0.5 text-[10px] font-semibold tabular-nums text-emerald-600">+$32</span></div><div data-tpl="1" class="feed-row flex items-center gap-2.5 rounded-xl border border-border bg-card px-2.5 py-2 shadow-soft"><span class="grid size-7 shrink-0 place-items-center rounded-lg bg-accent text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z" /> <path d="M20 2v4" /> <path d="M22 4h-4" /> <circle cx="4" cy="20" r="2" /></svg></span><div class="min-w-0 flex-1"><div class="truncate text-[12px] font-medium text-foreground">New visitor → welcome sent</div><div class="feed-age text-[10px] text-muted-foreground">now</div></div></div><div data-tpl="2" class="feed-row flex items-center gap-2.5 rounded-xl border border-border bg-card px-2.5 py-2 shadow-soft"><span class="grid size-7 shrink-0 place-items-center rounded-lg bg-accent text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M7 7h10v10" /> <path d="M7 17 17 7" /></svg></span><div class="min-w-0 flex-1"><div class="truncate text-[12px] font-medium text-foreground">Exit intent → discount shown</div><div class="feed-age text-[10px] text-muted-foreground">now</div></div><span class="feed-rev shrink-0 rounded-full bg-emerald-500/15 px-1.5 py-0.5 text-[10px] font-semibold tabular-nums text-emerald-600">+$24</span></div><div data-tpl="3" class="feed-row flex items-center gap-2.5 rounded-xl border border-border bg-card px-2.5 py-2 shadow-soft"><span class="grid size-7 shrink-0 place-items-center rounded-lg bg-accent text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" /></svg></span><div class="min-w-0 flex-1"><div class="truncate text-[12px] font-medium text-foreground">VIP cart → escalated</div><div class="feed-age text-[10px] text-muted-foreground">now</div></div></div><div data-tpl="4" class="feed-row flex items-center gap-2.5 rounded-xl border border-border bg-card px-2.5 py-2 shadow-soft"><span class="grid size-7 shrink-0 place-items-center rounded-lg bg-accent text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="12" cy="8" r="5" /> <path d="M20 21a8 8 0 0 0-16 0" /></svg></span><div class="min-w-0 flex-1"><div class="truncate text-[12px] font-medium text-foreground">Returning customer → greeted</div><div class="feed-age text-[10px] text-muted-foreground">now</div></div></div></div></div>
178
179  
179<script>
180    (function () {
181      var root = document.querySelector('[data-feed]');
182      if (!root) return;
183      var list = root.querySelector('[data-feed-list]');
184      var tpls = [].slice.call(root.querySelectorAll('[data-tpl]'));
185      if (!list || !tpls.length) return;
186      var TICK = 2200, STEP = 3, ei = 0;
187      function ageText(s) { return s <= 0 ? 'now' : (s < 60 ? s + 's ago' : Math.floor(s / 60) + 'm ago'); }
188      function add(animate) {
189        var tpl = tpls[ei % tpls.length]; ei++;
190        var row = tpl.cloneNode(true);
191        row.removeAttribute('data-tpl'); row.removeAttribute('hidden');
192        row._age = 0;
193        var a = row.querySelector('.feed-age'); if (a) a.textContent = 'now';
194        list.insertBefore(row, list.firstChild);
195        if (animate) { row.classList.add('feed-enter'); setTimeout(function () { row.classList.remove('feed-enter'); }, 440); }
196        while (list.children.length > 5) list.removeChild(list.lastChild);
197      }
198      function bump() {
199        [].forEach.call(list.children, function (row) {
200          row._age = (row._age || 0) + STEP;
201          var a = row.querySelector('.feed-age'); if (a) a.textContent = ageText(row._age);
202        });
203      }
204      function seed() { for (var k = 0; k < 4; k++) { add(false); bump(); } }
205      function tick() { bump(); add(true); }
206      var timer;
207      function begin() {
208        seed();
209        if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
210        timer = setInterval(tick, TICK);
211      }
212      if ('IntersectionObserver' in window) {
213        var io = new IntersectionObserver(function (es) { es.forEach(function (e) { if (e.isIntersecting) { begin(); io.unobserve(e.target); } }); }, { threshold: 0.4 });
214        io.observe(root);
215      } else { begin(); }
216    })();
217  </script>
217</div> <div class="border-t border-border p-5 h-[7.5rem] shrink-0"><h3 class="text-[1.1rem] font-semibold tracking-tight text-foreground">Triggers</h3><p class="mt-1.5 text-[14px] leading-relaxed text-muted-foreground">Watch behaviour and act — fire a discount or a nudge. No code.</p></div> </article> <article class="group flex flex-col overflow-hidden rounded-2xl border border-border bg-card shadow-soft transition-colors hover:border-primary/30 hover:shadow-card lg:col-span-2"> <div class="flex flex-1 items-center justify-center overflow-hidden bg-surface p-5 sm:p-6 min-h-[200px]"><div class="w-full max-w-[346px]" data-copilot> <p class="mb-2 flex items-center gap-1.5 px-0.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3 text-violet-500" aria-hidden="true"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z" /> <path d="M20 2v4" /> <path d="M22 4h-4" /> <circle cx="4" cy="20" r="2" /></svg> AI copilot for operators
218<span class="cp-langnow ml-auto inline-flex items-center gap-1 rounded-md border border-primary/30 bg-primary/[0.07] px-1.5 py-0.5 text-[10px] font-semibold normal-case tracking-normal text-primary" style="opacity:0"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="m5 8 6 6" /> <path d="m4 14 6-6 2-3" /> <path d="M2 5h12" /> <path d="M7 2h1" /> <path d="m22 22-5-10-5 10" /> <path d="M14 18h6" /></svg> <span data-langnow>Español</span></span> </p> <!-- draft surface: the reply streams in word by word --> <div class="h-[3.75rem] overflow-hidden rounded-2xl rounded-tl-md border border-border bg-card px-3.5 py-2 text-[12px] leading-snug text-foreground shadow-sm"> <p class="cp-text"></p> </div> <!-- the copilot menu --> <div class="mt-2.5 flex flex-wrap gap-1.5"> <span data-act="draft" class="cp-btn inline-flex items-center gap-1.5 rounded-md bg-gradient-to-r from-primary to-violet-500 px-2.5 py-1 text-[12px] font-semibold text-white shadow-[0_4px_12px_-7px_rgba(93,135,255,0.6)]"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5" aria-hidden="true"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z" /> <path d="M20 2v4" /> <path d="M22 4h-4" /> <circle cx="4" cy="20" r="2" /></svg> Draft reply</span> <span data-act="improve" class="cp-btn inline-flex items-center gap-1.5 rounded-md border border-border bg-card px-2.5 py-1 text-[12px] font-medium text-foreground"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5" aria-hidden="true"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72" /> <path d="m14 7 3 3" /> <path d="M5 6v4" /> <path d="M19 14v4" /> <path d="M10 2v2" /> <path d="M7 8H3" /> <path d="M21 16h-4" /> <path d="M11 3H9" /></svg> Improve</span><span data-act="translate" class="cp-btn inline-flex items-center gap-1.5 rounded-md border border-border bg-card px-2.5 py-1 text-[12px] font-medium text-foreground"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5" aria-hidden="true"><path d="m5 8 6 6" /> <path d="m4 14 6-6 2-3" /> <path d="M2 5h12" /> <path d="M7 2h1" /> <path d="m22 22-5-10-5 10" /> <path d="M14 18h6" /></svg> Translate</span><span class="cp-btn inline-flex items-center gap-1.5 rounded-md border border-border bg-card px-2.5 py-1 text-[12px] font-medium text-foreground"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5" aria-hidden="true"><path d="M15 12h-5" /> <path d="M15 8h-5" /> <path d="M19 17V5a2 2 0 0 0-2-2H4" /> <path d="M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3" /></svg> Summarize</span><span class="cp-btn inline-flex items-center gap-1.5 rounded-md border border-border bg-card px-2.5 py-1 text-[12px] font-medium text-foreground"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5" aria-hidden="true">
218<path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z" /> <circle cx="7.5" cy="7.5" r=".5" fill="currentColor" /></svg> Suggest tags</span> </div> </div> 
218<script>
219  (function () {
220    var root = document.querySelector('[data-copilot]');
221    if (!root) return;
222    var text = root.querySelector('.cp-text');
223    var langNow = root.querySelector('.cp-langnow');
224    var langLabel = root.querySelector('[data-langnow]');
225    var btns = {
226      draft: root.querySelector('[data-act="draft"]'),
227      improve: root.querySelector('[data-act="improve"]'),
228      translate: root.querySelector('[data-act="translate"]'),
229    };
230    var T = {
231      draft: "Hi Olivia — you're within the 30-day window, so I've refunded $56 to your card.",
232      improve: "Hi Olivia 👋 You're well within our 30-day window — $56 is already on its way back to your card.",
233      es: "¡Hola Olivia! 👋 Estás dentro de los 30 días — he reembolsado $56 a tu tarjeta.",
234      fr: "Bonjour Olivia 👋 Vous êtes dans les 30 jours — j'ai remboursé $56 sur votre carte.",
235      de: "Hallo Olivia 👋 Du bist innerhalb der 30 Tage — $56 sind auf deine Karte erstattet.",
236    };
237    var L = { es: 'Español', fr: 'Français', de: 'Deutsch' };
238    var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
239    var timers = [], wt = [];
240    function at(ms, fn) { timers.push(setTimeout(fn, ms)); }
241    function stream(s) {
242      wt.forEach(clearTimeout); wt = [];
243      if (!text) return;
244      text.innerHTML = '';
245      var words = s.split(' ');
246      words.forEach(function (w, idx) {
247        var sp = document.createElement('span');
248        sp.className = 'cp-word';
249        sp.textContent = w;
250        text.appendChild(sp);
251        if (idx < words.length - 1) text.appendChild(document.createTextNode(' '));
252        wt.push(setTimeout(function () { sp.classList.add('in'); }, idx * 48));
253      });
254    }
255    function press(act) {
256      Object.keys(btns).forEach(function (k) { if (btns[k]) btns[k].classList.toggle('is-on', k === act); });
257      var b = btns[act];
258      if (b) { b.classList.add('is-press'); setTimeout(function () { b.classList.remove('is-press'); }, 260); }
259    }
260    function setLang(code) {
261      if (langLabel) langLabel.textContent = L[code] || code;
262      if (langNow) langNow.style.opacity = '1';
263    }
264    function reset() {
265      timers.forEach(clearTimeout); timers = []; wt.forEach(clearTimeout); wt = [];
266      if (text) text.innerHTML = '';
267      if (langNow) langNow.style.opacity = '0';
268      Object.keys(btns).forEach(function (k) { if (btns[k]) btns[k].classList.remove('is-on'); });
269    }
270    function cycle() {
271      reset();
272      at(450, function () { press('draft'); });
273      at(720, function () { stream(T.draft); });
274      at(2700, function () { press('improve'); });
275      at(2970, function () { stream(T.improve); });
276      at(5100, function () { press('translate'); setLang('es'); });
277      at(5420, function () { stream(T.es); });
278      at(7150, function () { setLang('fr'); });
279      at(7400, function () { stream(T.fr); });
280      at(9100, function () { setLang('de'); });
281      at(9350, function () { stream(T.de); });
282      at(11700, cycle);
283    }
284    function begin() {
285      if (reduce) { if (text) text.textContent = T.improve; return; }
286      cycle();
287    }
288    if ('IntersectionObserver' in window) {
289      var io = new IntersectionObserver(function (es) { es.forEach(function (e) { if (e.isIntersecting) { begin(); io.unobserve(e.target); } }); }, { threshold: 0.4 });
290      io.observe(root);
291    } else { begin(); }
292  })();
293</script>
293</div> <div class="border-t border-border p-5 h-[7.5rem] shrink-0"><h3 class="text-[1.1rem] font-semibold tracking-tight text-foreground">AI copilot</h3><p class="mt-1.5 text-[14px] leading-relaxed text-muted-foreground">Draft, improve, translate and summarise replies in one click.</p></div> </article> </div> </div> </section> 
293<script>
294  /* Scroll-driven Stagger Grid Reveal: each tile rises, scales up and sharpens
295     (blur → 0) as it crosses up into the viewport. Progress is scrubbed from the
296     tile's own position, with a small left→right offset per column, so the
297     cascade plays exactly when you reach it — and rewinds when you scroll back.
298     scrollY → rAF, so it's smooth and works in every browser. */
299  (() => {
300    const grid = document.querySelector('.stagger-grid');
301    if (!grid) return;
302    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
303
304    const tiles = Array.from(grid.children);
305    // intra-row left→right offsets: [Inbox, Analytics | Teyra, Triggers, Copilot]
306    const colOffset = [0, 0.14, 0, 0.1, 0.2];
307    const START = 0.9; // begin revealing when the tile top is at 90% of the viewport
308    const SPAN = 0.36; // …fully revealed after it rises a further 36% of the viewport
309    let ticking = false;
310
311    const apply = () => {
312      ticking = false;
313      const vh = window.innerHeight || 1;
314      for (let i = 0; i < tiles.length; i++) {
315        const el = tiles[i];
316        const top = el.getBoundingClientRect().top;
317        let p = (START - top / vh) / SPAN - (colOffset[i] || 0);
318        p = p < 0 ? 0 : p > 1 ? 1 : p;
319        const e = 1 - Math.pow(1 - p, 3); // easeOutCubic
320        el.style.opacity = e.toFixed(3);
321        el.style.transform = 'translateY(' + ((1 - e) * 26).toFixed(2) + 'px) scale(' + (0.965 + 0.035 * e).toFixed(3) + ')';
322        const blur = (1 - e) * 7;
323        el.style.filter = blur > 0.06 ? 'blur(' + blur.toFixed(2) + 'px)' : 'none';
324      }
325    };
326    const onScroll = () => { if (!ticking) { ticking = true; requestAnimationFrame(apply); } };
327
328    apply();
329    window.addEventListener('scroll', onScroll, { passive: true });
330    window.addEventListener('resize', onScroll, { passive: true });
331  })();
332</script>
332 <!-- the whole product, on a dark band (Filo) --> <section id="showcase" class="relative bg-surface" style="height: 215vh" data-astro-cid-bnxxdwxg> <div id="sc-sticky" class="sticky top-0 flex h-screen items-center justify-center px-5 sm:px-10 lg:px-14" data-astro-cid-bnxxdwxg> <div class="relative flex min-h-[88vh] w-full max-w-[2500px] flex-col justify-center overflow-hidden rounded-[36px] bg-[#080a12] px-6 py-9 shadow-[0_60px_140px_-50px_rgba(0,0,0,0.75)] ring-1 ring-white/5 sm:px-10" data-astro-cid-bnxxdwxg> <!-- big brand glow (scales with the card) + faint grid --> <div class="pointer-events-none absolute inset-0 [background:radial-gradient(ellipse_60%_66%_at_50%_40%,rgba(124,108,255,0.42),rgba(96,110,240,0.17)_46%,transparent_74%)]" data-astro-cid-bnxxdwxg></div> <div class="pointer-events-none absolute inset-0 [background-image:linear-gradient(rgba(255,255,255,0.04)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.04)_1px,transparent_1px)] [background-size:54px_54px] [mask-image:radial-gradient(ellipse_72%_64%_at_50%_38%,#000,transparent_80%)]" data-astro-cid-bnxxdwxg></div> <div class="pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-white/15 to-transparent" data-astro-cid-bnxxdwxg></div> <div class="relative z-10 flex w-full flex-col items-center text-center" data-astro-cid-bnxxdwxg> <!-- heading (changes per slide) --> <div class="relative h-[112px] w-full max-w-3xl sm:h-[122px]" data-astro-cid-bnxxdwxg> <div class="sc-text absolute inset-x-0 top-0 flex flex-col items-center is-active" data-astro-cid-bnxxdwxg> <p class="text-[12.5px] font-semibold uppercase tracking-[0.2em] text-[#9db4ff]" data-astro-cid-bnxxdwxg>Command center</p> <h2 class="mt-3 max-w-2xl text-balance text-[1.8rem] font-bold leading-[1.08] tracking-tight text-white sm:text-[2.4rem]" data-astro-cid-bnxxdwxg>Your whole operation, at a glance</h2> </div><div class="sc-text absolute inset-x-0 top-0 flex flex-col items-center" data-astro-cid-bnxxdwxg> <p class="text-[12.5px] font-semibold uppercase tracking-[0.2em] text-[#9db4ff]" data-astro-cid-bnxxdwxg>AI assistant</p> <h2 class="mt-3 max-w-2xl text-balance text-[1.8rem] font-bold leading-[1.08] tracking-tight text-white sm:text-[2.4rem]" data-astro-cid-bnxxdwxg>See exactly how your AI performs</h2> </div><div class="sc-text absolute inset-x-0 top-0 flex flex-col items-center" data-astro-cid-bnxxdwxg> <p class="text-[12.5px] font-semibold uppercase tracking-[0.2em] text-[#9db4ff]" data-astro-cid-bnxxdwxg>Sales &amp; revenue</p> <h2 class="mt-3 max-w-2xl text-balance text-[1.8rem] font-bold leading-[1.08] tracking-tight text-white sm:text-[2.4rem]" data-astro-cid-bnxxdwxg>The revenue your chat drives</h2> </div> </div> <!-- the deck — every screen is a real card in one stack; the blurred
333             ones behind physically rise to the front as you scroll --> <div class="relative mt-9 aspect-[61/30] h-[min(620px,calc(100vh_-_440px))] max-w-full" data-astro-cid-bnxxdwxg> <div class="sc-card absolute inset-0 overflow-hidden rounded-2xl bg-card shadow-[0_30px_80px_-22px_rgba(0,0,0,0.85)] ring-1 ring-black/20 is-active" data-astro-cid-bnxxdwxg> <img src="/screens/dashboard.png" alt="Your whole operation, at a glance" decoding="async" class="h-full w-full object-contain" data-astro-cid-bnxxdwxg> <div class="sc-veil pointer-events-none absolute inset-0 bg-[#070912]" style="opacity:0" data-astro-cid-bnxxdwxg></div> </div><div class="sc-card absolute inset-0 overflow-hidden rounded-2xl bg-card shadow-[0_30px_80px_-22px_rgba(0,0,0,0.85)] ring-1 ring-black/20" data-astro-cid-bnxxdwxg> <img src="/screens/inbox.png" alt="See exactly how your AI performs" decoding="async" class="h-full w-full object-contain" data-astro-cid-bnxxdwxg> <div class="sc-veil pointer-events-none absolute inset-0 bg-[#070912]" style="opacity:0" data-astro-cid-bnxxdwxg></div> </div><div class="sc-card absolute inset-0 overflow-hidden rounded-2xl bg-card shadow-[0_30px_80px_-22px_rgba(0,0,0,0.85)] ring-1 ring-black/20" data-astro-cid-bnxxdwxg> <img src="/screens/managers.png" alt="The revenue your chat drives" decoding="async" class="h-full w-full object-contain" data-astro-cid-bnxxdwxg> <div class="sc-veil pointer-events-none absolute inset-0 bg-[#070912]" style="opacity:0" data-astro-cid-bnxxdwxg></div> </div> </div> </div> </div> </div> </section>  
333<script>
334  (function () {
335    var section = document.getElementById('showcase');
336    if (!section) return;
337    var cards = section.querySelectorAll('.sc-card');
338    var texts = section.querySelectorAll('.sc-text');
339    var n = cards.length;
340    if (!n) return;
341    var veils = [];
342    for (var v = 0; v < n; v++) veils[v] = cards[v].querySelector('.sc-veil');
343    var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
344    for (var z = 0; z < n; z++) cards[z].classList.remove('is-active');
345    var active = -1;
346
347    function clamp(v, a, b) { return v < a ? a : v > b ? b : v; }
348    function smooth(t) { return t * t * (3 - 2 * t); }
349    function posFromP(p) {
350      var seg = [[0, 0.22, 0], [0.22, 0.44, 0, 1], [0.44, 0.56, 1], [0.56, 0.78, 1, 2], [0.78, 2, 2]];
351      for (var s = 0; s < seg.length; s++) {
352        var g = seg[s];
353        if (p < g[1]) { if (g.length === 3) return g[2]; return g[2] + smooth((p - g[0]) / (g[1] - g[0])) * (g[3] - g[2]); }
354      }
355      return n - 1;
356    }
357    function styleFor(o) {
358      // One live deck. Cards behind (o > 0) are smaller, blurred, dimmed and
359      // peek out at the top — like the original stack. As you scroll each one
360      // physically rises to the front: it de-blurs, scales up to full and the
361      // old front slides down and out. o = index - position.
362      if (o >= 0) {
363        return {
364          ty: -o * 1.6, scale: 1 - o * 0.085, blur: o * 2.6,
365          op: clamp(1 - o * 0.06, 0, 1), z: Math.round(40 - o * 10),
366          veil: Math.min(o * 0.14, 0.34)
367        };
368      }
369      var e = -o;
370      return {
371        ty: e * 55, scale: 1 - e * 0.03, blur: 0,
372        op: clamp(1 - e / 0.5, 0, 1), z: 50, veil: 0
373      };
374    }
375    function setActive(i) {
376      if (i === active) return;
377      active = i;
378      for (var k = 0; k < n; k++) if (texts[k]) texts[k].classList.toggle('is-active', k === i);
379    }
380    function update() {
381      var rect = section.getBoundingClientRect();
382      var total = section.offsetHeight - window.innerHeight;
383      var scrolled = clamp(-rect.top, 0, Math.max(total, 1));
384      var p = total > 0 ? scrolled / total : 0;
385      var t = posFromP(p);
386      for (var k = 0; k < n; k++) {
387        var cs = cards[k].style;
388        if (reduce) {
389          cs.zIndex = 10 + k;
390          cs.opacity = Math.round(t) === k ? '1' : '0';
391          cs.transform = 'none';
392          cs.filter = 'none';
393          if (veils[k]) veils[k].style.opacity = '0';
394          continue;
395        }
396        var st = styleFor(k - t);
397        cs.opacity = st.op.toFixed(3);
398        cs.transform = 'translateY(' + st.ty.toFixed(2) + '%) scale(' + st.scale.toFixed(4) + ')';
399        cs.filter = st.blur > 0.1 ? 'blur(' + st.blur.toFixed(2) + 'px)' : 'none';
400        cs.zIndex = st.z;
401        if (veils[k]) veils[k].style.opacity = st.veil.toFixed(3);
402      }
403      setActive(Math.round(t));
404    }
405    var ticking = false;
406    function onScroll() { if (!ticking) { ticking = true; requestAnimationFrame(function () { update(); ticking = false; }); } }
407    window.addEventListener('scroll', onScroll, { passive: true });
408    window.addEventListener('resize', onScroll, { passive: true });
409    update();
410  })();
411</script>
411 <!-- channels & integrations grid (AIwork) --> <section id="channels" class="scroll-mt-20 py-20 sm:py-24"> <div class="wrap"> <div class="reveal mx-auto max-w-2xl text-center"> <p class="eyebrow justify-center">Channels &amp; integrations</p> <h2 class="mt-4 text-[2rem] font-bold leading-[1.08] tracking-tight text-foreground sm:text-[2.7rem]">Every channel into one inbox</h2> <p class="mt-4 text-lg text-muted-foreground">Telegram, email, your website and Shopify all land in a single shared thread per customer — plus the tools you already run on.</p> </div> <div class="reveal mt-8 sm:mt-10"> <div class="relative mx-auto h-[420px] w-full max-w-[900px] sm:h-[480px]"> <!-- faint grid backdrop, faded at the edges --> <div class="bg-grid absolute inset-0 opacity-60 [mask-image:radial-gradient(ellipse_74%_72%_at_50%_50%,#000_30%,transparent_100%)]"></div> <!-- connecting lines + flowing dots --> <svg viewBox="0 0 760 380" preserveAspectRatio="none" class="absolute inset-0 h-full w-full" aria-hidden="true"> <defs> <linearGradient id="orbit-line" x1="0" y1="0" x2="1" y2="0"> <stop offset="0" stop-color="#5d87ff" stop-opacity="0.7"></stop> <stop offset="1" stop-color="#5d87ff" stop-opacity="0.1"></stop> </linearGradient> </defs> <line x1="380" y1="190" x2="106" y2="76" stroke="url(#orbit-line)" stroke-width="2"></line><line x1="380" y1="190" x2="106" y2="289" stroke="url(#orbit-line)" stroke-width="2"></line><line x1="380" y1="190" x2="654" y2="76" stroke="url(#orbit-line)" stroke-width="2"></line><line x1="380" y1="190" x2="654" y2="289" stroke="url(#orbit-line)" stroke-width="2"></line> <circle r="4.5" fill="#5d87ff"> <animateMotion dur="2.6s" begin="0s" repeatCount="indefinite" path="M106,76 L380,190"></animateMotion> </circle><circle r="4.5" fill="#5d87ff"> <animateMotion dur="2.6s" begin="0.65s" repeatCount="indefinite" path="M106,289 L380,190"></animateMotion> </circle><circle r="4.5" fill="#5d87ff"> <animateMotion dur="2.6s" begin="1.3s" repeatCount="indefinite" path="M654,76 L380,190"></animateMotion> </circle><circle r="4.5" fill="#5d87ff"> <animateMotion dur="2.6s" begin="1.9500000000000002s" repeatCount="indefinite" path="M654,289 L380,190"></animateMotion> </circle> </svg> <!-- satellites --> <div class="absolute -translate-x-1/2 -translate-y-1/2" style="left:14%;top:20%"> <div class="relative grid size-[76px] place-items-center rounded-full bg-white shadow-[0_14px_34px_-12px_rgba(16,24,40,0.26)] ring-1 ring-border"> <span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-11"><img src="/channels/telegram.svg" alt="" class="size-full object-cover" loading="lazy"></span> </div> <span class="absolute left-1/2 top-full mt-2.5 -translate-x-1/2 whitespace-nowrap text-[13.5px] font-medium text-foreground/70">Telegram</span> </div><div class="absolute -translate-x-1/2 -translate-y-1/2" style="left:14%;top:76%"> <div class="relative grid size-[76px] place-items-center rounded-full bg-white shadow-[0_14px_34px_-12px_rgba(16,24,40,0.26)] ring-1 ring-border"> <span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-11 bg-white"><img src="/channels/shopify.svg" alt="" class="size-[76%] object-contain" loading="lazy"></span> </div> <span class="absolute left-1/2 top-full mt-2.5 -translate-x-1/2 whitespace-nowrap text-[13.5px] font-medium text-foreground/70">Shopify</span> </div><div class="absolute -translate-x-1/2 -translate-y-1/2" style="left:86%;top:20%"> <div class="relative grid size-[76px] place-items-center rounded-full bg-white shadow-[0_14px_34px_-12px_rgba(16,24,40,0.26)] ring-1 ring-border"> <span class="grid size-11 place-items-center rounded-full bg-slate-500 text-white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-6" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" /></svg></span> </div> <span class="absolute left-1/2 top-full mt-2.5 -translate-x-1/2 whitespace-nowrap text-[13.5px] font-medium text-foreground
411/70">Email</span> </div><div class="absolute -translate-x-1/2 -translate-y-1/2" style="left:86%;top:76%"> <div class="relative grid size-[76px] place-items-center rounded-full bg-white shadow-[0_14px_34px_-12px_rgba(16,24,40,0.26)] ring-1 ring-border"> <span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-11"><img src="/channels/web-widget.svg" alt="" class="size-full object-cover" loading="lazy"></span> </div> <span class="absolute left-1/2 top-full mt-2.5 -translate-x-1/2 whitespace-nowrap text-[13.5px] font-medium text-foreground/70">Website</span> </div> <!-- incoming message cards, sitting between each channel and the inbox --> <div class="absolute hidden w-[174px] -translate-x-1/2 -translate-y-1/2 lg:block" style="left:30%;top:33%"> <div class="rounded-xl border border-border bg-white p-2.5 shadow-[0_14px_30px_-16px_rgba(16,24,40,0.28)]"> <div class="flex items-center gap-1.5"> <span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-5 text-[9px]" style="background-color:#0d9488">L</span> <span class="truncate text-[11px] font-semibold text-foreground">Liam Novak</span> </div> <p class="mt-1 truncate text-[11px] text-muted-foreground">Thanks for the quick help!</p> </div> </div><div class="absolute hidden w-[174px] -translate-x-1/2 -translate-y-1/2 lg:block" style="left:30%;top:67%"> <div class="rounded-xl border border-border bg-white p-2.5 shadow-[0_14px_30px_-16px_rgba(16,24,40,0.28)]"> <div class="flex items-center gap-1.5"> <span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-5 text-[9px]" style="background-color:#2563eb">S</span> <span class="truncate text-[11px] font-semibold text-foreground">Sophie Müller</span> </div> <p class="mt-1 truncate text-[11px] text-muted-foreground">Can I change the address?</p> </div> </div><div class="absolute hidden w-[174px] -translate-x-1/2 -translate-y-1/2 lg:block" style="left:70%;top:33%"> <div class="rounded-xl border border-border bg-white p-2.5 shadow-[0_14px_30px_-16px_rgba(16,24,40,0.28)]"> <div class="flex items-center gap-1.5"> <span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-5 text-[9px]" style="background-color:#db2777">J</span> <span class="truncate text-[11px] font-semibold text-foreground">James Wong</span> </div> <p class="mt-1 truncate text-[11px] text-muted-foreground">Where is my refund?</p> </div> </div><div class="absolute hidden w-[174px] -translate-x-1/2 -translate-y-1/2 lg:block" style="left:70%;top:67%"> <div class="rounded-xl border border-border bg-white p-2.5 shadow-[0_14px_30px_-16px_rgba(16,24,40,0.28)]"> <div class="flex items-center gap-1.5"> <span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-5 text-[9px]" style="background-color:#4f46e5">E</span> <span class="truncate text-[11px] font-semibold text-foreground">Emma Carter</span> </div> <p class="mt-1 truncate text-[11px] text-muted-foreground">Is the jacket back in M?</p> </div> </div> <!-- hub --> <div class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"> <div class="grid size-[128px] place-items-center rounded-full bg-white text-primary shadow-[0_22px_54px_-14px_rgba(69,112,234,0.45)] ring-1 ring-primary/25"> <svg viewBox="0 0 504 334" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="size-14" aria-hidden="true"> <path d="M0 166.951C0 188.875 4.34544 210.585 12.7882 230.84C21.231 251.095 33.6058 269.5 49.206 285.002C64.8062 300.505 83.3264 312.803 103.709 321.193C124.092 329.583 145.938 333.901 168 333.901L168 242.079C158.072 242.079 148.241 240.135 139.069 236.36C129.897 232.584 121.563 227.05 114.543 220.074C107.522 213.098 101.954 204.816 98.1546 195.701C94.3553 186.586 92.3999 176.817 92.3999 166.951H0Z"></path> <path d="M504 166.951C504 188.875 499.655 210.585 491.212 230.84C482.769 251.095 470.395 269.5 454.794 285.002C439.194 300.505 420.674 312.8
41103 400.291 321.193C379.909 329.583 358.063 333.901 336.001 333.901V242.079C345.929 242.079 355.759 240.135 364.931 236.36C374.104 232.584 382.438 227.05 389.458 220.074C396.478 213.098 402.047 204.816 405.846 195.701C409.645 186.586 411.601 176.817 411.601 166.951H504Z"></path> <path d="M504 166.951C504 145.027 499.655 123.316 491.212 103.061C482.769 82.8056 470.395 64.4012 454.794 48.8985C439.194 33.3957 420.674 21.0983 400.291 12.7083C379.909 4.31828 358.063 -9.58336e-07 336.001 0V91.8224C345.929 91.8224 355.759 93.7656 364.931 97.5411C374.104 101.317 382.438 106.85 389.458 113.827C396.478 120.803 402.047 129.085 405.846 138.2C409.645 147.315 411.601 157.085 411.601 166.951H504Z"></path> <path d="M168 166.95C168 145.026 172.346 123.316 180.789 103.061C189.231 82.8056 201.606 64.4012 217.206 48.8985C232.807 33.3957 251.327 21.0983 271.709 12.7083C292.092 4.31828 313.939 -9.58336e-07 336.001 0V91.8224C326.073 91.8224 316.242 93.7656 307.069 97.5411C297.897 101.317 289.563 106.85 282.543 113.827C275.523 120.803 269.954 129.085 266.155 138.2C262.356 147.315 260.4 157.084 260.4 166.95H168Z"></path> <path d="M336 242.081H168V333.903H336V242.081Z"></path> <path d="M92.4034 0.00133011H0.00352479V166.951H92.4034V0.00133011Z"></path> </svg> </div> <span class="absolute left-1/2 top-full mt-3 -translate-x-1/2 whitespace-nowrap text-sm font-semibold text-primary">One inbox</span> </div> </div> </div> <div class="reveal-group mx-auto mt-6 flex max-w-2xl flex-wrap items-center justify-center gap-2.5"> <span class="text-[13.5px] font-medium text-muted-foreground">Plus integrations:</span> <span class="inline-flex items-center gap-2 rounded-full border border-border bg-card px-3 py-1.5 text-[13.5px] font-medium text-foreground shadow-soft"> <span class="grid size-5 place-items-center rounded-md bg-emerald-500/12 text-emerald-600"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M16 10a4 4 0 0 1-8 0" /> <path d="M3.103 6.034h17.794" /> <path d="M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z" /></svg></span> Shopify </span><span class="inline-flex items-center gap-2 rounded-full border border-border bg-card px-3 py-1.5 text-[13.5px] font-medium text-foreground shadow-soft"> <span class="grid size-5 place-items-center rounded-md bg-violet-500/12 text-violet-600"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /></svg></span> Klaviyo </span><span class="inline-flex items-center gap-2 rounded-full border border-border bg-card px-3 py-1.5 text-[13.5px] font-medium text-foreground shadow-soft"> <span class="grid size-5 place-items-center rounded-md bg-blue-500/12 text-blue-600"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M12 22v-5" /> <path d="M15 8V2" /> <path d="M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z" /> <path d="M9 8V2" /></svg></span> Developer API </span> </div> </div> </section> <!-- how it works — getting started in three steps (saasai / Myniq) --> <section class="bg-surface py-20 sm:py-28"> <div class="wrap"> <div class="reveal mx-auto max-w-2xl text-center"> <p class="eyebrow justify-center">How it works</p> <h2 class="mt-4 text-[2rem] font-bold leading-[1.08] tracking-tight text-foreground sm:text-[2.7rem]">Live in an afternoon</h2> <p class="mt-4 text-lg text-muted-foreground">Connect a channel, invite your team, and start handling requests — the same day.</p> </div> <div class="mt-12 rounded-3xl border border-border bg-card p-6 shadow-soft sm:p-10"> <div class="grid gap-8 sm:grid-cols-3" data-gs> <!-- 1 · connect channels --> <div class="gs-reveal flex flex-col"> <div class="flex min-h-[9.5rem] flex-col rounded-xl border border-border bg-card p-3 text-left shadow-soft"> <div class="mb-2 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground">Channels</div> <ul class="space-y-1.5"> <li class="flex items-center gap-2"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-5"><img src="/channels/telegram.svg" alt="" class="size-full object-cover" loading="lazy"></span><span class="text-[12.5px] font-medium text-foreground">Telegram</span><span class="ml-auto inline-flex items-center gap-1 text-[10.5px] font-semibold text-emerald-600"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M20 6 9 17l-5-5" /></svg> Connected</span></li> <li class="flex items-center gap-2"><span class="grid size-5 place-items-center rounded-full bg-blue-500/10 text-blue-600"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" /></svg></span><span class="text-[12.5px] font-medium text-foreground">Email</span><span class="ml-auto inline-flex items-center gap-1 text-[10.5px] font-semibold text-emerald-600"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M20 6 9 17l-5-5" /></svg> Connected</span></li> <li class="flex items-center gap-2"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-5"><img src="/channels/web-widget.svg" alt="" class="size-full object-cover" loading="lazy"></span><span class="text-[12.5px] font-medium text-foreground">Website</span><span class="ml-auto inline-flex items-center gap-1 text-[10.5px] font-semibold text-emerald-600"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M20 6 9 17l-5-5" /></svg> Connected</span></li> <li class="flex items-center gap-2"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-5 bg-white"><img src="/channels/shopify.svg" alt="" class="size-[76%] object-contain" loading="lazy"></span><span class="text-[12.5px] font-medium text-foreground">Shopify</span><span class="ml-auto inline-flex items-center gap-1 rounded-md bg-primary/10 px-1.5 py-0.5 text-[10.5px] font-semibold text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M5 12h14" /> <path d="M12 5v14" /></svg> Connect</span></li> </ul> </div> <div class="mt-4"> <div class="flex items-baseline gap-2"><span class="text-[13px] font-bold text-primary">01</span><span class="text-[12px] font-bold uppercase tracking-wide text-primary">Connect</span></div> <h3 class="mt-1.5 text-[1.15rem] font-semibold tracking-tight text-foreground">Connect a channel</h3> <p class="mt-1.5 text-[13.5px] leading-relaxed text-muted-foreground">Telegram, email, your website or Shopify — linked in a couple of clicks.</p> </div> </div> <!-- 2 · invite team --> <div class="gs-reveal flex flex-col"> <div class="flex min-h-[9.5rem] flex-col rounded-xl border border-border bg-card p-3 text-left shadow-soft"> <div class="mb-2 flex items-center justify-between"> <span class="text-[11px] font-semibold uppercase tracking-wide text-muted-foreground">Team</span> <span class="inline-flex items-center gap-1 rounded-md bg-primary px-1.5 py-0.5 text-[10px] font-semibold text-white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M5 12h14" /> <path d="M12 5v14" /></svg> Invite</span> </div> <ul class="space-y-1.5"> <li class="flex items-center gap-2"><span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-6 text-[10px]" style="background-color:#2563eb">D</span><span class="text-[12.5px] font-medium text-foreground">Daniel K.</span><span class="ml-auto rounded bg-secondary px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground">Admin</span></li> <li class="flex items-center gap-2"><span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-6 text-[10px]" style="background-color:#e11d48">M</span><span class="text-[12.5px] font-medium text-foreground">Mia S.</span><span class="ml-auto rounded bg-secondary px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground">Operator</span></li> <li class="flex items-center gap-2"><span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-6 text-[10px]" style="background-color:#0d9488">L</span><span class="text-[12.5px] font-medium text-foreground">Liam N.</span><span class="ml-auto rounded bg-secondary px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground">Operator</span></li> </ul> </div> <div class="mt-4"> <div class="flex items-baseline gap-2"><span class="text-[13px] font-bold text-violet-600">02</span><span class="text-[12px] font-bold uppercase tracking-wide text-violet-600">Invite</span></div> <h3 class="mt-1.5 text-[1.15rem] font-semibold tracking-tight text-foreground">Invite your team</h3> <p class="mt-1.5 text-[13.5px] leading-relaxed text-muted-foreground">
411Bring in your operators and teammates, with roles and smart routing.</p> </div> </div> <!-- 3 · handle requests --> <div class="gs-reveal flex flex-col"> <div class="flex min-h-[9.5rem] flex-col rounded-xl border border-border bg-card p-3 text-left shadow-soft"> <div class="mb-2 flex items-center gap-2"><span class="inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-semibold uppercase text-white rounded-full size-6 text-[10px]" style="background-color:#9333ea">S</span><span class="text-[12px] font-semibold text-foreground">Sophie M.</span><span class="ml-auto inline-flex items-center gap-1 text-[10px] text-muted-foreground"><span class="inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full  size-3.5 bg-white"><img src="/channels/shopify.svg" alt="" class="size-[76%] object-contain" loading="lazy"></span> Shopify</span></div> <div class="space-y-1.5"> <div class="w-fit max-w-[90%] rounded-lg rounded-bl-sm bg-secondary px-2.5 py-1 text-[11.5px] text-foreground">Where’s my order #1042?</div> <div class="ml-auto w-fit max-w-[92%] rounded-lg rounded-br-sm bg-primary px-2.5 py-1 text-[11.5px] text-white">Shipped today — tracking’s on the way ✓</div> <div class="flex justify-end"><span class="inline-flex items-center gap-1 text-[10px] font-medium text-violet-600"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3" aria-hidden="true"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z" /> <path d="M20 2v4" /> <path d="M22 4h-4" /> <circle cx="4" cy="20" r="2" /></svg> Drafted by Teyra</span></div> </div> </div> <div class="mt-4"> <div class="flex items-baseline gap-2"><span class="text-[13px] font-bold text-emerald-600">03</span><span class="text-[12px] font-bold uppercase tracking-wide text-emerald-600">Handle</span></div> <h3 class="mt-1.5 text-[1.15rem] font-semibold tracking-tight text-foreground">Handle customer requests</h3> <p class="mt-1.5 text-[13.5px] leading-relaxed text-muted-foreground">Reply across every channel from one inbox — Teyra drafts the easy ones.</p> </div> </div> </div> <div class="mt-10 flex flex-wrap items-center justify-between gap-4 border-t border-border pt-7"> <p class="max-w-md text-[1.15rem] font-semibold tracking-tight text-foreground">
411No migration, no engineers — connect and go.</p> <a href="https://app.ticketon.io/register" class="inline-flex shrink-0 items-center gap-1.5 rounded-full bg-primary px-5 py-2.5 text-sm font-semibold text-white shadow-[0_10px_24px_-12px_rgba(93,135,255,0.9)] transition hover:brightness-105">Start for free <span aria-hidden>→</span></a> </div> </div> </div> </section> 
411<script>
412  /* Scroll-driven step reveal: each step panel rises, sharpens (blur → 0) and
413     fades in as it crosses up into the viewport, with a left→right stagger — and
414     rewinds on scroll-up. Scrubbed from each panel's own position (scrollY → rAF),
415     so it plays exactly as you reach it, in every browser. */
416  (() => {
417    const grid = document.querySelector('[data-gs]');
418    if (!grid) return;
419    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
420
421    const steps = Array.from(grid.querySelectorAll('.gs-reveal'));
422    const colOffset = [0, 0.12, 0.24]; // left → right cascade
423    const START = 0.9, SPAN = 0.34;
424    let ticking = false;
425
426    const apply = () => {
427      ticking = false;
428      const vh = window.innerHeight || 1;
429      for (let i = 0; i < steps.length; i++) {
430        const el = steps[i];
431        const top = el.getBoundingClientRect().top;
432        let p = (START - top / vh) / SPAN - (colOffset[i] || 0);
433        p = p < 0 ? 0 : p > 1 ? 1 : p;
434        const e = 1 - Math.pow(1 - p, 3); // easeOutCubic
435        el.style.opacity = e.toFixed(3);
436        el.style.transform = 'translateY(' + ((1 - e) * 26).toFixed(2) + 'px) scale(' + (0.98 + 0.02 * e).toFixed(3) + ')';
437        const blur = (1 - e) * 6;
438        el.style.filter = blur > 0.06 ? 'blur(' + blur.toFixed(2) + 'px)' : 'none';
439      }
440    };
441    const onScroll = () => { if (!ticking) { ticking = true; requestAnimationFrame(apply); } };
442
443    apply();
444    window.addEventListener('scroll', onScroll, { passive: true });
445    window.addEventListener('resize', onScroll, { passive: true });
446  })();
447</script>
447 <!-- the long tail --> <section id="highlights" class="py-20 sm:py-24" data-astro-cid-7s7xinkd> <div class="reveal wrap" data-astro-cid-7s7xinkd> <div class="relative isolate overflow-hidden rounded-[1.75rem] border border-border bg-gradient-to-b from-[#eaf2ff] via-card to-card px-2 py-14 shadow-[0_34px_80px_-46px_rgba(16,24,40,0.3)] sm:px-4 sm:py-16" data-astro-cid-7s7xinkd> <!-- structured faded grid (clean, no glow) --> <div class="pointer-events-none absolute inset-0 -z-10 [background-image:linear-gradient(rgba(93,135,255,0.055)_1px,transparent_1px),linear-gradient(90deg,rgba(93,135,255,0.055)_1px,transparent_1px)] [background-size:40px_40px] [mask-image:radial-gradient(ellipse_76%_66%_at_50%_2%,#000,transparent_78%)]" data-astro-cid-7s7xinkd></div> <div class="relative mx-auto mb-10 max-w-2xl px-4 text-center" data-astro-cid-7s7xinkd> <span class="inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1 text-[13px] font-medium text-foreground shadow-soft" data-astro-cid-7s7xinkd> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5 text-primary" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z" /> <path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12" /> <path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17" /></svg> Also included </span> <h2 class="mt-5 text-[2.15rem] font-semibold tracking-tight text-foreground sm:text-[3.25rem] sm:leading-[1.07]" data-astro-cid-7s7xinkd>Everything else you’d expect</h2> </div> <div class="relative space-y-3.5" data-astro-cid-7s7xinkd> <div class="marquee [mask-image:linear-gradient(to_right,transparent,#000_8%,#000_92%,transparent)]" data-astro-cid-7s7xinkd> <div class="marquee-track flex w-max" style="--dur:72s; animation-direction:normal" data-astro-cid-7s7xinkd>  <span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Quick replies</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z" /> <path d="M15 3v5a1 1 0 0 0 1 1h5" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Internal notes</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true">
447<path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z" /> <circle cx="7.5" cy="7.5" r=".5" fill="currentColor" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Tags</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Topics</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>CSAT ratings</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="12" cy="12" r="10" /> <path d="M8 14s1.5 2 4 2 4-2 4-2" /> <line x1="9" x2="9.01" y1="9" y2="9" /> <line x1="15" x2="15.01" y1="9" y2="9" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Reactions</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0" /> <path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Reminders</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Files &amp; attachments</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="12" cy="8" r="5" /> <path d="M20 21a8 8 0 0 0-16 0" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Contacts</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Blacklist</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Quick replies</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z" /> <path d="M15 3v5a1 1 0 0 0 1 1h5" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Internal notes</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true">
447<path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z" /> <circle cx="7.5" cy="7.5" r=".5" fill="currentColor" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Tags</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Topics</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>CSAT ratings</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="12" cy="12" r="10" /> <path d="M8 14s1.5 2 4 2 4-2 4-2" /> <line x1="9" x2="9.01" y1="9" y2="9" /> <line x1="15" x2="15.01" y1="9" y2="9" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Reactions</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0" /> <path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Reminders</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Files &amp; attachments</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="12" cy="8" r="5" /> <path d="M20 21a8 8 0 0 0-16 0" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Contacts</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Blacklist</span> </span> </div> </div><div class="marquee [mask-image:linear-gradient(to_right,transparent,#000_8%,#000_92%,transparent)]" data-astro-cid-7s7xinkd> <div class="marquee-track flex w-max" style="--dur:83s; animation-direction:reverse" data-astro-cid-7s7xinkd>  <span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M12 8V4H8" /> <rect width="16" height="12" x="4" y="8" rx="2" /> <path d="M2 14h2" /> <path d="M20 14h2" /> <path d="M15 13v2" /> <path d="M9 13v2" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>AI agent</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2" /> <path d="M7 11v4a2 2 0 0 0 2 2h4" /> <rect width="8" height="8" x="13" y="13" rx="2" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Triggers</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="m21 21-4.34-4.34" /> <circle cx="11" cy="11" r="8" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>AI knowledge gaps</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M12 7v14" /> <path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Knowledge base</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><line x1="12" x2="12" y1="2" y2="22" /> <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Sales analytics</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" /> <path d="m9 12 2 2 4-4" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Quality analytics</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M3 3v16a2 2 0 0 0 2 2h16" /> <rect x="15" y="5" width="4" height="12" rx="1" /> <rect x="7" y="8" width="4" height="9" rx="1" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Team analytics</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="m12 14 4-4" /> <path d="M3.34 19a10 10 0 1 1 17.32 0" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Operator stats</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" /> <path d="M16 3.128a4 4 0 0 1 0 7.744" /> <path d="M22 21v-2a4 4 0 0 0-3-3.87" /> <circle cx="9" cy="7" r="4" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Managers</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" /> <path d="m9 12 2 2 4-4" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Roles &amp; permissions</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M12 8V4H8" /> <rect width="16" height="12" x="4" y="8" rx="2" /> <path d="M2 14h2" /> <path d="M20 14h2" /> <path d="M15 13v2" /> <path d="M9 13v2" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>AI agent</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2" /> <path d="M7 11v4a2 2 0 0 0 2 2h4" /> <rect width="8" height="8" x="13" y="13" rx="2" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Triggers</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="m21 21-4.34-4.34" /> <circle cx="11" cy="11" r="8" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>AI knowledge gaps</span> </span><span class="m
447r-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M12 7v14" /> <path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Knowledge base</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><line x1="12" x2="12" y1="2" y2="22" /> <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Sales analytics</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" /> <path d="m9 12 2 2 4-4" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Quality analytics</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M3 3v16a2 2 0 0 0 2 2h16" /> <rect x="15" y="5" width="4" height="12" rx="1" /> <rect x="7" y="8" width="4" height="9" rx="1" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Team analytics</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="m12 14 4-4" /> <path d="M3.34 19a10 10 0 1 1 17.32 0" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Operator stats</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" /> <path d="M16 3.128a4 4 0 0 1 0 7.744" /> <path d="M22 21v-2a4 4 0 0 0-3-3.87" /> <circle cx="9" cy="7" r="4" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Managers</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" /> <path d="m9 12 2 2 4-4" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Roles &amp; permissions</span> </span> </div> </div><div class="marquee [mask-image:linear-gradient(to_right,transparent,#000_8%,#000_92%,transparent)]" data-astro-cid-7s7xinkd> <div class="marquee-track flex w-max" style="--dur:68s; animation-direction:normal" data-astro-cid-7s7xinkd>  <span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z" /> <path d="m21.854 2.147-10.94 10.939" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Telegram</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M16 10a4 4 0 0 1-8 0" /> <path d="M3.103 6.034h17.794" /> <path d="M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7
447a2 2 0 0 0-1.6.8z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Shopify</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Email</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2" /> <line x1="8" x2="16" y1="21" y2="21" /> <line x1="12" x2="12" y1="17" y2="21" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Web widget</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M10 5H3" /> <path d="M12 19H3" /> <path d="M14 3v4" /> <path d="M16 17v4" /> <path d="M21 12h-9" /> <path d="M21 19h-5" /> <path d="M21 5h-7" /> <path d="M8 10v4" /> <path d="M8 12H3" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Widget customization</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><line x1="19" x2="5" y1="5" y2="19" /> <circle cx="6.5" cy="6.5" r="2.5" /> <circle cx="17.5" cy="17.5" r="2.5" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Discount codes</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="8" cy="21" r="1" /> <circle cx="19" cy="21" r="1" /> <path d="M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Product cards</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" /> <path d="M12 22V12" /> <polyline points="3.29 7 12 12 20.71 7" /> <path d="m7.5 4.27 9 5.15" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Order lookup</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2" /> <path d="M7 11V7a5 5 0 0 1 10 0v4" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Audit log</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z" /> <path d="m21.854 2.147-10.94 10.939" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Telegram</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M16 10a4 4 0 0 1-8 0" /> <path d="M3.103 6.034h17.794" /> <path d="M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7
447a2 2 0 0 0-1.6.8z" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Shopify</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Email</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2" /> <line x1="8" x2="16" y1="21" y2="21" /> <line x1="12" x2="12" y1="17" y2="21" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Web widget</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M10 5H3" /> <path d="M12 19H3" /> <path d="M14 3v4" /> <path d="M16 17v4" /> <path d="M21 12h-9" /> <path d="M21 19h-5" /> <path d="M21 5h-7" /> <path d="M8 10v4" /> <path d="M8 12H3" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Widget customization</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><line x1="19" x2="5" y1="5" y2="19" /> <circle cx="6.5" cy="6.5" r="2.5" /> <circle cx="17.5" cy="17.5" r="2.5" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Discount codes</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="8" cy="21" r="1" /> <circle cx="19" cy="21" r="1" /> <path d="M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Product cards</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" /> <path d="M12 22V12" /> <polyline points="3.29 7 12 12 20.71 7" /> <path d="m7.5 4.27 9 5.15" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Order lookup</span> </span><span class="mr-3 inline-flex shrink-0 items-center gap-2.5 rounded-full border border-border bg-card/90 px-4 py-2.5 shadow-[0_10px_22px_-14px_rgba(16,24,40,0.3)] backdrop-blur-sm" data-astro-cid-7s7xinkd> <span class="grid size-7 place-items-center rounded-lg bg-accent text-primary" data-astro-cid-7s7xinkd><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><rect width="18" height="11" x="3" y="11" rx="2" ry="2" /> <path d="M7 11V7a5 5 0 0 1 10 0v4" /></svg></span> <span class="whitespace-nowrap text-[14.5px] font-medium text-foreground" data-astro-cid-7s7xinkd>Audit log</span> </span> </div> </div> </div> </div> </div> </section>  <section id="apps" class="scroll-mt-20 bg-surface py-20 sm:py-24"> <div class="reveal wrap grid items-center gap-12 lg:grid-cols-2 lg:gap-16"> <!-- left --> <div> <span class="inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1 text-[13px] font-medium text-foreground shadow-soft"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5 text-primary" aria-hidden="true"><path d="M12 15V3" /> <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /> <path d="m7 10 5 5 5-5" /></svg> Download app </span> <h2 class="mt-5 text-[2.15rem] font-semibold tracking-tight text-foreground sm:text-[3.25rem] sm:leading-[1.07]">Your inbox, in your pocket</h2> <p class="mt-4 max-w-md text-lg text-muted-foreground"> Native apps for iPhone and Android — reply to customers, get push notifications and never miss a conversation, wherever you are. </p> <div class="mt-7 flex flex-wrap gap-2.5"> <span class="inline-flex items-center gap-2 rounded-full border border-border bg-card px-3.5 py-2 text-[13.5px] font-medium text-foreground shadow-soft"> <span class="grid size-6 place-items-center rounded-md bg-accent text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0" /> <path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" /></svg></span>
447 Push notifications </span><span class="inline-flex items-center gap-2 rounded-full border border-border bg-card px-3.5 py-2 text-[13.5px] font-medium text-foreground shadow-soft"> <span class="grid size-6 place-items-center rounded-md bg-accent text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5" aria-hidden="true"><path d="M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z" /> <path d="M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1" /></svg></span> Full inbox on the go </span><span class="inline-flex items-center gap-2 rounded-full border border-border bg-card px-3.5 py-2 text-[13.5px] font-medium text-foreground shadow-soft"> <span class="grid size-6 place-items-center rounded-md bg-accent text-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-3.5" aria-hidden="true"><path d="M12 19v3" /> <path d="M19 10v2a7 7 0 0 1-14 0v-2" /> <rect x="9" y="2" width="6" height="13" rx="3" /></svg></span> Voice &amp; photos </span> </div> <div class="mt-8 flex flex-wrap gap-3"> <a href="https://apps.apple.com/us/app/ticketon-ai-helpdesk/id6768856151" target="_blank" rel="noreferrer" class="inline-flex h-12 items-center gap-2.5 rounded-xl bg-ink px-4 text-white transition-opacity hover:opacity-90"> <svg viewBox="0 0 24 24" fill="currentColor" class="size-6"><path d="M17.05 12.04c-.03-2.6 2.13-3.85 2.22-3.91-1.21-1.77-3.1-2.01-3.77-2.04-1.6-.16-3.13.94-3.94.94-.81 0-2.07-.92-3.4-.9-1.75.03-3.36 1.02-4.26 2.58-1.82 3.16-.47 7.84 1.31 10.41.86 1.26 1.89 2.67 3.25 2.62 1.3-.05 1.8-.84 3.37-.84 1.58 0 2.02.84 3.4.82 1.4-.03 2.29-1.28 3.15-2.55.99-1.47 1.4-2.89 1.42-2.96-.03-.01-2.72-1.05-2.75-4.14zM14.6 4.5c.72-.87 1.2-2.08 1.07-3.28-1.03.04-2.28.69-3.02 1.55-.66.77-1.24 2-1.09 3.18 1.15.09 2.33-.58 3.04-1.45z"></path></svg> <span class="text-left leading-none"><span class="block text-[10px] opacity-80">Download on the</span><span class="mt-0.5 block text-[15px] font-semibold">App Store</span></span> </a> <!-- Google Play временно скрыт (2026-07-10): приложение ещё в закрытом
448             тестировании (12 тестеров / 14 дней). Вернуть после публикации —
449             раскомментировать и подставить ссылку play.google.com.
450        <a href="#" class="inline-flex h-12 items-center gap-2.5 rounded-xl bg-ink px-4 text-white transition-opacity hover:opacity-90">
451          <svg viewBox="0 0 24 24" class="size-6"><path fill="#00C3FF" d="M3.3 2.6c-.2.2-.3.5-.3.9v17c0 .4.1.7.3.9l9.3-9.4z"/><path fill="#00F076" d="m3.3 2.6 13.2 7.6-2.7 2.7z"/><path fill="#FFCE00" d="m16.5 10.2 3.7 2.1c.6.4.6 1.2 0 1.6l-3.7 2.1-2.9-2.9z"/><path fill="#FF3A44" d="m13.6 13.1 2.9 2.9-13.2 7.6z"/></svg>
452          <span class="text-left leading-none"><span class="block text-[10px] opacity-80">{t('mobileApps.googlePlayLabel')}</span><span class="mt-0.5 block text-[15px] font-semibold">Google Play</span></span>
453        </a>
454        --> </div> </div> <!-- right · brand panel with the real app screenshots.
455         Картинки кладём в public/screens/ (см. инструкцию). Телефоны на них уже
456         с рамкой — поэтому просто позиционируем <img>, без CSS-рамки.
457         app-chat.png  — чат (прямой), спереди/главный;
458         app-home.png  — домашний экран (уже 3D-render под углом), позади. --> <div class="relative isolate overflow-hidden rounded-3xl bg-[linear-gradient(140deg,#6f93ff_0%,#5d87ff_46%,#4360df_100%)] shadow-card"> <div class="pointer-events-none absolute inset-0 opacity-[0.12] [background-image:radial-gradient(#fff_1px,transparent_1px)] [background-size:22px_22px] [mask-image:radial-gradient(ellipse_75%_75%_at_50%_35%,#000,transparent)]"></div> <div class="relative mx-auto h-[500px] w-full max-w-[500px]"> <!-- back phone · home & projects. 3D-рендер на почти КВАДРАТНОМ холсте
459             (3016×2817) с большими полями → даём ОЧЕНЬ большую ширину, иначе
460             угловой телефон выглядит мелким рядом с высоким прямым чатом. --> <img src="/screens/app-home.png" alt="Ticketon mobile app — home &#38; projects" loading="lazy" class="absolute left-[-9%] top-1/2 z-0 w-[490px] -translate-y-1/2 drop-shadow-[0_25px_50px_rgba(16,24,40,0.35)]"> <!-- front phone · live conversation (прямой скриншот 1047×2134) — герой --> <img src="/screens/app-chat.png" alt="Ticketon mobile app — live chat with AI" loading="lazy" class="absolute right-[1%] top-1/2 z-10 w-[230px] -translate-y-1/2 drop-shadow-[0_40px_72px_rgba(16,24,40,0.5)]"> </div> </div> </div> </section> <section class="py-20 sm:py-24"> <div class="reveal wrap"> <div class="relative isolate overflow-hidden rounded-3xl bg-[linear-gradient(135deg,#6b91ff_0%,#5d87ff_46%,#4564e2_100%)] px-6 py-20 text-center sm:px-12 sm:py-24"> <!-- dot texture, fading at the edges (flat, no glow) --> <div class="pointer-events-none absolute inset-0 -z-10 opacity-[0.12] [background-image:radial-gradient(#fff_1.1px,transparent_1.1px)] [background-size:22px_22px] [mask-image:radial-gradient(ellipse_72%_78%_at_50%_50%,#000,transparent)]"></div> <!-- oversized brand motif, very faint --> <svg viewBox="0 0 504 334" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="pointer-events-none absolute -right-12 -top-14 -z-10 size-64 rotate-12 text-white/[0.07]" aria-hidden="true"> <path d="M0 166.951C0 188.875 4.34544 210.585 12.7882 230.84C21.231 251.095 33.6058 269.5 49.206 285.002C64.8062 300.505 83.3264 312.8
46003 103.709 321.193C124.092 329.583 145.938 333.901 168 333.901L168 242.079C158.072 242.079 148.241 240.135 139.069 236.36C129.897 232.584 121.563 227.05 114.543 220.074C107.522 213.098 101.954 204.816 98.1546 195.701C94.3553 186.586 92.3999 176.817 92.3999 166.951H0Z"></path> <path d="M504 166.951C504 188.875 499.655 210.585 491.212 230.84C482.769 251.095 470.395 269.5 454.794 285.002C439.194 300.505 420.674 312.803 400.291 321.193C379.909 329.583 358.063 333.901 336.001 333.901V242.079C345.929 242.079 355.759 240.135 364.931 236.36C374.104 232.584 382.438 227.05 389.458 220.074C396.478 213.098 402.047 204.816 405.846 195.701C409.645 186.586 411.601 176.817 411.601 166.951H504Z"></path> <path d="M504 166.951C504 145.027 499.655 123.316 491.212 103.061C482.769 82.8056 470.395 64.4012 454.794 48.8985C439.194 33.3957 420.674 21.0983 400.291 12.7083C379.909 4.31828 358.063 -9.58336e-07 336.001 0V91.8224C345.929 91.8224 355.759 93.7656 364.931 97.5411C374.104 101.317 382.438 106.85 389.458 113.827C396.478 120.803 402.047 129.085 405.846 138.2C409.645 147.315 411.601 157.085 411.601 166.951H504Z"></path> <path d="M168 166.95C168 145.026 172.346 123.316 180.789 103.061C189.231 82.8056 201.606 64.4012 217.206 48.8985C232.807 33.3957 251.327 21.0983 271.709 12.7083C292.092 4.31828 313.939 -9.58336e-07 336.001 0V91.8224C326.073 91.8224 316.242 93.7656 307.069 97.5411C297.897 101.317 289.563 106.85 282.543 113.827C275.523 120.803 269.954 129.085 266.155 138.2C262.356 147.315 260.4 157.084 260.4 166.95H168Z"></path> <path d="M336 242.081H168V333.903H336V242.081Z"></path> <path d="M92.4034 0.00133011H0.00352479V166.951H92.4034V0.00133011Z"></path> </svg> <svg viewBox="0 0 504 334" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="pointer-events-none absolute -bottom-16 -left-12 -z-10 size-52 -rotate-12 text-white/[0.06]" aria-hidden="true"> <path d="M0 166.951C0 188.875 4.34544 210.585 12.7882 230.84C21.231 251.095 33.6058 269.5 49.206 285.002C64.8062 300.505 83.3264 312.803 103.709 321.193C124.092 329.583 145.938 333.901 168 333.901L168 242.079C158.072 242.079 148.241 240.135 139.069 236.36C129.897 232.584 121.563 227.05 114.543 220.074C107.522 213.098 101.954 204.816 98.1546 195.701C94.3553 186.586 92.3999 176.817 92.3999 166.951H0Z"></path> <path d="M504 166.951C504 188.875 499.655 210.585 491.212 230.84C482.769 251.095 470.395 269.5 454.794 285.002C439.194 300.505 420.674 312.803 400.291 321.193C379.909 329.583 358.063 333.901 336.001 333.901V242.079C345.929 242.079 355.759 240.135 364.931 236.36C374.104 232.584 382.438 227.05 389.458 220.074C396.478 213.098 402.047 204.816 405.846 195.701C409.645 186.586 411.601 176.817 411.601 166.951H504Z"></path> <path d="M504 166.951C504 145.027 499.655 123.316 491.212 103.061C482.769 82.8056 470.395 64.4012 454.794 48.8985C439.194 33.3957 420.674 21.0983 400.291 12.7083C379.909 4.31828 358.063 -9.58336e-07 336.001 0V91.8224C345.929 91.8224 355.759 93.7656 364.931 97.5411C374.104 101.317 382.438 106.85 389.458 113.827C396.478 120.803 402.047 129.085 405.846 138.2C409.645 147.315 411.601 157.085 411.601 166.951H504Z"></path> <path d="M168 166.95C168 145.026 172.346 123.316 180.789 103.061C189.231 82.8056 201.606 64.4012 217.206 48.8985C232.807 33.3957 251.327 21.0983 271.709 12.7083C292.092 4.31828 313.939 -9.58336e-07 336.001 0V91.8224C326.073 91.8224 316.242 93.7656 307.069 97.5411C297.897 101.317 289.563 106.85 282.543 113.827C275.523 120.803 269.954 129.085 266.155 138.2C262.356 147.315 260.4 157.084 260.4 166.95H168Z"></path> <path d="M336 242.081H168V333.903H336V242.081Z"></path> <path d="M92.4034 0.00133011H0.00352479V166.951H92.4034V0.00133011Z"></path> </svg> <h2 class="mx-auto max-w-2xl text-balance text-[2.15rem] font-semibold tracking-tight text-white sm:text-[3.3rem] sm:leading-[1.07]"> Ready to bring every conversation into one workspace? </h2> <p class="mx-auto mt-5 max-w-xl text-pretty text-lg text-white/85"> Connect Telegram, Email, Shopify and your website in minutes. Free to start — no credit card required. </p> <div class="mt-9 flex flex-col items-center justify-center gap-3 sm:flex-row"> <a href="https://app.ticketon.io/register" class="inline-flex h-11 items-center justify-center rounded-md bg-white px-6 text-[0.95rem] font-semibold text-primary transition-colors hover:bg-white/90"> Start for free </a> <a href="https://app.ticketon.io/register" class="inline-flex h-11 items-center justify-center rounded-md border border-white/40 px-6 text-[0.95rem] font-semibold text-white transition-colors hover:bg-white/10"> Book a demo </a> </div> <p class="mt-6 text-sm text-white/70">Free plan · No credit card · Live in minutes</p> </div> </div> </section> </main> <footer class="border-t border-border bg-surface"> <div class="wrap grid grid-cols-2 gap-10 py-14 md:grid-cols-5"> <div class="col-span-2"> <a href="/" class="flex items-center gap-2" aria-label="TicketON"> <svg viewBox="0 0 504 334" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="size-6 text-primary" aria-hidden="true"> <path d="M0 166.951C0 188.875 4.34544 210.585 12.7882 230.84C21.231 251.095 33.6058 269.5 49.206 285.002C64.8062 300.505 83.3264 312.8
46003 103.709 321.193C124.092 329.583 145.938 333.901 168 333.901L168 242.079C158.072 242.079 148.241 240.135 139.069 236.36C129.897 232.584 121.563 227.05 114.543 220.074C107.522 213.098 101.954 204.816 98.1546 195.701C94.3553 186.586 92.3999 176.817 92.3999 166.951H0Z"></path> <path d="M504 166.951C504 188.875 499.655 210.585 491.212 230.84C482.769 251.095 470.395 269.5 454.794 285.002C439.194 300.505 420.674 312.803 400.291 321.193C379.909 329.583 358.063 333.901 336.001 333.901V242.079C345.929 242.079 355.759 240.135 364.931 236.36C374.104 232.584 382.438 227.05 389.458 220.074C396.478 213.098 402.047 204.816 405.846 195.701C409.645 186.586 411.601 176.817 411.601 166.951H504Z"></path> <path d="M504 166.951C504 145.027 499.655 123.316 491.212 103.061C482.769 82.8056 470.395 64.4012 454.794 48.8985C439.194 33.3957 420.674 21.0983 400.291 12.7083C379.909 4.31828 358.063 -9.58336e-07 336.001 0V91.8224C345.929 91.8224 355.759 93.7656 364.931 97.5411C374.104 101.317 382.438 106.85 389.458 113.827C396.478 120.803 402.047 129.085 405.846 138.2C409.645 147.315 411.601 157.085 411.601 166.951H504Z"></path> <path d="M168 166.95C168 145.026 172.346 123.316 180.789 103.061C189.231 82.8056 201.606 64.4012 217.206 48.8985C232.807 33.3957 251.327 21.0983 271.709 12.7083C292.092 4.31828 313.939 -9.58336e-07 336.001 0V91.8224C326.073 91.8224 316.242 93.7656 307.069 97.5411C297.897 101.317 289.563 106.85 282.543 113.827C275.523 120.803 269.954 129.085 266.155 138.2C262.356 147.315 260.4 157.084 260.4 166.95H168Z"></path> <path d="M336 242.081H168V333.903H336V242.081Z"></path> <path d="M92.4034 0.00133011H0.00352479V166.951H92.4034V0.00133011Z"></path> </svg> <span class="text-[17px] font-bold tracking-tight text-foreground">TicketON</span> </a> <p class="mt-4 max-w-xs text-sm text-muted-foreground"> The omnichannel support platform for modern e-commerce and product teams. </p> <div class="mt-5"> <details class="lang-switcher relative inline-block" data-astro-cid-a2mxz4y6> <summary class="inline-flex cursor-pointer list-none items-center gap-2 rounded-lg border border-border bg-card px-3 py-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground" aria-label="Language" data-astro-cid-a2mxz4y6> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true"><circle cx="12" cy="12" r="10" /> <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" /> <path d="M2 12h20" /></svg> <span data-astro-cid-a2mxz4y6>English</span> <svg class="lang-chevron size-3.5 transition-transform" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-astro-cid-a2mxz4y6> <path d="m6 9 6 6 6-6" data-astro-cid-a2mxz4y6></path> </svg> </summary> <!-- Открывается ВВЕРХ (футер у нижнего края страницы) --> <ul class="absolute bottom-full left-0 z-50 mb-2 min-w-[11rem] overflow-hidden rounded-xl border border-border bg-white p-1.5 shadow-[0_18px_40px_-18px_rgba(16,24,40,0.35)]" data-astro-cid-a2mxz4y6> <li data-astro-cid-a2mxz4y6> <a href="/" hreflang="en" data-lang="en" class="flex items-center justify-between rounded-lg px-2.5 py-2 text-sm font-medium transition-colors hover:bg-secondary text-foreground" data-astro-cid-a2mxz4y6> <span data-astro-cid-a2mxz4y6>English</span> <svg class="size-4 text-primary" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-astro-cid-a2mxz4y6> <path d="M20 6 9 17l-5-5" data-astro-cid-a2mxz4y6></path> </svg> </a> </li><li data-astro-cid-a2mxz4y6> <a href="/ru" hreflang="ru" data-lang="ru" class="flex items-center justify-between rounded-lg px-2.5 py-2 text-sm font-medium transition-colors hover:bg-secondary text-muted-foreground" data-astro-cid-a2mxz4y6> <span data-astro-cid-a2mxz4y6>Русский</span>  </a> </li><li data-astro-cid-a2mxz4y6> <a href="/uk" hreflang="uk" data-lang="uk" class="flex items-center justify-between rounded-lg px-2.5 py-2 text-sm font-medium transition-colors hover:bg-secondary text-muted-foreground" data-astro-cid-a2mxz4y6> <span data-astro-cid-a2mxz4y6>Українська</span>  </a> </li><li data-astro-cid-a2mxz4y6> <a href="/es" hreflang="es" data-lang="es" class="flex items-center justify-between rounded-lg px-2.5 py-2 text-sm font-medium transition-colors hover:bg-secondary text-muted-foreground" data-astro-cid-a2mxz4y6> <span data-astro-cid-a2mxz4y6>Español</span>  </a> </li><li data-astro-cid-a2mxz4y6> <a href="/de" hreflang="de" data-lang="de" class="flex items-center justify-between rounded-lg px-2.5 py-2 text-sm font-medium transition-colors hover:bg-secondary text-muted-foreground" data-astro-cid-a2mxz4y6> <span data-astro-cid-a2mxz4y6>Deutsch</span>  </a> </li><li data-astro-cid-a2mxz4y6> <a href="/fr" hreflang="fr" data-lang="fr" class="flex items-center justify-between rounded-lg px-2.5 py-2 text-sm font-medium transition-colors hover:bg-secondary text-muted-foreground" data-astro-cid-a2mxz4y6> <span data-astro-cid-a2mxz4y6>Français</span>  </a> </li><li data-astro-cid-a2mxz4y6> <a href="/pt" hreflang="pt" data-lang="pt" class="flex items-center justify-between rounded-lg px-2.5 py-2 text-sm font-medium transition-colors hover:bg-secondary text-muted-foreground" data-astro-cid-a2mxz4y6> <span data-astro-cid-a2mxz4y6>Português</span>  </a> </li> </ul> </details>  
460<script>
461  (function () {
462    // Закрывать дропдаун при клике вне его.
463    document.addEventListener('click', function (e) {
464      document.querySelectorAll('details.lang-switcher[open]').forEach(function (d) {
465        if (!d.contains(e.target)) d.removeAttribute('open');
466      });
467    });
468    // Явный выбор языка — запомнить в cookie, чтобы авто-детект его уважал.
469    document.querySelectorAll('details.lang-switcher a[data-lang]').forEach(function (a) {
470      a.addEventListener('click', function () {
471        document.cookie =
472          'ticketon_lang=' + a.getAttribute('data-lang') +
473          '; path=/; max-age=31536000; samesite=lax';
474      });
475    });
476  })();
477</script>
477 </div> </div> <div> <h4 class="text-sm font-semibold text-foreground">Product</h4> <ul class="mt-4 space-y-2.5"> <li> <a href="/teyra" class="text-sm text-muted-foreground transition-colors hover:text-foreground">Teyra AI</a> </li><li> <a href="/pricing" class="text-sm text-muted-foreground transition-colors hover:text-foreground">Pricing</a> </li> </ul> </div><div> <h4 class="text-sm font-semibold text-foreground">Resources</h4> <ul class="mt-4 space-y-2.5"> <li> <a href="/help" class="text-sm text-muted-foreground transition-colors hover:text-foreground">Help Center</a> </li><li> <a href="/contact" class="text-sm text-muted-foreground transition-colors hover:text-foreground">Contact</a> </li> </ul> </div><div> <h4 class="text-sm font-semibold text-foreground">Legal</h4> <ul class="mt-4 space-y-2.5"> <li> <a href="/privacy" class="text-sm text-muted-foreground transition-colors hover:text-foreground">Privacy Policy</a> </li><li> <a href="/terms" class="text-sm text-muted-foreground transition-colors hover:text-foreground">Terms of Service</a> </li><li> <a href="/dpa" class="text-sm text-muted-foreground transition-colors hover:text-foreground">DPA (GDPR)</a> </li> </ul> </div> </div> <div class="border-t border-border"> <div class="wrap flex flex-col items-center justify-between gap-3 py-6 text-sm text-muted-foreground sm:flex-row"> <span class="flex items-center gap-3">
478© 2026 TicketON. All rights reserved. <button type="button" data-cookie-settings class="underline underline-offset-2 transition-colors hover:text-foreground">Cookie settings</button> </span> <span class="flex items-center gap-1.5"> <span class="size-2 rounded-full bg-success"></span> All systems operational </span> </div> </div> <!-- oversized wordmark closer, grounded at the very bottom (SaaS AI / Myniq) --> <div aria-hidden="true" class="overflow-hidden pt-4"> <div class="wrap"> <div class="-mb-[0.11em] select-none bg-gradient-to-b from-foreground
478/[0.2] to-foreground/[0.02] bg-clip-text text-center font-display font-bold leading-[0.78] tracking-tighter text-transparent" style="font-size: clamp(4rem, 18.5vw, 16.5rem)">
479TicketON
480</div> </div> </div> </footer>  <div id="cookie-consent" hidden role="dialog" aria-label="Cookie consent" class="cookie-consent" data-astro-cid-garwan2p> <p class="cc-text" data-astro-cid-garwan2p>
481We use necessary cookies to run TicketON and, with your consent, analytics
482    cookies to improve it. See our <a href="/privacy" data-astro-cid-garwan2p>Privacy Policy</a>.
483</p> <div class="cc-actions" data-astro-cid-garwan2p> <button type="button" id="cc-reject" class="cc-btn cc-btn-ghost" data-astro-cid-garwan2p>Reject</button> <button type="button" id="cc-accept" class="cc-btn cc-btn-primary" data-astro-cid-garwan2p>Accept</button> </div> </div> 
483<script>(function(){const gaId = "";
484const clarityId = "";
485
486  (function () {
487    var KEY = 'ticketon_cookie_consent';
488    var banner = document.getElementById('cookie-consent');
489    var hasAnalytics = !!(gaId || clarityId);
490
491    function loadAnalytics() {
492      if (gaId) {
493        var s = document.createElement('script');
494        s.async = true;
495        s.src = 'https://www.googletagmanager.com/gtag/js?id=' + gaId;
496        document.head.appendChild(s);
497        window.dataLayer = window.dataLayer || [];
498        window.gtag = function () { window.dataLayer.push(arguments); };
499        window.gtag('js', new Date());
500        window.gtag('config', gaId, { anonymize_ip: true });
501      }
502      if (clarityId) {
503        (function (c, l, a, r, i) {
504          c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); };
505          var t = l.createElement(r); t.async = 1; t.src = 'https://www.clarity.ms/tag/' + i;
506          var y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y);
507        })(window, document, 'clarity', 'script', clarityId);
508      }
509    }
510    function hide() { if (banner) banner.hidden = true; }
511    function show() { if (banner) banner.hidden = false; }
512    function set(v) { try { localStorage.setItem(KEY, v); } catch (e) {} hide(); if (v === 'granted') loadAnalytics(); }
513
514    // Wire buttons (always, so "Cookie settings" works even before consent).
515    var a = document.getElementById('cc-accept');
516    var r = document.getElementById('cc-reject');
517    if (a) a.addEventListener('click', function () { set('granted'); });
518    if (r) r.addEventListener('click', function () { set('denied'); });
519    document.querySelectorAll('[data-cookie-settings]').forEach(function (el) {
520      el.addEventListener('click', function (e) { e.preventDefault(); show(); });
521    });
522
523    // Auto behaviour on load.
524    if (!hasAnalytics) { hide(); return; } // nothing non-essential to consent to yet
525    var choice = null;
526    try { choice = localStorage.getItem(KEY); } catch (e) {}
527    if (choice === 'granted') { loadAnalytics(); hide(); }
528    else if (choice === 'denied') { hide(); }
529    else { show(); }
530  })();
531})();</script>
531  
531<script>
532      /* App links follow the host you're on: app.<current-domain>. The HTML
533         ships the production app URL (works without JS / correct on prod); here
534         we point it at the app subdomain of whatever domain actually served the
535         page (e.g. app.ticketon-dev-test.online on the test env). */
536      (function () {
537        var PROD = 'https://app.ticketon.io';
538        var host = location.hostname.replace(/^www\./, '');
539        if (!host || host === 'localhost' || /^\d+\./.test(host) || host === 'ticketon.io') return;
540        var appOrigin = 'https://app.' + host;
541        var links = document.querySelectorAll('a[href^="' + PROD + '"]');
542        for (var i = 0; i < links.length; i++) {
543          links[i].href = appOrigin + links[i].getAttribute('href').slice(PROD.length);
544        }
545      })();
546    </script>
546 
546<script>
547      (function () {
548        var els = document.querySelectorAll('.reveal, .reveal-group, .stagger-grid');
549        if (!('IntersectionObserver' in window)) {
550          els.forEach(function (e) { e.classList.add('in'); });
551          return;
552        }
553        var io = new IntersectionObserver(function (entries) {
554          entries.forEach(function (e) {
555            if (e.isIntersecting) { e.target.classList.add('in'); io.unobserve(e.target); }
556          });
557        }, { threshold: 0.1, rootMargin: '0px 0px -7% 0px' });
558        els.forEach(function (el) { io.observe(el); });
559      })();
560    </script>
560 <!-- Ticketon live chat widget. is:inline — отдаём тег как есть, без бандлинга
561         Astro. embed.js грузится лениво (async + on-interaction), скор не роняет. --> 
561<script src="https://app.ticketon.io/widget/embed.js" data-widget-key="wk_ac73323ac4bd42b0a0e3f43016d9080a" async></script>
561 
561<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"421b8cc030694278a0c4e790204a9ede","r":1,"spa":2}' crossorigin="anonymous"></script>
561
562</body> </html>

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.