@font-face {
  font-family: "Onest Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets/fonts/onest-cyrillic.woff2") format("woff2-variations");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Onest Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets/fonts/onest-latin.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Unbounded Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 200 900;
  src: url("/assets/fonts/unbounded-cyrillic.woff2") format("woff2-variations");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Unbounded Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 200 900;
  src: url("/assets/fonts/unbounded-latin.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --font-body: "Onest Variable", sans-serif;
  --font-display: "Unbounded Variable", sans-serif;
}

html,
body,
button,
input,
select,
textarea {
  font-family: var(--font-body);
}

body {
  letter-spacing: 0;
}

h1,
h2,
h3,
.wordmark,
.proof-item strong,
.brand-glow-scene {
  font-family: var(--font-display);
  letter-spacing: 0;
}

.hero-kicker > span,
.proof-index,
.case-sequence-index > span,
.motion-reel figcaption > span,
.solution-number,
.process-list-v2 > li > span,
.service-grid article > span,
.case-process > li > span,
.contact-methods article > span {
  display: none !important;
}

.hero-v2 {
  display: flex;
  min-height: 680px;
  height: calc(100svh - var(--header-height));
  max-height: 880px;
  align-items: center;
  overflow: hidden;
  background: #050608;
}

.hero-ambient {
  inset: 0;
  background: #050608;
}

.hero-ambient::after {
  position: absolute;
  z-index: 3;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(4, 5, 7, 0.98) 0%, rgba(4, 5, 7, 0.86) 43%, rgba(4, 5, 7, 0.35) 72%, rgba(4, 5, 7, 0.66) 100%);
}

.hero-ambient-backdrop {
  position: absolute;
  inset: -7%;
  display: block;
  width: 114%;
  height: 114%;
  background: var(--hero-ambient-image) center / cover no-repeat;
  filter: blur(30px) brightness(0.42) saturate(1.18);
  animation: hero-backdrop-drift 15s ease-in-out infinite alternate;
}

.hero-ambient-focus {
  position: absolute;
  z-index: 1;
  top: 4%;
  right: clamp(18px, 5vw, 92px);
  display: block;
  width: min(50vw, 690px);
  height: 92%;
  object-fit: contain;
  object-position: center right;
  filter: brightness(0.88) contrast(1.08) saturate(1.05);
  -webkit-mask-image: radial-gradient(ellipse 72% 82% at 58% 50%, #000 52%, transparent 100%);
  mask-image: radial-gradient(ellipse 72% 82% at 58% 50%, #000 52%, transparent 100%);
  animation: hero-focus-float 8s ease-in-out infinite alternate;
}

.hero-ambient-canvas {
  position: absolute;
  z-index: 2;
  inset: 0;
  opacity: 0.44;
  mix-blend-mode: screen;
}

.hero-ambient-plane {
  z-index: 2;
  width: 42vw;
  height: 1px;
  opacity: 0.55;
  background: rgba(79, 143, 255, 0.72);
  border: 0;
  box-shadow: 0 0 24px rgba(79, 143, 255, 0.46);
}

.hero-ambient-plane-a {
  top: 30%;
  right: -6%;
  transform: rotate(-8deg);
}

.hero-ambient-plane-b {
  top: 72%;
  right: 8%;
  bottom: auto;
  transform: rotate(9deg);
}

.hero-editorial-grid {
  display: block;
  width: min(calc(100% - 48px), var(--container));
  margin-inline: auto;
}

.hero-v2 .hero-content {
  max-width: 760px;
  margin: 0;
  padding: clamp(70px, 9vw, 126px) 0;
  background: transparent;
  border: 0;
}

.hero-kicker {
  display: block;
  margin-bottom: clamp(24px, 4vw, 50px);
  padding: 0;
  border: 0;
}

.hero-kicker .eyebrow {
  text-align: left;
}

.hero-v2 h1 {
  max-width: 720px;
  font-size: clamp(52px, 5.6vw, 84px);
  font-weight: 520;
  line-height: 0.94;
}

.hero-v2 h1 em {
  font-family: var(--font-display);
  font-size: 0.62em;
  font-style: normal;
  font-weight: 270;
  line-height: 1.16;
}

.hero-v2 .hero-copy {
  max-width: 600px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 18px;
}

.hero-facts-rail .proof-item {
  grid-template-columns: 1fr;
  min-height: 126px;
  align-content: center;
}

.hero-facts-rail .proof-item strong,
.hero-facts-rail .proof-item > span:last-of-type,
.hero-facts-rail .proof-item small {
  grid-column: 1;
}

.rive-accent-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.rive-accent {
  position: absolute;
  z-index: -1;
  inset: 50% -7% auto auto;
  display: block;
  width: min(72vw, 1120px);
  height: min(62vh, 600px);
  opacity: 0.62;
  transform: translateY(-50%);
  filter: saturate(1.2) contrast(1.12);
  mix-blend-mode: screen;
  pointer-events: none;
}

.measurement-section .rive-accent {
  z-index: 0;
  opacity: 0.22;
  mix-blend-mode: screen;
}

.brand-glow-scene {
  position: relative;
  z-index: 1;
  display: flex;
  width: min(calc(100% - 48px), var(--container));
  min-height: clamp(210px, 25vw, 340px);
  justify-content: center;
  align-items: center;
  gap: 0.22em;
  margin: clamp(48px, 7vw, 100px) auto 0;
  overflow: hidden;
  color: #07101d;
  font-size: clamp(38px, 6.2vw, 100px);
  font-weight: 360;
  line-height: 0.94;
  text-align: center;
  -webkit-text-stroke: 0;
}

.brand-glow-scene > span {
  color: #07101d;
  text-shadow:
    -1px -1px 0 rgba(255, 255, 255, 0.54),
    0 -1px 0 rgba(255, 255, 255, 0.54),
    1px -1px 0 rgba(255, 255, 255, 0.54),
    -1px 0 0 rgba(255, 255, 255, 0.54),
    1px 0 0 rgba(255, 255, 255, 0.54),
    -1px 1px 0 rgba(255, 255, 255, 0.54),
    0 1px 0 rgba(255, 255, 255, 0.54),
    1px 1px 0 rgba(255, 255, 255, 0.54);
}

.brand-glow-scene strong {
  color: #f5f8ff;
  -webkit-text-stroke: 0;
  text-shadow: 0 0 7px rgba(255, 255, 255, 0.85), 0 0 24px rgba(79, 143, 255, 0.78), 0 0 68px rgba(79, 143, 255, 0.54);
  animation: neon-text-breathe 3.6s ease-in-out infinite;
}

.brand-glow-scene i {
  position: absolute;
  left: -25%;
  width: 26%;
  height: 2px;
  background: #f5f8ff;
  box-shadow: 0 0 10px #fff, 0 0 32px #4f8fff;
  animation: neon-scan 5s ease-in-out infinite;
}

.showcase-heading {
  margin-bottom: clamp(38px, 6vw, 72px);
}

.showcase-viewport {
  width: min(calc(100% - 48px), var(--container));
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  cursor: default;
}

.showcase-track {
  position: relative;
  width: 100%;
  min-height: 420px;
  column-gap: 0;
  will-change: auto;
}

.showcase-page {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(var(--showcase-columns, 3), minmax(0, 1fr));
  gap: clamp(12px, 1.5vw, 22px);
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: opacity 680ms ease, transform 680ms cubic-bezier(0.22, 1, 0.36, 1);
}

.showcase-page-incoming {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translate3d(4%, 0, 0);
}

.showcase-page-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.showcase-page-outgoing {
  opacity: 0;
  transform: translate3d(-4%, 0, 0);
}

.showcase-item {
  position: relative;
  width: 100%;
  max-width: none;
  min-width: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #11141b;
}

.showcase-item::before {
  position: absolute;
  inset: -10%;
  content: "";
  background: var(--showcase-image) center / cover no-repeat;
  filter: blur(24px) brightness(0.58) saturate(0.9);
  transform: scale(1.12);
}

.showcase-item::after {
  position: absolute;
  inset: 0;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.16);
  pointer-events: none;
}

.showcase-item > img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: contain;
  filter: contrast(1.04) saturate(0.98);
}

