/* Home-specific overrides that must load before the exported foundation styles. */
#root .nav {
  display: none !important;
}
[class*="wa-button_root"],
[class*="app_root"] {
  display: none !important;
}
#root .process-cta {
  display: none !important;
}
#root .process-40,
#root .section-blog-featured,
#root .footer {
  content-visibility: auto;
  contain-intrinsic-size: auto 900px;
}
.hero-client-marquee {
  position: relative;
  z-index: 2;
  width: 100%;
  overflow: hidden;
  margin-top: -1px;
  padding: 26px 0;
  background:
    radial-gradient(circle at 20% 0%, rgba(251, 109, 170, 0.14), transparent 34%),
    radial-gradient(circle at 80% 100%, rgba(139, 92, 246, 0.16), transparent 36%),
    #0e0e12;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.hero-client-marquee__viewport {
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.hero-client-marquee__track {
  display: flex;
  width: max-content;
  animation: heroClientMarquee 28s linear infinite;
  will-change: transform;
}
.hero-client-marquee__group {
  flex: 0 0 auto;
  min-width: 100vw;
  display: flex;
  align-items: center;
  gap: 58px;
  padding-right: 58px;
}
.hero-client-marquee__logo {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, 0.76);
  font-size: 18px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
  opacity: 0.84;
  filter: drop-shadow(0 0 18px rgba(255, 255, 255, 0.08));
  white-space: nowrap;
  transition:
    color 180ms ease,
    opacity 180ms ease;
}
.hero-client-marquee__intro {
  flex: 0 0 auto;
  color: #fb6daa;
  font-size: 18px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
  white-space: nowrap;
  filter: drop-shadow(0 0 18px rgba(251, 109, 170, 0.18));
}
.hero-client-marquee__logo:hover {
  color: var(--client-hover-color, #fb6daa);
  opacity: 1;
}
@keyframes heroClientMarquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}
@media screen and (max-width: 767px) {
  .hero-client-marquee {
    padding: 20px 0;
  }
  .hero-client-marquee__group {
    gap: 34px;
    padding-right: 34px;
  }
  .hero-client-marquee__intro,
  .hero-client-marquee__logo {
    font-size: 15px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero-client-marquee__track {
    animation-duration: 80s;
  }
}
.bento__card--new {
  padding-top: 58px !important;
  padding-bottom: 58px !important;
}
.bento__card-new__laurel {
  --laurel-y: 0px;
  height: 185px !important;
  width: 70px !important;
  transform-origin: center;
  animation: none !important;
  will-change: transform, opacity;
}
.bento__card--new.is-laurel-visible .bento__card-new__laurel:first-of-type {
  animation: laurelWholeLeft 5.8s ease-in-out 2.2s infinite !important;
}
.bento__card--new.is-laurel-visible .bento__card-new__laurel:last-of-type {
  animation: laurelWholeRight 5.8s ease-in-out 2.35s infinite !important;
}
.bento__card-new__laurel-svg {
  display: block;
  overflow: visible;
  shape-rendering: geometricPrecision;
}
.bento__card-new__laurel-stem {
  fill: none;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0;
  transition:
    stroke-dashoffset 0.72s ease-out,
    opacity 0.72s ease-out;
}
.bento__card--new.is-laurel-visible .bento__card-new__laurel-stem {
  animation: none !important;
  opacity: 1;
  stroke-dashoffset: 0;
}
.bento__card-new__laurel-leaf {
  opacity: 0;
  transform: scale(0.55) rotate(-8deg);
  transform-box: fill-box;
  transform-origin: center;
  transition:
    opacity 0.3s cubic-bezier(0.2, 0.8, 0.22, 1.16),
    transform 0.3s cubic-bezier(0.2, 0.8, 0.22, 1.16);
  transition-delay: calc(0.48s + (var(--leaf-index) * 48ms));
  will-change: opacity, transform;
}
.bento__card--new.is-laurel-visible .bento__card-new__laurel-leaf {
  animation: none !important;
  opacity: 1;
  transform: none;
}
.bento__card-new__laurel-svg--right .bento__card-new__laurel-stem {
  transition-delay: 0.08s;
}
.bento__card-new__laurel-svg--right .bento__card-new__laurel-leaf {
  transition-delay: calc(0.56s + (var(--leaf-index) * 48ms));
}
.bento__card-new__title {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  line-height: 1.05 !important;
}
.bento__card-new__title-highlight,
.bento__card-new__title > span:first-child {
  font-size: clamp(58px, 6.6vw, 92px) !important;
  line-height: 0.95 !important;
}
.bento__card-new__title-line,
.bento__card-new__title > span:last-child {
  font-size: clamp(20px, 2.1vw, 29px) !important;
  line-height: 1.1 !important;
}
@media screen and (max-width: 768px) {
  .bento__card--new {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }
  .bento__card-new__laurel {
    --laurel-y: -50%;
    height: 122px !important;
    width: 46px !important;
  }
  .bento__card-new__title {
    gap: 3px !important;
  }
  .bento__card-new__title-highlight,
  .bento__card-new__title > span:first-child {
    font-size: clamp(46px, 16vw, 66px) !important;
  }
  .bento__card-new__title-line,
  .bento__card-new__title > span:last-child {
    font-size: clamp(16px, 5.2vw, 21px) !important;
  }
}
@keyframes laurelStemDraw {
  0% {
    opacity: 0;
    stroke-dashoffset: 1;
  }
  100% {
    opacity: 1;
    stroke-dashoffset: 0;
  }
}
@keyframes laurelLeafAppear {
  0% {
    opacity: 0;
    transform: scale(0.12) rotate(-10deg);
  }
  68% {
    opacity: 1;
    transform: scale(1.18) rotate(3deg);
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
}
@keyframes laurelWholeLeft {
  0%, 100% {
    transform: translate3d(0, var(--laurel-y), 0) rotate(0deg) scale(1);
  }
  50% {
    transform: translate3d(-6px, calc(var(--laurel-y) - 3px), 0) rotate(-2.4deg) scale(1.025);
  }
}
@keyframes laurelWholeRight {
  0%, 100% {
    transform: translate3d(0, var(--laurel-y), 0) rotate(0deg) scale(1);
  }
  50% {
    transform: translate3d(6px, calc(var(--laurel-y) - 3px), 0) rotate(2.4deg) scale(1.025);
  }
}
@media (prefers-reduced-motion: reduce) {
  .bento__card-new__laurel {
    animation: none !important;
    filter: none;
    opacity: 0.9;
    transform: translate3d(0, var(--laurel-y), 0);
  }
  .bento__card-new__laurel-stem {
    animation: none !important;
    opacity: 1;
    stroke-dashoffset: 0;
  }
  .bento__card-new__laurel-leaf {
    animation: none !important;
    opacity: 1;
    transform: none;
  }
}
.bento__card--tracking .bento__card-text {
  bottom: 0;
  isolation: isolate;
  padding: 44px 48px 28px 0;
}
.bento__card--tracking .bento__card-text::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -22px -96px 0 -18px;
  pointer-events: none;
  background: linear-gradient(
    0deg,
    rgba(5, 4, 10, 0.96) 0%,
    rgba(5, 4, 10, 0.82) 40%,
    rgba(5, 4, 10, 0.42) 72%,
    rgba(5, 4, 10, 0) 100%
  );
}
.bento__card--tracking .home-tracking-icon,
.div-block-12 .home-tracking-icon,
.div-block-3 .home-tracking-icon {
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  object-fit: contain;
}
.bento__card--tracking .notification-image,
.bento__card.mobile .notification-image {
  opacity: 1;
  transform: translate3d(0, var(--notification-y, 0px), 0) scale3d(0, 0, 1);
  transform-style: preserve-3d;
  transform-origin: center;
  transition: none;
  will-change: transform;
}
.bento__card--tracking .notification-image._1,
.bento__card.mobile .notification-image._1 {
  --notification-y: 0px;
}
.bento__card--tracking .notification-image._2,
.bento__card.mobile .notification-image._2 {
  --notification-y: 0px;
}
.bento__card--tracking .phone-image,
.bento__card.mobile .phone-image {
  transform: translate3d(100%, -25%, 0) scale3d(1, 1, 1) rotateX(0deg) rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg);
  transform-style: preserve-3d;
  will-change: transform;
}
.bento__card--tracking .notification-image._1 {
  animation: trackingNotificationOne 8s linear 0s infinite both;
}
.bento__card--tracking .notification-image._2 {
  animation: trackingNotificationTwo 8s linear 0s infinite both;
}
.bento__card--tracking .phone-image {
  animation: trackingPhoneDesktop 8s linear 0s infinite both;
}
.bento__card.mobile .notification-image._1,
.bento__card.mobile .notification-image._2 {
  --notification-y: 200px;
}
.bento__card.mobile .notification-image._1 {
  animation: trackingNotificationOneMobile 8s linear 0s infinite both;
}
.bento__card.mobile .notification-image._2 {
  animation: trackingNotificationTwoMobile 8s linear 0s infinite both;
}
.bento__card.mobile .phone-image {
  animation: trackingPhoneMobile 8s linear 0s infinite both;
}
@media screen and (min-width: 992px) {
  .bento__card--tracking > picture:has(.image-3) {
    margin-left: auto !important;
    margin-right: -26px !important;
  }
  .bento__card--tracking > picture:has(.image-3) > .image-3 {
    display: block;
    width: 100% !important;
  }
}
@media screen and (max-width: 767px) {
  .bento__card--tracking .bento__card-text {
    bottom: 0;
    padding: 34px 28px 24px 0;
  }
  .bento__card--tracking .bento__card-text::before {
    inset: -18px -46px 0 -14px;
  }
  .bento__card--tracking .home-tracking-icon,
  .div-block-12 .home-tracking-icon,
  .div-block-3 .home-tracking-icon {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }
}
@keyframes trackingNotificationOne {
  0% {
    transform: translate3d(0, 0%, 0) scale3d(0, 0, 1);
  }
  6.25%, 18.75% {
    transform: translate3d(0, 300px, 0) scale3d(0.4, 0.4, 1);
  }
  25%, 100% {
    transform: translate3d(0, 300px, 0) scale3d(0, 0, 1);
  }
}
@keyframes trackingNotificationTwo {
  0%, 18.75% {
    transform: translate3d(0, 0%, 0) scale3d(0, 0, 1);
  }
  25%, 37.5% {
    transform: translate3d(0, 300px, 0) scale3d(0.4, 0.4, 1);
  }
  43.75%, 100% {
    transform: translate3d(0, 300px, 0) scale3d(0, 0, 1);
  }
}
@keyframes trackingNotificationOneMobile {
  0% {
    transform: translate3d(0, 200px, 0) scale3d(0, 0, 1);
  }
  6.25%, 18.75% {
    transform: translate3d(0, 200px, 0) scale3d(0.6, 0.6, 1);
  }
  25%, 100% {
    transform: translate3d(0, 200px, 0) scale3d(0, 0, 1);
  }
}
@keyframes trackingNotificationTwoMobile {
  0%, 18.75% {
    transform: translate3d(0, 200px, 0) scale3d(0, 0, 1);
  }
  25%, 37.5% {
    transform: translate3d(0, 200px, 0) scale3d(0.6, 0.6, 1);
  }
  43.75%, 100% {
    transform: translate3d(0, 200px, 0) scale3d(0, 0, 1);
  }
}
@keyframes trackingPhoneDesktop {
  0% {
    transform: translate3d(100%, -25%, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
  6.25%, 37.5% {
    transform: translate3d(-10%, -10%, 0) scale3d(1, 1, 1) rotateZ(-5deg);
  }
  43.75%, 56.25% {
    transform: translate3d(-200%, -25%, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
  62.5%, 68.75% {
    transform: translate3d(-10%, -10%, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
  75% {
    transform: translate3d(100%, 25%, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
  100% {
    transform: translate3d(100%, -25px, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
}
@keyframes trackingPhoneMobile {
  0% {
    transform: translate3d(100%, -25%, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
  6.25%, 37.5% {
    transform: translate3d(-10%, -10%, 0) scale3d(1, 1, 1) rotateZ(-5deg);
  }
  43.75%, 56.25% {
    transform: translate3d(-100%, -25%, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
  62.5%, 68.75% {
    transform: translate3d(-10%, -10%, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
  75% {
    transform: translate3d(100%, 25%, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
  100% {
    transform: translate3d(100%, -25px, 0) scale3d(1, 1, 1) rotateZ(0deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .bento__card--tracking .notification-image {
    opacity: 1;
    animation: none;
    transform: translate3d(0, 300px, 0) scale3d(0.4, 0.4, 1) !important;
  }
  .bento__card.mobile .notification-image {
    opacity: 1;
    animation: none;
    transform: translate3d(0, 200px, 0) scale3d(0.6, 0.6, 1) !important;
  }
  .bento__card--tracking .phone-image,
  .bento__card.mobile .phone-image {
    animation: none;
  }
}
.process-40__sticky,
.process-40__viewport {
  width: 100%;
}
#root .designStep--wireframe {
  --wireframe-loop: 10.8s;
  --process-design-shift: 0px;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}
@media screen and (min-width: 992px) {
  #root .designStep--wireframe {
    --process-design-shift: -64px;
  }
}
#root .designStep--wireframe .designStep__stage {
  width: min(100%, 430px) !important;
  height: 100% !important;
  overflow: visible !important;
}
#root .designWireframe {
  position: relative;
  width: min(100%, 360px);
  height: 314px;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 22px 34px rgba(0, 0, 0, 0.42));
}
#root .designWireframe__aura {
  position: absolute;
  width: 230px;
  height: 230px;
  border-radius: 999px;
  background:
    radial-gradient(circle at 42% 42%, rgba(254,128,179,.2), transparent 34%),
    radial-gradient(circle at 64% 58%, rgba(104,44,255,.22), transparent 38%);
  filter: blur(18px);
  opacity: .62;
  animation: wireframeAura var(--wireframe-loop) ease-in-out infinite;
}
#root .designWireframe__phone {
  position: relative;
  width: 154px;
  height: 306px;
  border-radius: 42px;
  padding: 8px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.2), rgba(255,255,255,.02) 34%, rgba(254,128,179,.16)) border-box,
    linear-gradient(180deg, #15131f, #050509) padding-box;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.1),
    inset 0 -16px 28px rgba(255,255,255,.04),
    0 0 0 1px rgba(104,44,255,.18),
    0 24px 52px rgba(0,0,0,.5);
  animation: wireframePhoneFloat 6s ease-in-out infinite;
}
#root .designWireframe__phone--mockup {
  width: 160px;
  height: 304px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
#root .designWireframe__phoneImage {
  display: block;
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
}
#root .designWireframe__button {
  position: absolute;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.26), rgba(255,255,255,.05));
}
#root .designWireframe__button--left {
  left: -3px;
  top: 76px;
  height: 44px;
}
#root .designWireframe__button--right {
  right: -3px;
  top: 100px;
  height: 64px;
}
#root .designWireframe__island {
  position: absolute;
  top: 17px;
  left: 50%;
  z-index: 3;
  width: 54px;
  height: 16px;
  border-radius: 999px;
  background:
    radial-gradient(circle at 72% 50%, rgba(255,255,255,.16) 0 2px, transparent 3px),
    linear-gradient(180deg, #0a0910, #030306);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.05),
    0 4px 14px rgba(0,0,0,.45);
  transform: translateX(-50%);
}
#root .designWireframe__screen {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 34px;
  overflow: hidden;
  background:
    radial-gradient(circle at 34% 20%, rgba(254,128,179,.15), transparent 30%),
    radial-gradient(circle at 78% 72%, rgba(104,44,255,.16), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.028) 1px, transparent 1px),
    #0b0a12;
  background-size: auto, auto, 30px 30px, 30px 30px, auto;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.08),
    inset 0 18px 32px rgba(255,255,255,.03);
}
#root .designWireframe__screen--mockup {
  position: absolute;
  top: 9.15%;
  left: 18.95%;
  width: 63.22%;
  height: 77.12%;
  border-radius: 14px;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
  pointer-events: none;
}
#root .designWireframe__status {
  position: absolute;
  top: 4%;
  left: 6%;
  right: auto;
  width: 88%;
  height: 5.4%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 7%;
  opacity: 1;
}
#root .designWireframe__status span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: rgba(28,28,36,.96);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.05),
    0 0 16px rgba(254,128,179,.06);
  opacity: 0;
  transform: translateY(12px) scale(.84);
  animation: wireframeElementCycle var(--wireframe-loop) ease-in-out infinite;
}
#root .designWireframe__status span:first-child {
  width: 33.99%;
  animation-delay: .1s;
}
#root .designWireframe__status span:nth-child(2) {
  width: 22.22%;
  animation-delay: .4s;
}
#root .designWireframe__status span:nth-child(3) {
  width: 33.99%;
  animation-delay: .7s;
}
#root .designWireframe__orb {
  position: absolute;
  border-radius: 999px;
  opacity: .28;
  filter: blur(.2px);
  animation: wireframeOrb var(--wireframe-loop) ease-in-out infinite;
}
#root .designWireframe__orb--a {
  width: 64px;
  height: 64px;
  left: -18px;
  top: 54px;
  background: radial-gradient(circle, rgba(254,128,179,.28), transparent 66%);
}
#root .designWireframe__orb--b {
  width: 72px;
  height: 72px;
  right: -24px;
  bottom: 40px;
  background: radial-gradient(circle, rgba(104,44,255,.32), transparent 66%);
  animation-delay: -2.4s;
}
#root .designWireframe__block,
#root .designWireframe__line,
#root .designWireframe__tile,
#root .designWireframe__nav span {
  position: absolute;
  box-sizing: border-box;
  border: 1px solid rgba(254,128,179,.64);
  background: linear-gradient(135deg, rgba(254,128,179,.13), rgba(104,44,255,.04));
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.03),
    0 0 18px rgba(254,128,179,.12);
  opacity: 0;
  transform: translateY(12px) scale(.84);
  animation: wireframeElementCycle var(--wireframe-loop) ease-in-out infinite;
}
#root .designWireframe__block--hero {
  top: 14%;
  left: 0;
  right: auto;
  width: 100%;
  height: 16%;
  border-radius: 12px;
  animation-delay: 1.25s;
}
#root .designWireframe__line {
  left: 0;
  height: 1.35%;
  border-radius: 999px;
  border-color: rgba(143,217,255,.72);
  background: rgba(143,217,255,.08);
  box-shadow: 0 0 16px rgba(143,217,255,.12);
}
#root .designWireframe__line--a {
  top: 34%;
  width: 68%;
  animation-delay: 2s;
}
#root .designWireframe__line--b {
  top: 38%;
  width: 52%;
  animation-delay: 2.3s;
}
#root .designWireframe__grid {
  position: absolute;
  top: 45%;
  left: 0;
  right: auto;
  width: 100%;
  height: 10%;
}
#root .designWireframe__tile {
  top: 0;
  width: 47%;
  height: 100%;
  border-radius: 7px;
  border-color: rgba(123,108,255,.72);
  background: rgba(123,108,255,.08);
  box-shadow: 0 0 16px rgba(123,108,255,.12);
}
#root .designWireframe__tile--left {
  left: 0;
  animation-delay: 3.15s;
}
#root .designWireframe__tile--right {
  right: 0;
  width: 47%;
  animation-delay: 3.75s;
}
#root .designWireframe__block--panel {
  top: 60%;
  left: 0;
  right: auto;
  bottom: auto;
  width: 100%;
  height: 9%;
  border-radius: 10px;
  animation-delay: 4.75s;
}
#root .designWireframe__grid--secondary {
  display: none;
}
#root .designWireframe__grid--secondary .designWireframe__tile--left {
  animation-delay: 5.85s;
}
#root .designWireframe__grid--secondary .designWireframe__tile--right {
  animation-delay: 6.45s;
}
#root .designWireframe__tabbar {
  position: absolute;
  left: 6%;
  bottom: 4.2%;
  width: 88%;
  height: 6.2%;
  min-height: 15px;
  border-radius: 999px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
  justify-items: center;
  box-sizing: border-box;
  border: 1px solid rgba(61,58,72,.78);
  background: rgba(17,18,27,.9);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.03),
    0 0 18px rgba(254,128,179,.1);
  opacity: 0;
  transform: translateY(12px) scale(.84);
  animation: wireframeElementCycle var(--wireframe-loop) ease-in-out infinite;
  animation-delay: 5.85s;
}
#root .designWireframe__tabbarItem {
  position: relative;
  width: 12px;
  height: 12px;
  display: block;
}
#root .designWireframe__tabbarItem--active {
  width: 22px;
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(254,128,179,.3), rgba(123,108,255,.3));
}
#root .designWireframe__tabbarItem--active::after {
  content: "";
  position: absolute;
  inset: 3px 8px;
  border: 1.3px solid #fe80b3;
  border-radius: 999px;
}
#root .designWireframe__tabbarItem--play::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 2px;
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 7px solid #7b6cff;
}
#root .designWireframe__tabbarItem--box::before {
  content: "";
  position: absolute;
  inset: 2px;
  border: 1.3px solid rgba(126,132,148,.95);
  border-radius: 3px;
}
#root .designWireframe__tabbarItem--plus::before,
#root .designWireframe__tabbarItem--plus::after {
  content: "";
  position: absolute;
  left: 2px;
  right: 2px;
  top: 50%;
  height: 1.4px;
  border-radius: 999px;
  background: rgba(126,132,148,.95);
  transform: translateY(-50%);
}
#root .designWireframe__tabbarItem--plus::after {
  left: 50%;
  right: auto;
  top: 2px;
  bottom: 2px;
  width: 1.4px;
  height: auto;
  transform: translateX(-50%);
}
#root .designWireframe__nav {
  position: absolute;
  left: 24.79%;
  right: 24.79%;
  bottom: 21.35%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7.5%;
}
#root .designWireframe__nav span {
  position: static;
  height: 6px;
  border-radius: 999px;
  border-color: rgba(234,233,235,.32);
  background: rgba(234,233,235,.12);
  box-shadow: none;
}
#root .designWireframe__nav span:nth-child(1) { animation-delay: 2.34s; }
#root .designWireframe__nav span:nth-child(2) { animation-delay: 2.48s; }
#root .designWireframe__nav span:nth-child(3) { animation-delay: 2.62s; }
#root .designWireframe__control {
  position: absolute;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  font-weight: 600;
  background: rgba(16,13,24,.86);
  box-shadow: 0 12px 26px rgba(0,0,0,.3);
  animation: wireframeControlPulse var(--wireframe-loop) ease-in-out infinite;
}
#root .designWireframe__control--add {
  top: 54px;
  right: 42px;
  color: #fe80b3;
}
#root .designWireframe__control--remove {
  left: 44px;
  bottom: 52px;
  color: #8fd9ff;
  animation-delay: 2.55s;
}
#root .designWireframe__figmaCursor {
  position: absolute;
  z-index: 8;
  left: 50%;
  top: 50%;
  width: 74px;
  height: 24px;
  height: auto;
  pointer-events: none;
  transform-origin: 14px 12px;
  filter: drop-shadow(0 8px 14px rgba(0,0,0,.55));
  will-change: transform, opacity;
}
#root .designWireframe__figmaCursor--thomas {
  animation: wireframeFigmaCursorThomas var(--wireframe-loop) cubic-bezier(.42,0,.2,1) infinite;
}
#root .designWireframe__figmaCursor--marine {
  animation: wireframeFigmaCursorMarine var(--wireframe-loop) cubic-bezier(.42,0,.2,1) infinite;
}
#root .designWireframe__figmaCursor--theo {
  animation: wireframeFigmaCursorTheo var(--wireframe-loop) cubic-bezier(.42,0,.2,1) infinite;
}
@keyframes wireframePhoneFloat {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-8px) rotate(1deg); }
}
@keyframes wireframeAura {
  0%, 100% { opacity: .48; transform: scale(.94) rotate(0deg); }
  50% { opacity: .76; transform: scale(1.04) rotate(10deg); }
}
@keyframes wireframeOrb {
  0%, 100% { opacity: .18; transform: translate3d(0, 0, 0) scale(.9); }
  50% { opacity: .34; transform: translate3d(8px, -10px, 0) scale(1.08); }
}
@keyframes wireframeElementCycle {
  0%, 5% { opacity: 0; transform: translateY(12px) scale(.84); }
  9%, 84% { opacity: 1; transform: translateY(0) scale(1); }
  92%, 100% { opacity: 0; transform: translateY(-8px) scale(.94); }
}
@keyframes wireframeControlPulse {
  0%, 18%, 100% { opacity: 0; transform: scale(.7); }
  24%, 38% { opacity: 1; transform: scale(1); }
  46% { opacity: 0; transform: scale(1.24); }
}
@keyframes wireframeFigmaCursorThomas {
  0%, 4% { opacity: 0; transform: translate(-118px, -134px) rotate(-8deg) scale(.9); }
  7% { opacity: 1; transform: translate(-34px, -122px) rotate(-6deg) scale(.96); }
  10% { opacity: 1; transform: translate(0, -122px) rotate(-4deg) scale(1); }
  13% { opacity: 1; transform: translate(36px, -122px) rotate(-3deg) scale(1); }
  20% { opacity: 1; transform: translate(50px, -82px) rotate(-2deg) scale(1); }
  28% { opacity: 1; transform: translate(-4px, -52px) rotate(-5deg) scale(.98); }
  39% { opacity: 1; transform: translate(42px, -28px) rotate(-1deg) scale(1); }
  52% { opacity: 1; transform: translate(42px, 14px) rotate(2deg) scale(.98); }
  68% { opacity: 1; transform: translate(42px, 42px) rotate(2deg) scale(.98); }
  82%, 88% { opacity: .82; transform: translate(72px, 16px) rotate(3deg) scale(.96); }
  100% { opacity: 0; transform: translate(112px, -96px) rotate(5deg) scale(.9); }
}
@keyframes wireframeFigmaCursorMarine {
  0%, 14% { opacity: 0; transform: translate(126px, -104px) rotate(5deg) scale(.9); }
  19% { opacity: 1; transform: translate(-54px, -82px) rotate(-7deg) scale(.96); }
  30% { opacity: 1; transform: translate(-54px, -52px) rotate(-7deg) scale(1); }
  38% { opacity: 1; transform: translate(-42px, -28px) rotate(-6deg) scale(1); }
  52% { opacity: 1; transform: translate(-48px, 14px) rotate(-5deg) scale(.98); }
  63% { opacity: 1; transform: translate(-42px, 42px) rotate(-3deg) scale(1); }
  82%, 88% { opacity: .82; transform: translate(-70px, 108px) rotate(-6deg) scale(.96); }
  100% { opacity: 0; transform: translate(-126px, 44px) rotate(-8deg) scale(.9); }
}
@keyframes wireframeFigmaCursorTheo {
  0%, 22% { opacity: 0; transform: translate(-132px, 58px) rotate(-9deg) scale(.88); }
  27% { opacity: 1; transform: translate(-18px, -52px) rotate(-4deg) scale(.96); }
  31% { opacity: 1; transform: translate(-2px, -47px) rotate(-2deg) scale(1); }
  43% { opacity: 1; transform: translate(46px, -28px) rotate(2deg) scale(1); }
  53% { opacity: 1; transform: translate(44px, 14px) rotate(3deg) scale(.98); }
  68% { opacity: 1; transform: translate(46px, 42px) rotate(4deg) scale(1); }
  76% { opacity: 1; transform: translate(18px, 98px) rotate(1deg) scale(1); }
  82%, 88% { opacity: .78; transform: translate(14px, 98px) rotate(1deg) scale(.94); }
  100% { opacity: 0; transform: translate(122px, 58px) rotate(7deg) scale(.88); }
}
@media screen and (max-width: 767px) {
  #root .designWireframe {
    width: min(100%, 290px);
    height: 270px;
  }
  #root .designWireframe__phone {
    width: 134px;
    height: 266px;
    border-radius: 36px;
  }
  #root .designWireframe__phone--mockup {
    width: 140px;
    height: 266px;
    border-radius: 0;
  }
  #root .designWireframe__control {
    width: 30px;
    height: 30px;
    font-size: 19px;
  }
  #root .designWireframe__control--add { right: 32px; }
  #root .designWireframe__control--remove { left: 34px; }
  #root .designWireframe__figmaCursor { width: 62px; }
}
@media (prefers-reduced-motion: reduce) {
  #root .designWireframe__phone,
  #root .designWireframe__aura,
  #root .designWireframe__orb,
  #root .designWireframe__status span,
  #root .designWireframe__block,
  #root .designWireframe__line,
  #root .designWireframe__tile,
  #root .designWireframe__tabbar,
  #root .designWireframe__nav span,
  #root .designWireframe__control,
  #root .designWireframe__figmaCursor {
    animation: none !important;
  }
  #root .designWireframe__block,
  #root .designWireframe__status span,
  #root .designWireframe__line,
  #root .designWireframe__tile,
  #root .designWireframe__tabbar,
  #root .designWireframe__nav span {
    opacity: 1 !important;
    transform: none !important;
  }
  #root .designWireframe__control,
  #root .designWireframe__figmaCursor {
    display: none !important;
  }
}
@media screen and (max-width: 991px) {
  #root .process-40 .process-40__visual--design {
    padding-bottom: 0 !important;
  }
  #root .process-40 .process-40__visual--design .process-40__anim-wrap {
    align-items: center !important;
    justify-content: center !important;
    transform: none !important;
  }
  #root .process-40 .process-40__visual--design .process-40__anim-inner,
  #root .process-40 .process-40__visual--design .designStep,
  #root .process-40 .process-40__visual--design .designStep__stage {
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    transform: none !important;
  }
}
@media screen and (min-width: 992px) {
  #root .process-40 {
    max-width: none !important;
    width: 100% !important;
    margin: 120px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    overflow: visible !important;
    min-height: 0 !important;
  }
  #root .process-40__sticky {
    position: static !important;
    top: auto !important;
    overflow: visible !important;
  }
  #root .process-40__header {
    max-width: 850px !important;
    margin: 0 auto 44px !important;
    padding: 0 !important;
  }
  #root .process-40__viewport {
    overflow: visible !important;
  }
  #root .process-40__timeline {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    transform: none !important;
    will-change: auto !important;
  }
  #root .process-40__axis,
  #root .process-40__mid,
  #root .process-40__dot {
    display: none !important;
  }
  #root .process-40__row,
  #root .process-40__row.is-dev-up,
  #root .process-40__row.is-test-down,
  #root .process-40__row.is-maint-up,
  #root .process-40__row.is-raised {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }
  #root .process-40__column,
  #root .process-40__row.is-left .process-40__column,
  #root .process-40__row.is-right .process-40__column {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
  }
  #root .process-40__column:empty {
    display: none !important;
  }
  #root .process-40__card,
  #root .process-40__row.is-left .process-40__card,
  #root .process-40__row.is-right .process-40__card,
  #root .process-40__card--active {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: 28px 28px 0 !important;
    border-radius: 20px !important;
    border: 0 !important;
    background: #000 !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    outline: 0 !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    isolation: isolate !important;
    --angle: 0deg;
  }
  #root .process-40__card::before,
  #root .process-40__row.is-left .process-40__card::before,
  #root .process-40__row.is-right .process-40__card::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    border-radius: inherit !important;
    padding: 2px !important;
    background: linear-gradient(var(--angle), #070707, #c90076, #682cff) !important;
    opacity: 0 !important;
    transition: opacity 180ms ease !important;
    -webkit-mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0) !important;
    -webkit-mask-composite: xor !important;
    mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0) !important;
    mask-composite: exclude !important;
  }
  #root .process-40__card:hover::before,
  #root .process-40__row.is-left .process-40__card:hover::before,
  #root .process-40__row.is-right .process-40__card:hover::before {
    opacity: 1 !important;
    animation: rotate 10s linear infinite !important;
  }
  #root .process-40__card > * {
    position: relative !important;
    z-index: 1 !important;
  }
  #root .process-40__card-header,
  #root .process-40__row.is-left .process-40__card-header,
  #root .process-40__row.is-right .process-40__card-header {
    justify-content: flex-start !important;
  }
  #root .process-40__meta,
  #root .process-40__row.is-left .process-40__meta,
  #root .process-40__row.is-right .process-40__meta,
  #root .process-40__label,
  #root .process-40__row.is-left .process-40__label,
  #root .process-40__row.is-right .process-40__label,
  #root .process-40__card,
  #root .process-40__row.is-left .process-40__card,
  #root .process-40__row.is-right .process-40__card,
  #root .process-40__card-text,
  #root .process-40__visual {
    text-align: left !important;
  }
  #root .process-40__row.is-left .process-40__icon,
  #root .process-40__row.is-right .process-40__icon {
    order: 0 !important;
  }
  #root .process-40__row.is-left .process-40__meta,
  #root .process-40__row.is-right .process-40__meta {
    order: 1 !important;
  }
  #root .process-40__visual,
  #root .process-40__visual--dev,
  #root .process-40__visual--test,
  #root .process-40__visual--maintenance {
    height: clamp(180px, 21vw, 280px) !important;
    margin-top: auto !important;
  }
  #root .process-40__visual--design {
    --design-visual-height: clamp(180px, 21vw, 280px);
    --design-anim-scale: 0.95;
    height: var(--design-visual-height) !important;
  }
  #root .process-40__visual--design,
  #root .process-40__visual--design .process-40__anim-wrap,
  #root .process-40__visual--design .process-40__anim-inner,
  #root .process-40__visual--design .designStep,
  #root .process-40__visual--design .designStep__stage {
    align-items: center !important;
    justify-content: center !important;
  }
  #root .process-40__visual--dev .process-40__anim-inner {
    transform: scale(0.82) !important;
  }
  #root .process-40__visual--test .process-40__anim-inner {
    transform: scale(0.84) !important;
    transform-origin: center bottom !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
  }
  #root .process-40__visual--test .process-40__anim-wrap {
    align-items: flex-end !important;
    justify-content: center !important;
    overflow: visible !important;
  }
  #root .process-40__visual--test .testClientAnim {
    align-items: flex-end !important;
    justify-content: center !important;
    overflow: visible !important;
  }
  #root .process-40__visual--test .phoneWrapper {
    transform: translateY(0) !important;
    align-self: flex-end !important;
  }
  #root .process-40__visual--maintenance .maintenanceLogoAnim {
    transform: translateY(4px) scale(0.82) !important;
  }
}

