/* 3.0: voodoocommunity.com public pages (home, sign up, log in) in Voodoo Pay's colours, fonts and motion.
   Only transform/opacity animate, so phones stay smooth; everything stops for reduced motion. */
.vpx{
  --ink:#0B0A14;--ink2:#12101F;--ink3:#1A1730;--text:#F4F2FF;--muted:#A39FBF;--faint:#6E6A8A;
  --violet:#8C6CFF;--magenta:#FF4FB8;--lime:#D4FF3A;--lime-ink:#151A00;--okc:#4DFFB0;--warnc:#FFC94D;
  --tx:var(--text);--mu:var(--muted);--acc:var(--violet);--acc2:#b9a6ff;--acc3:var(--magenta);--line:#2a2545;--s1:var(--ink2);--s2:var(--ink3);
  --fd:'Unbounded','Sora',system-ui,sans-serif;--fb:'Manrope','DM Sans',system-ui,sans-serif;--fm:'JetBrains Mono',ui-monospace,Menlo,monospace;
  background:var(--ink);background-image:none;color:var(--text);font-family:var(--fb);overflow-x:hidden}
.vpx h1,.vpx h2,.vpx h3{font-family:var(--fd);font-weight:700;letter-spacing:-.02em}
.vpx a{color:#c9b9ff}
.vpx main{position:relative;z-index:1;padding-top:8px}
html:has(body.vpx){overflow-x:clip}

/* ---- the moving background (fixed, behind everything) */
.vx-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.vx-bg i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform}
.vx-bg .b1{width:62vmax;height:62vmax;left:-22vmax;top:-26vmax;background:radial-gradient(circle,#8C6CFF 0%,transparent 62%);animation:vx-drift1 22s ease-in-out infinite alternate}
.vx-bg .b2{width:54vmax;height:54vmax;right:-24vmax;top:18vh;background:radial-gradient(circle,#FF4FB8 0%,transparent 60%);opacity:.38;animation:vx-drift2 26s ease-in-out infinite alternate}
.vx-bg .b3{width:40vmax;height:40vmax;left:20vw;bottom:-22vmax;background:radial-gradient(circle,#5b3cff 0%,transparent 62%);opacity:.4;animation:vx-drift1 30s ease-in-out infinite alternate-reverse}
.vx-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 30%,transparent 75%)}
@keyframes vx-drift1{to{transform:translate3d(12vw,10vh,0) scale(1.1)}}
@keyframes vx-drift2{to{transform:translate3d(-10vw,-8vh,0) scale(.92)}}

/* ---- nav + footer on these pages */
.vpx .nav{position:relative;z-index:2}
.vpx .brand{color:var(--text);font-family:var(--fd);font-weight:600;font-size:15px;letter-spacing:-.01em}
.vpx .btn{font-family:var(--fb);font-weight:800;border-radius:14px;background:var(--lime);color:var(--lime-ink);box-shadow:0 8px 30px -10px rgba(212,255,58,.55);position:relative;overflow:hidden;isolation:isolate}
.vpx .btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);animation:vx-sweep 4.5s ease-in-out infinite}
.vpx .btn.ghost{background:rgba(255,255,255,.05);color:var(--text);border:1px solid rgba(255,255,255,.12);box-shadow:none}
.vpx .btn.ghost::after{display:none}
.vpx .btn:hover{transform:translateY(-1px)}
.vpx .btn{transition:transform .2s}
@keyframes vx-sweep{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.vpx .site-foot{position:relative;z-index:1;border-top-color:rgba(255,255,255,.08);background:rgba(11,10,20,.6)}
.vpx label{font-family:var(--fm);font-weight:500;font-size:11px;letter-spacing:.12em;color:var(--muted)}
.vpx input,.vpx select,.vpx textarea{background:rgba(11,10,20,.7);border:1px solid rgba(255,255,255,.1);border-radius:14px;color:var(--text);font-family:var(--fb);transition:border-color .2s,box-shadow .2s}
.vpx input:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 4px rgba(140,108,255,.18)}
.vpx :focus-visible{outline-color:var(--lime)}

/* ---- shared bits */
.vx-pill{display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 11px;border-radius:99px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  font:500 11px/1.2 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.vx-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--okc);box-shadow:0 0 10px rgba(77,255,176,.8);animation:vx-blink 2.4s ease-in-out infinite}
@keyframes vx-blink{50%{opacity:.25}}
.vx-kick{display:inline-flex;align-items:center;gap:8px;font:500 11.5px var(--fm);letter-spacing:.16em;text-transform:uppercase;color:var(--lime)}
.vx-kick svg{width:15px;height:15px}
.vx-grad{background:linear-gradient(100deg,#F4F2FF 10%,#b9a6ff 40%,var(--magenta) 75%);-webkit-background-clip:text;background-clip:text;color:transparent}
.vx-lime{color:var(--lime)}
.vx-sec{position:relative;padding-block:64px}
.vx-head{max-width:680px;margin:0 auto 34px;text-align:center}
.vx-head h2{font-size:clamp(26px,6vw,46px);line-height:1.08;margin:14px 0 14px}
.vx-head p{color:var(--muted);font-size:17px;margin:0}
.vbtn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:15px 22px;border-radius:16px;font:800 15.5px var(--fb);text-decoration:none;position:relative;overflow:hidden;isolation:isolate;transition:transform .2s}
.vbtn svg{width:18px;height:18px}
.vbtn.lime{background:var(--lime);color:var(--lime-ink);box-shadow:0 14px 40px -12px rgba(212,255,58,.7)}
.vbtn.lime::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.6) 50%,transparent 70%);transform:translateX(-120%);animation:vx-sweep 4.5s ease-in-out infinite}
.vbtn.ghost{background:rgba(255,255,255,.05);color:var(--text);border:1px solid rgba(255,255,255,.14)}
.vbtn.violet{background:linear-gradient(135deg,var(--violet),var(--magenta));color:#fff}
.vbtn:hover{transform:translateY(-2px)}
.vbtn .arr{transition:transform .2s}.vbtn:hover .arr{transform:translateX(3px)}
.glass{background:linear-gradient(170deg,rgba(26,23,48,.82),rgba(18,16,31,.82));border:1px solid rgba(255,255,255,.08);border-radius:24px}

/* ---- the V orbit (same motion as the Voodoo Pay site) */
.vx-orbit{position:absolute;left:50%;top:50%;width:var(--o,520px);height:var(--o,520px);margin:calc(var(--o,520px) / -2);pointer-events:none}
.vx-orbit svg{position:absolute;overflow:visible;will-change:transform}
.vx-orbit circle{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}
.vx-orbit .r1{inset:15%;width:70%;height:70%;animation:vx-spin 34s linear infinite}
.vx-orbit .r1 circle{stroke:#a08bff;stroke-width:1.5px;opacity:.6}
.vx-orbit .r2{inset:0;width:100%;height:100%;animation:vx-spin 50s linear infinite reverse}
.vx-orbit .r2 circle{stroke:var(--lime);stroke-width:1.3px;opacity:.4}
.vx-sat{position:absolute;inset:0;will-change:transform;animation:vx-spin 14s linear infinite}
.vx-sat i{position:absolute;left:50%;top:0;width:13px;height:13px;margin:-6.5px;border-radius:50%;background:var(--lime);box-shadow:0 0 16px rgba(212,255,58,.8)}
.vx-sat.s2{inset:15%;animation:vx-spin 21s linear infinite reverse}
.vx-sat.s2 i{width:10px;height:10px;margin:-5px;background:var(--magenta);box-shadow:0 0 14px rgba(255,79,184,.85)}
.vx-sat.s3{animation-duration:26s;animation-delay:-9s}
.vx-sat.s3 i{width:6px;height:6px;margin:-3px;background:#fff;box-shadow:0 0 10px #fff}
@keyframes vx-spin{to{transform:rotate(360deg)}}
.vx-v{position:relative;display:grid;place-items:center;width:var(--v,96px);height:var(--v,96px);border-radius:50%;flex:none;
  background:radial-gradient(circle at 35% 28%,#2a2350 0%,#14112A 70%);
  box-shadow:0 0 0 1.5px rgba(160,139,255,.55),0 18px 50px -12px rgba(140,108,255,.9),0 0 90px -10px rgba(255,79,184,.5),inset 0 1px 0 rgba(255,255,255,.12)}
.vx-v img{width:62%;height:62%;display:block;filter:drop-shadow(0 4px 14px rgba(192,77,255,.55))}

/* =========================================================== home page */
.vx-hero{position:relative;display:grid;gap:34px;align-items:center;padding-block:22px 30px}
.vx-h1{font-size:clamp(36px,10.4vw,72px);line-height:1.02;margin:18px 0 18px;font-weight:800}
.vx-rot{display:inline-grid;vertical-align:baseline;white-space:nowrap}
.vx-rot-in{display:contents}
/* 4.0: every word sits in the same spot and fades in on its turn, so two words never overlap or peek */
.vx-rot-in b{grid-area:1/1;font-weight:800;color:var(--lime);opacity:0;animation:vx-word 12.5s ease-in-out infinite both}
.vx-rot-in b:nth-child(1){animation-delay:-.6s}.vx-rot-in b:nth-child(2){animation-delay:1.9s}
.vx-rot-in b:nth-child(3){animation-delay:4.4s}.vx-rot-in b:nth-child(4){animation-delay:6.9s}.vx-rot-in b:nth-child(5){animation-delay:9.4s}
@keyframes vx-word{0%{opacity:0;transform:translateY(.25em)}5%,17%{opacity:1;transform:none}21%,100%{opacity:0;transform:translateY(-.25em)}}
.vx-lead{font-size:clamp(16.5px,2.3vw,19px);color:var(--muted);max-width:40ch;margin:0 0 26px;line-height:1.6}
.vx-lead b{color:var(--text);font-weight:700}
.vx-cta{display:flex;flex-wrap:wrap;gap:12px}
.vx-trust{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.vx-trust li{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);font-size:13px;font-weight:600}
.vx-trust svg{width:15px;height:15px;color:var(--lime)}
.vx-hero-copy>*{animation:vx-rise .8s cubic-bezier(.2,.8,.2,1) both}
.vx-hero-copy>:nth-child(2){animation-delay:.08s}.vx-hero-copy>:nth-child(3){animation-delay:.16s}.vx-hero-copy>:nth-child(4){animation-delay:.24s}.vx-hero-copy>:nth-child(5){animation-delay:.32s}
@keyframes vx-rise{from{opacity:0;transform:translateY(22px)}}

/* hero stage: the orbit, three phones and floating chips */
.vx-stage{position:relative;height:clamp(470px,128vw,640px);max-width:560px;width:100%;margin:0 auto;--o:min(118vw,600px)}
.vx-stage .vx-orbit{top:46%}
.vx-phone{margin:0;border-radius:34px;padding:7px;background:linear-gradient(160deg,#3b3166,#12101F 55%,#2b2150);box-shadow:0 34px 90px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08),0 0 70px -10px rgba(140,108,255,.5)}
.vx-phone img{display:block;width:100%;height:auto;border-radius:28px}
.vx-stage .vx-phone{position:absolute;left:50%;top:6%;width:min(52%,270px);will-change:transform}
.vx-stage .p-main{z-index:3;transform:translateX(-50%);animation:vx-float 7s ease-in-out infinite}
.vx-stage .p-left,.vx-stage .p-right{z-index:1;width:min(42%,220px);top:14%;opacity:.9}
.vx-stage .p-left{transform:translateX(-112%) rotate(-8deg);animation:vx-float-l 8s ease-in-out infinite}
.vx-stage .p-right{transform:translateX(12%) rotate(8deg);animation:vx-float-r 9s ease-in-out infinite}
@keyframes vx-float{50%{transform:translateX(-50%) translateY(-12px)}}
@keyframes vx-float-l{50%{transform:translateX(-112%) translateY(10px) rotate(-6deg)}}
@keyframes vx-float-r{50%{transform:translateX(12%) translateY(-8px) rotate(10deg)}}
.vx-chip{position:absolute;z-index:4;display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:14px;font-size:12.5px;font-weight:700;white-space:nowrap;
  background:rgba(18,16,31,.92);border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 40px rgba(0,0,0,.45);will-change:transform}
.vx-chip svg{width:16px;height:16px;flex:none}
.vx-chip small{display:block;font:500 10.5px var(--fm);color:var(--muted);letter-spacing:.04em}
.vx-chip .ic{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;flex:none}
.c-url{left:0;top:3%;font-family:var(--fm);font-weight:500;animation:vx-bob 6s ease-in-out infinite}
.c-url svg{color:var(--okc)}
.c-push{right:0;top:38%;animation:vx-bob 7s ease-in-out -2s infinite}
.c-push .ic{background:linear-gradient(135deg,var(--violet),var(--magenta));color:#fff}
.c-lock{left:2%;bottom:16%;animation:vx-bob 8s ease-in-out -4s infinite}
.c-lock .ic{background:rgba(212,255,58,.14);color:var(--lime)}
.c-upd{right:4%;bottom:5%;animation:vx-bob 6.5s ease-in-out -1s infinite}
.c-upd .ic{background:rgba(77,255,176,.14);color:var(--okc)}
@keyframes vx-bob{50%{transform:translateY(-10px)}}

/* marquee band */
.vx-band{position:relative;z-index:1;margin:6px calc(50% - 50vw) 0;width:100vw;overflow:hidden;border-block:1px solid rgba(255,255,255,.07);background:rgba(18,16,31,.6);padding:15px 0}
.vx-band-track{display:flex;width:max-content;animation:vx-marq 38s linear infinite}
.vx-band span{font:500 12.5px var(--fm);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:0 18px;white-space:nowrap}
.vx-band span.s{color:var(--lime);padding:0}
@keyframes vx-marq{to{transform:translateX(-50%)}}

/* control cards */
.vx-ctrl{display:grid;gap:16px}
.vx-cc{position:relative;padding:22px;overflow:hidden}
.vx-cc h3{font-size:20px;margin:16px 0 8px}
.vx-cc p{color:var(--muted);font-size:15px;margin:0}
.vx-cc .num{position:absolute;right:18px;top:14px;font:700 13px var(--fm);color:var(--faint)}
.vx-mock{border-radius:16px;background:rgba(11,10,20,.85);border:1px solid rgba(255,255,255,.08);padding:12px;min-height:150px;position:relative;overflow:hidden}
/* 1: the address bar types your domain */
.vx-urlbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);font:500 13.5px var(--fm)}
.vx-urlbar svg{width:15px;height:15px;color:var(--okc);flex:none}
.vx-type{display:inline-block;overflow:hidden;white-space:nowrap;width:0;border-right:2px solid var(--lime);animation:vx-typing 7s steps(14) infinite,vx-caret .8s step-end infinite;max-width:14ch}
@keyframes vx-typing{0%,6%{width:0}40%,82%{width:14ch}96%,100%{width:0}}
@keyframes vx-caret{50%{border-color:transparent}}
.vx-site{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;margin-top:14px}
.vx-site .vx-v{--v:40px;box-shadow:0 8px 24px -8px rgba(140,108,255,.9)}
.vx-site b{font:700 14px var(--fd)}
.vx-site span{display:block;font-size:12px;color:var(--okc)}
.vx-bars{display:grid;gap:7px;margin-top:14px}
.vx-bars i{height:9px;border-radius:6px;background:rgba(255,255,255,.07);transform-origin:left;animation:vx-grow 7s ease-out infinite}
.vx-bars i:nth-child(2){width:78%;animation-delay:.2s}.vx-bars i:nth-child(3){width:56%;animation-delay:.4s}
@keyframes vx-grow{0%,40%{transform:scaleX(0)}55%,100%{transform:scaleX(1)}}
/* 2: the terminal installs it */
.vx-term{font:500 12.5px/1.75 var(--fm);color:#cfc8ef}
.vx-term .dots{display:flex;gap:6px;margin-bottom:8px}.vx-term .dots i{width:9px;height:9px;border-radius:50%;background:#ff5c7a}.vx-term .dots i+i{background:#ffc94d}.vx-term .dots i+i+i{background:#4dffb0}
.vx-term p{margin:0;opacity:0;animation:vx-line 9s ease-out infinite;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vx-term p .ok{color:var(--okc)}.vx-term p .pr{color:var(--lime)}
.vx-term p:nth-child(2){animation-delay:0s}.vx-term p:nth-child(3){animation-delay:.9s}.vx-term p:nth-child(4){animation-delay:1.6s}
.vx-term p:nth-child(5){animation-delay:2.3s}.vx-term p:nth-child(6){animation-delay:3s}.vx-term p:nth-child(7){animation-delay:3.8s}
@keyframes vx-line{0%{opacity:0;transform:translateY(4px)}6%,80%{opacity:1;transform:none}92%,100%{opacity:0}}
/* 3: your app on their home screen, with a push */
.vx-home{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:30px 8px 6px;justify-items:center}
.vx-home i{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.08)}
.vx-home i.me{background:radial-gradient(circle at 35% 28%,#2a2350,#14112A 70%);display:grid;place-items:center;
  box-shadow:0 0 0 2px var(--lime),0 8px 22px -6px rgba(140,108,255,.9);animation:vx-pop 6s cubic-bezier(.2,1.4,.4,1) infinite}
@keyframes vx-pop{0%,8%{transform:scale(0)}18%,100%{transform:scale(1)}}
.vx-notif{position:absolute;left:10px;right:10px;top:8px;display:flex;gap:10px;align-items:center;padding:9px 11px;border-radius:13px;background:rgba(40,36,66,.97);border:1px solid rgba(255,255,255,.12);
  font-size:12px;animation:vx-push 6s cubic-bezier(.2,.9,.3,1) infinite;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.vx-notif .vx-v{--v:26px;box-shadow:0 0 0 1px rgba(160,139,255,.5)}
.vx-home i.me img{width:66%;height:66%}
.vx-notif b{display:block;font-size:12px}.vx-notif span{color:var(--muted)}
@keyframes vx-push{0%,30%{transform:translateY(-130%);opacity:0}38%,85%{transform:none;opacity:1}95%,100%{transform:translateY(-130%);opacity:0}}
.vx-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.vx-tags span{font:500 10.5px var(--fm);letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:99px;border:1px solid rgba(255,255,255,.12);color:var(--muted)}

/* security grid */
.vx-sgrid{display:grid;grid-template-columns:1fr;gap:12px}
.vx-si{display:flex;gap:14px;align-items:flex-start;padding:18px}
.vx-si .ic{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;flex:none;background:rgba(140,108,255,.14);color:#c4b5ff}
.vx-si .ic svg{width:21px;height:21px}
.vx-si b{display:block;font:700 15.5px var(--fd);margin-bottom:4px;letter-spacing:-.01em}
.vx-si span{color:var(--muted);font-size:14.5px}
.vx-note{max-width:640px;margin:18px auto 0;text-align:center;font-size:13px;color:var(--faint)}

/* styles: numbers + a moving strip of real styles */
.vx-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:860px;margin:0 auto 30px}
.vx-stat{padding:18px 14px;text-align:center}
.vx-stat b{display:block;font:800 clamp(30px,8vw,44px)/1 var(--fd);background:linear-gradient(120deg,#fff,#c4b5ff 50%,var(--magenta));-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.vx-stat span{display:block;margin-top:8px;font:500 11px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.vx-strip{margin:0 calc(50% - 50vw);width:100vw;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.vx-strip-track{display:flex;gap:18px;width:max-content;padding:10px 0 20px;animation:vx-marq 60s linear infinite}
.vx-strip .vx-phone{width:168px;padding:5px;border-radius:26px;flex:none}
.vx-strip .vx-phone img{border-radius:21px}
.vx-strip figcaption{text-align:center;font:500 11px var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 0 2px}


/* features */
.vx-fgrid{display:grid;grid-template-columns:1fr;gap:10px}
.vx-f{display:grid;grid-template-columns:auto 1fr;gap:4px 13px;padding:15px 16px;align-items:start;transition:transform .25s,border-color .25s}
.vx-f svg{grid-row:span 2;width:22px;height:22px;color:var(--lime);margin-top:2px}
.vx-f b{font-size:15px;font-weight:800}
.vx-f span{color:var(--muted);font-size:14px;line-height:1.5}
.vx-f:hover{transform:translateY(-3px);border-color:rgba(140,108,255,.45)}

/* steps */
.vx-steps{list-style:none;padding:0;margin:0;display:grid;gap:14px;counter-reset:s;position:relative}
.vx-steps li{position:relative;padding:22px 20px 20px 78px}
.vx-steps li::before{counter-increment:s;content:"0" counter(s);position:absolute;left:18px;top:20px;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;
  font:800 15px var(--fd);color:var(--lime-ink);background:var(--lime);box-shadow:0 10px 30px -10px rgba(212,255,58,.8)}
.vx-steps b{display:block;font:700 17px var(--fd);margin-bottom:6px}
.vx-steps p{margin:0;color:var(--muted);font-size:15px}

/* guide + final call */
.vx-guide{display:grid;gap:18px;align-items:center;padding:24px}
.vx-guide .ic{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:rgba(212,255,58,.12);color:var(--lime)}
.vx-guide .ic svg{width:28px;height:28px}
.vx-guide h3{font-size:21px;margin:10px 0 8px}.vx-guide p{margin:0;color:var(--muted);font-size:15px}
.vx-final{position:relative;overflow:hidden;text-align:center;padding:90px 22px;border-radius:30px;margin-top:20px;--o:560px}
.vx-final .vx-orbit{opacity:.75}
.vx-final>*:not(.vx-orbit){position:relative;z-index:1}
.vx-final .vx-v{--v:82px;margin:0 auto 26px}
.vx-final h2{font-size:clamp(30px,7.5vw,54px);line-height:1.05;margin:0 0 14px}
.vx-final p{color:var(--muted);font-size:17px;margin:0 0 28px}
.vx-final .vx-cta{justify-content:center}

/* things that appear as you scroll (only those not already on screen) */
.rv-wait{opacity:0;transform:translateY(28px)}
.rv-in{opacity:1;transform:none;transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}

/* =========================================================== sign up / log in */
.vx-auth{position:relative;display:grid;gap:22px;max-width:1040px;margin:4px auto 0;align-items:center}
.vx-pitch{position:relative;text-align:center}
.vx-pitch .vx-badge{position:relative;width:150px;height:150px;margin:0 auto 6px;display:grid;place-items:center;--o:150px}
.vx-pitch .vx-badge .vx-v{--v:64px;position:relative;z-index:1;animation:vx-rise .8s cubic-bezier(.2,1.3,.4,1) both}
.vx-pitch h1{font-size:clamp(30px,8.4vw,48px);line-height:1.05;margin:14px 0 10px;font-weight:800}
.vx-pitch>p{color:var(--muted);font-size:16px;margin:0 auto;max-width:38ch}
.vx-perks{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.vx-perks li{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);font-size:13px;font-weight:700;animation:vx-rise .7s both}
.vx-perks li:nth-child(2){animation-delay:.08s}.vx-perks li:nth-child(3){animation-delay:.16s}.vx-perks li:nth-child(4){animation-delay:.24s}.vx-perks li:nth-child(5){animation-delay:.32s}
.vx-perks svg{width:15px;height:15px;color:var(--lime)}
.vx-perks small{display:none}
.vx-formcard{position:relative;border-radius:26px;padding:1.5px;background:linear-gradient(135deg,rgba(140,108,255,.9),rgba(255,255,255,.08) 40%,rgba(255,79,184,.85));
  box-shadow:0 30px 80px -20px rgba(140,108,255,.55);animation:vx-rise .8s .1s cubic-bezier(.2,.8,.2,1) both}
.vx-formcard>.in{border-radius:24.5px;padding:24px 20px;background:linear-gradient(170deg,#1A1730,#12101F 70%)}
.vx-formcard h2{font-size:20px;margin:0 0 4px}
.vx-formcard .sub{color:var(--muted);font-size:14px;margin:0 0 20px}
.vx-formcard .field{margin-bottom:14px}
.vx-formcard input{padding:14px 15px}
.vx-auth>*{min-width:0}
.vpx .vx-agree{display:flex;align-items:center;gap:9px;margin:4px 0 18px;font:500 12.5px/1.3 var(--fb);letter-spacing:0;text-transform:none;color:var(--muted);white-space:nowrap}
.vpx .vx-agree input{width:17px;height:17px;margin:0;flex:none;accent-color:var(--lime);padding:0}
.vx-agree a{color:#d6ccff;font-weight:700}
.vx-formcard .btn{width:100%;padding:15px 20px;font-size:16px}
.vx-formcard .alt{margin:16px 0 0;text-align:center;font-size:14px;color:var(--muted)}
.vx-formcard .alt a{color:var(--lime);font-weight:700;text-decoration:none}
.vx-secure{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;font:500 10.5px var(--fm);letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.vx-secure svg{width:13px;height:13px;color:var(--okc)}
.vpx .auth{position:relative;z-index:1}
.vpx .auth .card{background:linear-gradient(170deg,#1A1730,#12101F 70%);border:1px solid rgba(255,255,255,.1);border-radius:24px;box-shadow:0 30px 80px -20px rgba(140,108,255,.45)}
.vpx .auth h1{font-weight:800}

/* =========================================================== bigger screens */
@media (min-width:720px){
  .vx-ctrl{grid-template-columns:repeat(3,1fr)}
  .vx-sgrid{grid-template-columns:repeat(2,1fr)}
  .vx-stats{grid-template-columns:repeat(4,1fr)}
  .vx-fgrid{grid-template-columns:repeat(2,1fr)}
  .vx-steps{grid-template-columns:repeat(3,1fr)}
  .vx-steps li{padding:84px 22px 24px}
  .vx-steps li::before{top:22px;left:22px}
  .vx-guide{grid-template-columns:auto 1fr auto}
  .vx-strip .vx-phone{width:200px}
}
@media (min-width:960px){
  .vx-hero{grid-template-columns:1.05fr 1fr;padding-block:40px 40px}
  .vx-h1{font-size:clamp(48px,5.2vw,66px)}
  .vx-sgrid{grid-template-columns:repeat(3,1fr)}
  .vx-fgrid{grid-template-columns:repeat(3,1fr)}
  .vx-auth{grid-template-columns:1.1fr 1fr;gap:56px;margin-top:30px}
  .vx-pitch{text-align:left}
  .vx-pitch .vx-badge{margin:0 0 6px -10px}
  .vx-pitch>p{margin:0}
  .vx-perks{flex-direction:column;align-items:flex-start;gap:12px;margin-top:26px}
  .vx-perks li{background:none;border:0;padding:0;font-size:15px;align-items:flex-start;gap:12px}
  .vx-perks li svg{width:20px;height:20px;margin-top:2px}
  .vx-perks small{display:block;font-weight:500;color:var(--muted);font-size:14px}
  .vx-formcard>.in{padding:32px 30px}
}
@media (max-width:380px){
  .vpx .vx-agree{font-size:12px;gap:7px}
  .vx-chip{font-size:11.5px;padding:8px 10px}
}

/* =========================================================== calm when asked */
@media (prefers-reduced-motion:reduce){
  .vpx *,.vpx *::before,.vpx *::after{animation:none!important;transition:none!important}
  .vx-type{width:14ch}
  .vx-term p,.vx-notif{opacity:1;transform:none}
  .vx-rot-in b:not(:first-child){display:none}
  .vx-rot-in b:first-child{opacity:1}
  .rv-wait{opacity:1;transform:none}
}

/* 3.0: footer on these pages */
.vpx .site-foot{background:linear-gradient(180deg,rgba(11,10,20,0),rgba(18,16,31,.92) 30%);border-top:1px solid rgba(255,255,255,.07)}
.vpx .sf-top,.vpx .sf-bottom{border-color:rgba(255,255,255,.08)}
.vpx .sf-cols h4{font-family:var(--fm);font-weight:500;color:var(--lime)}
.vpx .sf-cols a{color:var(--muted)}
.vpx .sf-cols a:hover{color:var(--text)}
.vpx .sf-tags i{font-family:var(--fm);font-weight:500;border-color:rgba(255,255,255,.12)}
.vpx .sf-brand{color:var(--text)}
.vpx .sf-disclaimer{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.025)}
.vpx .sf-disclaimer b{font-family:var(--fm);font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-size:11px;color:var(--lime);margin-right:4px}

/* =========================================================== 3.0: every other main-site page (dashboard, community, account, store, legal) */
.vpx main.wrap>h1,.vpx .head-row h1,.vpx .legal h1{font-size:clamp(26px,6.4vw,40px);font-weight:800;line-height:1.08;margin:6px 0 8px}
.vpx main.wrap>h1+.mute,.vpx .head-row .mute{font-size:15.5px}
.vpx .card{background:linear-gradient(170deg,rgba(26,23,48,.86),rgba(18,16,31,.86));border:1px solid rgba(255,255,255,.08);border-radius:22px}
.vpx a.card{display:block;text-decoration:none;color:var(--text);transition:transform .2s,border-color .2s}
.vpx a.card:hover{transform:translateY(-3px);border-color:rgba(140,108,255,.5)}
.vpx .card h3{font-size:17px;margin-bottom:6px}
.vpx .sec{font:500 11px var(--fm);letter-spacing:.16em;color:var(--lime);margin:34px 0 12px}
.vpx .pill{font:500 10.5px var(--fm);letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;background:rgba(255,255,255,.06);color:#c9b9ff}
.vpx .pill.ok{background:rgba(77,255,176,.12);color:var(--okc)}.vpx .pill.warn{background:rgba(255,201,77,.12);color:var(--warnc)}.vpx .pill.bad{background:rgba(255,92,122,.12);color:#FF5C7A}
.vpx .alert{border-radius:16px;background:rgba(26,23,48,.85);border-color:rgba(255,255,255,.1)}
.vpx .alert.ok{border-color:rgba(77,255,176,.35);color:var(--okc)}.vpx .alert.err{border-color:rgba(255,92,122,.4);color:#FF7A92}
.vpx .stat b{font-family:var(--fd);font-weight:700}
.vpx .stat span{font:500 10.5px var(--fm);letter-spacing:.12em;text-transform:uppercase}
.vpx .tablewrap{background:rgba(18,16,31,.85);border-color:rgba(255,255,255,.08);border-radius:18px}
.vpx th{font-family:var(--fm);font-weight:500;letter-spacing:.12em}
.vpx td{border-top-color:rgba(255,255,255,.06)}
.vpx pre,.vpx code{font-family:var(--fm);background:rgba(11,10,20,.8);border-color:rgba(255,255,255,.1)}
.vpx pre{border-radius:14px}
.vpx details{border-top-color:rgba(255,255,255,.07)}
.vpx .summary-btn{width:100%;justify-content:flex-start;background:rgba(255,255,255,.04)}
.vpx details[open]>.summary-btn{border-color:rgba(212,255,58,.35);color:var(--lime)}
.vpx .steps li::marker{color:var(--lime);font-family:var(--fm)}
.vpx .codes{font-family:var(--fm);background:rgba(11,10,20,.8);border:1px solid rgba(255,255,255,.1)}
.vpx .legal{background:linear-gradient(170deg,rgba(26,23,48,.8),rgba(18,16,31,.8));border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:26px 22px}
.vpx .legal h2,.vpx .legal h3{font-weight:700}
.vpx .legal h2{font-size:22px}.vpx .legal h3{font-size:16px}
.vpx .legal p,.vpx .legal li{color:#cfcae6}
.vpx .who{font-family:var(--fm);font-size:12px}
.vx-pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin:6px 0 22px}
.vx-pagehead h1{font-size:clamp(26px,6.4vw,40px);font-weight:800;line-height:1.08;margin:12px 0 6px}
.vx-pagehead p{margin:0;color:var(--muted)}
.vx-comms{display:grid;gap:12px}
.vx-comm{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px 18px}
.vx-comm .vx-v{--v:46px}
.vx-comm h3{margin:0 0 3px;font-size:16px}
.vx-comm .dom{font:500 12.5px var(--fm);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vx-comm .go{color:var(--lime);font-size:20px}
.vx-new{display:grid;gap:4px}
@media(min-width:720px){.vx-comms{grid-template-columns:repeat(2,1fr)}}
.vpx .nf{text-align:center;padding:80px 0}
.vx-comm-in{min-width:0}
.nf-logo{margin:0 auto 22px}
.nf-title{font-size:clamp(28px,7vw,44px);font-weight:800;margin:16px 0 10px}
.nf-go{margin-top:24px}
.vpx .nf .mute{margin:0}
.vpx a.card.vx-comm{display:grid}

/* =========================================================== 3.1.18: a home for every community */
a.vx-pill{color:var(--text);text-decoration:none}
a.vx-pill:hover{border-color:rgba(212,255,58,.4)}
.vx-tin{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.vx-ttabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 2px 18px;margin:0 -2px;justify-content:flex-start;scroll-snap-type:x proximity}
.vx-ttabs::-webkit-scrollbar{display:none}
.vx-ttabs label{flex:none;cursor:pointer;scroll-snap-align:start;padding:10px 16px;border-radius:99px;font:700 14px var(--fb);color:var(--muted);
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);transition:background .2s,color .2s,border-color .2s}
.vx-ttabs label:hover{color:var(--text);border-color:rgba(255,255,255,.22)}
.vx-tp{display:none;gap:28px;align-items:center}
#vxt-gaming:checked~.vx-tpanels .p-gaming,#vxt-sport:checked~.vx-tpanels .p-sport,#vxt-tv:checked~.vx-tpanels .p-tv,
#vxt-lifestyle:checked~.vx-tpanels .p-lifestyle,#vxt-prizes:checked~.vx-tpanels .p-prizes{display:grid;animation:vx-tin .45s cubic-bezier(.2,.8,.3,1)}
#vxt-gaming:checked~.vx-ttabs .t-gaming,#vxt-sport:checked~.vx-ttabs .t-sport,#vxt-tv:checked~.vx-ttabs .t-tv,
#vxt-lifestyle:checked~.vx-ttabs .t-lifestyle,#vxt-prizes:checked~.vx-ttabs .t-prizes{background:var(--lime);color:var(--lime-ink);border-color:transparent;box-shadow:0 8px 26px -10px rgba(212,255,58,.7)}
#vxt-gaming:focus-visible~.vx-ttabs .t-gaming,#vxt-sport:focus-visible~.vx-ttabs .t-sport,#vxt-tv:focus-visible~.vx-ttabs .t-tv,
#vxt-lifestyle:focus-visible~.vx-ttabs .t-lifestyle,#vxt-prizes:focus-visible~.vx-ttabs .t-prizes{outline:2px solid var(--lime);outline-offset:3px}
@keyframes vx-tin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.vx-tp .vx-phone{width:min(76%,290px);margin:0 auto;position:relative}
.vx-tp .vx-phone img{display:block;width:100%;height:auto;border-radius:28px}
.vx-tcopy h3{font-size:clamp(24px,5.4vw,34px);line-height:1.1;margin:14px 0 10px}
.vx-tcopy p{color:var(--muted);font-size:16.5px;margin:0 0 18px}
.vx-tcopy ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.vx-tcopy li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;color:#dcd8f2}
.vx-tcopy li svg{width:20px;height:20px;flex:none;margin-top:1px;color:var(--lime)}
.vx-tname{display:inline-flex;align-items:center;gap:8px;font:500 11px var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  padding:6px 12px;border-radius:99px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.vx-tname i{width:8px;height:8px;border-radius:50%;background:var(--okc);box-shadow:0 0 10px rgba(77,255,176,.8)}
.vx-also{margin:40px auto 0;max-width:860px;text-align:center}
.vx-also b{display:block;font:700 16px var(--fd);margin-bottom:14px}
.vx-also div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.vx-also span{padding:8px 14px;border-radius:99px;font-size:14px;color:#dcd8f2;background:rgba(140,108,255,.1);border:1px solid rgba(140,108,255,.25)}
.vx-also p{color:var(--muted);font-size:15px;margin:16px 0 0}

/* your keys */
.vx-keys{display:grid;gap:22px;align-items:center;padding:26px 22px;margin:0 auto 18px;max-width:980px;
  background:radial-gradient(90% 120% at 0% 0%,rgba(212,255,58,.12),transparent 60%),linear-gradient(170deg,rgba(26,23,48,.9),rgba(18,16,31,.9));border-color:rgba(212,255,58,.22)}
.vx-keys h3{font-size:clamp(22px,5vw,30px);margin:0 0 8px}
.vx-keys p{color:var(--muted);margin:0 0 16px;font-size:16px}
.vx-keyart{position:relative;width:120px;height:120px;margin:0 auto;display:grid;place-items:center}
.vx-keyart .k{width:74px;height:74px;border-radius:24px;display:grid;place-items:center;background:var(--lime);color:var(--lime-ink);box-shadow:0 14px 40px -10px rgba(212,255,58,.8);position:relative;z-index:1}
.vx-keyart .k svg{width:38px;height:38px}
.vx-keyart .ring{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(212,255,58,.45);animation:vx-spin 18s linear infinite}
.vx-keyart .ring.r2{inset:-14px;border-style:solid;border-color:rgba(140,108,255,.25);animation-duration:30s;animation-direction:reverse}
@keyframes vx-spin{to{transform:rotate(360deg)}}
.vx-kl{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.vx-kl li{display:flex;gap:10px;align-items:center;font-size:14.5px;color:var(--muted)}
.vx-kl li b{color:var(--text)}
.vx-kl svg{width:18px;height:18px;flex:none;color:var(--lime)}

/* fresh every day */
.vx-fresh{display:grid;gap:12px}
.vx-fr{display:grid;gap:6px;padding:20px;align-content:start}
.vx-fr .ic{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:rgba(212,255,58,.12);color:var(--lime);margin-bottom:6px}
.vx-fr .ic svg{width:22px;height:22px}
.vx-fr b{font:700 17px var(--fd);letter-spacing:-.01em}
.vx-fr>span:last-child{color:var(--muted);font-size:14.5px}
.vx-log{margin-top:14px;padding:20px}
.vx-loghead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.vx-loghead b{font:700 16px var(--fd)}
.vx-live{display:inline-flex;align-items:center;gap:7px;font:500 11px var(--fm);letter-spacing:.1em;text-transform:uppercase;color:var(--okc)}
.vx-live i{width:7px;height:7px;border-radius:50%;background:var(--okc);box-shadow:0 0 10px rgba(77,255,176,.8);animation:vx-blink 2.4s ease-in-out infinite}
.vx-log ul{list-style:none;padding:0;margin:0;display:grid}
.vx-log li{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;padding:12px 0;border-top:1px solid rgba(255,255,255,.07)}
.vx-log li .tag{grid-row:span 2;align-self:start;font:500 10px var(--fm);letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:99px;background:var(--lime);color:var(--lime-ink)}
.vx-log li b{font-size:15px}
.vx-log li span:last-child{color:var(--muted);font-size:14px}

@media (min-width:720px){
  .vx-ttabs{justify-content:center;flex-wrap:wrap;overflow:visible}
  .vx-tp{grid-template-columns:.9fr 1.1fr;gap:48px;max-width:980px;margin:0 auto}
  .vx-tp .vx-phone{width:min(100%,300px)}
  .vx-keys{grid-template-columns:auto 1fr;padding:34px 38px;gap:36px}
  .vx-keyart{width:150px;height:150px}
  .vx-kl{grid-template-columns:1fr 1fr}
  .vx-fresh{grid-template-columns:repeat(3,1fr)}
  .vx-log{padding:24px 28px}
}

/* =========================================================== 3.1.19: smooth on phones
   The moving background used huge blurred layers sized in vh/vmax, so every time a phone's address bar
   slid in or out they resized and repainted the whole screen. Now: fixed pixel sizes (no blur needed, they
   are soft gradients already), held still on phones, and the decorative loops pause on small screens. */
.vx-bg{height:100lvh;contain:strict;transform:translateZ(0)}
.vx-bg i{filter:none}
.vx-bg .b1{width:900px;height:900px;left:-380px;top:-420px}
.vx-bg .b2{width:760px;height:760px;right:-360px;top:160px}
.vx-bg .b3{width:620px;height:620px;left:15%;bottom:-340px}
@keyframes vx-drift1{to{transform:translate3d(120px,80px,0) scale(1.08)}}
@keyframes vx-drift2{to{transform:translate3d(-100px,-70px,0) scale(.94)}}
.vx-ttabs{overscroll-behavior-x:contain;touch-action:pan-x pan-y}
@media (max-width:719px),(hover:none){
  .vx-bg i,.vx-orbit svg,.vx-sat,.vx-stage .vx-phone,.vx-chip,.vx-keyart .ring,
  .vpx .btn::after,.vbtn.lime::after,.vx-home i.me,.vx-bars i{animation:none!important}
  .vx-stage .vx-phone,.vx-bg i,.vx-orbit svg,.vx-sat,.vx-chip{will-change:auto}
  .rv-wait{transform:none}
  .vx-type{animation:none!important;width:14ch;border-right-color:transparent}
  .rv-in{transition:opacity .5s ease}
  .vx-phone{box-shadow:0 20px 50px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.08)}
}

/* =========================================================== 4.0 "See it in action" tour */
.tr-hero{text-align:center;padding:14px 0 4px;max-width:640px;margin:0 auto}
.tr-hero .vx-lead{margin:0 auto 10px}
.tr-h1{font-size:clamp(38px,9vw,64px)}
.tr-wrap{max-width:980px;margin:0 auto;padding-bottom:30px}
.tr-tabs{display:flex;gap:8px;justify-content:center;margin:10px 0 18px}
.tr-tabs label{cursor:pointer;white-space:nowrap;text-transform:none;letter-spacing:0;padding:10px 15px;border-radius:99px;font:700 14px var(--fb);color:var(--muted);border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);transition:background .2s,color .2s}
#trv-member:checked~.tr-tabs .t-member,#trv-owner:checked~.tr-tabs .t-owner{background:var(--lime);color:var(--lime-ink);border-color:transparent;box-shadow:0 8px 26px -10px rgba(212,255,58,.7)}
#trv-member:focus-visible~.tr-tabs .t-member,#trv-owner:focus-visible~.tr-tabs .t-owner{outline:2px solid var(--lime);outline-offset:3px}
.tr-panel{display:none}
#trv-member:checked~.p-member,#trv-owner:checked~.p-owner{display:block;animation:vx-tin .45s cubic-bezier(.2,.8,.3,1)}
.tr-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;outline:none;overscroll-behavior-x:contain}
.tr-track::-webkit-scrollbar{display:none}
.tr-slide{flex:0 0 100%;scroll-snap-align:center;margin:0;display:grid;justify-items:center;gap:18px;padding:6px 0}
.tr-phone{width:min(250px,64vw,calc((100svh - 230px) * .462));aspect-ratio:390/844;border-radius:38px;padding:9px;background:linear-gradient(160deg,#2a2440,#121019);
  box-shadow:0 30px 70px -20px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.1),0 0 60px -20px rgba(168,85,247,.45);cursor:pointer}
.tr-phone img{display:block;width:100%;height:100%;object-fit:cover;border-radius:30px}
.tr-slide figcaption{display:grid;gap:6px;text-align:center;max-width:420px;padding:0 8px}
.tr-slide figcaption b{font:800 21px var(--fb);color:var(--text)}
.tr-slide figcaption span{color:var(--muted);line-height:1.55}
.tr-slide .tr-n{font:600 11px var(--fm);letter-spacing:.12em;color:var(--faint)!important}
.tr-ctl{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}
.tr-ctl .vbtn{padding:11px 16px;font-size:14px;border-radius:14px}
.tr-ctl .vbtn:disabled{opacity:.35;pointer-events:none}
.tr-dots{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:150px}
.tr-dots button{width:8px;height:8px;border-radius:99px;border:0;padding:0;background:rgba(255,255,255,.22);cursor:pointer;transition:width .25s,background .25s}
.tr-dots button.on{width:22px;background:var(--lime)}
@media (min-width:860px){
  .tr-hero{padding-top:34px}
  .tr-phone{width:300px}
  .tr-slide{grid-template-columns:auto 340px;justify-content:center;align-items:center;gap:56px}
  .tr-slide figcaption{text-align:left}
  .tr-slide figcaption b{font-size:28px}
}
.tr-join{position:relative;overflow:hidden;text-align:center;padding:52px 22px;margin:20px auto 60px;max-width:980px;border-radius:30px;isolation:isolate}
.tr-join h2{font-size:clamp(30px,6.4vw,50px);line-height:1.05;margin:10px 0 14px}
.tr-join p{color:var(--muted);max-width:46ch;margin:0 auto 24px;line-height:1.6}
.tr-join .vx-cta{justify-content:center}
.tr-blobs{position:absolute;inset:0;z-index:-1;filter:blur(40px);opacity:.7}
.tr-blobs i{position:absolute;width:240px;height:240px;border-radius:50%;animation:tr-blob 14s ease-in-out infinite alternate}
.tr-blobs i:nth-child(1){background:#a855f7;left:-60px;top:-60px}
.tr-blobs i:nth-child(2){background:#d4ff3a;right:-80px;bottom:-90px;opacity:.45;animation-delay:-5s}
.tr-blobs i:nth-child(3){background:#ec4899;left:40%;top:30%;opacity:.5;animation-delay:-9s}
@keyframes tr-blob{0%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-20px) scale(1.15)}100%{transform:translate(-30px,30px) scale(.9)}}
@media (max-width:719px),(hover:none),(prefers-reduced-motion:reduce){.tr-blobs i{animation:none}}