.showcase-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 30px;
}

.showcase-footer .text-link {
  color: var(--white);
}

.case-sequence-lead .case-sequence-media,
.case-sequence-wide .case-sequence-media {
  width: min(78%, 760px);
  justify-self: center;
}

.case-sequence-small .case-sequence-media {
  width: min(88%, 520px);
  justify-self: center;
}

.process-stage,
.process-media-grid,
.process-media-grid figure,
.process-material,
.process-material-media {
  background: transparent !important;
  box-shadow: none !important;
}

.process-stage {
  height: clamp(720px, 64vw, 820px);
  min-height: 0;
}

.process-media-grid {
  height: 100%;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
  overflow: hidden;
}

.process-list-v2 li {
  grid-template-columns: 1fr;
}

.process-list-v2 {
  color: var(--white);
  background: #0b0d12;
}

.process-list-v2 h3 {
  color: var(--white);
}

.process-list-v2 p {
  color: rgba(255, 255, 255, 0.62);
}

.process-section-v2 {
  position: relative;
  isolation: isolate;
}

.process-section-v2::before {
  position: absolute;
  z-index: -1;
  top: clamp(120px, 13vw, 210px);
  right: -12%;
  width: min(78vw, 1120px);
  height: clamp(260px, 34vw, 470px);
  content: "";
  opacity: 0.34;
  background:
    repeating-radial-gradient(ellipse 64% 130% at 100% 50%, transparent 0 18px, rgba(38, 101, 209, 0.25) 19px 20px, transparent 21px 36px),
    repeating-radial-gradient(ellipse 70% 105% at 100% 55%, transparent 0 28px, rgba(3, 8, 18, 0.12) 29px 30px, transparent 31px 52px);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 34%, #000 88%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 34%, #000 88%, transparent 100%);
  animation: process-lines-drift 10s ease-in-out infinite alternate;
  pointer-events: none;
}

[data-ambient-frame="ready"] {
  position: relative;
  isolation: isolate;
  overflow: hidden !important;
  background: #0d1016 !important;
}

[data-ambient-frame="ready"]::before {
  position: absolute;
  z-index: -1;
  inset: -10%;
  content: "";
  background: var(--ambient-frame-image) center / cover no-repeat;
  filter: blur(24px) brightness(0.62) saturate(0.86);
  transform: scale(1.12);
}

.process-media-grid [data-ambient-frame="ready"] img,
.case-sequence [data-ambient-frame="ready"] img,
.solutions-layout [data-ambient-frame="ready"] img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: transparent;
}

.process-media-grid [data-ambient-frame="ready"] {
  width: 100%;
  height: 100%;
  min-height: 0;
  align-self: stretch;
  aspect-ratio: auto;
}

.service-hero {
  position: relative;
  display: flex;
  min-height: clamp(650px, calc(100svh - 76px), 820px);
  height: auto;
  max-height: none;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
  background: #06070a;
}

.service-hero::before {
  position: absolute;
  z-index: -3;
  inset: -7%;
  display: block;
  content: "";
  background: var(--service-hero-image) center / cover no-repeat;
  filter: blur(30px) brightness(0.46) saturate(0.86);
  transform: scale(1.1);
}

.service-hero::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(5, 6, 8, 0.98) 0%, rgba(5, 6, 8, 0.88) 46%, rgba(5, 6, 8, 0.42) 74%, rgba(5, 6, 8, 0.72) 100%);
}

.service-hero > img {
  position: absolute;
  z-index: -2;
  inset: 6% clamp(16px, 5vw, 88px) 6% auto;
  display: block;
  width: min(49vw, 740px);
  height: 88%;
  object-fit: contain;
  object-position: center;
  background: transparent;
  border: 0;
  filter: contrast(1.08) saturate(0.98);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 13%, #000 88%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 13%, #000 88%, transparent 100%);
}

.service-hero-shade {
  display: none;
}

.service-hero-content {
  position: relative;
  z-index: 2;
  display: block;
  width: min(calc(100% - 48px), var(--container));
  max-width: var(--container);
  margin-inline: auto;
  padding: clamp(82px, 9vw, 128px) min(49%, 700px) clamp(72px, 8vw, 116px) 0;
  background: transparent !important;
  border: 0 !important;
}

.service-hero-content::before,
.service-proof-grid div::before {
  display: none !important;
  content: none !important;
}

.service-hero h1 {
  max-width: 760px;
  font-size: clamp(46px, 4.8vw, 76px);
  font-weight: 480;
  line-height: 0.98;
}

.service-lead {
  max-width: 610px;
  color: rgba(255, 255, 255, 0.8);
}

.service-proof-grid div {
  grid-template-columns: 1fr;
}

.service-proof-grid strong,
.service-proof-grid span {
  grid-column: 1;
}

.service-grid h3 {
  margin-top: 0;
}

.case-process li {
  grid-template-columns: 1fr;
}

@keyframes hero-backdrop-drift {
  from { transform: scale(1.04) translate3d(-1%, -1%, 0); }
  to { transform: scale(1.11) translate3d(2%, 1.5%, 0); }
}

@keyframes hero-focus-float {
  from { transform: translate3d(0, -1%, 0) scale(0.985); }
  to { transform: translate3d(-1.2%, 1%, 0) scale(1.015); }
}

@keyframes neon-text-breathe {
  0%, 100% { opacity: 0.86; filter: brightness(0.92); }
  50% { opacity: 1; filter: brightness(1.18); }
}

@keyframes neon-scan {
  0%, 12% { transform: translateX(0); opacity: 0; }
  22% { opacity: 1; }
  76% { opacity: 1; }
  88%, 100% { transform: translateX(580%); opacity: 0; }
}

@keyframes service-ambient-drift {
  from { transform: scale(1.08) translate3d(-1%, 0, 0); }
  to { transform: scale(1.14) translate3d(1.5%, -1%, 0); }
}

@keyframes service-focus-float {
  from { transform: translate3d(0, -1%, 0); }
  to { transform: translate3d(-1.2%, 1%, 0); }
}

@keyframes process-lines-drift {
  from { transform: translate3d(0, -1.5%, 0) scale(0.985); }
  to { transform: translate3d(-3%, 2%, 0) scale(1.03); }
}

@media (prefers-reduced-motion: no-preference) {
  .service-hero[data-ambient-media="ready"]::before {
    animation: service-ambient-drift 14s ease-in-out infinite alternate;
  }

  .service-hero[data-ambient-media="ready"] > img {
    animation: service-focus-float 8s ease-in-out infinite alternate;
  }
}

@media (max-width: 980px) {
  .process-stage {
    height: auto;
  }

  .process-media-grid {
    height: 700px;
    min-height: 700px;
  }

  .hero-ambient-focus {
    right: -8%;
    width: 64vw;
    opacity: 0.78;
  }

  .service-hero > img {
    right: -10%;
    width: 70vw;
    opacity: 0.58;
  }

  .service-hero-content {
    padding-right: 24%;
  }
}

