/* TapSocial Kinetic Editorial Pop: reusable, page-specific hero geometry. */
:where(.page-hero,.pricing-hero,.content-hero,.contact-hero,.fundraise-hero,.brandkit-hero){position:relative;overflow:hidden;isolation:isolate}
:where(.page-hero,.pricing-hero,.content-hero,.contact-hero,.fundraise-hero,.brandkit-hero) :where(.hero-inner,.content-hero-inner,.cx-hero-inner,.contact-hero-inner,.fundraise-hero__inner,.hero-copy,.topbar){position:relative;z-index:1}
.page-hero::after,.content-hero::after,.contact-hero::after{display:none}

.hero-kinetics{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.hero-kinetics__shape{position:absolute;display:block;transform-origin:center;will-change:transform,opacity}
.hero-kinetics__orb{border-radius:50%;background:var(--shape-color);box-shadow:0 0 52px color-mix(in srgb,var(--shape-color) 26%,transparent);animation:heroKineticBreathe var(--duration,8s) ease-in-out var(--delay,0s) infinite}
.hero-kinetics__triangle{background:var(--shape-color);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(7px 8px 0 var(--shape-shadow,transparent));animation:heroKineticDrift var(--duration,9s) ease-in-out var(--delay,0s) infinite}
.hero-kinetics__diamond{background:var(--shape-color);box-shadow:7px 7px 0 var(--shape-shadow,transparent);animation:heroKineticDriftReverse var(--duration,9s) ease-in-out var(--delay,0s) infinite}
.hero-kinetics__spark{background:var(--shape-color);clip-path:polygon(50% 0,61% 36%,100% 50%,61% 64%,50% 100%,39% 64%,0 50%,39% 36%);filter:drop-shadow(6px 7px 0 var(--shape-shadow,transparent));animation:heroKineticPulse var(--duration,7s) ease-in-out var(--delay,0s) infinite}
.hero-kinetics__ring{border:3px solid var(--shape-color);border-radius:50%;box-shadow:0 0 0 16px color-mix(in srgb,var(--shape-shadow) 12%,transparent)}
.hero-kinetics__ring::after{content:"";position:absolute;width:14%;height:14%;left:43%;top:-7%;border-radius:50%;background:var(--shape-node,var(--shape-shadow));box-shadow:0 0 18px color-mix(in srgb,var(--shape-node,var(--shape-shadow)) 58%,transparent)}
.hero-kinetics__ring{animation:heroKineticOrbit var(--duration,16s) linear var(--delay,0s) infinite}
.hero-kinetics__stack{width:var(--shape-width,110px);height:var(--shape-height,76px);border:3px solid var(--shape-color);background:color-mix(in srgb,var(--shape-color) 7%,transparent);box-shadow:8px 8px 0 color-mix(in srgb,var(--shape-shadow) 82%,transparent);animation:heroKineticDrift var(--duration,10s) ease-in-out var(--delay,0s) infinite}
.hero-kinetics__stack::before,.hero-kinetics__stack::after{content:"";position:absolute;inset:0;border:2px solid currentColor}
.hero-kinetics__stack::before{color:var(--shape-shadow);transform:translate(-13px,-13px)}
.hero-kinetics__stack::after{color:var(--shape-node);transform:translate(13px,13px)}
.hero-kinetics__signal{border:3px solid var(--shape-color);border-radius:50%;box-shadow:0 0 0 19px color-mix(in srgb,var(--shape-shadow) 15%,transparent),0 0 0 39px color-mix(in srgb,var(--shape-node) 9%,transparent);animation:heroKineticSignal var(--duration,6.5s) ease-in-out var(--delay,0s) infinite}
.hero-kinetics__signal::after{content:"";position:absolute;inset:34%;border-radius:50%;background:var(--shape-node);box-shadow:0 0 24px color-mix(in srgb,var(--shape-node) 60%,transparent)}
.hero-kinetics__bars{display:flex;align-items:flex-end;gap:8px;width:112px;height:96px;animation:heroKineticDriftReverse var(--duration,9s) ease-in-out var(--delay,0s) infinite}
.hero-kinetics__bars i{display:block;flex:1;height:var(--bar-height);background:var(--bar-color);box-shadow:5px 5px 0 var(--bar-shadow);transform-origin:center bottom;animation:heroKineticBar 4.2s ease-in-out var(--bar-delay,0s) infinite}
.hero-kinetics__network{width:170px;height:118px;animation:heroKineticDrift var(--duration,10s) ease-in-out var(--delay,0s) infinite}
.hero-kinetics__network::before{content:"";position:absolute;inset:12px 16px;background:linear-gradient(27deg,transparent 49%,rgba(53,208,238,.62) 49.5%,rgba(53,208,238,.62) 50.5%,transparent 51%),linear-gradient(150deg,transparent 49%,rgba(244,95,192,.48) 49.5%,rgba(244,95,192,.48) 50.5%,transparent 51%)}
.hero-kinetics__network i{position:absolute;width:28px;height:28px;border-radius:50%;background:var(--node-color);box-shadow:5px 5px 0 var(--node-shadow);animation:heroKineticNode 4s ease-in-out var(--node-delay,0s) infinite}
.hero-kinetics__network i:nth-child(1){left:0;top:45px}
.hero-kinetics__network i:nth-child(2){left:70px;top:0}
.hero-kinetics__network i:nth-child(3){right:0;bottom:0}

.hero-kicker-with-flashes{display:inline-flex;align-items:center;justify-content:center;gap:10px;max-width:100%}
.hero-kicker-flash{display:inline-block;flex:0 0 auto;width:15px;height:15px;background:#fff;clip-path:polygon(50% 0,61% 36%,100% 50%,61% 64%,50% 100%,39% 64%,0 50%,39% 36%)}
@media(max-width:600px){.hero-kicker-with-flashes{gap:8px}.hero-kicker-flash{width:12px;height:12px}}

/* Keep the public, non-homepage mastheads on the Clients-page rhythm. */
@media(min-width:901px){
  .page-hero,.pricing-hero,.content-hero,.contact-hero,.fundraise-hero,.brandkit-hero{height:600px;min-height:600px}
  .contact-hero{padding:140px 0 60px}
  .contact-hero h1{font-size:clamp(64px,7.6vw,108px)}
  .contact-hero-copy{margin-top:24px;font-size:18px;line-height:1.55}
  .fundraise-hero{padding:140px 40px 50px}
  .fundraise-hero .document-kicker{margin-bottom:16px}
  .fundraise-hero h1{font-size:clamp(58px,5.8vw,78px);line-height:.9}
  .fundraise-hero p{max-width:900px;margin-top:18px;font-size:15.5px;line-height:1.55}
  .fundraise-hero .phase-strip{margin-top:18px}
  .fundraise-hero .phase-strip a{width:44px;height:44px}
}

/* Pricing: options orbit a stable center. */
.hero-kinetics--pricing .hero-kinetics__orb{--shape-color:#4B3FD6;--duration:8.4s;--delay:-2s;width:100px;height:100px;left:10%;top:24%}
.hero-kinetics--pricing .hero-kinetics__triangle--one{--shape-color:#FFB627;--shape-shadow:#F45FC0;--duration:9.6s;--delay:-5s;--rotation:28deg;--drift-x:-7px;--drift-y:11px;width:58px;height:58px;right:10%;top:31%}
.hero-kinetics--pricing .hero-kinetics__triangle--two{--shape-color:#35D0EE;--shape-shadow:#4B3FD6;--duration:8.8s;--delay:-3s;--rotation:45deg;--drift-x:9px;--drift-y:-8px;width:49px;height:49px;left:6%;bottom:18%}
.hero-kinetics--pricing .hero-kinetics__ring{--shape-color:#F45FC0;--shape-shadow:#4B3FD6;--shape-node:#FFB627;--duration:19s;--delay:-7s;width:76px;height:76px;right:19%;bottom:12%;opacity:.72}

/* Clients: stages rise while the targeting system keeps learning. */
.hero-kinetics--clients .hero-kinetics__signal{--shape-color:#35D0EE;--shape-shadow:#4B3FD6;--shape-node:#3EE08F;--duration:7.8s;--delay:-2s;width:72px;height:72px;left:8%;top:27%}
.hero-kinetics--clients .hero-kinetics__bars{--duration:10s;--delay:-4s;right:8%;bottom:16%}
.hero-kinetics--clients .hero-kinetics__bars i:nth-child(1){--bar-height:38%;--bar-color:#4B3FD6;--bar-shadow:#35D0EE;--bar-delay:-1s}
.hero-kinetics--clients .hero-kinetics__bars i:nth-child(2){--bar-height:66%;--bar-color:#35D0EE;--bar-shadow:#F45FC0;--bar-delay:-2.1s}
.hero-kinetics--clients .hero-kinetics__bars i:nth-child(3){--bar-height:94%;--bar-color:#3EE08F;--bar-shadow:#4B3FD6;--bar-delay:-3.2s}
.hero-kinetics--clients .hero-kinetics__diamond{--shape-color:#F45FC0;--shape-shadow:#FFB627;--duration:9.2s;--delay:-4s;--rotation:45deg;--drift-x:-8px;--drift-y:9px;width:46px;height:46px;right:10%;top:25%}
.hero-kinetics--clients .hero-kinetics__orb{--shape-color:#FFB627;--duration:8s;--delay:-5s;width:34px;height:34px;left:17%;bottom:16%;opacity:.82}

/* Team: distinct nodes move as one connected operating system. */
.hero-kinetics--team .hero-kinetics__network{--duration:10.8s;--delay:-3s;left:7%;top:24%}
.hero-kinetics--team .hero-kinetics__network i:nth-child(1){--node-color:#F45FC0;--node-shadow:#FFB627;--node-delay:-.8s}
.hero-kinetics--team .hero-kinetics__network i:nth-child(2){--node-color:#35D0EE;--node-shadow:#4B3FD6;--node-delay:-2s}
.hero-kinetics--team .hero-kinetics__network i:nth-child(3){--node-color:#3EE08F;--node-shadow:#0E6E8C;--node-delay:-3.1s}
.hero-kinetics--team .hero-kinetics__spark{--shape-color:#FFB627;--shape-shadow:#F45FC0;--duration:7.6s;--delay:-2s;width:62px;height:62px;right:10%;top:28%}
.hero-kinetics--team .hero-kinetics__ring{--shape-color:#35D0EE;--shape-shadow:#4B3FD6;--shape-node:#F45FC0;--duration:17s;--delay:-9s;width:82px;height:82px;right:16%;bottom:11%;opacity:.74}
.hero-kinetics--team .hero-kinetics__triangle{--shape-color:#4B3FD6;--shape-shadow:#35D0EE;--duration:9.4s;--delay:-4s;--rotation:-18deg;--drift-x:8px;--drift-y:-8px;width:42px;height:42px;left:14%;bottom:13%}

/* Contact: a live signal enters, resolves, and moves forward. */
.hero-kinetics--contact .hero-kinetics__signal{--shape-color:#3EE08F;--shape-shadow:#35D0EE;--shape-node:#FFB627;--duration:6.4s;--delay:-1s;width:82px;height:82px;left:2%;bottom:2%}
.hero-kinetics--contact .hero-kinetics__stack{--shape-color:#4B3FD6;--shape-shadow:#F45FC0;--shape-node:#35D0EE;--shape-width:92px;--shape-height:62px;--duration:9.8s;--delay:-5s;right:7%;top:24%;color:#35D0EE;opacity:.8}
.hero-kinetics--contact .hero-kinetics__triangle{--shape-color:#FFB627;--shape-shadow:#F45FC0;--duration:8.6s;--delay:-2.7s;--rotation:90deg;--drift-x:11px;--drift-y:0;width:50px;height:50px;right:19%;bottom:12%}
.hero-kinetics--contact .hero-kinetics__orb{--shape-color:#F45FC0;--duration:7.8s;--delay:-4s;width:36px;height:36px;left:17%;top:24%;opacity:.84}

/* Fundraise: momentum compounds through a sequenced upward path. */
.hero-kinetics--fundraise .hero-kinetics__bars{--duration:9.6s;--delay:-3s;left:7%;bottom:16%}
.hero-kinetics--fundraise .hero-kinetics__bars i:nth-child(1){--bar-height:34%;--bar-color:#F45FC0;--bar-shadow:#FFB627;--bar-delay:-.5s}
.hero-kinetics--fundraise .hero-kinetics__bars i:nth-child(2){--bar-height:64%;--bar-color:#4B3FD6;--bar-shadow:#35D0EE;--bar-delay:-1.8s}
.hero-kinetics--fundraise .hero-kinetics__bars i:nth-child(3){--bar-height:96%;--bar-color:#3EE08F;--bar-shadow:#0E6E8C;--bar-delay:-3s}
.hero-kinetics--fundraise .hero-kinetics__ring{--shape-color:#FFB627;--shape-shadow:#4B3FD6;--shape-node:#F45FC0;--duration:20s;--delay:-7s;width:96px;height:96px;right:9%;top:25%}
.hero-kinetics--fundraise .hero-kinetics__triangle{--shape-color:#3EE08F;--shape-shadow:#4B3FD6;--duration:9s;--delay:-4s;--rotation:18deg;--drift-x:-8px;--drift-y:-10px;width:54px;height:54px;right:14%;bottom:15%}
.hero-kinetics--fundraise .hero-kinetics__diamond{--shape-color:#F45FC0;--shape-shadow:#FFB627;--duration:8.5s;--delay:-1.5s;--rotation:45deg;--drift-x:8px;--drift-y:7px;width:42px;height:42px;left:11%;top:25%}

/* Content: a spark lands, compounds, and settles into a stack of ideas. */
.hero-kinetics--content .hero-kinetics__spark{--shape-color:#FFB627;--shape-shadow:#F45FC0;--duration:7.2s;--delay:-1.5s;width:54px;height:54px;left:7%;top:27%}
.hero-kinetics--content .hero-kinetics__diamond{--shape-color:#35D0EE;--shape-shadow:#4B3FD6;--duration:9.4s;--delay:-3.5s;--rotation:45deg;--drift-x:-7px;--drift-y:8px;width:44px;height:44px;right:8%;top:24%}
.hero-kinetics--content .hero-kinetics__bars{--duration:10.4s;--delay:-4.5s;right:8%;bottom:15%}
.hero-kinetics--content .hero-kinetics__bars i:nth-child(1){--bar-height:36%;--bar-color:#F45FC0;--bar-shadow:#4B3FD6;--bar-delay:-.8s}
.hero-kinetics--content .hero-kinetics__bars i:nth-child(2){--bar-height:68%;--bar-color:#35D0EE;--bar-shadow:#0E6E8C;--bar-delay:-2s}
.hero-kinetics--content .hero-kinetics__bars i:nth-child(3){--bar-height:96%;--bar-color:#3EE08F;--bar-shadow:#4B3FD6;--bar-delay:-3.1s}
.hero-kinetics--content .hero-kinetics__stack{--shape-color:#4B3FD6;--shape-shadow:#F45FC0;--shape-node:#35D0EE;--shape-width:98px;--shape-height:66px;--duration:10s;--delay:-6s;left:6%;bottom:15%;color:#35D0EE;opacity:.8}

/* Brand kit: the system itself displays connected motion primitives. */
.hero-kinetics--brandkit .hero-kinetics__network{--duration:11s;--delay:-5s;right:8%;top:25%;opacity:.72}
.hero-kinetics--brandkit .hero-kinetics__network i:nth-child(1){--node-color:#F45FC0;--node-shadow:#FFB627;--node-delay:-1s}
.hero-kinetics--brandkit .hero-kinetics__network i:nth-child(2){--node-color:#35D0EE;--node-shadow:#4B3FD6;--node-delay:-2s}
.hero-kinetics--brandkit .hero-kinetics__network i:nth-child(3){--node-color:#3EE08F;--node-shadow:#0E6E8C;--node-delay:-3s}
.hero-kinetics--brandkit .hero-kinetics__ring{--shape-color:#35D0EE;--shape-shadow:#F45FC0;--shape-node:#FFB627;--duration:18s;--delay:-4s;width:92px;height:92px;right:28%;bottom:10%;opacity:.6}
.hero-kinetics--brandkit .hero-kinetics__spark{--shape-color:#FFB627;--shape-shadow:#F45FC0;--duration:7s;--delay:-2s;width:54px;height:54px;left:6%;bottom:14%;opacity:.8}

@keyframes heroKineticBreathe{0%,100%{transform:translate3d(0,0,0) scale(.94);opacity:.8}50%{transform:translate3d(var(--drift-x,5px),var(--drift-y,-9px),0) scale(1.07);opacity:1}}
@keyframes heroKineticDrift{0%,100%{transform:translate3d(0,0,0) rotate(var(--rotation,0deg)) scale(.96)}50%{transform:translate3d(var(--drift-x,7px),var(--drift-y,-9px),0) rotate(calc(var(--rotation,0deg) + 4deg)) scale(1.04)}}
@keyframes heroKineticDriftReverse{0%,100%{transform:translate3d(0,0,0) rotate(var(--rotation,0deg)) scale(.97)}50%{transform:translate3d(var(--drift-x,-8px),var(--drift-y,8px),0) rotate(calc(var(--rotation,0deg) - 4deg)) scale(1.05)}}
@keyframes heroKineticPulse{0%,100%{transform:translate3d(0,0,0) rotate(-2deg) scale(.9);opacity:.72}50%{transform:translate3d(0,-7px,0) rotate(3deg) scale(1.08);opacity:1}}
@keyframes heroKineticOrbit{to{transform:rotate(360deg)}}
@keyframes heroKineticSignal{0%,100%{transform:scale(.92);opacity:.65}50%{transform:scale(1.07);opacity:1}}
@keyframes heroKineticBar{0%,100%{transform:scaleY(.92);opacity:.78}50%{transform:scaleY(1.08);opacity:1}}
@keyframes heroKineticNode{0%,100%{transform:scale(.9);opacity:.76}50%{transform:scale(1.12);opacity:1}}

@media(max-width:900px){
  .hero-kinetics__shape{opacity:.72}
  .hero-kinetics__shape.hero-kinetics__hide-tablet{display:none}
  .hero-kinetics--clients .hero-kinetics__signal,.hero-kinetics--team .hero-kinetics__network{left:4%}
}
@media(max-width:600px){
  .hero-kinetics__shape{opacity:.62}
  .hero-kinetics__shape.hero-kinetics__hide-mobile{display:none}
  .hero-kinetics__orb{width:58px!important;height:58px!important}
  .hero-kinetics__triangle{width:38px!important;height:38px!important}
  .hero-kinetics__diamond{width:31px!important;height:31px!important}
  .hero-kinetics__spark{width:42px!important;height:42px!important}
  .hero-kinetics__ring{width:62px!important;height:62px!important}
  .hero-kinetics__signal{width:54px!important;height:54px!important}

  .hero-kinetics--pricing .hero-kinetics__orb{left:5%;top:22%}
  .hero-kinetics--pricing .hero-kinetics__triangle--one{right:5%;top:27%}
  .hero-kinetics--clients .hero-kinetics__signal{left:4%;top:21%}
  .hero-kinetics--clients .hero-kinetics__diamond{right:5%;top:25%}
  .hero-kinetics--team .hero-kinetics__network{width:120px;height:82px;left:2%;top:auto;bottom:5%}
  .hero-kinetics--team .hero-kinetics__network::before{inset:8px 12px}
  .hero-kinetics--team .hero-kinetics__network i{width:22px;height:22px}
  .hero-kinetics--team .hero-kinetics__network i:nth-child(2){left:52px}
  .hero-kinetics--team .hero-kinetics__spark{right:5%;top:25%}

  .hero-kinetics--content .hero-kinetics__spark{left:5%;top:22%}
  .hero-kinetics--content .hero-kinetics__diamond{right:5%;top:26%}
  .hero-kinetics--contact .hero-kinetics__stack{right:-28px;top:23%}
  .hero-kinetics--fundraise .hero-kinetics__diamond{left:5%;top:19%}
  .hero-kinetics--fundraise .hero-kinetics__ring{right:4%;top:21%}
}
@media(prefers-reduced-motion:reduce) and (min-width:100000px){
  .hero-kinetics__shape,.hero-kinetics__shape::before,.hero-kinetics__shape::after,.hero-kinetics__shape *{animation:none!important;will-change:auto}
}
