body { margin: 0; background: #04060C; }
/* one animated backdrop shared by Testimonials, Book a demo and Contact.
   Change the palette here (or in the Tweaks panel) and all three pages follow. */
.sb { --base: #04060C; --a: rgba(30,91,255,0.62); --b: rgba(53,215,255,0.30); --c: rgba(12,44,128,0.62); --d: #1BB5E8; --dot: rgba(190,225,255,0.16); --glyph: rgba(155,233,255,0.07); --spark: rgba(53,215,255,0.8); }
.sb.aurora { --base: #050506; --a: rgba(30,91,255,0.55); --b: rgba(24,202,243,0.25); --c: rgba(204,71,162,0.45); --d: #CC47A2; --dot: rgba(255,255,255,0.16); --glyph: rgba(255,255,255,0.05); --spark: rgba(53,215,255,0.7); }
.sb.violet { --base: #07051A; --a: rgba(109,91,255,0.58); --b: rgba(177,140,255,0.30); --c: rgba(42,27,107,0.65); --d: #7B5CFF; --dot: rgba(210,200,255,0.15); --glyph: rgba(200,185,255,0.07); --spark: rgba(177,140,255,0.85); }
.sb.emerald { --base: #030A0A; --a: rgba(16,185,129,0.45); --b: rgba(53,215,201,0.28); --c: rgba(8,70,66,0.65); --d: #14B8A6; --dot: rgba(190,255,236,0.14); --glyph: rgba(160,255,225,0.06); --spark: rgba(53,215,201,0.8); }
.sb.mono { --base: #07080A; --a: rgba(170,180,200,0.26); --b: rgba(255,255,255,0.10); --c: rgba(58,66,84,0.50); --d: #8A94A8; --dot: rgba(255,255,255,0.12); --glyph: rgba(255,255,255,0.05); --spark: rgba(255,255,255,0.7); }

.sb { position: absolute; inset: 0; overflow: hidden; pointer-events: none; background: var(--base); }
.sb-aur { position: absolute; left: 50%; top: -34%; width: 1400px; height: 1400px; margin-left: -700px; border-radius: 50%; opacity: 0.55; filter: blur(80px); background: conic-gradient(from 0deg, var(--a), var(--b), var(--c), var(--b), var(--a)); animation: sbSpin 44s linear infinite; will-change: transform; }
.sb-aur2 { position: absolute; left: -18%; top: 52%; width: 900px; height: 900px; border-radius: 50%; opacity: 0.28; filter: blur(90px); background: radial-gradient(circle, var(--d), transparent 70%); animation: sbDrift 30s ease-in-out infinite alternate; will-change: transform; }
.sb-aur3 { position: absolute; right: -16%; top: 26%; width: 700px; height: 700px; border-radius: 50%; opacity: 0.22; filter: blur(90px); background: radial-gradient(circle, var(--a), transparent 70%); animation: sbDrift2 36s ease-in-out infinite alternate; will-change: transform; }
.sb-dots { position: absolute; inset: 0; background-image: radial-gradient(var(--dot) 1px, transparent 1.2px); background-size: 28px 28px; -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 62%); mask-image: linear-gradient(180deg, #000 0%, transparent 62%); animation: sbPan 30s linear infinite; }
.sb-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 420px; background: linear-gradient(180deg, transparent, #050506); }
.sb-q { position: absolute; font-family: Georgia, 'Times New Roman', serif; font-size: 220px; line-height: 1; color: var(--glyph); animation: sbFloat 14s ease-in-out infinite alternate; }
.sb-spark { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: #FFFFFF; box-shadow: 0 0 10px 2px var(--spark); opacity: 0; animation: sbTwinkle 5s ease-in-out infinite; }
@keyframes sbSpin { to { transform: rotate(360deg); } }
@keyframes sbDrift { to { transform: translate3d(260px, -160px, 0) scale(1.2); } }
@keyframes sbDrift2 { to { transform: translate3d(-200px, 140px, 0) scale(0.9); } }
@keyframes sbPan { to { background-position: 28px 28px; } }
@keyframes sbFloat { to { transform: translate3d(0, -40px, 0) rotate(-6deg); } }
@keyframes sbTwinkle { 0%, 100% { opacity: 0; transform: scale(0.4); } 45% { opacity: 1; transform: scale(1); } 60% { opacity: 0.6; } }
@media (max-width: 760px) {
  .sb-aur { width: 900px; height: 900px; margin-left: -450px; top: -20%; filter: blur(60px); }
  .sb-aur2, .sb-aur3 { filter: blur(60px); }
  .sb-q { font-size: 140px; }
}
@media (prefers-reduced-motion: reduce) {
  .sb *, .sb *::before, .sb *::after { animation: none !important; }
  .sb-spark { opacity: 0.6; }
}
/* ---------- shared motion kit for the inner pages (fx-*) ---------- */
@property --fx-a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.fx-w { display: inline-block; opacity: 0; translate: 0 0.55em; filter: blur(10px); animation: fxW 0.95s cubic-bezier(0.2, 0.8, 0.2, 1) both; animation-delay: calc(var(--i, 0) * 75ms + 120ms); }
.fx-w.g { background: linear-gradient(100deg, #FFFFFF 0%, #9BE9FF 40%, #6FA8FF 75%, #FFFFFF 100%); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: fxW 0.95s cubic-bezier(0.2, 0.8, 0.2, 1) both, fxSheen 7s ease-in-out 1.2s infinite; animation-delay: calc(var(--i, 0) * 75ms + 120ms), 1.4s; }
@keyframes fxW { to { opacity: 1; translate: 0 0; filter: blur(0); } }
@keyframes fxSheen { 0%, 100% { background-position: 100% 0; } 50% { background-position: 0% 0; } }
.fx-up { opacity: 0; translate: 0 18px; animation: fxUp 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both; animation-delay: var(--d, 0s); }
@keyframes fxUp { to { opacity: 1; translate: 0 0; } }
@supports (animation-timeline: view()) {
  .fx-rv { animation: fxRv linear both; animation-timeline: view(); animation-range: entry 0% cover 26%; }
  @keyframes fxRv { from { opacity: 0; translate: 0 44px; scale: 0.97; } to { opacity: 1; translate: 0 0; scale: 1; } }
}
.fx-spot { isolation: isolate; }
.fx-spot::before { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: -1; opacity: var(--fx-o, 0); transition: opacity 0.35s ease; background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), rgba(53,215,255,0.16), rgba(30,91,255,0.06) 40%, transparent 65%); }
.fx-tilt { transform: perspective(1000px) rotateX(var(--ry, 0deg)) rotateY(var(--rx, 0deg)); transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1); }
.fx-ring::after { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 4; background: conic-gradient(from var(--fx-a), transparent 0deg, transparent 200deg, rgba(53,215,255,0.95) 270deg, rgba(30,91,255,0.9) 320deg, transparent 360deg); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: fxSpin 7s linear infinite; }
@keyframes fxSpin { to { --fx-a: 360deg; } }
@media (prefers-reduced-motion: reduce) {
  .fx-w, .fx-up, .fx-rv { animation: none !important; opacity: 1 !important; translate: none !important; filter: none !important; scale: none !important; }
  .fx-ring::after { animation: none; }
  .fx-tilt { transform: none !important; }
}
/* ---------- light theme (html[data-theme="light"], set by the header switch) ---------- */
html[data-theme="light"], html[data-theme="light"] body { background: #EEF1F8 !important; }
html[data-theme="light"] .sb { --base: #EEF1F8; --a: rgba(30,91,255,0.22); --b: rgba(53,215,255,0.18); --c: rgba(140,170,255,0.22); --d: #8FC4FF; --dot: rgba(20,40,90,0.10); --glyph: rgba(23,70,217,0.07); --spark: rgba(30,91,255,0.45); }
html[data-theme="light"] .sb-fade { background: linear-gradient(180deg, transparent, #EEF1F8); }
html[data-theme="light"] .sb-spark { background: #1746D9; }
html[data-theme="light"] .fx-w.g { background-image: linear-gradient(100deg, #14161D 0%, #1746D9 40%, #2E9BD6 75%, #14161D 100%); }
html[data-theme="light"] .fx-spot::before { background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), rgba(30,91,255,0.10), rgba(53,215,255,0.05) 40%, transparent 65%); }
body { margin: 0; background: #050506; font-family: Poppins, sans-serif; -webkit-font-smoothing: antialiased; }
.sh-link { transition: color 0.2s ease, background 0.2s ease; }
.sh-link:hover { color: #FFFFFF !important; background: rgba(255,255,255,0.08); }
.sh-burger { display: none !important; }
.sh-prod { position: relative; }
.sh-drop { position: absolute; left: 50%; top: calc(100% + 12px); width: 960px; padding: 14px 14px 10px; border-radius: 22px; background: rgba(14,15,19,0.985); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); border: 1px solid rgba(255,255,255,0.12); box-shadow: 0 30px 80px rgba(0,0,0,0.6); display: grid; grid-template-columns: 0.9fr 0.95fr 1.35fr; gap: 10px 16px; opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity 0.2s ease 0.3s, transform 0.25s ease 0.3s, visibility 0s linear 0.55s; white-space: normal; }
.sh-prod::after { content: ''; position: absolute; left: -40px; right: -40px; top: 100%; height: 16px; }
.sh-drop::before { content: ''; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }
.sh-prod:hover .sh-drop, .sh-prod:focus-within .sh-drop { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity 0.2s ease, transform 0.25s ease, visibility 0s; }
.sh-prod:hover .sh-drop > div, .sh-prod:focus-within .sh-drop > div { animation: shIn 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.sh-prod:hover .sh-drop > div:nth-child(2) { animation-delay: 0.05s; } .sh-prod:hover .sh-drop > div:nth-child(3) { animation-delay: 0.1s; } .sh-prod:hover .sh-drop > div:nth-child(4) { animation-delay: 0.16s; }
@keyframes shIn { from { opacity: 0; translate: 0 10px; } to { opacity: 1; translate: 0 0; } }
.sh-links .sh-link { border: 1px solid transparent; }
.sh-links .sh-link { position: relative; z-index: 1; background: transparent !important; }
.sh-links .sh-link:hover, .sh-prod:hover > .sh-link { color: #FFFFFF !important; }
.sh-hi { position: absolute; top: 5px; height: 34px; border-radius: 999px; pointer-events: none; z-index: 0; background: linear-gradient(135deg, rgba(30,91,255,0.42), rgba(53,215,255,0.2)); box-shadow: inset 0 0 0 1px rgba(53,215,255,0.35), 0 0 22px rgba(53,215,255,0.28); transition: left 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), width 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.25s; }
html[data-theme="light"] .sh-hi { background: linear-gradient(135deg, rgba(30,91,255,0.14), rgba(53,215,255,0.12)); box-shadow: inset 0 0 0 1px rgba(23,70,217,0.22); }
/* language picker, as on the home page */
.sh-lang { position: relative; }
.sh-lang > button { height: 40px; display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.16); background: rgba(255,255,255,0.06); color: #FFFFFF; font-family: inherit; font-size: 13px; font-weight: 500; cursor: pointer; transition: background 0.2s; }
.sh-lang > button:hover { background: rgba(53,215,255,0.16); }
.sh-langm { position: absolute; top: 48px; right: 0; width: 210px; padding: 6px; border-radius: 16px; display: flex; flex-direction: column; gap: 2px; z-index: 60; background: rgba(23,23,26,0.96); border: 1px solid rgba(255,255,255,0.12); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: 0 20px 50px rgba(0,0,0,0.35); opacity: 0; transform: translateY(-8px) scale(0.96); transform-origin: top right; pointer-events: none; transition: opacity 0.2s ease, transform 0.25s cubic-bezier(0.2, 0.7, 0.2, 1); }
.sh-langm.open { opacity: 1; transform: none; pointer-events: auto; }
.sh-langm button, .sh-mlang button { height: 36px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-radius: 10px; border: 0; background: transparent; color: #FFFFFF; font-family: inherit; font-size: 13px; font-weight: 500; text-align: left; cursor: pointer; }
.sh-langm button:hover, .sh-mlang button:hover { background: rgba(255,255,255,0.07); }
.sh-langm button.on, .sh-mlang button.on { background: rgba(255,255,255,0.10); font-weight: 600; }
.sh-langm button small, .sh-mlang button small { font-size: 10px; letter-spacing: 0.12em; opacity: 0.6; }
.sh-mlang { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; padding: 4px 0 6px; }
.sh-mrow { display: flex; align-items: center; gap: 10px; padding: 8px 0 2px; }
html[data-theme="light"] .sh-lang > button { color: #14161D; border-color: rgba(20,22,29,0.14); background: rgba(255,255,255,0.7); }
html[data-theme="light"] .sh-langm { background: rgba(255,255,255,0.97); border-color: rgba(20,22,29,0.1); box-shadow: 0 20px 50px rgba(20,22,29,0.15); }
html[data-theme="light"] .sh-langm button, html[data-theme="light"] .sh-mlang button { color: #14161D; }
html[data-theme="light"] .sh-langm button.on, html[data-theme="light"] .sh-mlang button.on { background: rgba(22,22,28,0.07); }
/* the glowing Book a demo button, as on the home page */
@property --sh-ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.sh-beam { position: relative; isolation: isolate; overflow: hidden; border-radius: 999px; background: transparent; color: #FFFFFF !important; box-shadow: 0 0 22px -6px rgba(53,215,255,0.45); transition: transform 0.28s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.28s ease; }
.sh-beam::before { content: ""; position: absolute; inset: 0; z-index: -2; border-radius: 999px; background: conic-gradient(from var(--sh-ang), transparent 0%, #1E5BFF 34%, #35D7FF 50%, #FF2D9C 58%, transparent 67%, transparent 100%); animation: shSpin 2.2s linear infinite; }
.sh-beam::after { content: ""; position: absolute; inset: 1.5px; z-index: -1; border-radius: 999px; background: #0B0B0E; transition: background 0.4s ease; }
.sh-beam:hover { transform: translateY(-1px) scale(1.03); box-shadow: 0 0 36px -6px rgba(53,215,255,0.75); }
.sh-beam:hover::after { background: radial-gradient(circle at 50% 0%, rgba(53,215,255,0.22) 0%, #0B0B0E 62%); }
.sh-beam .ar { display: inline-block; margin-left: 8px; transition: transform 0.28s ease; } .sh-beam:hover .ar { transform: translateX(6px); }
@keyframes shSpin { to { --sh-ang: 360deg; } }
.sh-prod > .sh-link svg { transition: transform 0.3s ease; } .sh-prod:hover > .sh-link svg { transform: rotate(180deg); }
.sh-mi:hover .sh-tile, .sh-tool:hover .sh-tile { box-shadow: 0 0 16px rgba(53,215,255,0.55); }
.sh-theme { width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,0.16); background: rgba(255,255,255,0.06); color: #FFFFFF; cursor: pointer; transition: background 0.2s, transform 0.3s; }
.sh-theme:hover { background: rgba(53,215,255,0.16); transform: rotate(-15deg); }
.sh-theme .sun { display: none; }
html[data-theme="light"] .sh-theme .sun { display: block; } html[data-theme="light"] .sh-theme .moon { display: none; }
/* light theme for the header */
html[data-theme="light"] .sh-bar { color: #14161D !important; }
html[data-theme="light"] .sh-word { filter: invert(1) brightness(0.2); }
html[data-theme="light"] .sh-links { background: rgba(255,255,255,0.7) !important; border-color: rgba(20,22,29,0.1) !important; }
html[data-theme="light"] .sh-links .sh-link { color: #4A4F5E !important; }
html[data-theme="light"] .sh-links .sh-link:hover, html[data-theme="light"] .sh-prod:hover > .sh-link { color: #14161D !important; background: linear-gradient(135deg, rgba(30,91,255,0.14), rgba(53,215,255,0.12)) !important; border-color: rgba(23,70,217,0.22); box-shadow: none; }
html[data-theme="light"] .sh-extra, html[data-theme="light"] .sh-burger { color: #14161D !important; }
html[data-theme="light"] .sh-burger { border-color: rgba(20,22,29,0.14) !important; background: rgba(255,255,255,0.7) !important; }
html[data-theme="light"] .sh-burger span { background: #14161D !important; }
html[data-theme="light"] .sh-theme { color: #14161D; border-color: rgba(20,22,29,0.14); background: rgba(255,255,255,0.7); }

html[data-theme="light"] .sh-drop { background: rgba(255,255,255,0.98); border-color: rgba(20,22,29,0.1); box-shadow: 0 30px 80px rgba(20,22,29,0.18); }
html[data-theme="light"] .sh-mi, html[data-theme="light"] .sh-tool, html[data-theme="light"] .sh-studio { color: #14161D; }
html[data-theme="light"] .sh-studio { background: linear-gradient(160deg, #EEF2FB, #FFFFFF); border-color: rgba(20,22,29,0.1); }
html[data-theme="light"] .sh-mi span span, html[data-theme="light"] .sh-studio span:not(.sh-tile), html[data-theme="light"] .sh-foot { color: #5B6070; }
html[data-theme="light"] .sh-foot { border-color: rgba(20,22,29,0.1); }
html[data-theme="light"] .sh-foot a { color: #14161D; }
html[data-theme="light"] .sh-foot a.sh-footcta { color: #FFFFFF; background: linear-gradient(180deg, #1E2230, #07070A); }
html[data-theme="light"] .sh-head, html[data-theme="light"] .sh-studio em { color: #1746D9; }
html[data-theme="light"] .sh-tile { color: #1746D9; background: rgba(23,70,217,0.08); border-color: rgba(23,70,217,0.16); }
html[data-theme="light"] .sh-tile.big { color: #FFFFFF; }
html[data-theme="light"] .sh-app { color: #14161D; background: linear-gradient(135deg, rgba(23,70,217,0.1), rgba(53,215,255,0.08)); border-color: rgba(23,70,217,0.18); }
html[data-theme="light"] .sh-app span span { color: #5B6070; }
html[data-theme="light"] .sh-mnav { background: #F6F7FB !important; border-color: rgba(20,22,29,0.1) !important; box-shadow: 0 24px 60px rgba(20,22,29,0.15) !important; }
html[data-theme="light"] .sh-mnav .sh-link { color: #14161D !important; }
.sh-col { display: flex; flex-direction: column; gap: 3px; }
.sh-head { padding: 8px 10px 4px; font-size: 10.5px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: #35D7FF; }
.sh-mi { display: flex; align-items: flex-start; gap: 11px; padding: 9px 10px; border-radius: 12px; text-decoration: none; color: #FFFFFF; transition: background 0.2s ease, transform 0.2s ease; }
.sh-mi.sh-big { padding: 12px; background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.09); margin-bottom: 4px; }
.sh-mi:hover, .sh-tool:hover { background: rgba(127,140,170,0.14); transform: translateY(-1px); }
.sh-mi strong { display: block; font-size: 13.5px; font-weight: 600; }
.sh-mi span span { display: block; margin-top: 2px; font-size: 12px; line-height: 1.4; color: #9A9AA3; }
.sh-tile { width: 30px; height: 30px; flex-shrink: 0; border-radius: 9px; display: flex; align-items: center; justify-content: center; color: #35D7FF; background: rgba(53,215,255,0.10); border: 1px solid rgba(53,215,255,0.22); }
.sh-tile.big { width: 38px; height: 38px; border-radius: 11px; color: #FFFFFF; border: 0; background: linear-gradient(135deg, #1E5BFF, #35D7FF); box-shadow: 0 6px 18px rgba(30,91,255,0.35); }
.sh-tile.sm { width: 24px; height: 24px; border-radius: 7px; border: 0; background: rgba(53,215,255,0.08); }
.sh-scol { display: grid; grid-template-rows: auto 1fr 1fr auto; gap: 8px; }
.sh-studio { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px; border-radius: 16px; text-decoration: none; color: #FFFFFF; background: linear-gradient(160deg, #141A2C, #17171A); border: 1px solid rgba(255,255,255,0.09); transition: transform 0.2s ease, border-color 0.2s ease; }
.sh-studio:hover { transform: translateY(-1px); border-color: rgba(53,215,255,0.35); }
.sh-studio strong { margin-top: 4px; font-size: 15px; font-weight: 600; }
.sh-studio span:not(.sh-tile) { font-size: 12px; line-height: 1.45; color: #9A9AA3; }
.sh-studio em { margin-top: auto; padding-top: 4px; font-style: normal; font-size: 12.5px; font-weight: 600; color: #35D7FF; }
.sh-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.sh-tool { display: flex; align-items: center; gap: 9px; white-space: nowrap; padding: 8px 10px; border-radius: 10px; font-size: 13px; font-weight: 500; text-decoration: none; color: #FFFFFF; transition: background 0.2s ease, transform 0.2s ease; }
.sh-app { display: flex; align-items: center; gap: 12px; margin-top: 8px; padding: 14px; border-radius: 14px; text-decoration: none; color: #FFFFFF; background: linear-gradient(135deg, rgba(30,91,255,0.22), rgba(53,215,255,0.10)); border: 1px solid rgba(53,215,255,0.22); transition: transform 0.2s ease; }
.sh-app:hover { transform: translateY(-1px); }
.sh-app strong { display: block; font-size: 13.5px; font-weight: 600; }
.sh-app span span { display: block; margin-top: 3px; font-size: 12px; color: #B8C2D6; }
.sh-foot { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; margin-top: 4px; padding: 10px 6px 2px; border-top: 1px solid rgba(255,255,255,0.09); font-size: 12.5px; color: #9A9AA3; }
.sh-foot a { font-size: 13px; font-weight: 500; color: #FFFFFF; text-decoration: none; }
.sh-foot a.sh-footcta { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border-radius: 999px; font-weight: 600; color: #07070A; background: linear-gradient(180deg, #FFFFFF, #D9DADF); }
.sh-mnav { display: none; }
/* the main menu stays pinned to the top; a glass bar fades in once the page scrolls */
.sh-row { position: fixed !important; top: 0; left: 0; right: 0; z-index: 70; transition: height 0.35s ease; }
.sh-glass { position: fixed; top: 0; left: 0; right: 0; height: 84px; z-index: 69; pointer-events: none; opacity: 0; background: rgba(6,8,16,0.72); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); border-bottom: 1px solid rgba(255,255,255,0.08); transition: opacity 0.35s ease, height 0.35s ease; }
.sh-glass.scrolled { opacity: 1; height: 68px; }
.sh-glass.scrolled + .sh-row { height: 68px !important; }
html[data-theme="light"] .sh-glass { background: rgba(238,241,248,0.82); border-bottom-color: rgba(20,22,29,0.08); }
/* links sit in the flow between the logo and the controls, so nothing overlaps at any width */
.sh-links { position: static !important; transform: none !important; margin: 0 auto; }
.sh-links + span { display: none; }
@media (max-width: 1360px) { .sh-login { display: none !important; } }
@media (max-width: 1180px) {
  .sh-links, .sh-extra { display: none !important; }
  .sh-burger { display: flex !important; }
  .sh-mnav.open { display: flex; }
}
.sh-signin { display: none !important; }
.sh-signin { white-space: nowrap; flex-shrink: 0; }
@media (max-width: 520px) { .sh-theme { display: none !important; } .sh-mrow .sh-theme { display: inline-flex !important; } }
@media (max-width: 440px) { .sh-signin { padding: 0 14px !important; font-size: 13.5px !important; height: 40px !important; } .sh-signin .ar { display: none; } }
.sh-mnav > a[href*="book-a-demo"] { flex: none; }
@media (max-width: 1180px) { .sh-cta { display: none !important; } .sh-signin { display: inline-flex !important; } }
body { margin: 0; background: #050506; font-family: Poppins, sans-serif; -webkit-font-smoothing: antialiased; }
.as-link { transition: color 0.2s ease; } .as-link:hover { color: #FFFFFF !important; }
.as-footer-grid { }
@media (max-width: 980px) { .as-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 36px 24px !important; } .as-footer-grid > :first-child { grid-column: 1 / -1; } }
/* phones: brand block on top, Product and Company side by side, Tools in two columns, a centred bottom row */
@media (max-width: 520px) {
  .as-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 28px 20px !important; }
  .as-footer-grid > :nth-child(1) { grid-column: 1 / -1; padding-bottom: 26px; border-bottom: 1px solid rgba(255,255,255,0.08); }
  .as-footer-grid > :nth-child(2) { grid-column: 1; grid-row: 2; }
  .as-footer-grid > :nth-child(4) { grid-column: 2; grid-row: 2; }
  .as-footer-grid > :nth-child(3) { grid-column: 1 / -1; grid-row: 3; display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px 20px !important; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.08); }
  .as-footer-grid > :nth-child(3) > span { grid-column: 1 / -1; }
  .as-footer-grid a.as-link { padding: 3px 0; font-size: 14.5px !important; }
  .as-footer-grid > :nth-child(1) > div { gap: 12px !important; }
  .as-footer-grid > :nth-child(1) > div > a { width: 42px !important; height: 42px !important; }
  .sf-bottom { justify-content: center; text-align: center; margin-top: 36px !important; }
  .sf-bottom > span:first-child { order: 2; flex-basis: 100%; }
  .sf-bottom > span:nth-child(2) { display: none; }
}
/* sub-footer banner shown above the footer on every page */
.sf-cta { position: relative; overflow: hidden; padding: clamp(80px, 14vh, 150px) clamp(20px, 5vw, 64px); text-align: center; color: #FFFFFF; font-family: Poppins, sans-serif; border-top: 1px solid rgba(255,255,255,0.1); background: #04060C; }
.sf-cta > img { position: absolute; left: -4%; top: -6%; width: 108%; height: 112%; object-fit: cover; z-index: 0; translate: calc(var(--px, 0) * -18px) calc(var(--py, 0) * -14px); transition: translate 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); animation: sfKen 22s ease-in-out infinite alternate; }
@keyframes sfKen { from { transform: scale(1.02); } to { transform: scale(1.14) translate(-2%, -1%); } }
.sf-cta::before { content: ''; position: absolute; inset: 0; z-index: 1; background: radial-gradient(46% 58% at 50% 52%, rgba(4,6,12,0.78), rgba(4,6,12,0.45) 60%, rgba(4,6,12,0.7)), linear-gradient(180deg, #04060C 0%, rgba(4,6,12,0) 18%, rgba(4,6,12,0) 82%, #050506 100%); }
.sf-cta-in { position: relative; z-index: 2; max-width: 900px; margin: 0 auto; }
@supports (animation-timeline: view()) { .sf-cta-in { animation: sfIn linear both; animation-timeline: view(); animation-range: entry 0% cover 30%; } @keyframes sfIn { from { opacity: 0; translate: 0 50px; } to { opacity: 1; translate: 0 0; } } }
.sf-eye { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 10px; border-radius: 999px; border: 1px solid rgba(53,215,255,0.35); background: rgba(53,215,255,0.08); font-size: 11.5px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: #9BE9FF; }
.sf-eye i { width: 7px; height: 7px; border-radius: 50%; background: #35D7FF; box-shadow: 0 0 12px #35D7FF; }
.sf-cta h2 { margin: 18px 0 0; font-size: clamp(36px, 5.4vw, 78px); font-weight: 600; line-height: 1.02; letter-spacing: -0.04em; text-wrap: balance; text-shadow: 0 6px 40px rgba(0,0,0,0.5); }
.sf-serif { font-family: 'Instrument Serif', Georgia, serif; font-style: italic; font-weight: 400; font-size: 1.1em; background: linear-gradient(100deg, #FFFFFF, #9BE9FF 45%, #7FA6FF 80%); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: 0.08em; }
.sf-cta p { margin: 16px auto 0; max-width: 58ch; font-size: clamp(15px, 1.15vw, 17.5px); line-height: 1.65; color: #E4E6EE; text-shadow: 0 2px 16px rgba(0,0,0,0.7); }
.sf-btns { margin-top: 32px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.sf-btn { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 8px; height: 52px; padding: 0 26px; border-radius: 999px; font-size: 14.5px; font-weight: 600; text-decoration: none; color: #07070A; background: linear-gradient(180deg, #FFFFFF, #D9DADF); box-shadow: 0 10px 30px rgba(255,255,255,0.14); transition: box-shadow 0.25s, transform 0.25s; }
.sf-btn:hover { transform: translateY(-2px); box-shadow: 0 16px 44px rgba(53,215,255,0.35); }
.sf-btn::after { content: ''; position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.9), rgba(255,255,255,0)); transform: skewX(-20deg); animation: sfShine 4.5s ease-in-out infinite; }
@keyframes sfShine { 0%, 70% { left: -40%; } 100% { left: 130%; } }
.sf-ghost { display: inline-flex; align-items: center; gap: 8px; height: 52px; padding: 0 24px; border-radius: 999px; font-size: 14.5px; font-weight: 500; text-decoration: none; color: #FFFFFF; border: 1px solid rgba(255,255,255,0.26); background: rgba(255,255,255,0.06); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: background 0.2s, border-color 0.2s; }
.sf-ghost:hover { background: rgba(53,215,255,0.14); border-color: rgba(53,215,255,0.5); }
@media (prefers-reduced-motion: reduce) { .sf-cta > img, .sf-btn::after { animation: none; } }
body { margin: 0; background: #050506; font-family: Poppins, sans-serif; -webkit-font-smoothing: antialiased; }
.tm { --ink2: rgba(255,255,255,0.66); --ink3: rgba(255,255,255,0.38); --line: rgba(255,255,255,0.09); }
.tm *, .tm *::before, .tm *::after { box-sizing: border-box; }

/* ---------- living background ---------- */
.tm-bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.tm-aur { position: absolute; left: 50%; top: -30%; width: 1400px; height: 1400px; margin-left: -700px; border-radius: 50%; opacity: 0.5; filter: blur(80px); background: conic-gradient(from 0deg, rgba(30,91,255,0.55), rgba(24,202,243,0.25), rgba(30,91,255,0.45), rgba(30,91,255,0.55)); animation: tmSpin 40s linear infinite; }
.tm-aur2 { position: absolute; left: -20%; top: 55%; width: 900px; height: 900px; border-radius: 50%; opacity: 0.3; filter: blur(90px); background: radial-gradient(circle, #1E5BFF, rgba(30,91,255,0) 70%); animation: tmDrift 28s ease-in-out infinite alternate; }
.tm-dots { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,0.16) 1px, transparent 1.2px); background-size: 28px 28px; -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 60%); mask-image: linear-gradient(180deg, #000 0%, transparent 60%); animation: tmPan 30s linear infinite; }
.tm-q { position: absolute; font-family: Georgia, 'Times New Roman', serif; font-size: 220px; line-height: 1; color: rgba(255,255,255,0.05); animation: tmFloat 14s ease-in-out infinite alternate; }
@keyframes tmSpin { to { transform: rotate(360deg); } }
@keyframes tmDrift { to { transform: translate3d(260px, -160px, 0) scale(1.2); } }
@keyframes tmPan { to { background-position: 28px 28px; } }
@keyframes tmFloat { to { transform: translate3d(0, -40px, 0) rotate(-6deg); } }

/* ---------- hero with orbiting portraits ---------- */
.tm-hero { position: relative; max-width: 1240px; margin: 0 auto; padding: clamp(56px, 9vh, 110px) clamp(20px, 4vw, 64px) clamp(36px, 5vh, 56px); text-align: center; }
.tm-orbit { position: absolute; inset: 0; pointer-events: none; }
.tm-ob { position: absolute; width: var(--s); height: var(--s); border-radius: 50%; overflow: hidden; border: 2px solid rgba(255,255,255,0.22); box-shadow: 0 16px 40px rgba(0,0,0,0.55), 0 0 0 6px rgba(255,255,255,0.03), 0 0 30px rgba(53,215,255,0.18); animation: tmPop 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) both, tmBob var(--d) ease-in-out infinite alternate; animation-delay: var(--pd, 0.3s), 0s; }
@keyframes tmPop { from { opacity: 0; scale: 0.3; } to { opacity: 1; scale: 1; } }
.tm-ob img { width: 100%; height: 100%; object-fit: cover; display: block; }
@keyframes tmBob { from { transform: translate3d(0, 0, 0) rotate(-3deg); } to { transform: translate3d(var(--x), var(--y), 0) rotate(3deg); } }
.tm-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 10px; border-radius: 999px; border: 1px solid rgba(53,215,255,0.35); background: rgba(53,215,255,0.08); font-size: 11.5px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: #9BE9FF; }
.tm-eyebrow i { width: 7px; height: 7px; border-radius: 50%; background: #35D7FF; box-shadow: 0 0 12px #35D7FF; }
.tm-h1 { position: relative; margin: 18px auto 0; max-width: 15ch; font-size: clamp(36px, 5.4vw, 76px); font-weight: 600; line-height: 1.02; letter-spacing: -0.04em; text-wrap: balance; }
.tm-h1 > span:not(.fx-w) { background: linear-gradient(100deg, #FFFFFF 0%, #9BE9FF 35%, #BFD4FF 70%, #FFFFFF 100%); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: tmSheen 8s ease-in-out infinite; }
@keyframes tmSheen { 0%, 100% { background-position: 100% 0; } 50% { background-position: 0% 0; } }
.tm-lead { position: relative; margin: 18px auto 0; max-width: 54ch; font-size: clamp(15px, 1.2vw, 18px); line-height: 1.6; color: var(--ink2); }
.tm-count { position: relative; margin: 26px auto 0; display: inline-flex; align-items: center; gap: 12px; padding: 8px 16px 8px 8px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,0.04); font-size: 13px; color: var(--ink2); }
.tm-count b { color: #FFFFFF; font-weight: 600; }
.tm-mini { display: flex; }
.tm-mini img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; border: 2px solid #0B0C12; margin-left: -8px; }
.tm-mini img:first-child { margin-left: 0; }

/* ---------- marquee of short quotes ---------- */
.tm-marq { position: relative; overflow: hidden; padding: 6px 0 clamp(28px, 4vh, 44px); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.tm-track { display: flex; gap: 14px; width: max-content; animation: tmMarq 48s linear infinite; }
.tm-track.rev { margin-top: 12px; animation-direction: reverse; animation-duration: 64s; }
.tm-marq:hover .tm-track { animation-play-state: paused; }
@keyframes tmMarq { to { transform: translate3d(-50%, 0, 0); } }
.tm-pill { display: inline-flex; align-items: center; gap: 12px; padding: 10px 20px 10px 10px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,0.045); white-space: nowrap; font-size: 14.5px; color: #E8E8EE; }
.tm-pill em { font-style: normal; font-size: 12px; color: var(--ink3); }

/* ---------- rotating spotlight ---------- */
.tm-sec { position: relative; max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 64px); }
.tm-spot { position: relative; padding: clamp(24px, 3.5vw, 48px); border-radius: 32px; border: 1px solid rgba(255,255,255,0.12); background: linear-gradient(135deg, rgba(30,91,255,0.2), rgba(8,12,24,0.7) 55%, rgba(53,215,255,0.1)); box-shadow: 0 40px 100px rgba(0,0,0,0.45); overflow: hidden; }
.tm-spot::before { content: ''; position: absolute; right: -12%; top: -50%; width: 60%; height: 200%; background: radial-gradient(closest-side, rgba(53,215,255,0.16), rgba(53,215,255,0)); animation: tmDrift 16s ease-in-out infinite alternate; pointer-events: none; }
.tm-slides { display: grid; }
.tm-slide { grid-area: 1 / 1; margin: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(22px, 3.5vw, 48px); align-items: center; opacity: 0; visibility: hidden; translate: 24px 0; transition: opacity 0.6s ease, translate 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0s linear 0.8s; }
.tm-slide.on { opacity: 1; visibility: visible; translate: 0 0; transition: opacity 0.7s ease 0.15s, translate 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s, visibility 0s; }
.tm-ph { position: relative; width: clamp(110px, 14vw, 180px); aspect-ratio: 1; border-radius: 50%; padding: 5px; background: conic-gradient(from var(--fx-a), #1E5BFF, #35D7FF, #BFD4FF, #1E5BFF); animation: fxSpin 6s linear infinite; box-shadow: 0 24px 70px rgba(30,91,255,0.35); }
.tm-ph img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; border: 4px solid #0A0E1A; }
.tm-slide.on .tm-ph img { animation: tmKen 7s ease-out both; }
@keyframes tmKen { from { scale: 1.12; } to { scale: 1; } }
.tm-slide blockquote { position: relative; margin: 12px 0 0; font-size: clamp(18px, 2vw, 27px); line-height: 1.42; font-weight: 500; letter-spacing: -0.018em; text-wrap: pretty; }
.tm-by { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; }
.tm-by b { font-weight: 600; }
.tm-bars { position: relative; margin-top: clamp(20px, 3vw, 32px); display: flex; gap: 8px; }
.tm-bar { flex: 0 0 auto; width: 56px; height: 18px; padding: 0; border: 0; background: none; cursor: pointer; display: flex; align-items: center; }
.tm-bar i { position: relative; display: block; width: 100%; height: 3px; border-radius: 3px; overflow: hidden; background: rgba(255,255,255,0.16); }
.tm-bar i::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #35D7FF, #1E5BFF); transform: scaleX(0); transform-origin: left; }
.tm-bar i.done::after { transform: scaleX(1); }
.tm-bar i.run::after { animation: tmFill 7s linear both; }
@keyframes tmFill { to { transform: scaleX(1); } }

/* ---------- filters + wall ---------- */
.tm-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: clamp(36px, 5vh, 56px) 0 22px; }
.tm-chip { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,0.04); color: var(--ink2); font-family: inherit; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.2s; }
.tm-chip:hover { color: #FFFFFF; background: rgba(255,255,255,0.08); }
.tm-chip.on { color: #FFFFFF; border-color: rgba(255,255,255,0.5); background: linear-gradient(135deg, rgba(53,215,255,0.24), rgba(30,91,255,0.2)); box-shadow: 0 0 18px rgba(53,215,255,0.18); }
.tm-wall { columns: 3 320px; column-gap: 16px; }
.tm-card { position: relative; break-inside: avoid; margin: 0 0 16px; padding: 22px; border-radius: 22px; border: 1px solid var(--line); background: linear-gradient(160deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02)); transition: border-color 0.3s, background 0.3s, box-shadow 0.3s, transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1); }
@supports not (animation-timeline: view()) { .tm-card { animation: tmIn 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) both; } }
.tm-card:hover { border-color: rgba(53,215,255,0.35); background: linear-gradient(160deg, rgba(255,255,255,0.09), rgba(255,255,255,0.03)); box-shadow: 0 18px 50px rgba(0,0,0,0.35); }
@keyframes tmIn { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }
.tm-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.tm-av { width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0; object-fit: cover; border: 2px solid rgba(255,255,255,0.16); display: block; }
.tm-ini { width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 600; color: #FFFFFF; border: 2px solid rgba(255,255,255,0.16); }
.tm-name { font-size: 15px; font-weight: 600; }
.tm-tag { display: inline-flex; align-items: center; gap: 6px; margin-top: 3px; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: #9BE9FF; }
.tm-tag::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.tm-card p { margin: 0; font-size: 15.5px; line-height: 1.62; color: #E6E7EC; }

/* ---------- cta ---------- */
.tm-cta { position: relative; overflow: visible; margin: clamp(40px, 6vh, 72px) 0 clamp(64px, 9vh, 110px); padding: clamp(30px, 5vw, 56px); border-radius: 30px; border: 1px solid rgba(255,255,255,0.14); background: linear-gradient(135deg, rgba(5,124,204,0.3), rgba(30,91,255,0.24)); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.tm-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border-radius: 999px; font-size: 14px; font-weight: 600; text-decoration: none; }

@media (max-width: 760px) {
  .tm-ob { --s: 44px !important; opacity: 0.55; }
  .tm-slide { grid-template-columns: 1fr; justify-items: start; }
  .tm-bar { width: 40px; }
  .tm-q { font-size: 140px; }
}
@media (prefers-reduced-motion: reduce) {
  .tm *, .tm *::before, .tm *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}
html[data-theme="light"] .tm { background: transparent !important; color: #14161D !important; --ink2: #4A4F5E; --ink3: #7A8093; --line: rgba(20,22,29,0.1); }
html[data-theme="light"] .tm-eyebrow { color: #1746D9; border-color: rgba(23,70,217,0.3); background: rgba(23,70,217,0.07); }
html[data-theme="light"] .tm-eyebrow i { background: #1746D9; box-shadow: 0 0 10px rgba(23,70,217,0.5); }
html[data-theme="light"] .tm-count, html[data-theme="light"] .tm-pill { background: rgba(255,255,255,0.75); }
html[data-theme="light"] .tm-count b { color: #14161D; }
html[data-theme="light"] .tm-pill { color: #2A2E3A; }
html[data-theme="light"] .tm-mini img { border-color: #EEF1F8; }
html[data-theme="light"] .tm-ob { border-color: rgba(255,255,255,0.9); box-shadow: 0 16px 40px rgba(20,22,29,0.18); }
html[data-theme="light"] .tm-spot { background: linear-gradient(135deg, rgba(30,91,255,0.12), rgba(255,255,255,0.85) 55%, rgba(53,215,255,0.1)); border-color: rgba(20,22,29,0.1); box-shadow: 0 40px 100px rgba(20,22,29,0.1); }
html[data-theme="light"] .tm-ph img { border-color: #FFFFFF; }
html[data-theme="light"] .tm-tag { color: #1746D9; }
html[data-theme="light"] .tm-bar i { background: rgba(20,22,29,0.12); }
html[data-theme="light"] .tm-chip { background: rgba(255,255,255,0.7); }
html[data-theme="light"] .tm-chip:hover { color: #14161D; background: #FFFFFF; }
html[data-theme="light"] .tm-chip.on { color: #14161D; border-color: rgba(23,70,217,0.45); background: linear-gradient(135deg, rgba(53,215,255,0.2), rgba(30,91,255,0.14)); }
html[data-theme="light"] .tm-card { background: rgba(255,255,255,0.82); }
html[data-theme="light"] .tm-card:hover { background: #FFFFFF; box-shadow: 0 18px 50px rgba(20,22,29,0.1); }
html[data-theme="light"] .tm-card p { color: #2A2E3A; }
html[data-theme="light"] .tm-av, html[data-theme="light"] .tm-ini { border-color: rgba(20,22,29,0.08); }
html[data-theme="light"] .tm-cta { background: linear-gradient(135deg, rgba(30,91,255,0.14), rgba(53,215,255,0.1)); border-color: rgba(23,70,217,0.2); }
html[data-theme="light"] .tm-cta [style*="color: #D7D7DE"] { color: #4A4F5E !important; }
html[data-theme="light"] .tm-cta [style*="color: #FFFFFF"] { color: #14161D !important; border-color: rgba(20,22,29,0.2) !important; }
html[data-theme="light"] .tm-cta [style*="color: #07070A"] { color: #FFFFFF !important; background: linear-gradient(180deg, #1E2230, #07070A) !important; }