About Trivelta
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=

