/* Rules shared by the three service pages: the carousel/stack styling that
   service-web-design-development-runtime.js drives, plus our own additions. */

/* The captured Next.js loader has no app-router transition to dismiss it locally. */
body > div[style*="position:fixed"][style*="z-index:50"][style*="100vw"],
body > div[style*="position: fixed"][style*="z-index: 50"][style*="100vw"] {
  display: none !important;
}

body {
  visibility: visible !important;
}

@media (prefers-reduced-motion: reduce) {
  [data-animation],
  .rebelLetters,
  .againstLetters,
  .boringLetters {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
}

.StatisticsCarousel_swiper__PLGJ6[data-manual-stack="true"] .swiper-wrapper{display:grid;transform-style:preserve-3d;perspective:1200px}
.StatisticsCarousel_swiper__PLGJ6[data-manual-stack="true"] .swiper-slide{grid-area:1/1;width:100%!important;transition:transform .6s ease,opacity .6s ease;transform-origin:center;will-change:transform}
.StatisticsCarousel_swiper__PLGJ6[data-manual-stack="true"] .swiper-slide:after{content:"";position:absolute;inset:0;border-radius:20px;background:#efefef;opacity:var(--stack-shadow,0);pointer-events:none;transition:opacity .6s ease}
.TestimonialsCarousel_swiper__OcQHM[data-testimonial-stack="true"] .swiper-wrapper{display:grid;transform-style:preserve-3d;perspective:1200px}
.TestimonialsCarousel_swiper__OcQHM[data-testimonial-stack="true"] .swiper-slide{grid-area:1/1;width:100%!important;transition:transform .6s ease,opacity .6s ease;transform-origin:center;will-change:transform}
.TestimonialsCarousel_swiper__OcQHM[data-testimonial-stack="true"]{cursor:grab;touch-action:pan-y}
.TestimonialsCarousel_swiper__OcQHM[data-testimonial-stack="true"]:active{cursor:grabbing}

/* The timeline blocks ship at opacity 0 waiting for a scroll animation; ScrollReveal
   adds this class as each one scrolls into view. */
.Timeline_block__WRSOn.is-revealed,
.Timeline_bottomTimeline__2F2yN.is-revealed {
  opacity: 1;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.Timeline_block__WRSOn.is-revealed {
  transform: none;
}

/* The studio address is longer than the one this CTA was set for; sizing the link
   relative to its paragraph keeps it inside the column at every breakpoint. */
.LargeCta_subHeading__Cs6d8 a {
  font-size: 0.75em;
  overflow-wrap: anywhere;
}
.brand-pulse-spline {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #000;
  overflow: hidden;
}

.brand-pulse-spline canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.brand-pulse-outlines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  pointer-events: none;
}

.brand-pulse-outlines svg {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.TextImageRows_sphereWrapper__0OyXO,
.TextImageRows_sphereWrapper__0OyXO .Sphere_particle__E2OB8 {
  width: 100%;
  height: 100%;
  background: #000;
}