@media (max-width: 680px) {
  .process-media-grid {
    height: 520px;
    min-height: 520px;
  }

  .hero-v2 {
    min-height: 700px;
    height: auto;
    max-height: none;
  }

  .hero-editorial-grid,
  .showcase-viewport,
  .brand-glow-scene {
    width: calc(100% - 32px);
  }

  .process-section-v2::before {
    top: 128px;
    right: -74%;
    width: 170vw;
    height: 300px;
    opacity: 0.28;
  }

  .hero-v2 .hero-content {
    padding: 88px 0 64px;
  }

  .hero-v2 h1 {
    font-size: clamp(42px, 12.5vw, 58px);
  }

  .hero-ambient-focus {
    top: auto;
    right: -18%;
    bottom: -5%;
    width: 88vw;
    height: 72%;
    opacity: 0.48;
  }

  .brand-glow-scene {
    min-height: 220px;
    flex-direction: column;
    font-size: clamp(34px, 10.8vw, 52px);
  }

  .showcase-track {
    min-height: 0;
  }

  .case-sequence-lead .case-sequence-media,
  .case-sequence-wide .case-sequence-media,
  .case-sequence-small .case-sequence-media {
    width: min(92%, 520px);
  }

  .service-hero {
    min-height: 700px;
  }

  .service-hero::after {
    background: linear-gradient(180deg, rgba(5, 6, 8, 0.96) 0%, rgba(5, 6, 8, 0.82) 62%, rgba(5, 6, 8, 0.72) 100%);
  }

  .service-hero > img,
  .service-hero > .contact-team-slot {
    position: absolute;
    inset: auto -16% -4% auto;
    width: 96vw;
    height: 66%;
    opacity: 0.4;
    border: 0;
  }

  .service-hero-content {
    width: calc(100% - 32px);
    padding: 76px 0 64px;
  }

  .service-hero h1 {
    font-size: clamp(36px, 10.5vw, 50px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-ambient-backdrop,
  .hero-ambient-focus,
  .brand-glow-scene strong,
  .brand-glow-scene i,
  .process-section-v2::before,
  .showcase-page {
    animation: none;
    transition: none;
  }
}

@media (max-width: 560px) {
  .service-page :where(h1, h2, h3, h4, p, li, blockquote) {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: break-word;
  }

  .service-page .service-cta-layout,
  .service-page .service-cta-layout > *,
  .service-page .service-grid,
  .service-page .service-grid > *,
  .service-page .service-editorial,
  .service-page .service-editorial > * {
    max-width: 100%;
    min-width: 0;
  }
}

/* D-036/D-040 owner correction pass. */
html,
body {
  overflow-x: clip;
}

.hero-ambient::before {
  position: absolute;
  z-index: 1;
  inset: -18% -8% -12% 34%;
  content: "";
  opacity: 0.72;
  background:
    radial-gradient(ellipse 58% 34% at 72% 28%, rgba(111, 231, 255, 0.2), transparent 70%),
    radial-gradient(ellipse 72% 46% at 70% 66%, rgba(31, 94, 236, 0.24), transparent 72%);
  filter: blur(22px);
  animation: aurora-wash-drift 9s ease-in-out infinite alternate;
}

.hero-ambient::after {
  background:
    linear-gradient(90deg, rgba(3, 4, 7, 0.98) 0%, rgba(3, 4, 7, 0.88) 37%, rgba(3, 4, 7, 0.22) 69%, rgba(3, 4, 7, 0.48) 100%),
    linear-gradient(180deg, transparent 58%, rgba(3, 4, 7, 0.46));
}

.hero-ambient-canvas {
  opacity: 0.94;
}

.hero-ambient-plane {
  width: 54vw;
  opacity: 0.36;
}

.hero-v2 .hero-content {
  position: relative;
  z-index: 5;
}

.rive-accent {
  inset: 50% auto auto 50%;
  width: 116vw;
  max-width: none;
  height: min(68vh, 650px);
  opacity: 0.7;
  transform: translate(-50%, -50%);
}

.rive-accent-section-a .rive-accent {
  top: 57%;
}

.local-signal-section,
.measurement-section {
  overflow: hidden;
}

.local-signal-section::before,
.measurement-section::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  content: "";
  background:
    radial-gradient(ellipse 76% 44% at 50% 54%, rgba(14, 92, 196, 0.16), transparent 72%),
    linear-gradient(120deg, transparent 28%, rgba(55, 168, 255, 0.05) 52%, transparent 76%);
  pointer-events: none;
}

.work-showcase {
  padding-block: clamp(96px, 10vw, 150px);
  overflow: hidden;
  background:
    radial-gradient(ellipse 50% 38% at 16% 12%, rgba(51, 122, 255, 0.1), transparent 70%),
    #07090d;
}

.showcase-viewport {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.showcase-track {
  display: flex;
  width: max-content;
  min-height: 0;
  column-gap: clamp(10px, 1vw, 16px);
  align-items: center;
  padding-inline: 0;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.showcase-page,
.showcase-page-incoming,
.showcase-page-visible,
.showcase-page-outgoing {
  display: contents;
}

.showcase-item {
  --showcase-stream-height: clamp(300px, 37vw, 500px);
  position: relative;
  flex: 0 0 auto;
  width: calc(var(--showcase-stream-height) * var(--media-ratio, 0.8));
  max-width: none;
  height: var(--showcase-stream-height);
  aspect-ratio: var(--media-ratio, 0.8);
  overflow: hidden;
  background: transparent;
  border: 0;
}

.showcase-item::before {
  display: none;
  content: none;
}

.showcase-item::after {
  border-color: rgba(255, 255, 255, 0.13);
}

.showcase-item > img {
  width: 100%;
  height: 100%;
  object-fit: fill;
  background: transparent;
  filter: contrast(1.035) saturate(1.02);
}

.works-section-v2 {
  position: relative;
  isolation: isolate;
  padding-block: clamp(92px, 9vw, 132px);
  overflow: hidden;
  color: var(--white);
  background: #0a0c11;
}

.works-section-v2::before {
  position: absolute;
  z-index: -1;
  inset: -20% -18%;
  content: "";
  opacity: 0.46;
  background:
    repeating-radial-gradient(ellipse 62% 94% at 82% 40%, transparent 0 28px, rgba(59, 147, 255, 0.16) 29px 30px, transparent 31px 54px),
    radial-gradient(ellipse 32% 36% at 78% 34%, rgba(41, 126, 255, 0.13), transparent 72%);
  -webkit-mask-image: linear-gradient(90deg, transparent 2%, #000 34%, #000 92%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 2%, #000 34%, #000 92%, transparent 100%);
  animation: works-field-drift 8s ease-in-out infinite alternate;
  pointer-events: none;
}

.works-section-v2 .section-heading {
  margin-bottom: clamp(46px, 5vw, 68px);
}

.works-section-v2 .section-heading > p,
.works-section-v2 .eyebrow-dark,
.works-section-v2 h2 em,
.works-section-v2 .case-sequence-copy p {
  color: rgba(255, 255, 255, 0.62);
}

.works-section-v2 h2 {
  color: var(--white);
}

.case-sequence {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(36px, 4vw, 62px) clamp(18px, 2vw, 30px);
  align-items: start;
}

.case-sequence-pair {
  display: contents;
}

.case-sequence-item,
.case-sequence-lead,
.case-sequence-wide,
.case-sequence-small {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0;
  margin: 0;
}

.case-sequence-lead {
  grid-column: 1 / span 7;
}

.case-sequence-pair .case-sequence-small:first-child {
  grid-column: 8 / span 5;
}

.case-sequence-pair .case-sequence-small:last-child {
  grid-column: 1 / span 5;
}

.case-sequence-wide {
  grid-column: 6 / span 7;
}

.case-sequence-index,
.case-sequence-wide .case-sequence-index,
.case-sequence-small .case-sequence-index {
  order: 1;
  display: block;
  width: 100%;
  margin: 0 0 12px;
  padding: 0;
  border: 0;
}

.case-sequence-index small {
  color: #73b8ff;
  letter-spacing: 0.06em;
}

.case-sequence-media,
.case-sequence-lead .case-sequence-media,
.case-sequence-wide .case-sequence-media,
.case-sequence-small .case-sequence-media {
  order: 2;
  width: 100%;
  height: clamp(260px, 31vw, 430px);
  justify-self: auto;
  background: rgba(5, 7, 10, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.case-sequence-pair .case-sequence-small .case-sequence-media {
  height: clamp(250px, 27vw, 370px);
}

.case-sequence-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.case-sequence-copy,
.case-sequence-wide .case-sequence-copy,
.case-sequence-small .case-sequence-copy {
  order: 3;
  width: 100%;
  padding: 20px 0 0;
  align-self: auto;
}

.case-sequence-copy h3 {
  margin-bottom: 16px;
  color: var(--white);
  font-size: clamp(28px, 3vw, 42px);
}

.works-section-v2 .text-link {
  color: var(--white);
}

.works-section-v2 .evidence-links {
  margin-top: clamp(58px, 7vw, 88px);
  border-color: rgba(255, 255, 255, 0.18);
}

.works-section-v2 .evidence-links a,
.works-section-v2 .evidence-links strong {
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.14);
}

.reviews-reel-section {
  position: relative;
  isolation: isolate;
  padding-block: clamp(90px, 9vw, 132px);
  overflow: hidden;
  color: var(--white);
  background:
    radial-gradient(ellipse 44% 50% at 18% 40%, rgba(43, 111, 235, 0.13), transparent 72%),
    #11151d;
}

.reviews-reel-section::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  opacity: 0.34;
  background: repeating-linear-gradient(112deg, transparent 0 72px, rgba(104, 194, 255, 0.1) 73px, transparent 74px 144px);
  animation: review-light-drift 11s linear infinite;
  pointer-events: none;
}

.reviews-reel-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 32px;
  margin-bottom: clamp(40px, 5vw, 64px);
}

.reviews-reel-heading h2 {
  max-width: 850px;
  margin: 0;
  color: var(--white);
  font-size: clamp(36px, 4vw, 60px);
  line-height: 1.02;
}

.reviews-reel-heading .eyebrow-dark,
.reviews-reel-heading .text-link {
  color: rgba(255, 255, 255, 0.76);
}

.reviews-reel-viewport {
  width: 100%;
  overflow: hidden;
  outline: none;
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  overscroll-behavior-inline: contain;
}

.reviews-reel-viewport.is-dragging {
  cursor: grabbing;
}

.reviews-reel-viewport.is-dragging .review-post {
  pointer-events: none;
}

.reviews-reel-viewport:focus-visible {
  outline: 2px solid #5ca8ff;
  outline-offset: -2px;
}

.reviews-reel-track {
  display: flex;
  width: max-content;
  column-gap: 16px;
  align-items: flex-start;
  padding-inline: 16px;
  animation: none;
  will-change: transform;
}

.reviews-reel-group {
  display: flex;
  flex: none;
  column-gap: 16px;
  align-items: flex-start;
}

.review-post {
  flex: 0 0 clamp(320px, 31vw, 430px);
  width: clamp(320px, 31vw, 430px);
  min-height: 270px;
  padding: 24px;
  color: #11151d;
  background: rgba(248, 250, 253, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.22);
}

.review-post header {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 22px;
}

.review-avatar {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, #111827, #287be0 72%, #72d7ff);
  border-radius: 50%;
  font-size: 13px;
  font-weight: 800;
}

.review-author {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.review-author strong {
  overflow-wrap: anywhere;
  font-size: 16px;
}

.review-author time {
  color: #68707b;
  font-size: 12px;
}

.review-stars {
  color: #236fce;
  font-size: 14px;
  letter-spacing: 0;
  white-space: nowrap;
}

.review-post blockquote {
  margin: 0;
  color: #2c323a;
  font-size: 15px;
  line-height: 1.58;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.process-section-v2 {
  isolation: isolate;
}

.process-wave-field {
  position: absolute;
  z-index: -1;
  top: 40px;
  right: 0;
  left: 0;
  height: clamp(280px, 34vw, 480px);
  overflow: hidden;
  opacity: 0.48;
  pointer-events: none;
}

.process-wave-field i {
  position: absolute;
  top: calc(16% + var(--line, 0) * 14%);
  left: -8%;
  width: 116%;
  height: 62%;
  border: 1px solid rgba(39, 119, 233, 0.32);
  border-right-color: transparent;
  border-left-color: transparent;
  border-radius: 50%;
  transform: translate3d(calc(var(--line, 0) * -2%), 0, 0) rotate(calc(-4deg + var(--line, 0) * 2deg));
  animation: process-wave-sweep calc(5.5s + var(--line, 0) * 0.8s) ease-in-out infinite alternate;
}

.process-wave-field i:nth-child(1) { --line: 0; }
.process-wave-field i:nth-child(2) { --line: 1; }
.process-wave-field i:nth-child(3) { --line: 2; }
.process-wave-field i:nth-child(4) { --line: 3; }

.process-section-v2::before {
  right: -4%;
  width: 108vw;
  opacity: 0.24;
  animation-duration: 6.5s;
}

.process-stage {
  grid-template-columns: minmax(0, 1.35fr) minmax(430px, 0.65fr);
  height: clamp(650px, 56vw, 760px);
}

.process-list-v2 li,
.process-list-v2 li + li {
  display: block;
  min-width: 0;
  padding: clamp(26px, 2.5vw, 38px) clamp(28px, 3.5vw, 48px);
}

.process-list-v2 li > div {
  width: 100%;
  min-width: 0;
}

.process-list-v2 h3,
.process-list-v2 p {
  width: 100%;
  max-width: 340px;
  overflow-wrap: normal;
  word-break: normal;
}

.process-list-v2 h3 {
  font-size: clamp(24px, 2.2vw, 32px);
}

.service-content,
.service-faq {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse 52% 48% at 92% 18%, rgba(62, 140, 236, 0.12), transparent 72%),
    linear-gradient(180deg, #f4f6f8, #eef1f5);
}

.service-content::before,
.service-faq::before {
  position: absolute;
  z-index: -1;
  inset: -20% -8%;
  content: "";
  opacity: 0.5;
  background: repeating-radial-gradient(ellipse 62% 110% at 100% 48%, transparent 0 28px, rgba(35, 104, 201, 0.14) 29px 30px, transparent 31px 56px);
  -webkit-mask-image: linear-gradient(90deg, transparent 6%, #000 48%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 6%, #000 48%, #000 100%);
  animation: service-surface-drift 7s ease-in-out infinite alternate;
  pointer-events: none;
}

.service-content > .container,
.service-faq > .container {
  position: relative;
  z-index: 1;
}

.service-hero::after {
  background:
    linear-gradient(90deg, rgba(5, 6, 8, 0.98) 0%, rgba(5, 6, 8, 0.88) 43%, rgba(5, 6, 8, 0.32) 73%, rgba(5, 6, 8, 0.67) 100%),
    radial-gradient(ellipse 50% 72% at 82% 38%, rgba(37, 128, 242, 0.18), transparent 72%);
}

@keyframes aurora-wash-drift {
  from { transform: translate3d(-2%, -1%, 0) rotate(-2deg) scale(0.98); }
  to { transform: translate3d(2%, 2%, 0) rotate(2deg) scale(1.04); }
}

@keyframes works-field-drift {
  from { transform: translate3d(2%, -1%, 0) scale(0.98); }
  to { transform: translate3d(-2%, 2%, 0) scale(1.03); }
}

@keyframes review-light-drift {
  to { transform: translate3d(144px, 0, 0); }
}

@keyframes process-wave-sweep {
  from { translate: -2% -3%; scale: 0.98; }
  to { translate: 3% 4%; scale: 1.03; }
}

@keyframes service-surface-drift {
  from { transform: translate3d(1%, -2%, 0) scale(0.99); }
  to { transform: translate3d(-3%, 2%, 0) scale(1.03); }
}

@media (max-width: 1100px) {
  .process-stage {
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, 0.92fr);
  }
}

@media (max-width: 900px) {
  .case-sequence {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .case-sequence-lead,
  .case-sequence-wide,
  .case-sequence-pair .case-sequence-small:first-child,
  .case-sequence-pair .case-sequence-small:last-child {
    grid-column: auto;
  }

  .case-sequence-media,
  .case-sequence-lead .case-sequence-media,
  .case-sequence-wide .case-sequence-media,
  .case-sequence-small .case-sequence-media,
  .case-sequence-pair .case-sequence-small .case-sequence-media {
    height: clamp(250px, 46vw, 390px);
  }

  .process-stage {
    height: auto;
    grid-template-columns: 1fr;
  }

  .process-media-grid {
    height: clamp(520px, 78vw, 700px);
    min-height: 0;
  }

  .process-list-v2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .process-list-v2 li,
  .process-list-v2 li + li {
    min-height: 190px;
    border-right: 1px solid var(--line-dark);
  }

  .process-list-v2 li:nth-child(even) {
    border-right: 0;
  }
}

@media (max-width: 680px) {
  .hero-ambient::before {
    inset: 22% -38% -12% 3%;
  }

  .hero-ambient::after {
    background: linear-gradient(180deg, rgba(3, 4, 7, 0.86) 0%, rgba(3, 4, 7, 0.52) 54%, rgba(3, 4, 7, 0.82) 100%);
  }

  .hero-ambient-canvas {
    opacity: 0.72;
  }

  .rive-accent {
    width: 150vw;
    height: 520px;
  }

  .showcase-item {
    --showcase-stream-height: clamp(270px, 84vw, 360px);
  }

  .case-sequence {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .case-sequence-media,
  .case-sequence-lead .case-sequence-media,
  .case-sequence-wide .case-sequence-media,
  .case-sequence-small .case-sequence-media,
  .case-sequence-pair .case-sequence-small .case-sequence-media {
    height: min(104vw, 410px);
  }

  .reviews-reel-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .reviews-reel-heading h2 {
    font-size: clamp(32px, 9.2vw, 44px);
  }

  .review-post {
    flex-basis: min(86vw, 360px);
    width: min(86vw, 360px);
    padding: 20px;
  }

  .review-post header {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .review-stars {
    grid-column: 2;
  }

  .process-media-grid {
    height: 520px;
  }

  .process-list-v2 {
    grid-template-columns: 1fr;
  }

  .process-list-v2 li,
  .process-list-v2 li + li {
    min-height: 0;
    border-right: 0;
  }

  .process-list-v2 h3,
  .process-list-v2 p {
    max-width: none;
  }

  .service-content::before,
  .service-faq::before {
    right: -88%;
    left: -35%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-ambient::before,
  .works-section-v2::before,
  .reviews-reel-section::after,
  .reviews-reel-track,
  .process-wave-field i,
  .service-content::before,
  .service-faq::before {
    animation: none !important;
    transform: none;
  }

  .reviews-reel-viewport {
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .reviews-reel-track {
    width: max-content;
  }

  .reviews-reel-track > .reviews-reel-group[aria-hidden="true"] {
    display: none;
  }
}

.service-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, min(46vw, 700px));
  min-height: 0;
  height: auto;
  max-height: none;
  align-items: stretch;
  overflow: hidden;
}

.service-hero::before {
  z-index: 0;
  opacity: 0.24;
}

.service-hero::after {
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(5, 6, 8, 0.98) 0%, rgba(5, 6, 8, 0.92) 52%, rgba(5, 6, 8, 0.28) 100%),
    radial-gradient(ellipse 54% 76% at 84% 42%, rgba(38, 129, 245, 0.15), transparent 74%);
  pointer-events: none;
}

.service-hero > img,
.service-hero > .contact-team-slot {
  position: relative;
  z-index: 1;
  inset: auto;
  grid-column: 2;
  grid-row: 1;
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  align-self: center;
  object-fit: fill;
  opacity: 1;
  background: transparent;
  border: 0;
  filter: contrast(1.04) saturate(1.02);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 11%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 11%, #000 100%);
}

.service-hero-content {
  position: relative;
  z-index: 2;
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(72px, 8vw, 116px) clamp(34px, 5vw, 76px) clamp(72px, 8vw, 116px) max(24px, calc((100vw - var(--container)) / 2));
}

.process-stage {
  grid-template-columns: minmax(0, 1.15fr) minmax(430px, 0.85fr);
  height: auto;
  align-items: start;
}

.process-media-grid {
  grid-template-columns: minmax(0, 3.25fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  height: auto;
  min-height: 0;
  align-items: start;
  overflow: hidden;
}

.process-media-grid figure,
.process-media-grid [data-ambient-frame="ready"] {
  width: 100%;
  height: auto;
  min-height: 0;
  align-self: start;
  overflow: hidden;
}

.process-media-grid [data-ambient-frame="ready"]::before {
  display: none;
  content: none;
}

.process-media-grid img,
.process-media-grid [data-ambient-frame="ready"] img {
  position: relative;
  width: 100%;
  height: auto;
  object-fit: fill;
  transform: none;
}

.process-media-grid figure:hover img {
  transform: none;
}

@media (max-width: 900px) {
  .process-stage {
    grid-template-columns: 1fr;
  }

  .process-media-grid {
    grid-template-columns: minmax(0, 3.25fr) minmax(0, 1fr);
    height: auto;
  }
}

@media (max-width: 768px) {
  .service-hero {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
  }

  .service-hero::before {
    opacity: 0.16;
  }

  .service-hero::after {
    background:
      linear-gradient(180deg, rgba(5, 6, 8, 0.18) 0%, rgba(5, 6, 8, 0.44) 46%, rgba(5, 6, 8, 0.98) 100%),
      radial-gradient(ellipse 80% 58% at 50% 18%, rgba(38, 129, 245, 0.13), transparent 74%);
  }

  .service-hero > img,
  .service-hero > .contact-team-slot {
    position: relative;
    inset: auto;
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    height: auto;
    min-height: 0;
    opacity: 1;
    border-bottom: 1px solid var(--line-dark);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 82%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 82%, transparent 100%);
  }

  .service-hero-content {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    padding: 42px 16px 54px;
  }

  .service-hero h1 {
    font-size: clamp(34px, 9.8vw, 48px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .rive-accent {
    display: none;
  }

  .hero-ambient-plane {
    transform: none;
  }
}

/* D-043 continuous light field and final owner visual corrections. */
body {
  color: var(--white);
  background: #05070b;
}

.site-flow-canvas {
  position: fixed;
  z-index: 0;
  inset: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0.82;
  pointer-events: none;
}

main,
.site-footer {
  position: relative;
  z-index: 1;
}

.hero-ambient-plane-a {
  animation: hero-plane-a-drift 7.2s ease-in-out infinite alternate;
}

.hero-ambient-plane-b {
  animation: hero-plane-b-drift 9.4s ease-in-out infinite alternate;
}

.local-signal-section,
.process-section-v2,
.brief-section,
.service-content,
.service-faq {
  color: var(--white);
  background:
    radial-gradient(ellipse 58% 44% at 88% 18%, rgba(42, 128, 238, 0.13), transparent 72%),
    rgba(8, 12, 18, 0.9);
}

.local-signal-section {
  border-color: rgba(255, 255, 255, 0.12);
}

.local-signal-section h2,
.local-signal-copy strong,
.local-signal-links a,
.process-section-v2 h2,
.process-material h3,
.brief-section h2,
.service-content h2,
.service-content h3,
.service-content strong,
.service-faq h2,
.service-faq summary,
.service-faq strong {
  color: var(--white);
}

.local-signal-copy > p,
.process-section-v2 .section-heading > p,
.process-material > p,
.brief-section p,
.service-intro-copy > p:not(.eyebrow),
.service-aside p,
.service-grid p,
.service-faq-list p,
.service-content .muted {
  color: rgba(255, 255, 255, 0.66);
}

.local-signal-links,
.service-grid,
.service-faq-list {
  border-color: rgba(113, 181, 255, 0.3);
}

.local-signal-links a,
.service-grid article,
.service-grid article + article,
.service-grid article:nth-child(3n + 1),
.service-grid article:nth-child(even),
.service-grid article:nth-child(odd),
.service-faq-list details {
  border-color: rgba(255, 255, 255, 0.14);
}

.service-grid article {
  background: rgba(6, 10, 16, 0.42);
}

.service-content::before,
.service-faq::before {
  opacity: 0.38;
  background: repeating-radial-gradient(ellipse 62% 110% at 100% 48%, transparent 0 30px, rgba(63, 157, 255, 0.2) 31px 32px, transparent 33px 60px);
}

.brief-section .contact-panel,
.brief-section .brief-tool {
  color: var(--white);
  background: rgba(9, 14, 22, 0.76);
  border-color: rgba(113, 181, 255, 0.24);
}

.brief-section .contact-panel-copy > p:last-child,
.brief-section .contact-panel-actions p {
  color: rgba(255, 255, 255, 0.62);
}

.works-section-v2 {
  padding-block: clamp(78px, 7vw, 108px);
  background: rgba(7, 10, 15, 0.91);
}

.works-section-v2 .section-heading {
  margin-bottom: clamp(34px, 4vw, 50px);
}

.case-sequence {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 44px) clamp(14px, 1.7vw, 24px);
}

.case-sequence-lead,
.case-sequence-wide,
.case-sequence-pair .case-sequence-small:first-child,
.case-sequence-pair .case-sequence-small:last-child {
  grid-column: auto;
}

.case-sequence-media,
.case-sequence-lead .case-sequence-media,
.case-sequence-wide .case-sequence-media,
.case-sequence-small .case-sequence-media,
.case-sequence-pair .case-sequence-small .case-sequence-media,
.case-sequence-media[data-ambient-frame="ready"] {
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  overflow: hidden;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.case-sequence-media::before,
.case-sequence-media::after,
.case-sequence-media[data-ambient-frame="ready"]::before,
.case-sequence-media[data-ambient-frame="ready"]::after {
  display: none;
  content: none;
}

.case-sequence-media img,
.case-sequence-media[data-ambient-frame="ready"] img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  object-fit: fill;
  transform: none;
  filter: contrast(1.03) saturate(1.02);
}

.case-sequence-media:hover img {
  transform: none;
}

.case-sequence-index,
.case-sequence-wide .case-sequence-index,
.case-sequence-small .case-sequence-index {
  margin-bottom: 10px;
}

.case-sequence-copy,
.case-sequence-wide .case-sequence-copy,
.case-sequence-small .case-sequence-copy {
  padding-top: 16px;
}

.case-sequence-copy h3 {
  margin-bottom: 12px;
  font-size: clamp(24px, 2.2vw, 34px);
}

.works-section-v2 .evidence-links {
  margin-top: clamp(46px, 5vw, 66px);
}

.reviews-reel-section {
  padding-block: clamp(68px, 6.5vw, 92px) clamp(46px, 4vw, 64px);
  background:
    radial-gradient(ellipse 46% 54% at 18% 36%, rgba(42, 119, 241, 0.15), transparent 72%),
    rgba(12, 17, 25, 0.91);
}

.reviews-reel-heading {
  margin-bottom: clamp(30px, 3vw, 42px);
}

.reviews-reel-heading h2 {
  font-size: clamp(36px, 4vw, 60px);
}

.reviews-reel-track,
.reviews-reel-group {
  column-gap: 18px;
}

.review-post {
  position: relative;
  flex-basis: clamp(420px, 39vw, 540px);
  width: clamp(420px, 39vw, 540px);
  min-height: 0;
  padding: 22px;
  background:
    linear-gradient(145deg, rgba(252, 254, 255, 0.99), rgba(235, 242, 251, 0.98)) padding-box,
    linear-gradient(135deg, rgba(111, 226, 255, 0.96), rgba(46, 116, 235, 0.92) 48%, rgba(255, 255, 255, 0.72)) border-box;
  border: 1px solid transparent;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28), 0 0 28px rgba(53, 143, 255, 0.1);
}

.review-post::after {
  position: absolute;
  inset: 9px;
  content: "";
  border: 1px solid rgba(43, 112, 207, 0.12);
  pointer-events: none;
}

.review-post header {
  margin-bottom: 17px;
}

.review-post blockquote {
  display: -webkit-box;
  font-size: 14px;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 8;
  overflow: hidden;
}

.motion-section {
  padding-block: clamp(72px, 7vw, 102px);
  background: rgba(7, 10, 15, 0.93);
}

.motion-reel .motion-play,
.motion-reel .motion-sound {
  position: absolute;
  z-index: 4;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  color: var(--white);
  background: rgba(4, 7, 11, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 50%;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.34);
  cursor: pointer;
  transition: opacity 160ms ease, background 160ms ease, transform 160ms ease;
}

.motion-reel .motion-play {
  inset: auto 16px 16px auto;
  transform: none;
}

.motion-reel .motion-sound {
  inset: 16px auto auto 16px;
  background: rgba(8, 19, 33, 0.9);
  border-color: rgba(108, 207, 255, 0.8);
}

.motion-reel .motion-play:hover,
.motion-reel .motion-sound:hover {
  color: #07101c;
  background: #eefaff;
  transform: scale(1.06);
}

.motion-reel .motion-play svg,
.motion-reel .motion-sound svg {
  width: 20px;
  height: 20px;
  margin: 0;
  fill: none;
}

.motion-reel.is-playing .motion-play {
  opacity: 0;
  pointer-events: auto;
}

.motion-reel.is-playing:hover .motion-play,
.motion-reel.is-playing:focus-within .motion-play {
  opacity: 1;
}

.motion-reel.is-playing figcaption {
  opacity: 0;
}

@keyframes hero-plane-a-drift {
  from { transform: rotate(-9deg) translate3d(-3%, -2%, 0) scale(0.96); opacity: 0.26; }
  to { transform: rotate(-3deg) translate3d(5%, 4%, 0) scale(1.07); opacity: 0.48; }
}

@keyframes hero-plane-b-drift {
  from { transform: rotate(7deg) translate3d(4%, 2%, 0) scale(1.05); opacity: 0.42; }
  to { transform: rotate(1deg) translate3d(-5%, -3%, 0) scale(0.95); opacity: 0.22; }
}

@media (max-width: 980px) {
  .case-sequence {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .site-flow-canvas {
    opacity: 0.68;
  }

  .case-sequence {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .review-post {
    flex-basis: min(88vw, 390px);
    width: min(88vw, 390px);
    padding: 19px;
  }

  .motion-reel .motion-play,
  .motion-reel .motion-sound {
    width: 42px;
    height: 42px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-ambient-plane-a,
  .hero-ambient-plane-b {
    animation: none;
  }
}

/* D-044 owned motion field, tactile gallery, and review frame correction. */
.site-flow-canvas {
  opacity: 0.68;
}

.hero-ambient-canvas {
  opacity: 0.68;
}

.hero-ambient-plane-a {
  animation-duration: 5.2s;
}

.hero-ambient-plane-b {
  animation-duration: 6.8s;
}

.owned-flow-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.owned-flow-field {
  position: absolute;
  z-index: 0;
  inset: -18% -10%;
  display: block;
  width: 120%;
  height: 136%;
  opacity: 0.94;
  pointer-events: none;
}

.owned-flow-field-secondary {
  inset: -28% -12%;
  width: 124%;
  height: 152%;
  opacity: 0.72;
}

.local-signal-layout,
.measurement-layout,
.brand-glow-scene {
  position: relative;
  z-index: 2;
}

.local-signal-section,
.process-section-v2,
.brief-section,
.service-content,
.service-faq {
  background:
    radial-gradient(ellipse 58% 44% at 88% 18%, rgba(42, 128, 238, 0.15), transparent 72%),
    rgba(8, 12, 18, 0.8);
}

.showcase-viewport {
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  overscroll-behavior-inline: contain;
}

.showcase-viewport.is-dragging {
  cursor: grabbing;
}

.showcase-viewport.is-dragging img {
  pointer-events: none;
}

.review-post {
  color: #f5f9ff;
  background:
    linear-gradient(145deg, rgba(15, 25, 39, 0.98), rgba(7, 13, 22, 0.98)) padding-box,
    linear-gradient(135deg, rgba(117, 230, 255, 0.92), rgba(45, 113, 235, 0.74) 50%, rgba(238, 249, 255, 0.46)) border-box;
  border: 1px solid transparent;
  border-radius: 4px;
  box-shadow:
    0 22px 52px rgba(0, 0, 0, 0.34),
    0 0 34px rgba(42, 152, 255, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.review-post::before,
.review-post::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.review-post::before {
  top: -1px;
  left: 24px;
  width: 84px;
  height: 2px;
  background: linear-gradient(90deg, #7deaff, rgba(72, 146, 255, 0));
  box-shadow: 0 0 14px rgba(88, 214, 255, 0.5);
}

.review-post::after {
  inset: 8px;
  border: 1px solid rgba(113, 209, 255, 0.13);
  border-radius: 2px;
}

.review-avatar {
  color: #dffaff;
  background: linear-gradient(145deg, #17365c, #237fd2 58%, #62def9);
  border: 1px solid rgba(151, 235, 255, 0.62);
  box-shadow: 0 0 18px rgba(52, 169, 255, 0.22);
}

.review-author strong {
  color: #f6faff;
}

.review-author time {
  color: rgba(220, 234, 250, 0.58);
}

.review-stars {
  color: #7deaff;
  text-shadow: 0 0 12px rgba(66, 193, 255, 0.34);
}

.review-post blockquote {
  color: rgba(236, 244, 255, 0.8);
}

@media (max-width: 680px) {
  .site-flow-canvas {
    opacity: 0.82;
  }

  .owned-flow-field {
    inset: -8% -44%;
    width: 188%;
    height: 116%;
    opacity: 0.76;
  }
}

@media (max-width: 560px) {
  .service-page :where(h1, h2, h3, h4) {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .service-page :where(p, li, blockquote) {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: break-word;
  }

  .service-page .service-cta-layout,
  .service-page .service-cta-layout > *,
  .service-page .service-grid,
  .service-page .service-grid > *,
  .service-page .service-editorial,
  .service-page .service-editorial > * {
    max-width: 100%;
    min-width: 0;
  }
}

/* D-045 mobile content priority: quick actions, progressive details, compact rails. */
.mobile-action-dock,
.mobile-content-toggle {
  display: none;
}

.messenger-chooser[hidden] {
  display: none !important;
}

.messenger-chooser {
  position: fixed;
  z-index: 140;
  inset: 0;
  display: grid;
  align-items: end;
  justify-items: center;
  padding: 24px;
}

.messenger-chooser__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(1, 4, 9, 0.78);
  backdrop-filter: blur(8px);
}

.messenger-chooser__panel {
  position: relative;
  width: min(100%, 560px);
  padding: 24px;
  color: #f7fbff;
  background: rgba(7, 13, 22, 0.99);
  border: 1px solid rgba(119, 211, 255, 0.5);
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.62), 0 0 36px rgba(31, 153, 255, 0.12);
}

.messenger-chooser__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.messenger-chooser__head span {
  color: #78dcff;
  font-size: 12px;
  font-weight: 750;
  text-transform: uppercase;
}

.messenger-chooser__head h2 {
  max-width: 420px;
  margin: 7px 0 0;
  font-size: 26px;
  line-height: 1.2;
}

.messenger-chooser__close {
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  display: grid;
  color: #dff8ff;
  background: transparent;
  border: 1px solid rgba(150, 180, 208, 0.42);
  border-radius: 5px;
  place-items: center;
}

.messenger-chooser__close svg {
  width: 20px;
  height: 20px;
}

.messenger-chooser__options {
  display: grid;
  gap: 8px;
}

.messenger-chooser__options > a {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 16px;
  color: #f7fbff;
  text-decoration: none;
  background: rgba(14, 25, 39, 0.96);
  border: 1px solid rgba(108, 160, 204, 0.34);
  border-radius: 5px;
  transition: border-color 160ms ease, background 160ms ease;
}

.messenger-chooser__options > a:hover,
.messenger-chooser__options > a:focus-visible {
  background: rgba(20, 42, 65, 0.98);
  border-color: rgba(113, 223, 255, 0.82);
}

.messenger-chooser__options span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.messenger-chooser__options strong {
  font-size: 17px;
}

.messenger-chooser__options small {
  color: #9eabb8;
  font-size: 13px;
}

.messenger-chooser__options svg {
  width: 19px;
  height: 19px;
  flex: 0 0 auto;
  color: #75ddff;
}

body.messenger-chooser-open {
  overflow: hidden;
}

.mobile-fold-item[hidden] {
  display: none !important;
}

.work-showcase {
  padding-bottom: 36px;
}

.reviews-reel-section {
  padding-top: 52px;
}

@media (max-width: 680px) {
  body.mobile-action-ready {
    padding-bottom: calc(78px + env(safe-area-inset-bottom));
  }

  .mobile-action-dock {
    position: fixed;
    z-index: 80;
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: 12px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px 52px;
    gap: 8px;
    padding: 8px;
    background: rgba(5, 9, 15, 0.96);
    border: 1px solid rgba(119, 211, 255, 0.46);
    border-radius: 8px;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.48), 0 0 24px rgba(38, 146, 255, 0.12);
  }

  .menu-open .mobile-action-dock {
    display: none;
  }

  .mobile-action-dock a,
  .mobile-action-dock button {
    min-width: 0;
    min-height: 52px;
    text-decoration: none;
  }

  .mobile-action-dock__primary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 0 18px;
    color: #05101b;
    font-size: 15px;
    font-weight: 750;
    background: #eaf8ff;
    border-radius: 5px;
  }

  .mobile-action-dock__primary svg,
  .mobile-action-dock__message svg,
  .mobile-action-dock__phone svg {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
  }

  .mobile-action-dock__message,
  .mobile-action-dock__phone {
    display: grid;
    color: #dff8ff;
    background: #0a5ca9;
    border: 1px solid rgba(133, 226, 255, 0.58);
    border-radius: 5px;
    place-items: center;
  }

  .mobile-action-dock__message {
    background: rgba(12, 33, 52, 0.98);
  }

  .messenger-chooser {
    padding: 12px;
  }

  .messenger-chooser__panel {
    padding: 18px;
  }

  .messenger-chooser__head h2 {
    font-size: 21px;
  }

  .mobile-content-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    padding: 0 0 7px;
    color: #9cecff;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(118, 222, 255, 0.52);
    border-radius: 0;
  }

  .mobile-content-toggle[hidden] {
    display: none;
  }

  .mobile-content-toggle svg {
    width: 17px;
    height: 17px;
  }

  .local-signal-section,
  .reviews-reel-section,
  .motion-section,
  .solutions-section,
  .process-section-v2,
  .measurement-section,
  .brief-section,
  .faq-section {
    padding-block: 56px;
  }

  .work-showcase {
    padding-bottom: 34px;
  }

  .reviews-reel-section {
    padding-top: 44px;
  }

  .service-intro.container,
  .studio-intro.container,
  .service-editorial.container,
  .service-faq-layout.container {
    width: calc(100% - 32px);
    margin-inline: auto;
  }

  .local-signal-layout,
  .showcase-heading,
  .section-heading,
  .reviews-reel-heading {
    margin-bottom: 26px;
  }

  .local-signal-copy > p,
  .service-intro-copy > p:not(.eyebrow) {
    font-size: 16px;
    line-height: 1.55;
  }

  .showcase-intro,
  .case-index-intro-layout > p,
  .case-story-nav {
    display: none;
  }

  .service-grid,
  .process-list-v2,
  .case-story-content {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(82vw, 320px);
    gap: 12px;
    width: auto;
    max-width: none;
    margin-inline: -16px;
    padding: 0 16px 14px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 16px;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .swipe-affordance {
    display: flex;
    width: 100%;
    height: 30px;
    justify-content: flex-end;
    align-items: center;
    margin-top: -6px;
    padding-inline: 16px;
    color: rgba(119, 211, 255, 0.82);
    transition: opacity 220ms ease, visibility 220ms ease;
    pointer-events: none;
  }

  .swipe-affordance[hidden],
  .swipe-affordance.is-consumed {
    opacity: 0;
    visibility: hidden;
  }

  .swipe-affordance svg {
    width: 19px;
    height: 19px;
    animation: swipe-affordance-nudge 1.5s ease-in-out infinite;
  }

  .service-grid::-webkit-scrollbar,
  .process-list-v2::-webkit-scrollbar,
  .case-story-content::-webkit-scrollbar {
    display: none;
  }

  .service-grid article,
  .service-grid article + article,
  .service-grid article:nth-child(3n + 1),
  .service-grid article:nth-child(even),
  .service-grid article:nth-child(odd),
  .process-list-v2 > li,
  .process-list-v2 > li + li,
  .case-story-block,
  .case-process {
    min-width: 0;
    min-height: 0;
    scroll-snap-align: start;
    scroll-snap-stop: normal;
  }

  .motion-enabled .service-grid > [data-reveal],
  .motion-enabled .process-list-v2 > [data-reveal],
  .motion-enabled .case-story-content > [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .service-grid article,
  .service-grid article + article,
  .service-grid article:nth-child(3n + 1),
  .service-grid article:nth-child(even),
  .service-grid article:nth-child(odd) {
    padding: 22px 18px 24px;
    border: 1px solid rgba(119, 201, 255, 0.22);
  }

  .service-grid h3 {
    margin-top: 14px;
    font-size: 24px;
  }

  .service-grid p {
    font-size: 15px;
    line-height: 1.5;
  }

  .process-list-v2 > li,
  .process-list-v2 > li + li,
  .case-story-block,
  .case-process {
    padding: 22px 18px;
    background: rgba(7, 13, 22, 0.78);
    border: 1px solid rgba(119, 201, 255, 0.22);
  }

  .case-story-content {
    align-items: start;
    grid-auto-columns: min(86vw, 336px);
    margin-inline: 0;
    padding-inline: 0 14px;
    scroll-padding-inline: 0;
  }

  .service-page .case-story-content {
    grid-template-columns: none;
    grid-auto-columns: min(86vw, 336px);
    grid-auto-rows: 424px;
  }

  .service-page .case-story-content > .case-story-block,
  .service-page .case-story-content > .case-process {
    height: 424px;
    overflow: hidden;
  }

  .case-story-block h2,
  .case-story-block h3 {
    font-size: clamp(23px, 6.4vw, 28px);
    line-height: 1.08;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  .case-story-block p,
  .case-process p {
    font-size: 15px;
    line-height: 1.5;
  }

  .service-page .case-story-block > p:not(.eyebrow) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
  }

  .service-page .case-process {
    display: grid;
    grid-template-rows: repeat(3, minmax(0, 1fr));
  }

  .service-page .case-process li,
  .service-page .case-process li + li {
    min-height: 0;
    padding: 14px 0;
  }

  .service-content,
  .service-case,
  .service-faq,
  .case-index-intro,
  .case-story,
  .case-related {
    padding-block: 52px;
  }

  .service-grid-section {
    margin-top: 52px;
    padding-top: 0;
  }

  .service-grid {
    margin-top: 28px;
  }

  .service-aside {
    margin-top: 28px;
  }

  .case-catalog .case-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .case-catalog .case-card,
  .case-catalog .case-card-content {
    min-width: 0;
  }

  .case-catalog .case-card-content {
    padding: 14px 12px 16px;
  }

  .case-catalog .case-card-label {
    margin-bottom: 8px;
    font-size: 10px;
  }

  .case-catalog .case-card h2 {
    display: -webkit-box;
    margin: 0;
    font-size: 18px;
    line-height: 1.18;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
  }

  .case-catalog .case-card-content > p:last-child {
    display: none;
  }
}

@keyframes swipe-affordance-nudge {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(5px); }
}

@media (prefers-reduced-motion: reduce) {
  .swipe-affordance svg {
    animation: none;
  }
}

.footer-legal {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin-top: 20px;
  padding-top: 18px;
  color: rgba(255, 255, 255, 0.52);
  font-size: 12px;
  line-height: 1.45;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

@media (max-width: 680px) {
  .footer-legal {
    display: grid;
    gap: 5px;
    margin-top: 8px;
    padding-top: 16px;
    font-size: 11px;
  }
}

@media (max-width: 380px) {
  .service-grid,
  .process-list-v2 {
    grid-auto-columns: 84vw;
  }

  .case-catalog .case-card h2 {
    font-size: 16px;
  }
}
