Trivelta
Trivelta is seeking a DevOps Engineer to design, build, and maintain CI/CD pipelines and manage a Kubernetes (EKS) platform across multiple client environments. The role involves automating infrastructure with Terraform, supporting serverless services, improving observability, and participating in on‑call incident response while collaborating with backend, frontend, and platform teams.
Headquarters
Boston, Massachusetts, United States
Trivelta is a modular B2B iGaming platform offering turnkey sportsbook, casino, poker, and social solutions. Launch faster with full native apps and regulatory-ready features." /> <style> :root{ --bg:#04070f;--bg-2:#070b16;--surface:#0b1120;--surface-2:#0f1626; --line:rgba(120,160,255,.10);--line-strong:rgba(120,170,255,.22); --text:#eef3fb;--muted:#93a4c2;--faint:#62718e; --navy:#0a4fd1;--blue:#1f7ae5;--sky:#4fb8ff; --accent:#1f7ae5;--accent-2:#4fb8ff;--glow:rgba(31,122,229,.55); --radius:18px;--maxw:1400px;--ease:cubic-bezier(.2,.7,.2,1);font-synthesis:none; } *{margin:0;padding:0;box-sizing:border-box} html{scroll-behavior:smooth;background:#04070f} body{background:var(--bg);color:var(--text);font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden;animation:pageEnter .7s cubic-bezier(.2,.7,.2,1) backwards} /* cinematic page transition - guaranteed visible in every browser */ @keyframes pageEnter{from{opacity:0;transform:translateY(30px) scale(.99);filter:blur(7px)}to{opacity:1;transform:none;filter:none}} body.is-leaving{opacity:0;transform:translateY(-22px) scale(.985);filter:blur(5px);transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1),filter .4s} @media(prefers-reduced-motion:reduce){body{animation:none}body.is-leaving{transition:none;opacity:1}} ::selection{background:var(--blue);color:#fff} a{color:inherit;text-decoration:none} img{max-width:100%;display:block} .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px} #hdr>.wrap{max-width:none;padding:0 44px} section{position:relative;z-index:2} /* animated aurora */ .ambient{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden} .ambient .orb{position:absolute;border-radius:50%;filter:blur(100px)} .orb.a{width:680px;height:680px;background:radial-gradient(circle,#0a4fd1,transparent 70%);top:-260px;left:-180px;opacity:.55;animation:drift1 22s ease-in-out infinite} .orb.b{width:600px;height:600px;background:radial-gradient(circle,#1f7ae5,transparent 70%);top:30%;right:-240px;opacity:.34;animation:drift2 26s ease-in-out infinite} .orb.c{width:560px;height:560px;background:radial-gradient(circle,#4fb8ff,transparent 70%);bottom:-220px;left:34%;opacity:.22;animation:drift3 30s ease-in-out infinite} @keyframes drift1{0%,100%{transform:translate(0,0)}50%{transform:translate(80px,60px)}} @keyframes drift2{0%,100%{transform:translate(0,0)}50%{transform:translate(-90px,40px)}} @keyframes drift3{0%,100%{transform:translate(0,0)}50%{transform:translate(60px,-70px)}} .grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")} #bgCanvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55} /* scroll progress */ #progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;background:linear-gradient(90deg,var(--navy),var(--sky));box-shadow:0 0 12px var(--glow);transition:width .1s linear} /* cinematic intro */ body.intro-lock{overflow:hidden;height:100vh} #intro{position:fixed;inset:0;z-index:9999;background:radial-gradient(120% 90% at 50% 30%,#0a1326,#04070f);display:grid;place-items:center;transition:opacity .9s var(--ease)} #intro.done{opacity:0;pointer-events:none} #intro .iwords{position:relative;height:1.2em;width:100%} #intro .iwords span{position:absolute;left:0;right:0;text-align:center;font-size:clamp(40px,8.5vw,104px);font-weight:800;letter-spacing:-.035em;color:#fff;opacity:0} #intro .iwords span.g{background:linear-gradient(120deg,#fff,var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent} #intro .iwords span.go{animation:iword 1.5s var(--ease) forwards} @keyframes iword{0%{opacity:0;transform:translateY(34px);filter:blur(10px)}22%{opacity:1;transform:none;filter:none}72%{opacity:1;transform:none;filter:none}100%{opacity:0;transform:translateY(-26px);filter:blur(10px)}} #intro .ilogo{position:absolute;inset:0;margin:auto;opacity:0;height:clamp(46px,7vw,78px);width:auto} #intro .ilogo.go{animation:ilogo 1.5s var(--ease) forwards} @keyframes ilogo{0%{opacity:0;transform:scale(1.05);filter:blur(8px) drop-shadow(0 0 0 rgba(90,150,255,0))}55%{opacity:1;filter:blur(0) drop-shadow(0 0 26px rgba(90,150,255,.55))}100%{opacity:1;transform:none;filter:blur(0) drop-shadow(0 0 0 rgba(90,150,255,0))}} /* emblem clip that resolves into the complete logo */ #intro .ivideo{position:absolute;inset:0;margin:auto;width:min(360px,58vw);height:auto;opacity:0;transform:scale(.94);transition:opacity .9s var(--ease),transform 1.05s var(--ease),filter .9s var(--ease);z-index:5;pointer-events:none;mix-blend-mode:screen} #intro .ivideo.show{opacity:1;transform:scale(1)} #intro .ivideo.melt{opacity:0;transform:scale(.97)} #intro .iwords.out span{animation:none!important;opacity:0!important;transition:opacity .4s var(--ease)} #intro .ibar{position:absolute;bottom:0;left:0;height:3px;width:100%;background:rgba(120,170,255,.08)} #intro .ibar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--navy),var(--sky));animation:ibar 9.6s linear forwards;animation-play-state:paused} #intro.entered .ibar i{animation-play-state:running} @keyframes ibar{to{width:100%}} /* ENTER gate - minimal, cinematic */ #intro .igate{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:38px;z-index:6;transition:opacity .6s var(--ease)} #intro .igate>*{opacity:0;animation:gatein .9s var(--ease) forwards} #intro .igate .enter{animation-delay:.18s} #intro .igate .gatehint{animation-delay:.34s} @keyframes gatein{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}} #intro .igate.hide{opacity:0;pointer-events:none} #intro .iglogo{height:clamp(44px,6.4vw,72px);width:auto;margin-bottom:6px} #intro .enter{position:relative;padding:15px 52px;border:1px solid rgba(220,235,255,.32);background:transparent;color:#eaf3ff;font-size:13px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;cursor:pointer;border-radius:3px;overflow:hidden;transition:color .35s var(--ease),border-color .35s,letter-spacing .35s} #intro .enter::before{content:"";position:absolute;inset:0;background:#eaf3ff;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);z-index:0} #intro .enter span{position:relative;z-index:1} #intro .enter:hover{color:#06101f;border-color:#eaf3ff;letter-spacing:.34em} #intro .enter:hover::before{transform:scaleX(1)} /* sound cue - subtle, at the bottom */ #intro .gatehint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--faint);display:inline-flex;align-items:center;gap:10px;white-space:nowrap} #intro .gatehint .eq{display:inline-flex;align-items:flex-end;gap:2.5px;height:12px} #intro .gatehint .eq i{width:2.5px;height:4px;background:var(--sky);border-radius:1px;animation:eqbar 1s ease-in-out infinite} #intro .gatehint .eq i:nth-child(1){animation-delay:-.1s} #intro .gatehint .eq i:nth-child(2){animation-delay:-.45s} #intro .gatehint .eq i:nth-child(3){animation-delay:-.25s} #intro .gatehint .eq i:nth-child(4){animation-delay:-.6s} @keyframes eqbar{0%,100%{height:3px}50%{height:12px}} #intro .isound,#intro .iskip{opacity:0;pointer-events:none;transition:opacity .3s} #intro.entered .isound{opacity:1;pointer-events:auto} #intro.entered .iskip{opacity:1;pointer-events:auto} #intro .iskip{position:absolute;bottom:22px;right:26px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)} #intro .isound{position:absolute;bottom:18px;left:26px;width:40px;height:40px;border-radius:50%;border:1px solid var(--sky);background:rgba(31,122,229,.14);color:#dcebff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;z-index:2;animation:isoundpulse 1.8s ease-in-out infinite} #intro .isound:hover{background:rgba(120,170,255,.22);transform:scale(1.08);animation:none} /* age gate */ #intro .igate{gap:20px;padding:24px;text-align:center} #intro .agetitle{max-width:600px;font-size:clamp(20px,2.5vw,26px);font-weight:600;line-height:1.4;letter-spacing:-.01em;color:#eef3fb;margin:6px 0 0} #intro .agetext{max-width:540px;font-size:15px;line-height:1.55;color:#9fb0cc;margin:0} #intro .agebtns{display:flex;gap:18px;margin-top:16px;flex-wrap:wrap;justify-content:center} #intro .agebtn{display:inline-flex;align-items:center;gap:10px;padding:15px 42px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;border:1px solid rgba(220,235,255,.3);background:transparent;color:#eaf3ff;transition:transform .2s var(--ease),background .25s,color .25s,border-color .25s} #intro .agebtn .ar{transition:transform .25s var(--ease)} #intro .agebtn:hover .ar{transform:translateX(4px)} #intro .agebtn.yes{background:#eef3fb;color:#06101f;border-color:#eef3fb} #intro .agebtn.yes:hover{transform:translateY(-2px);box-shadow:0 14px 34px -14px rgba(238,243,251,.5)} #intro .agebtn.no:hover{background:rgba(255,255,255,.06);border-color:#eaf3ff} #intro .ageblock{max-width:540px;font-size:17px;line-height:1.55;color:#cfe0f7;margin:10px 0 0} @keyframes isoundpulse{0%,100%{box-shadow:0 0 0 0 rgba(31,122,229,.45)}50%{box-shadow:0 0 0 9px rgba(31,122,229,0)}} /* hero background media */ .hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none} .hero-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32} .hero-bg .hero-bg-ov{position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 0%,transparent,var(--bg) 78%),linear-gradient(180deg,rgba(4,7,15,.4),var(--bg))} .hero>.wrap{position:relative;z-index:2} /* logo */ .logo{display:flex;align-items:center;gap:11px;font-weight:800;font-size:20px} .logo img.logo-img{height:30px;width:auto;display:block} .logo .fallback{display:none;align-items:center;gap:11px} .logo .fallback svg{height:28px;width:auto;display:block} .logo .wm{font-weight:800;letter-spacing:.16em} /* nav */ header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .4s var(--ease),border-color .4s,backdrop-filter .4s} header.scrolled{background:rgba(4,7,15,.78);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)} .nav{display:flex;align-items:center;justify-content:space-between;height:74px} .nav-links{display:flex;align-items:center;gap:34px} .nav-links a{font-size:15px;color:var(--muted);font-weight:500;transition:color .25s;position:relative} .nav-links a:hover{color:var(--text)} .nav-links a.lnk::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--sky);transition:width .3s var(--ease)} .nav-links a.lnk:hover::after{width:100%} /* dropdown nav */ .navitem{position:relative;display:flex;align-items:center} .navtrigger{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:0;margin:0;font-family:inherit;font-size:15px;font-weight:500;color:var(--muted);cursor:pointer;transition:color .25s} .navtrigger:hover,.navtrigger.active{color:var(--text)} .caret{width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.65;transition:transform .25s} .navitem.has-sub:hover .caret,.navitem.open .caret{transform:rotate(-135deg);margin-top:2px} .submenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);margin-top:14px;min-width:214px;background:rgba(9,14,26,.98);backdrop-filter:blur(16px);border:1px solid var(--line-strong);border-radius:14px;padding:9px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transition:opacity .2s var(--ease),transform .2s var(--ease);box-shadow:0 30px 70px -25px rgba(0,0,0,.75);z-index:80} .submenu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px} .navitem.has-sub:hover .submenu,.navitem.has-sub:focus-within .submenu,.navitem.open .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)} .submenu a{padding:10px 14px;border-radius:9px;color:var(--muted);font-size:14px;white-space:nowrap;transition:background .18s,color .18s} .submenu a:hover{background:rgba(120,170,255,.1);color:var(--text)} .btn{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:14.5px;padding:12px 22px;border-radius:999px;cursor:pointer;border:0;transition:transform .25s var(--ease),box-shadow .25s,background .25s;white-space:nowrap} .btn-primary{background:var(--text);color:#06101f} .btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(255,255,255,.16)} .btn-ghost{background:rgba(120,170,255,.05);color:var(--text);border:1px solid var(--line-strong)} .btn-ghost:hover{background:rgba(120,170,255,.12);transform:translateY(-2px)} .btn-glow{background:linear-gradient(120deg,var(--navy),var(--blue));color:#fff;box-shadow:0 10px 30px var(--glow)} .btn-glow:hover{transform:translateY(-2px);box-shadow:0 16px 44px var(--glow)} .nav .btn{padding:11px 20px} /* desktop nav layout: logo | menu (breathing room) | utilities pushed right */ @media(min-width:881px){ .nav-links{flex:1 1 auto;margin-left:clamp(28px,4vw,68px)} .nav-links #tvSearchBtn{margin-left:auto} .nav-links .langsel{margin-left:auto} } .burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px} .burger span{width:24px;height:2px;background:var(--text);border-radius:2px;transition:.3s} .mobnav{display:none} @media(max-width:880px){ .mobnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:115;background:rgba(7,11,20,.98);border-top:1px solid var(--line-strong);padding:7px 4px calc(7px + env(safe-area-inset-bottom)) 4px;justify-content:space-around;align-items:stretch} .mobnav a,.mobnav button{flex:1 1 0;min-width:0;background:none;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--faint);font-size:10px;letter-spacing:.05em;font-weight:600;text-transform:uppercase;cursor:pointer;padding:5px 2px;text-decoration:none;font-family:inherit;transition:color .2s} .mobnav svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round} .mobnav .mn-active{color:var(--sky)} body{padding-bottom:62px} body.menu-open .mobnav{display:none} } /* hero */ .hero{padding:160px 0 40px;text-align:center} .eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:13px;letter-spacing:.04em;color:var(--muted);border:1px solid var(--line-strong);padding:7px 16px;border-radius:999px;background:rgba(120,170,255,.04);margin-bottom:30px} .eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--sky);box-shadow:0 0 10px var(--sky);animation:pulse 2.4s ease-in-out infinite} @keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}} .hero h1{font-size:clamp(44px,7.4vw,92px);line-height:1.0;letter-spacing:-.04em;font-weight:800;margin-bottom:26px} .hero h1 .grad{background:linear-gradient(120deg,#fff 8%,var(--sky) 50%,var(--blue) 92%);-webkit-background-clip:text;background-clip:text;color:transparent} /* word reveal */ .hero h1 .w{display:inline-block;opacity:0;transform:translateY(40px) rotate(2deg);animation:wordin .9s var(--ease) forwards} .hero p.lead{font-size:clamp(17px,2.2vw,21px);color:var(--muted);max-width:640px;margin:0 auto 38px;line-height:1.6;opacity:0;animation:wordin .9s var(--ease) .5s forwards} .hero p.lead b{color:var(--text);font-weight:600} .hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;opacity:0;animation:wordin .9s var(--ease) .7s forwards} .hero .btn{padding:15px 30px;font-size:15.5px} @keyframes wordin{to{opacity:1;transform:none}} /* hero floating panel (desktop screenshot, no chrome) */ .stage{margin-top:64px;perspective:1800px;perspective-origin:50% 30%} .hero-panel-tilt{transform-style:preserve-3d;transform:rotateX(var(--rx,16deg)) rotateY(var(--ry,0deg));transition:transform .3s var(--ease)} .hero-panel-float{animation:floaty 7s ease-in-out infinite} .hero-panel{position:relative;max-width:1000px;margin:0 auto;border-radius:20px;overflow:hidden;border:1px solid var(--line-strong); box-shadow:0 60px 140px -40px rgba(2,10,30,.95),0 0 80px -30px var(--glow),inset 0 0 0 1px rgba(120,170,255,.05); -webkit-mask-image:linear-gradient(180deg,#000 90%,transparent);mask-image:linear-gradient(180deg,#000 90%,transparent)} .hero-panel .shot{border:0;border-radius:0} .hero-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(4,7,15,.5));pointer-events:none} .hero-glow{position:absolute;left:50%;top:40%;width:80%;height:60%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,var(--glow),transparent 70%);filter:blur(50px);z-index:-1;opacity:.7} @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}} .float-chip{position:absolute;background:rgba(11,17,32,.9);backdrop-filter:blur(8px);border:1px solid var(--line-strong);border-radius:14px;padding:13px 17px;display:flex;align-items:center;gap:11px;box-shadow:0 20px 50px -20px rgba(0,0,0,.8);font-size:13.5px;font-weight:600;z-index:4} .float-chip .ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:15px} .float-chip small{display:block;font-weight:400;color:var(--faint);font-size:11.5px} .float-chip.one{top:8%;left:-10px;animation:bob 5s ease-in-out infinite} .float-chip.two{bottom:24%;right:-14px;animation:bob 6s ease-in-out infinite .8s} @keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}} /* interactive sportsbook - faithful recreation of the Trivelta product UI */ .book-wrap{margin:56px auto 0;position:relative;max-width:1140px;padding:0 6px} .book-glow{position:absolute;left:50%;top:34%;width:80%;height:62%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(230,0,126,.42),transparent 70%);filter:blur(75px);z-index:-1;opacity:.5} .book{--pbg:#0a0910;--ps:#15111c;--ps2:#1c1626;--pl:rgba(255,255,255,.07);--pt:#f3f1f6;--pm:#8f8a99;--mag:#e6007e;--mag2:#ff3aa6; position:relative;border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:hidden;background:var(--pbg);color:var(--pt);text-align:left; box-shadow:0 60px 140px -50px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.03);font-size:13px} .book-top{display:flex;align-items:center;gap:20px;padding:10px 16px;border-bottom:1px solid var(--pl);background:#08070d} .book-top .bk-logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px} .book-top .bk-logo i{width:18px;height:18px;border-radius:50%;background:conic-gradient(from 90deg,var(--mag),var(--mag2),var(--mag))} .book-top nav{display:flex;gap:18px;font-size:12.5px;color:var(--pm)} .book-top nav a{display:flex;align-items:center;gap:6px} .book-top nav a.act{color:var(--pt);font-weight:600} .book-top nav a .pin{color:var(--mag);font-size:9px} .book-top .bk-right{margin-left:auto;display:flex;align-items:center;gap:13px;font-size:13px;color:var(--pm)} .book-top .bal{background:var(--ps2);border:1px solid var(--pl);border-radius:999px;padding:5px 13px;color:var(--pt);font-weight:700;font-size:12.5px} .book-main{display:grid;grid-template-columns:196px 1fr 296px} .sb-side{border-right:1px solid var(--pl);padding:12px 8px;max-height:486px;overflow:auto;background:#0c0a12} .sb-side h6{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--pm);padding:6px 10px;margin-bottom:2px} .sb-side a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--pt);font-size:12.5px;font-weight:500;cursor:default} .sb-side a:hover{background:var(--ps)} .sb-side a .si{width:18px;height:18px;border-radius:5px;background:linear-gradient(135deg,var(--mag),#a3005a);flex:none} .sb-side a .ct{margin-left:auto;color:var(--pm);font-size:11.5px} .sb-center{padding:14px;max-height:486px;overflow:auto} .sb-icons{display:flex;gap:8px;margin-bottom:13px;flex-wrap:wrap} .sb-icons span{width:34px;height:34px;border-radius:9px;background:var(--ps);border:1px solid var(--pl);flex:none} .sb-icons span.on{background:linear-gradient(135deg,var(--mag),#a3005a);border-color:transparent} .sb-banner{background:linear-gradient(100deg,var(--mag),#9c0058);border-radius:10px;padding:11px 16px;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px} .sb-banner .vs{background:rgba(255,255,255,.22);border-radius:6px;padding:2px 8px;font-size:11px} .sb-sub{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--pm);margin:6px 2px 10px;font-weight:600} .match{border:1px solid var(--pl);border-radius:11px;margin-bottom:10px;background:var(--ps);overflow:hidden} .match .mhead{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;border-bottom:1px solid var(--pl)} .match .mhead .lg{font-size:10.5px;color:var(--mag2);font-weight:700;letter-spacing:.02em} .match .mhead .tm{font-size:10.5px;color:var(--pm)} .match .teams{display:flex;align-items:center;justify-content:space-between;padding:11px 13px 9px;font-size:13.5px;font-weight:600} .match .teams .t{display:flex;align-items:center;gap:8px}.match .teams .t.r{flex-direction:row-reverse} .dot{width:17px;height:11px;border-radius:2px;flex:none} .match .teams .vs{color:var(--pm);font-weight:400;font-size:11px} .match .odds{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 13px 13px} .odds button{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-radius:8px;border:1px solid var(--pl);background:var(--ps2);color:var(--pt);font-size:13px;font-weight:700;cursor:pointer;transition:border-color .18s,background .18s} .odds button span{color:var(--pm);font-weight:600} .odds button b{color:var(--pt)} .odds button:hover{border-color:rgba(230,0,126,.55)} .odds button.on{background:linear-gradient(120deg,var(--mag),#b3006b);border-color:transparent} .odds button.on span,.odds button.on b{color:#fff} .sb-slip{border-left:1px solid var(--pl);display:flex;flex-direction:column;background:#0c0a12;max-height:486px} .slip-head{padding:13px 15px;border-bottom:1px solid var(--pl);font-weight:700;font-size:13.5px} .slip-tabs{display:flex;border-bottom:1px solid var(--pl);font-size:11px} .slip-tabs span{flex:1;text-align:center;padding:9px 3px;color:var(--pm);border-bottom:2px solid transparent;white-space:nowrap} .slip-tabs span.act{color:var(--pt);border-bottom-color:var(--mag)} .slip-body{flex:1;padding:4px 13px;overflow:auto;min-height:120px;max-height:188px} .slip-empty{color:var(--pm);font-size:12.5px;text-align:center;padding:34px 8px;line-height:1.55} .slip-item{display:flex;gap:9px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--pl)} .slip-item .si-main{flex:1}.slip-item .si-sel{font-size:12.5px;font-weight:600}.slip-item .si-mt{font-size:11px;color:var(--pm);margin-top:2px} .slip-item .si-odd{color:var(--mag2);font-weight:700;font-size:13px} .slip-item .si-x{cursor:pointer;color:var(--pm);font-size:12px;border:0;background:none;padding:2px 4px;line-height:1} .slip-item .si-x:hover{color:var(--mag2)} .slip-foot{padding:13px 15px;border-top:1px solid var(--pl)} .slip-foot label{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--pm);margin-bottom:11px} .slip-foot input{width:100px;background:var(--ps2);border:1px solid var(--pl);border-radius:8px;color:var(--pt);padding:8px 10px;font-size:13.5px;text-align:right;font-weight:700} .slip-foot input:focus{outline:none;border-color:var(--mag)} .slip-row{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--pm);margin-bottom:8px} .slip-row b{color:var(--pt);font-size:13.5px} .slip-row.ret b{color:#27e0a0;font-size:16px;font-weight:800} .place{width:100%;margin-top:6px;padding:12px;border-radius:9px;border:0;font-weight:700;font-size:14px;cursor:pointer;background:linear-gradient(120deg,var(--mag),#b3006b);color:#fff;opacity:.45;pointer-events:none;transition:transform .25s,box-shadow .25s,opacity .25s} .place.ready{opacity:1;pointer-events:auto;box-shadow:0 10px 26px rgba(230,0,126,.4)} .place.ready:hover{transform:translateY(-2px)} .book-success{position:absolute;inset:0;background:rgba(8,7,13,.93);backdrop-filter:blur(6px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .35s;z-index:6} .book-success.show{opacity:1;pointer-events:auto} .book-success .tick{width:66px;height:66px;border-radius:50%;background:rgba(39,224,160,.14);border:1px solid rgba(39,224,160,.5);display:grid;place-items:center;color:#27e0a0;font-size:32px;font-weight:700} .book-success.show .tick{animation:pop .5s var(--ease)} @keyframes pop{0%{transform:scale(.5);opacity:0}100%{transform:scale(1);opacity:1}} .book-hint{text-align:center;font-size:12.5px;color:var(--faint);margin-top:14px} @media(max-width:980px){.book-main{grid-template-columns:1fr 290px}.sb-side{display:none}} @media(max-width:680px){.book-main{grid-template-columns:1fr}.sb-slip{border-left:0;border-top:1px solid var(--pl)}} /* asset slots */ .shot{position:relative;border-radius:16px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line)} .shot img{width:100%;height:100%;object-fit:cover;display:block} .shot.empty{display:grid;place-items:center;min-height:160px} .shot.empty img{display:none} .shot.empty::after{content:attr(data-label);color:var(--faint);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:18px;background-image:repeating-linear-gradient(135deg,rgba(120,170,255,.05) 0 12px,transparent 12px 24px)} /* section heads + ghost titles */ .sec{padding:100px 0} .ghost{position:absolute;top:-10px;left:0;right:0;text-align:center;font-size:clamp(90px,20vw,260px);font-weight:800;letter-spacing:-.04em;line-height:1;color:rgba(120,170,255,.04);pointer-events:none;z-index:0;white-space:nowrap;overflow:hidden} .sec-head{max-width:640px;margin-bottom:54px;position:relative;z-index:2} .sec-head.center{margin:0 auto 54px;text-align:center} .kicker{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sky);margin-bottom:16px} .sec h2{font-size:clamp(30px,4.6vw,52px);line-height:1.05;letter-spacing:-.03em;font-weight:800;margin-bottom:18px} .sec h2 .grad{background:linear-gradient(120deg,#fff,var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent} .sec p.sub{font-size:17px;color:var(--muted);line-height:1.6} /* marquee partners */ .marquee-wrap{padding:40px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;background:rgba(120,170,255,.015);-webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)} .marquee-label{text-align:center;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:30px} .marquee{display:flex;gap:60px;width:max-content;animation:scrollx 30s linear infinite;align-items:center} .marquee:hover{animation-play-state:paused} .plogo{display:flex;align-items:center;justify-content:center;height:38px;min-width:140px} .plogo img{max-height:38px;width:auto;opacity:.9;transition:opacity .3s} .plogo img:hover{opacity:1} .plogo .pname{font-size:21px;font-weight:700;color:rgba(190,210,255,.42);letter-spacing:-.01em;white-space:nowrap;transition:color .3s} .plogo .pname:hover{color:var(--text)} @keyframes scrollx{to{transform:translateX(-50%)}} /* products */ .prod-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;position:relative;z-index:2} .prod-grid .card.span{grid-column:span 2} .card{position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:34px;overflow:hidden;background:linear-gradient(180deg,var(--surface),var(--bg-2));transition:transform .4s var(--ease),border-color .4s} .card::before{content:"";position:absolute;inset:0;background:radial-gradient(500px circle at var(--mx,50%) var(--my,0%),rgba(31,122,229,.16),transparent 60%);opacity:0;transition:opacity .4s} .card:hover{transform:translateY(-6px);border-color:var(--line-strong)} .card:hover::before{opacity:1} .card .ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;margin-bottom:22px;font-size:23px;background:rgba(31,122,229,.14);border:1px solid rgba(79,184,255,.28)} .card h3{font-size:22px;letter-spacing:-.02em;margin-bottom:11px;font-weight:700} .card p{color:var(--muted);font-size:15px;line-height:1.6;margin-bottom:20px} .card .more{font-size:14px;font-weight:600;color:var(--sky);display:inline-flex;align-items:center;gap:7px;transition:gap .25s} .card:hover .more{gap:12px} .card.span{background:linear-gradient(120deg,var(--surface-2),var(--bg-2) 70%)} .card-inner{max-width:520px;position:relative;z-index:2} .tag{position:absolute;top:26px;right:26px;font-size:11.5px;font-weight:600;letter-spacing:.06em;color:var(--sky);border:1px solid rgba(79,184,255,.3);padding:5px 12px;border-radius:999px;background:rgba(79,184,255,.07)} /* premium: card shine sweep */ .card::after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.08),transparent);transform:skewX(-18deg);opacity:0;pointer-events:none;z-index:1} .card:hover::after{opacity:1;animation:cardShine .9s var(--ease)} @keyframes cardShine{0%{left:-60%}100%{left:130%}} /* premium: magnetic buttons + glow */ .btn{will-change:transform} .btn-primary{position:relative} .btn-glow{position:relative;overflow:hidden} .btn-glow::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(120px circle at var(--bx,50%) var(--by,50%),rgba(255,255,255,.22),transparent 60%);opacity:0;transition:opacity .35s;pointer-events:none} .btn-glow:hover::after{opacity:1} /* premium: scroll cue */ .scroll-cue{position:absolute;right:30px;bottom:30px;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--faint);font-size:11px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;z-index:4;opacity:0;animation:wordin .9s var(--ease) 1.4s forwards} .scroll-cue .chev{width:22px;height:22px;border-right:2px solid var(--sky);border-bottom:2px solid var(--sky);transform:rotate(45deg);animation:cueBob 1.8s ease-in-out infinite} @keyframes cueBob{0%,100%{transform:rotate(45deg) translate(0,0);opacity:.5}50%{transform:rotate(45deg) translate(4px,4px);opacity:1}} /* ===== cinematic scene-cycler hero ===== */ .chero{position:relative;height:100vh;height:100dvh;min-height:600px;overflow:hidden;background:#04070f} .cscene{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;z-index:1} .cscene.active{opacity:1;z-index:2} .cscene .cbg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04);filter:brightness(.4) saturate(1.08)} .cscene .cvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6) saturate(1.05)} .cscene.active .cbg{animation:kenburns 7s ease-out both} @keyframes kenburns{from{transform:scale(1.03)}to{transform:scale(1.16)}} .cscene .cov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,7,15,.92),rgba(4,7,15,.55) 42%,rgba(4,7,15,.2)),linear-gradient(0deg,rgba(4,7,15,.92),transparent 55%)} .cscene .cglow{position:absolute;inset:0;background:radial-gradient(60% 60% at 22% 70%,rgba(31,122,229,.22),transparent 60%);mix-blend-mode:screen} .cscene-in{position:absolute;left:0;right:0;bottom:13vh;z-index:3} .cscene-in .ceyebrow{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sky);margin-bottom:18px} .cscene-in .ceyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--sky);box-shadow:0 0 12px var(--sky)} .cscene-in h2{font-size:clamp(40px,6.5vw,86px);line-height:.98;letter-spacing:-.035em;font-weight:800;max-width:14ch;margin:0} .cscene-in p{color:var(--muted);font-size:clamp(16px,1.5vw,20px);max-width:52ch;margin:22px 0 0;line-height:1.55} .cscene-in .chero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px} .cscene.active .cscene-in>*{opacity:0;animation:cinUp .8s var(--ease) forwards} .cscene.active .cscene-in>*:nth-child(1){animation-delay:.35s} .cscene.active .cscene-in>*:nth-child(2){animation-delay:.45s} .cscene.active .cscene-in>*:nth-child(3){animation-delay:.55s} .cscene.active .cscene-in>*:nth-child(4){animation-delay:.65s} @keyframes cinUp{from{opacity:0;transform:translateY(26px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}} .cdots{position:absolute;bottom:34px;left:0;right:0;z-index:6;display:flex;gap:11px;justify-content:center} .cdot{width:30px;height:4px;border-radius:3px;border:0;background:rgba(255,255,255,.22);cursor:pointer;padding:0;transition:background .3s,transform .3s;position:relative;overflow:hidden} .cdot.on{background:rgba(255,255,255,.32)} .cdot i{position:absolute;inset:0;background:linear-gradient(90deg,var(--navy),var(--sky));transform:scaleX(0);transform-origin:left;transition:transform .28s linear} .mi-chip{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;border:1px solid var(--line-strong);background:rgba(120,170,255,.05);color:var(--text);font-size:14.5px;font-weight:500;transition:transform .25s var(--ease),border-color .25s,background .25s} .mi-chip:hover{transform:translateY(-3px);border-color:var(--sky);background:rgba(120,170,255,.12)} @media(max-width:760px){ .cscene-in{bottom:9vh} .cscene .cov{background:linear-gradient(0deg,rgba(4,7,15,.96),rgba(4,7,15,.45) 55%,rgba(4,7,15,.55))} .cscene-in h2{font-size:clamp(32px,8.5vw,46px)} .cscene-in p{font-size:15px;max-width:none} .cscene-in .chero-cta{margin-top:24px} .cscene-in .chero-cta .btn{flex:1 1 auto;justify-content:center} .cdots{bottom:24px} .scroll-cue{display:none} } /* split */ .split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;position:relative;z-index:2} .split.rev .visual{order:-1} .feat-list{list-style:none;margin-top:28px;display:grid;gap:16px} .feat-list li{display:flex;gap:14px;align-items:flex-start;font-size:15.5px;color:var(--muted)} .feat-list li b{color:var(--text);font-weight:600} .check{flex:none;width:24px;height:24px;border-radius:7px;background:rgba(79,184,255,.13);border:1px solid rgba(79,184,255,.32);display:grid;place-items:center;color:var(--sky);font-size:13px;margin-top:1px} /* phone (sleek floating, no heavy bezel) */ .phone{width:236px;border-radius:34px;padding:8px;position:relative;background:linear-gradient(160deg,#1b2740,#0a0f1c);border:1px solid var(--line-strong);box-shadow:0 50px 110px -40px rgba(2,10,30,.95),0 0 60px -28px var(--glow)} .phone .shot{border-radius:26px;aspect-ratio:281/506;border:0} .phone .shot img{transform:scale(1.03);transform-origin:50% 66%} /* cluster phones: let each frame match its screenshot's height so the full screen shows with no crop and no side bars */ .cluster .phone .shot{aspect-ratio:auto;background:transparent} .cluster .phone .shot img{transform:none;height:auto;object-fit:contain} /* clean SVG icons */ .card .ic svg,.val .ic svg{width:26px;height:26px;stroke:var(--sky);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round} .phone .shot.empty{min-height:0;height:100%} /* 3D phone cluster */ .cluster{position:relative;z-index:2;perspective:1500px;perspective-origin:50% 40%;display:flex;justify-content:center;align-items:center;min-height:560px} .cluster-tilt{transform-style:preserve-3d;transform:rotateX(var(--rx,6deg)) rotateY(var(--ry,0deg));transition:transform .3s var(--ease);display:flex;justify-content:center;align-items:center} .cluster .cpane{position:absolute;transition:transform .6s var(--ease),opacity .6s var(--ease);cursor:pointer} .cluster .cpane.is-left{transform:translateX(-212px) translateZ(-120px) rotateY(24deg) scale(.84) translateY(30px);opacity:.86;z-index:1} .cluster .cpane.is-right{transform:translateX(212px) translateZ(-120px) rotateY(-24deg) scale(.84) translateY(30px);opacity:.86;z-index:1} .cluster .cpane.is-center{transform:translateZ(40px) translateY(-26px) scale(1);opacity:1;z-index:5;cursor:default} .cluster .phone{animation:floaty 7s ease-in-out infinite} .cluster .cpane:nth-child(2) .phone{animation-delay:.3s}.cluster .cpane:nth-child(3) .phone{animation-delay:.9s} .cluster-dots{position:absolute;bottom:2px;left:0;right:0;display:flex;gap:9px;justify-content:center;z-index:6} .cluster-dots button{width:8px;height:8px;border-radius:50%;border:0;background:rgba(255,255,255,.24);cursor:pointer;padding:0;transition:background .3s,transform .3s} .cluster-dots button.on{background:var(--sky);transform:scale(1.3)} /* single tilted phone */ .phone-solo{perspective:1400px;z-index:2;position:relative} .phone-solo-tilt{transform-style:preserve-3d;transform:rotateX(var(--rx,4deg)) rotateY(var(--ry,-14deg));transition:transform .3s var(--ease)} .phone-solo .phone{animation:floaty 7s ease-in-out infinite;margin:0 auto} /* app gallery: clean static grid */ .gallery{position:relative;z-index:2;padding:10px 0} .gallery-track{display:grid;grid-template-columns:repeat(4,1fr);gap:34px 26px;max-width:1060px;margin:0 auto;padding:0 24px} .gcard{display:flex;flex-direction:column;align-items:center;gap:16px;margin:0} .gcard .gcap{font-size:15px;line-height:1.35;color:var(--text);text-align:center;max-width:220px;font-weight:600;letter-spacing:-.01em;opacity:0;transition:opacity .7s var(--ease) .15s} .gallery.in .gcard .gcap{opacity:1} .gallery .phone{width:100%;max-width:210px} /* phones: uniform size, real screenshots fill the slot (no crop / no bars) */ .gallery .phone .shot{background:#0b1020;box-shadow:0 18px 40px -24px rgba(0,0,0,.8);transition:box-shadow .45s var(--ease)} .gallery .phone .shot img{object-fit:cover;transform:none} /* premium staggered reveal + gentle float */ .gallery .gcard{opacity:0;transform:translateY(40px) scale(.94);filter:blur(7px);transition:opacity .85s var(--ease),transform .85s var(--ease),filter .85s var(--ease)} .gallery.in .gcard{opacity:1;transform:none;filter:none} .gallery.in .gcard:nth-child(1){transition-delay:.05s} .gallery.in .gcard:nth-child(2){transition-delay:.20s} .gallery.in .gcard:nth-child(3){transition-delay:.35s} .gallery.in .gcard:nth-child(4){transition-delay:.50s} .gallery.in .gcard .phone{animation:floaty 6.5s ease-in-out infinite} .gallery.in .gcard:nth-child(1) .phone{animation-delay:.6s} .gallery.in .gcard:nth-child(2) .phone{animation-delay:-1s} .gallery.in .gcard:nth-child(3) .phone{animation-delay:-2.6s} .gallery.in .gcard:nth-child(4) .phone{animation-delay:-4.2s} .gallery .gcard:hover .shot{box-shadow:0 28px 60px -22px rgba(56,132,255,.55),0 0 0 1px rgba(56,132,255,.25)} @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}} @media(max-width:880px){.gallery-track{grid-template-columns:repeat(2,1fr);max-width:520px;gap:28px 20px}} @media(max-width:480px){.gallery-track{gap:22px 14px;padding:0 16px}} /* store badges */ .store-badges{display:flex;gap:14px;justify-content:center;flex-wrap:wrap} .store-badge{display:flex;align-items:center;gap:11px;border:1px solid var(--line-strong);border-radius:13px;padding:11px 22px;background:rgba(255,255,255,.04);transition:transform .25s var(--ease),background .25s;color:var(--text)} .store-badge:hover{background:rgba(255,255,255,.09);transform:translateY(-2px)} .store-badge svg{width:24px;height:24px;flex:none;fill:currentColor} .store-badge small{display:block;font-size:10.5px;color:var(--muted);line-height:1.1;letter-spacing:.02em} .store-badge b{font-size:15px;font-weight:600;line-height:1.2} /* powered by full-bleed */ .powered{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative;z-index:2} @media(max-width:1100px){.powered{grid-template-columns:repeat(3,1fr)}} @media(max-width:680px){.powered{grid-template-columns:repeat(2,1fr)}} @media(max-width:430px){.powered{grid-template-columns:1fr}} .pcard{position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface);transition:transform .4s var(--ease),border-color .4s} .pcard:hover{transform:translateY(-6px);border-color:var(--line-strong)} .pcard .shot{border:0;border-radius:0;aspect-ratio:16/11;overflow:hidden} .pcard .shot.empty{min-height:0;background:linear-gradient(135deg,#0d1a38,#0a1020)} .pcard .shot.empty::after{content:attr(data-label);color:#cfe0ff;opacity:.9;font-size:clamp(22px,2.6vw,32px);font-weight:800;letter-spacing:-.02em;text-transform:none;background:none;padding:0} .pcard.logo-card .shot{background:linear-gradient(135deg,#0d1a38,#0a1020);display:grid;place-items:center;padding:30px} .pcard.logo-card .shot img{width:auto;height:auto;max-width:66%;max-height:54%;object-fit:contain} .pcard .shot img{transition:transform 1.1s var(--ease)} .pcard:hover .shot img{transform:scale(1.07)} .pcard .lbl{padding:18px 22px;position:relative;z-index:2} .pcard .lbl b{font-size:16px} .pcard .lbl span{display:block;color:var(--faint);font-size:13px;margin-top:3px} /* value props */ .vals{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;position:relative;z-index:2} .val{padding:30px 24px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--surface),var(--bg-2));transition:transform .4s var(--ease),border-color .4s} .val:hover{transform:translateY(-6px);border-color:var(--line-strong)} .val .ic{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;margin-bottom:16px;background:rgba(31,122,229,.14);border:1px solid rgba(79,184,255,.28)} .val b{font-size:16.5px;display:block;margin-bottom:7px} .val p{font-size:14px;color:var(--muted);line-height:1.55} /* cta */ .cta{margin:30px auto 0;max-width:var(--maxw)} .cta-box{position:relative;overflow:hidden;border-radius:30px;padding:84px 40px;text-align:center;border:1px solid var(--line-strong);background:linear-gradient(135deg,#0a1c3e,#050b18 62%)} .cta-box::before{content:"";position:absolute;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle,var(--glow),transparent 65%);top:-300px;left:50%;transform:translateX(-50%);opacity:.7;animation:floaty 9s ease-in-out infinite} .cta-box>*{position:relative;z-index:2} .cta-box h2{font-size:clamp(30px,5vw,54px);letter-spacing:-.03em;font-weight:800;margin-bottom:18px;line-height:1.05} .cta-box p{color:var(--muted);font-size:18px;max-width:520px;margin:0 auto 34px} .cta-box .btn{padding:16px 34px;font-size:16px} /* footer */ footer{border-top:1px solid var(--line);padding:70px 0 36px;margin-top:96px;position:relative;z-index:2} .foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px} .foot-grid .about{max-width:330px} .foot-grid .about p{color:var(--muted);font-size:14.5px;margin:18px 0 22px;line-height:1.6} .foot-col h5{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:18px} .foot-col a{display:block;color:var(--muted);font-size:14.5px;margin-bottom:12px;transition:color .2s} .foot-col .foot-gh{display:block;font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);opacity:.7;margin:16px 0 9px} .foot-col .foot-gh:first-of-type{margin-top:4px} .foot-col a:hover{color:var(--text)} .foot-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:28px;border-top:1px solid var(--line);flex-wrap:wrap;gap:16px} .foot-bottom p{font-size:13.5px;color:var(--faint)} .socials{display:flex;gap:12px} .socials a{width:38px;height:38px;border-radius:10px;border:1px solid var(--line-strong);display:grid;place-items:center;color:var(--muted);transition:.25s;font-size:14px;font-weight:700} .socials a:hover{background:rgba(120,170,255,.1);color:var(--text);transform:translateY(-2px)} /* reveal: scale + blur */ .reveal{opacity:0;transform:translateY(22px);animation:revealIn .7s var(--ease) forwards} .reveal.in{opacity:1;transform:none} @keyframes revealIn{to{opacity:1;transform:none}} .reveal[data-d="1"]{animation-delay:.1s}.reveal[data-d="2"]{animation-delay:.2s}.reveal[data-d="3"]{animation-delay:.3s} @media(max-width:880px){ #hdr>.wrap{padding:0 16px} #hdr .logo{position:relative;z-index:130} .burger{display:flex;position:relative;z-index:130} .burger span{transition:transform .3s var(--ease),opacity .2s} body.menu-open{overflow:hidden} body.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)} body.menu-open .burger span:nth-child(2){opacity:0} body.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)} .nav-links{position:fixed;inset:0;height:100dvh;max-height:100dvh;z-index:120;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;background:rgba(4,7,15,.99);padding:80px 24px max(30px,env(safe-area-inset-bottom)) 24px;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform .42s var(--ease),opacity .3s,visibility .42s;overflow-y:auto;-webkit-overflow-scrolling:touch} .nav-links.open{transform:none;opacity:1;visibility:visible} .nav-links>.navlink,.nav-links>.navitem{width:100%;border-bottom:1px solid var(--line)} .nav-links>.navlink{display:flex;align-items:center;min-height:58px;font-size:17px;font-weight:600;color:var(--text);letter-spacing:-.01em} .navitem{display:block} .navtrigger{width:100%;justify-content:space-between;min-height:58px;font-size:17px;font-weight:600;color:var(--text)} .caret{width:8px;height:8px;opacity:.8} .submenu{position:static!important;left:auto!important;right:auto!important;transform:none!important;opacity:1!important;visibility:visible!important;background:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;margin:0;min-width:0;width:100%;max-height:0;overflow:hidden;transition:max-height .35s var(--ease)} .navitem.open .submenu{max-height:460px;padding:0 0 12px} .submenu::before{display:none} .submenu a{padding:14px 0 14px 16px;font-size:15.5px;color:var(--muted);border-left:2px solid var(--line);margin-left:1px} .submenu a[aria-current="page"]{color:var(--sky);border-color:var(--sky)} .nav-links .btn-glow{order:90;margin-top:26px;width:100%;justify-content:center;min-height:54px;font-size:16px} .nav-links .langsel{order:100;border-bottom:0;margin-top:20px;position:relative} .nav-links .langsel .navtrigger{display:none} .nav-links .langsel::before{content:"Language";display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:11px} .nav-links .langsel .submenu{max-height:none;overflow:visible;display:flex;flex-direction:row;flex-wrap:wrap;gap:9px;padding:0} .nav-links .langsel .submenu a{border:1px solid var(--line-strong);border-radius:999px;padding:9px 18px;margin:0;font-size:13.5px;color:var(--text)} .nav-links .langsel .submenu a[aria-current="true"]{background:var(--sky);color:#04070f;border-color:var(--sky)} .burger{display:flex} .split,.prod-grid{grid-template-columns:1fr} .prod-grid .card.span{grid-column:span 1;grid-template-columns:1fr;gap:24px} .split.rev .visual{order:0} .vals{grid-template-columns:repeat(2,1fr)} .foot-grid{grid-template-columns:1fr 1fr;gap:32px} .foot-grid .about{grid-column:span 2} .hero{padding:138px 0 30px} .cluster{min-height:520px;transform:scale(.82)} .float-chip.one{left:4px}.float-chip.two{right:4px} } /* ===== mobile performance: drop GPU-heavy blur/animation ===== */ @media(max-width:880px){ #bgCanvas{display:none} #hdr,#hdr.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(4,7,15,.95)} .nav-links{backdrop-filter:none;-webkit-backdrop-filter:none} .ambient{display:none} .hero-glow,.book-glow{filter:blur(36px);opacity:.4} .cscene.active .cbg{animation:none} .cscene .cbg,.cscene .cvid{transform:none} .cscene .cvid{filter:brightness(.58)} body{animation-name:pageEnterM} body.is-leaving{filter:none} @keyframes pageEnterM{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}} #intro{transition:opacity .5s ease} #intro .iwords span.go{animation-name:iwordM} @keyframes iwordM{0%{opacity:0;transform:translateY(24px)}20%{opacity:1;transform:none}74%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-18px)}} #intro .ilogo.go{animation-name:ilogoM} @keyframes ilogoM{0%{opacity:0;transform:scale(1.05)}55%{opacity:1;filter:drop-shadow(0 0 18px rgba(90,150,255,.5))}100%{opacity:1;transform:none;filter:none}} .cscene.active .cscene-in>*{animation-name:cinUpM} @keyframes cinUpM{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}} } @media(max-width:520px){ .wrap{padding:0 20px} .vals{grid-template-columns:1fr 1fr} .foot-grid{grid-template-columns:1fr}.foot-grid .about{grid-column:span 1} .cta-box{padding:56px 24px} .float-chip{display:none} .cluster{min-height:480px;transform:scale(.66)} } @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none;filter:none}.gallery .gcard,.gallery .gcard .gcap{opacity:1;transform:none;filter:none}.hero h1 .w,.hero p.lead,.hero-cta{opacity:1;transform:none}} /* regional mega dropdown */ .submenu.mega{min-width:0;width:min(560px,92vw);padding:16px 18px;display:block} .submenu.mega .mega-all{display:block;padding:8px 10px;margin-bottom:8px;border-bottom:1px solid var(--line);border-radius:9px;color:var(--text);font-weight:600;font-size:13.5px} .submenu.mega .mega-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px 18px} .submenu.mega .mega-h{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sky);font-weight:700;padding:6px 10px 3px;white-space:nowrap} .submenu.mega .mega-col a{display:block;padding:6px 10px;white-space:nowrap} @media(max-width:860px){.submenu.mega{width:100%;padding:0}.navitem.open .submenu.mega{max-height:1400px;padding:0 0 12px}.submenu.mega .mega-cols{grid-template-columns:1fr;gap:0}.submenu.mega .mega-all{border-left:2px solid var(--sky);border-bottom:0;color:var(--sky)}.submenu.mega .mega-h{padding:14px 0 4px 16px}} .submenu.mega.prodmega{left:0;transform:translateX(0) translateY(10px);width:min(640px,94vw);padding:16px 16px 14px} .navitem.has-sub:hover .submenu.mega.prodmega,.navitem.has-sub:focus-within .submenu.mega.prodmega,.navitem.open .submenu.mega.prodmega{transform:translateX(0) translateY(0)} .prodmega .mega-cols{grid-template-columns:1fr 1fr 1fr;gap:10px 14px} .prodmega .mega-h{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:700;padding:2px 9px 6px;margin-bottom:2px;border-bottom:1px solid var(--line-strong)} .prodmega .mega-col a{display:flex;align-items:center;padding:8px 9px;border-radius:9px;white-space:nowrap} @media(max-width:860px){.submenu.mega.prodmega{left:auto;transform:none;width:100%;padding:0}.prodmega .mega-cols{grid-template-columns:1fr;gap:0}.prodmega .mega-h{padding:14px 0 6px 16px;border-bottom:0;margin:0}.prodmega .mega-col a{padding:11px 0 11px 16px}} .submenu.prodsub{min-width:188px;padding:10px} .prodsub a{display:flex;align-items:center;padding:7px 9px;border-radius:9px;white-space:nowrap} @media(max-width:860px){.submenu.prodsub{padding:0}.prodsub a{padding:11px 0 11px 16px}} /* ===================== LIGHT MODE (homepage) ===================== */ html[data-theme="light"]{ --bg:#f6f8fc;--bg-2:#eef2f9;--surface:#ffffff;--surface-2:#f1f5fb; --line:rgba(20,50,110,.12);--line-strong:rgba(20,50,110,.2); --text:#0f1c33;--muted:#56657f;--faint:#8493ad; --navy:#0a4fd1;--blue:#1f7ae5;--sky:#1f7ae5;--accent:#1f7ae5;--accent-2:#1f7ae5;--glow:rgba(31,122,229,.18); background:#f6f8fc; } html[data-theme="light"] body{background:var(--bg);color:var(--text)} html[data-theme="light"] .grad,html[data-theme="light"] .sec h2 .grad,html[data-theme="light"] .phero h1 .grad,html[data-theme="light"] .stat .n{background:linear-gradient(120deg,#0a4fd1,#1f7ae5);-webkit-background-clip:text;background-clip:text;color:transparent} html[data-theme="light"] #hdr{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:0 8px 30px -18px rgba(20,40,90,.22)} html[data-theme="light"] .submenu{background:rgba(255,255,255,.98);box-shadow:0 30px 70px -25px rgba(20,40,90,.22)} html[data-theme="light"] .submenu a:hover{background:rgba(20,60,140,.07)} @media(max-width:860px){html[data-theme="light"] .nav-links{background:#fff}} html[data-theme="light"] .btn-primary{background:var(--navy);color:#fff} html[data-theme="light"] .btn-primary:hover{box-shadow:0 12px 30px rgba(31,122,229,.3)} html[data-theme="light"] .frow{background:#fff} html[data-theme="light"] .tbl th{background:#eef2f9} html[data-theme="light"] .form input,html[data-theme="light"] .form textarea{background:#fff} html[data-theme="light"] .store-badge{background:#fff} html[data-theme="light"] .store-badge:hover{background:#eef2f9} html[data-theme="light"] .marquee-wrap{background:rgba(20,50,110,.025);border-color:var(--line)} html[data-theme="light"] .marquee img{filter:brightness(0) saturate(0);opacity:.42;transition:opacity .3s} html[data-theme="light"] .marquee img:hover{opacity:.72} html[data-theme="light"] .orb.a{opacity:.15}html[data-theme="light"] .orb.b{opacity:.11}html[data-theme="light"] .orb.c{opacity:.09} html[data-theme="light"] #bgCanvas{display:none} html[data-theme="light"] .grain{opacity:.03} /* cinematic hero stays a dark island (keeps its light text correct) */ html[data-theme="light"] .chero{--bg:#04070f;--bg-2:#070b16;--surface:#0b1120;--surface-2:#0f1626;--text:#eef3fb;--muted:#93a4c2;--faint:#62718e;--line:rgba(120,160,255,.10);--line-strong:rgba(120,170,255,.22);--sky:#4fb8ff;--glow:rgba(31,122,229,.55);color:#eef3fb} html[data-theme="light"] .chero .grad{background:linear-gradient(120deg,#fff,#4fb8ff);-webkit-background-clip:text;background-clip:text;color:transparent} /* logo swap: white over dark hero/dark mode, navy only on light surfaces */ .logo img.logo-l{display:none} html[data-theme="light"] #hdr img.logo-d{display:none} html[data-theme="light"] #hdr img.logo-l{display:block} html[data-theme="light"] footer img.logo-d{display:none} html[data-theme="light"] footer img.logo-l{display:block} /* theme toggle */ .theme-toggle{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(120,170,255,.06);border:1px solid var(--line-strong);color:var(--muted);cursor:pointer;transition:color .2s,background .2s,transform .2s;flex:none;margin-left:4px} .theme-toggle:hover{color:var(--text);background:rgba(120,170,255,.12);transform:translateY(-1px)} .theme-toggle svg{width:18px;height:18px} .theme-toggle .ic-sun{display:none} html[data-theme="light"] .theme-toggle .ic-moon{display:none} html[data-theme="light"] .theme-toggle .ic-sun{display:block} /* keep nav CTA button text white (nav-link color rule was overriding it) */ .nav-links a.btn-glow{color:#fff} /* bottom CTA is a dark box -> keep its text light in light mode (dark island) */ html[data-theme="light"] .cta-box{--text:#eef3fb;--muted:#9fb2d4;color:#eef3fb} html[data-theme="light"] .cta-box h2{color:#fff} html[data-theme="light"] .cta-box .btn-primary{background:#fff;color:#06101f} /* product groups */ .prod-seg{margin-top:36px} .prod-seg:first-of-type{margin-top:0} .prod-glabel{font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:0 0 16px} .prod-grid.g-platform{grid-template-columns:1fr 1fr} .prod-grid.g3{grid-template-columns:repeat(3,1fr)} .prod-grid.g2x{grid-template-columns:repeat(2,1fr)} @media(max-width:860px){.prod-grid.g-platform,.prod-grid.g3,.prod-grid.g2x{grid-template-columns:1fr}} /* ===== product colour branding (homepage) ===== */ .prod-grid .card{--pc:#4f74a6;--pct:rgba(79,116,166,.16);border-top:4px solid var(--pc)} .prod-grid .card .ic{background:var(--pct);border:1px solid color-mix(in srgb,var(--pc) 38%,transparent)} .prod-grid .card .ic svg{stroke:var(--pc)} .prod-grid .phead{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap} .prod-grid .phead .ic{margin-bottom:0} .prod-grid .pbadge{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:#fff;background:var(--pc);padding:4px 11px;border-radius:999px;white-space:nowrap} .prod-grid .card .tag{background:var(--pc)!important;color:#fff!important;border:0!important} .prod-grid .card .more{color:var(--pc)} .prod-grid .card.module{--pc:#5a6b86;--pct:rgba(90,107,134,.12)} .prod-grid .card.module .pbadge{background:rgba(90,107,134,.16);color:var(--muted)} /* card logo lockups - aligned with navbar dropdown */ .prod-grid .phead .nv-lock{gap:10px} .prod-grid .nv-logo{height:18px} .prod-grid .nv-tag{font-size:10.5px;letter-spacing:.13em;padding:4px 11px;border-radius:7px;--tc:var(--pc)} .prod-grid .card.module .nv-tag{--tc:#9aa7bd} html[data-theme="light"] .prod-grid .card.module .nv-tag{--tc:#5f6c82} .prod-grid .card.span .phead{margin-bottom:18px} .prod-grid .card.span{display:grid;grid-template-columns:1.15fr .85fr;gap:38px;align-items:center} .span-left .card-inner{max-width:520px} .span-stats{display:grid;grid-template-columns:1fr 1fr;gap:13px} .sstat{background:var(--pct);border:1px solid color-mix(in srgb,var(--pc) 30%,transparent);border-radius:13px;padding:17px 18px} .sstat b{display:block;font-size:25px;font-weight:800;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.05} .sstat span{display:block;font-size:12.5px;color:var(--muted);margin-top:5px} /* ===== Products dropdown - Trivelta logo lockups ===== */ .submenu:has(.nv-lock){min-width:234px} .submenu a:has(.nv-lock){display:flex;align-items:center;padding-top:11px;padding-bottom:11px} .nv-lock{display:inline-flex;align-items:center;gap:9px} .nv-logo{height:14px;width:auto;display:block} .nv-lock .logo-l{display:none} html[data-theme="light"] .nv-lock .logo-d{display:none} html[data-theme="light"] .nv-lock .logo-l{display:block} .nv-tag{--tc:#4f74a6;font-size:9.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;line-height:1.35;white-space:nowrap;padding:3px 9px;border-radius:6px;color:color-mix(in srgb,var(--tc) 64%,#fff);background:color-mix(in srgb,var(--tc) 17%,transparent);border:1px solid color-mix(in srgb,var(--tc) 34%,transparent)} html[data-theme="light"] .nv-tag{color:color-mix(in srgb,var(--tc) 84%,#000);background:color-mix(in srgb,var(--tc) 11%,#fff);border-color:color-mix(in srgb,var(--tc) 30%,transparent)} .nv-tag.nv-mod{--tc:#9aa7bd} html[data-theme="light"] .nv-tag.nv-mod{--tc:#5f6c82} .submenu .nv-div{height:1px;background:var(--line-strong);margin:8px 10px 2px} .submenu .nv-hd{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);padding:7px 14px 5px} /* GLI certification badge (footer) */ .foot-cert{display:flex;align-items:center;justify-content:center} .gli-badge{display:inline-flex;align-items:stretch;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:12px 15px;box-shadow:0 16px 36px -18px rgba(0,0,0,.6);backdrop-filter:blur(4px)} .gli-badge .gli-main{display:flex;flex-direction:column;gap:7px;padding-right:15px;justify-content:center} .gli-badge .gli-logo{height:24px;width:auto;display:block} .gli-badge .gli-logo.logo-l{display:none} .gli-badge .gli-cert{font-size:13.5px;font-weight:700;letter-spacing:-.01em;color:#eaf2fc;border-top:1px solid rgba(255,255,255,.12);padding-top:7px} .gli-badge .gli-cert span{font-weight:600;color:#5fa8ec;margin-left:4px} .gli-badge .gli-shield{display:flex;align-items:center;padding-left:15px;border-left:1px solid rgba(255,255,255,.12)} .gli-badge .gli-sq{width:42px;height:42px;border-radius:12px;background:rgba(47,126,216,.18);color:#7fb6ec;display:grid;place-items:center} .gli-badge .gli-sq svg{width:22px;height:22px} html[data-theme=
Headquarters
San Francisco, CA
Company Size
201-500 employees
Founded
2018
Industry
Technology
Glassdoor Rating
4.2 / 5
Sarah Johnson
Chief Executive Officer
Michael Chen
Chief Technology Officer
Emily Williams
VP of Engineering
David Rodriguez
VP of Product
Jessica Thompson
Chief Financial Officer
Andrew Park
VP of Sales
View leadership team, funding history,
and employee contacts for Trivelta.
Trivelta didn’t post a salary, so this is our estimate from similar listings.
25% below the average for this role