/* Methodology mobile/tablet carousel: center current card and reveal neighbours. */
@media screen and (max-width: 991px) {
  #root .process-40 {
    --process-40-card-width: clamp(360px, 68vw, 560px);
    overflow-x: hidden !important;
  }

  #root .process-40 .process-40__timeline {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 max(20px, calc((100% - var(--process-40-card-width)) / 2)) 8px !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scroll-padding-left: max(20px, calc((100% - var(--process-40-card-width)) / 2)) !important;
    scroll-padding-right: max(20px, calc((100% - var(--process-40-card-width)) / 2)) !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  #root .process-40 .process-40__timeline::-webkit-scrollbar {
    display: none;
  }

  #root .process-40 .process-40__axis,
  #root .process-40 .process-40__mid,
  #root .process-40 .process-40__dot {
    display: none !important;
  }

  #root .process-40 .process-40__row,
  #root .process-40 .process-40__row.is-left,
  #root .process-40 .process-40__row.is-right,
  #root .process-40 .process-40__row.is-dev-up,
  #root .process-40 .process-40__row.is-test-down,
  #root .process-40 .process-40__row.is-maint-up,
  #root .process-40 .process-40__row.is-raised {
    display: block !important;
    flex: 0 0 var(--process-40-card-width) !important;
    width: var(--process-40-card-width) !important;
    min-width: var(--process-40-card-width) !important;
    max-width: var(--process-40-card-width) !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    scroll-snap-align: center !important;
  }

  #root .process-40 .process-40__column,
  #root .process-40 .process-40__row.is-left .process-40__column,
  #root .process-40 .process-40__row.is-right .process-40__column {
    display: block !important;
    width: 100% !important;
    flex: none !important;
    padding: 0 !important;
  }

  #root .process-40 .process-40__column:empty {
    display: none !important;
  }

  #root .process-40 .process-40__card,
  #root .process-40 .process-40__row.is-left .process-40__card,
  #root .process-40 .process-40__row.is-right .process-40__card {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    transform: none !important;
  }
}

@media screen and (max-width: 767px) {
  #root .process-40 {
    --process-40-card-width: clamp(240px, 74vw, 340px);
  }

  #root .process-40 .process-40__timeline {
    gap: 12px !important;
    padding-left: max(16px, calc((100% - var(--process-40-card-width)) / 2)) !important;
    padding-right: max(16px, calc((100% - var(--process-40-card-width)) / 2)) !important;
    scroll-padding-left: max(16px, calc((100% - var(--process-40-card-width)) / 2)) !important;
    scroll-padding-right: max(16px, calc((100% - var(--process-40-card-width)) / 2)) !important;
  }
}

