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

@font-face {
  font-family: "Geist var";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/geist-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --ink: #262626;
  --ink-soft: #3d3d42;
  --paper: #f4f4f2;
  --paper-warm: #ededeb;
  --white: #ffffff;
  --line: rgba(38, 38, 38, 0.14);
  --royal-blue: #1455d9;
  --royal-blue-deep: #062b8f;
  --max: 1080px;
  --content-indent: clamp(28px, 4vw, 64px);
  --font-sans: "Geist var", "Segoe UI", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-sans);
  line-height: 1.45;
  font-optical-sizing: auto;
  font-feature-settings: "cv11", "ss01", "calt", "liga", "kern";
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.nav-open {
  overflow: hidden;
}

body.backdrop-on .page-backdrop {
  opacity: 1;
}

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

a {
  color: inherit;
  text-decoration: none;
}

button {
  color: inherit;
  font: inherit;
}

.highlight {
  display: inline;
  padding: 0 0.04em 0.09em;
  color: var(--ink);
  font-weight: 680;
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.34em;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%231455d9'/%3E%3Cstop offset='1' stop-color='%2384e6fd'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M1,11 C14,6 28,9 46,8 C68,7 88,4 108,7 C114,8 118,10 119,11 C115,13 109,12 103,12 C82,12 62,10 42,11 C27,11.6 13,14 2,13 Z' fill='url(%23g)'/%3E%3C/svg%3E");
}

.highlight.brush-2 {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%231455d9'/%3E%3Cstop offset='1' stop-color='%2384e6fd'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M2,13 C22,8 42,7 64,8 C90,9 110,6 118,8 C119,8.3 118,9.6 116,10.6 C110,13.6 92,12 74,12.6 C52,13.4 30,11.6 12,14 C7,14.6 3,14.6 2,13 Z' fill='url(%23g)'/%3E%3C/svg%3E");
}

.highlight.brush-3 {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%231455d9'/%3E%3Cstop offset='1' stop-color='%2384e6fd'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M1,10 C18,7 34,9 54,8.5 C76,8 96,10.5 114,8.5 C117,8.2 119,9.5 118,11 C114,12 102,11 88,11.5 C66,12.2 44,10.5 24,12 C15,12.5 6,12 1,10 Z' fill='url(%23g)'/%3E%3C/svg%3E");
}

.highlight.brush-4 {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%231455d9'/%3E%3Cstop offset='1' stop-color='%2384e6fd'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M2,12 C16,7 32,10 52,9 C74,8 92,5 110,7 C116,7.6 119,9 118,11 C113,13 100,12 84,12.4 C60,13 38,11 18,13.4 C10,14 4,13.6 2,12 Z' fill='url(%23g)'/%3E%3C/svg%3E");
}

.highlight.brush-5 {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%231455d9'/%3E%3Cstop offset='1' stop-color='%2384e6fd'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M1,10 C20,8 38,10 58,9.5 C80,9 98,11 116,9.5 C118,9.3 119,10.6 117,11.6 C112,12.5 100,11.6 86,12 C64,12.6 42,10.9 22,12.3 C13,12.7 5,12.2 1,10 Z' fill='url(%23g)'/%3E%3C/svg%3E");
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 20;
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto;
  align-items: stretch;
  min-height: 84px;
  border-bottom: 1px solid transparent;
  color: var(--ink);
  background: rgba(244, 244, 242, 0.42);
  backdrop-filter: blur(10px);
  transform: translateY(0);
  transition:
    min-height 260ms ease,
    background 260ms ease,
    border-color 260ms ease,
    backdrop-filter 260ms ease,
    box-shadow 260ms ease;
}

.site-header.is-scrolled {
  border-bottom-color: transparent;
  min-height: 68px;
  background: rgba(244, 244, 242, 0.42);
  backdrop-filter: blur(10px);
  box-shadow: none;
}

.brand-link {
  display: flex;
  align-items: center;
  width: fit-content;
  padding-left: clamp(22px, 5vw, 74px);
  transition: padding 260ms ease;
}

.brand-link img {
  display: block;
  width: 148px;
  height: auto;
  max-height: 78px;
  object-fit: contain;
  transition: width 260ms ease, max-height 260ms ease, transform 260ms ease;
}

.site-header.is-scrolled .brand-link img {
  width: 124px;
  max-height: 62px;
  transform: translateY(-1px);
}

.site-nav {
  display: flex;
  align-items: stretch;
  min-height: 84px;
  transition: min-height 260ms ease;
}

.site-header.is-scrolled .site-nav {
  min-height: 68px;
}

.site-nav a {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 122px;
  padding: 0 28px;
  border-left: 1px solid transparent;
  font-size: 0.96rem;
  letter-spacing: 0;
  transition: background 220ms ease, color 220ms ease;
}

.site-nav a:not(.contact-nav)::after {
  content: "";
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 20px;
  height: 2px;
  background: currentColor;
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left center;
  transition: opacity 220ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1), bottom 260ms ease;
}

.site-header.is-scrolled .site-nav a:not(.contact-nav)::after {
  bottom: 15px;
}

.site-nav a:not(.contact-nav):hover::after,
.site-nav a.is-active:not(.contact-nav)::after {
  opacity: 1;
  transform: scaleX(1);
}

.contact-nav {
  min-width: 134px;
  color: var(--white);
  background: linear-gradient(135deg, var(--royal-blue-deep), var(--royal-blue));
  transition: filter 220ms ease, min-height 260ms ease;
}

.contact-nav:hover {
  filter: brightness(1.06);
}

.nav-toggle {
  display: none;
  width: 84px;
  min-height: 84px;
  border: 0;
  border-left: 1px solid var(--line);
  background: rgba(244, 244, 242, 0.88);
}

.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  margin: 6px auto;
  background: var(--ink);
  transition: transform 180ms ease;
}

.nav-toggle.is-open span:first-child {
  transform: translateY(4px) rotate(45deg);
}

.nav-toggle.is-open span:last-child {
  transform: translateY(-4px) rotate(-45deg);
}

.page-backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  opacity: 0;
  background: #f4f4f2;
  transition: opacity 420ms ease;
  pointer-events: none;
}

.page-backdrop::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(247, 247, 245, 0.62), rgba(247, 247, 245, 0.32) 46%, rgba(247, 247, 245, 0.06)),
    linear-gradient(180deg, rgba(247, 247, 245, 0.1), rgba(247, 247, 245, 0.38));
}

body.approach-backdrop-tint .page-backdrop::after {
  background:
    radial-gradient(circle at 72% 34%, rgba(var(--active-approach-rgb), 0.11), transparent 42%),
    linear-gradient(90deg, rgba(247, 247, 245, 0.58), rgba(var(--active-approach-rgb), 0.08) 52%, rgba(247, 247, 245, 0.08)),
    linear-gradient(180deg, rgba(247, 247, 245, 0.1), rgba(247, 247, 245, 0.34));
}

body.service-backdrop-tint .page-backdrop::after {
  background:
    radial-gradient(circle at 76% 30%, rgba(var(--active-service-rgb), 0.13), transparent 42%),
    radial-gradient(circle at 12% 74%, rgba(var(--active-service-rgb), 0.08), transparent 36%),
    linear-gradient(90deg, rgba(247, 247, 245, 0.58), rgba(var(--active-service-rgb), 0.1) 52%, rgba(247, 247, 245, 0.08)),
    linear-gradient(180deg, rgba(247, 247, 245, 0.1), rgba(247, 247, 245, 0.34));
}

.page-backdrop__layer {
  position: absolute;
  inset: -2vh -2vw;
  z-index: 1;
  opacity: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  transform: scale(1.05);
  filter: saturate(0.86) contrast(1) blur(3px);
  transition:
    opacity 950ms ease,
    transform 1700ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 1300ms ease;
}

.page-backdrop__layer.is-visible {
  opacity: 1;
  transform: scale(1);
  filter: saturate(1.08) contrast(1.04) blur(0);
}

.hero {
  position: relative;
  --hero-media-opacity: 1;
  min-height: 100svh;
  overflow: hidden;
  display: grid;
  align-items: center;
  padding: 128px clamp(24px, 4vw, 104px) 74px;
  background: transparent;
}

.hero-video,
.cloud-fallback,
.hero-wash {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: var(--hero-media-opacity);
  pointer-events: none;
}

.hero-video {
  z-index: 1;
  object-fit: cover;
  filter: saturate(1.08) contrast(1.04);
}

.hero-video.is-missing {
  display: none;
}

.cloud-fallback {
  z-index: 0;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(221, 233, 241, 0.72)),
    linear-gradient(135deg, #c9dcea, #f9faf9 52%, #b8cad8);
}

.cloud {
  position: absolute;
  display: block;
  width: 46vw;
  aspect-ratio: 2.8;
  border-radius: 999px;
  opacity: 0.72;
  filter: blur(18px);
  background:
    radial-gradient(circle at 22% 52%, rgba(255, 255, 255, 0.98) 0 28%, transparent 29%),
    radial-gradient(circle at 42% 36%, rgba(255, 255, 255, 0.94) 0 30%, transparent 31%),
    radial-gradient(circle at 62% 56%, rgba(255, 255, 255, 0.9) 0 30%, transparent 31%),
    radial-gradient(circle at 78% 48%, rgba(255, 255, 255, 0.84) 0 24%, transparent 25%);
  animation: drift 38s linear infinite;
}

.cloud-one {
  left: -18vw;
  top: 19vh;
}

.cloud-two {
  left: 42vw;
  top: 34vh;
  width: 58vw;
  opacity: 0.55;
  animation-duration: 52s;
  animation-delay: -17s;
}

.cloud-three {
  left: 4vw;
  bottom: 8vh;
  width: 64vw;
  opacity: 0.42;
  animation-duration: 64s;
  animation-delay: -26s;
}

@keyframes drift {
  from {
    transform: translateX(-12vw) translateY(0);
  }
  to {
    transform: translateX(72vw) translateY(-4vh);
  }
}

.hero-wash {
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(244, 244, 242, 0.58) 0%, rgba(244, 244, 242, 0.3) 38%, rgba(244, 244, 242, 0.04) 100%),
    linear-gradient(180deg, rgba(244, 244, 242, 0.12), rgba(244, 244, 242, 0.48));
  pointer-events: none;
}

.hero-kicker,
.section-topline {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  padding: 11px 18px 11px 25px;
  color: rgba(24, 24, 26, 0.92);
  background: rgba(251, 251, 250, 0.48);
  border: 1px solid rgba(38, 38, 38, 0.08);
  backdrop-filter: blur(14px);
  box-shadow: 0 14px 30px rgba(38, 38, 38, 0.07);
  font-size: clamp(0.86rem, 1.12vw, 1.05rem);
  font-weight: 760;
  letter-spacing: 0.54em;
  text-transform: uppercase;
  white-space: nowrap;
}

.hero-kicker {
  top: clamp(128px, 13vh, 158px);
  z-index: 3;
}

.section-topline {
  top: clamp(104px, 12vh, 148px);
  left: clamp(24px, 4vw, 120px);
  z-index: 2;
  margin: 0;
  transform: none;
  text-align: left;
}

.section-kicker.section-topline {
  color: rgba(24, 24, 26, 0.92);
  font-size: clamp(0.86rem, 1.12vw, 1.05rem);
  font-weight: 760;
  letter-spacing: 0.54em;
}

.kicker-index {
  display: inline-block;
  margin-right: 1em;
  color: var(--royal-blue);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.12em;
}


.hero-copy {
  position: relative;
  isolation: isolate;
  z-index: 3;
  width: min(640px, 100%);
  margin-top: 9vh;
  padding-left: var(--content-indent);
}

.hero-copy::before {
  content: "";
  position: absolute;
  inset: -34px -54px -38px -42px;
  z-index: -1;
  background: linear-gradient(
    90deg,
    rgba(251, 251, 250, 0),
    rgba(251, 251, 250, 0.56) 34%,
    rgba(251, 251, 250, 0.3) 66%,
    rgba(251, 251, 250, 0)
  );
  backdrop-filter: blur(14px);
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0, #000 34%, #000 66%, transparent 100%),
    linear-gradient(180deg, transparent 0, #000 18%, #000 78%, transparent 100%);
  mask-image:
    linear-gradient(90deg, transparent 0, #000 34%, #000 66%, transparent 100%),
    linear-gradient(180deg, transparent 0, #000 18%, #000 78%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
}

.hero h1 {
  margin: 0;
  font-size: clamp(3.25rem, 6vw, 5.9rem);
  font-weight: 430;
  letter-spacing: 0;
  line-height: 1;
}

.hero h1 > span {
  display: block;
  width: fit-content;
  height: 1em;
  margin: 0 0 6px;
  padding: 0;
  line-height: 1;
  white-space: nowrap;
}

.hero h1 > span:nth-child(1) {
  min-width: 3.28em;
}

.hero h1 > span:nth-child(2) {
  min-width: 6.58em;
  margin-left: clamp(0px, 1.4vw, 18px);
}

.hero h1 > span:nth-child(3) {
  min-width: 3.78em;
  margin-left: clamp(0px, 2.8vw, 36px);
}

.hero-title-caret {
  display: inline-block;
  width: 0.42em;
  height: 0.72em;
  margin-left: 0.09em;
  background: rgba(16, 16, 18, 0.9);
  border: 1px solid rgba(16, 16, 18, 0.92);
  vertical-align: -0.04em;
  animation: hero-caret-blink 820ms steps(1, end) infinite;
}

@keyframes hero-caret-blink {
  50% {
    opacity: 0;
  }
}

.hero-copy p {
  width: min(560px, 100%);
  padding: 0;
  color: var(--ink);
}

.hero-lede {
  width: max-content;
  max-width: calc(100vw - clamp(44px, 16vw, 272px));
  margin: 28px 0 0;
  font-size: clamp(1.38rem, 2.15vw, 2.08rem);
  font-weight: 620;
  line-height: 1.08;
  white-space: nowrap;
}

.hero-support {
  width: max-content;
  max-width: calc(100vw - clamp(44px, 16vw, 272px));
  margin: 20px 0 0;
  font-size: clamp(1.12rem, 1.48vw, 1.36rem);
  font-weight: 470;
  line-height: 1.26;
  white-space: nowrap;
}

.approach-section {
  --approach-bg: url("../img/ourprocess_2027397022.jpeg");
  --approach-rgb: 92, 103, 122;
  position: relative;
  min-height: 600svh;
  overflow: visible;
  padding: 0 clamp(24px, 4vw, 120px);
  background: transparent;
}

.approach-scroll-frame {
  position: sticky;
  top: 0;
  z-index: 1;
  display: grid;
  align-content: center;
  align-items: center;
  gap: clamp(14px, 2.5vh, 28px);
  min-height: 100svh;
  padding: clamp(88px, 12vw, 148px) 0;
}

.approach-scroll-frame > .section-topline {
  left: 0;
}

.approach-step-track {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: grid;
  grid-template-rows: repeat(6, 1fr);
  pointer-events: none;
}

.approach-step-track span {
  align-self: center;
  display: block;
  height: 1px;
}

.approach-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(237, 237, 235, 0.76), rgba(237, 237, 235, 0.42) 48%, rgba(237, 237, 235, 0.2)),
    linear-gradient(180deg, rgba(237, 237, 235, 0.14), rgba(237, 237, 235, 0.5)),
    var(--approach-bg) center / cover no-repeat;
  opacity: 0.42;
  transform: scale(1.09);
  filter: saturate(0.72) blur(5px);
  transition: opacity 900ms ease, transform 1600ms cubic-bezier(0.16, 1, 0.3, 1), filter 1200ms ease;
  pointer-events: none;
}

.approach-section[data-step="find"] {
  --approach-rgb: 92, 103, 122;
  --approach-bg: url("../img/find_1927202249.jpeg");
}

.approach-section[data-step="build"] {
  --approach-rgb: 142, 103, 82;
  --approach-bg: url("../img/build_1905929219.jpeg");
}

.approach-section[data-step="learn"] {
  --approach-rgb: 184, 137, 24;
  --approach-bg: url("../img/learn_433624376.jpeg");
}

.approach-section[data-step="scale"] {
  --approach-rgb: 67, 116, 148;
  --approach-bg: url("../img/scale_455573149.jpeg");
}

.approach-section[data-step="repeat"] {
  --approach-rgb: 102, 87, 168;
  --approach-bg: url("../img/repeat_1031368116.jpeg");
}

.about-section {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: grid;
  place-items: center;
  padding: clamp(88px, 12vw, 148px) clamp(24px, 4vw, 120px);
  background: transparent;
}

.about-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(247, 247, 245, 0.88), rgba(247, 247, 245, 0.66) 48%, rgba(247, 247, 245, 0.34)),
    url("../img/what-we-do.1925301720.jpeg") center / cover no-repeat;
  opacity: 0.42;
  transform: scale(1.09);
  filter: saturate(0.72) blur(5px);
  transition: opacity 900ms ease, transform 1600ms cubic-bezier(0.16, 1, 0.3, 1), filter 1200ms ease;
  pointer-events: none;
}

.about-section::after,
.concrete-section::after,
.approach-section::after,
.comparison-section::after,
.services-section::after,
.contact-section::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0;
  background: rgba(255, 255, 255, 0.16);
  transform: translateY(18px);
  transition: opacity 900ms ease, transform 1200ms ease;
  pointer-events: none;
}

.about-section::before,
.about-section::after,
.concrete-section::before,
.concrete-section::after,
.approach-section::before,
.approach-section::after,
.comparison-section::before,
.comparison-section::after,
.services-section::before,
.services-section::after,
.contact-section::before,
.contact-section::after {
  display: none;
}

.about-section.bg-visible::before,
.concrete-section.bg-visible::before,
.approach-section.bg-visible::before,
.comparison-section.bg-visible::before,
.services-section.bg-visible::before,
.contact-section.bg-visible::before {
  opacity: 1;
  transform: scale(1.015);
  filter: saturate(0.98) blur(0);
}

.about-section.bg-visible::after,
.concrete-section.bg-visible::after,
.approach-section.bg-visible::after,
.comparison-section.bg-visible::after,
.services-section.bg-visible::after,
.contact-section.bg-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.approach-section.bg-pulse::before,
.services-section.bg-pulse::before {
  animation: bg-bloom 760ms cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes bg-bloom {
  0% {
    opacity: 0.28;
    transform: scale(1.075);
    filter: saturate(0.62) blur(4px);
  }
  100% {
    opacity: 1;
    transform: scale(1.015);
    filter: saturate(0.98) blur(0);
  }
}

.about-inner,
.concrete-main,
.concrete-bottom,
.approach-intro,
.approach-stage,
.comparison-intro,
.services-intro,
.contact-inner {
  isolation: isolate;
}

.about-inner::before,
.concrete-main::before,
.concrete-bottom::before,
.approach-intro::before,
.approach-stage::before,
.comparison-intro::before,
.services-intro::before,
.contact-inner::before {
  content: "";
  position: absolute;
  z-index: -1;
  background: linear-gradient(90deg, rgba(251, 251, 250, 0.58), rgba(251, 251, 250, 0.25) 58%, rgba(251, 251, 250, 0));
  backdrop-filter: blur(14px);
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0, #000 10%, #000 68%, transparent 100%),
    linear-gradient(180deg, transparent 0, #000 16%, #000 80%, transparent 100%);
  mask-image:
    linear-gradient(90deg, transparent 0, #000 10%, #000 68%, transparent 100%),
    linear-gradient(180deg, transparent 0, #000 16%, #000 80%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  pointer-events: none;
}

.about-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  align-content: center;
  justify-self: start;
  width: min(var(--max), 100%);
  min-height: min(640px, 66svh);
  padding-left: var(--content-indent);
  gap: clamp(20px, 3.4vh, 38px);
}

.about-inner::before {
  inset: -38px -62px -42px -48px;
  background: linear-gradient(
    90deg,
    rgba(251, 251, 250, 0),
    rgba(251, 251, 250, 0.68) 34%,
    rgba(251, 251, 250, 0.42) 66%,
    rgba(251, 251, 250, 0)
  );
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}

.approach-intro::before {
  inset: -28px -54px -32px -36px;
  background: linear-gradient(
    90deg,
    rgba(251, 251, 250, 0),
    rgba(251, 251, 250, 0.68) 34%,
    rgba(251, 251, 250, 0.42) 66%,
    rgba(251, 251, 250, 0)
  );
  box-shadow: 0 18px 42px rgba(38, 38, 38, 0.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.about-inner h2 {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--ink);
  width: max-content;
  max-width: 100%;
  font-size: clamp(2.45rem, 4.2vw, 4.35rem);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: 0;
  white-space: nowrap;
}

.about-copy {
  display: grid;
  gap: clamp(24px, 4vh, 46px);
  color: var(--ink);
}

.about-subhead {
  width: max-content;
  max-width: 100%;
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.38rem, 2.15vw, 2.08rem);
  font-weight: 620;
  line-height: 1.08;
  letter-spacing: 0;
  white-space: nowrap;
}

.about-body {
  display: grid;
  gap: clamp(18px, 3vh, 30px);
  width: min(760px, 100%);
  margin-top: clamp(4px, 1vh, 10px);
}

.about-body p {
  margin: 0;
}

.about-problem {
  width: min(700px, 100%);
  transform: none;
  font-size: clamp(1.12rem, 1.48vw, 1.36rem);
  font-weight: 470;
  line-height: 1.26;
}

.about-solution {
  width: min(760px, 100%);
  margin-top: 0;
  font-size: clamp(0.98rem, 1.08vw, 1.12rem);
  font-weight: 470;
  line-height: 1.36;
}

.approach-intro {
  grid-area: 1 / 1;
  position: relative;
  z-index: 1;
  top: clamp(-54px, -6vh, -28px);
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(14px, 2.4vh, 28px) clamp(18px, 3vw, 38px);
  align-items: start;
  width: min(1080px, 100%);
  margin: 0;
  padding-left: var(--content-indent);
  color: var(--ink);
}

.approach-intro h2,
.approach-intro h3,
.approach-intro p {
  margin-block: 0;
}

.process-title {
  grid-column: 1 / -1;
  align-self: end;
  display: flex;
  flex-wrap: nowrap;
  gap: 0.24em;
  align-items: baseline;
  white-space: nowrap;
}

.process-title-mode {
  color: var(--ink);
  font-size: clamp(2.45rem, 4.2vw, 4.35rem);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 0.98;
  text-transform: none;
}

.process-title-main {
  color: var(--ink);
  font-size: clamp(2.45rem, 4.2vw, 4.35rem);
  font-weight: 500;
  line-height: 0.98;
}

.process-subtitle {
  grid-column: 1 / -1;
  max-width: 100%;
  font-size: clamp(1.38rem, 2.15vw, 2.08rem);
  font-weight: 620;
  line-height: 1.08;
}

.process-detail {
  grid-column: 1 / -1;
  max-width: 700px;
  color: var(--ink);
  font-size: clamp(1.12rem, 1.48vw, 1.36rem);
  font-weight: 470;
  line-height: 1.26;
}

.approach-inner {
  grid-area: 1 / 1;
  position: relative;
  z-index: 1;
  width: min(1480px, 100%);
  margin: 0;
  padding-left: var(--content-indent);
  display: grid;
  grid-template-columns: minmax(190px, 230px) minmax(980px, 1fr);
  gap: clamp(22px, 2.8vw, 38px);
  align-items: center;
}

.approach-section[data-step="overview"] .approach-inner {
  opacity: 0;
  filter: blur(14px);
  transform: translateY(22px) scale(0.992);
  pointer-events: none;
}

.approach-section:not([data-step="overview"]) .approach-intro {
  opacity: 0;
  filter: blur(14px);
  transform: translateY(-22px) scale(0.992);
  pointer-events: none;
}

.approach-menu {
  counter-reset: approach-step;
  display: grid;
  gap: clamp(10px, 2vh, 16px);
  align-items: start;
}

.section-kicker {
  margin: 0 0 16px;
  color: rgba(38, 38, 38, 0.7);
  font-size: 0.78rem;
  letter-spacing: 0.44em;
  text-transform: uppercase;
}

.approach-tab {
  --approach-rgb: 92, 103, 122;
  counter-increment: approach-step;
  position: relative;
  display: inline-grid;
  grid-template-columns: 48px auto;
  gap: 16px;
  align-items: center;
  width: min(250px, 100%);
  border: 1px solid rgba(var(--approach-rgb), 0.22);
  padding: 13px 18px 14px 0;
  color: rgba(38, 38, 38, 0.76);
  background:
    linear-gradient(135deg, rgba(var(--approach-rgb), 0.24), rgba(var(--approach-rgb), 0.1) 48%, rgba(251, 251, 250, 0.18)),
    rgba(251, 251, 250, 0.62);
  box-shadow:
    0 14px 30px rgba(var(--approach-rgb), 0.08),
    0 10px 22px rgba(38, 38, 38, 0.06);
  backdrop-filter: blur(10px) saturate(1.08);
  cursor: pointer;
  font-size: clamp(1.34rem, 2vw, 2.02rem);
  font-weight: 470;
  line-height: 0.98;
  letter-spacing: 0;
  text-align: left;
  transition:
    color 180ms ease,
    transform 180ms ease,
    background 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease;
}

.approach-tab::before {
  content: counter(approach-step, decimal-leading-zero);
  align-self: stretch;
  display: grid;
  place-items: center;
  min-height: 42px;
  border-right: 1px solid rgba(var(--approach-rgb), 0.3);
  color: rgba(38, 38, 38, 0.48);
  font-size: 0.76rem;
  font-weight: 720;
  letter-spacing: 0.18em;
  transition: color 180ms ease, border-color 180ms ease;
}

.approach-tab::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 7px;
  background: linear-gradient(180deg, rgba(var(--approach-rgb), 0.92), rgba(var(--approach-rgb), 0.22));
  pointer-events: none;
}

.approach-tab[data-approach-tab="0"] {
  --approach-rgb: 92, 103, 122;
}

.approach-tab[data-approach-tab="1"] {
  --approach-rgb: 142, 103, 82;
}

.approach-tab[data-approach-tab="2"] {
  --approach-rgb: 184, 137, 24;
}

.approach-tab[data-approach-tab="3"] {
  --approach-rgb: 67, 116, 148;
}

.approach-tab[data-approach-tab="4"] {
  --approach-rgb: 102, 87, 168;
}

.approach-tab:hover,
.approach-tab.is-active {
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(var(--approach-rgb), 0.4), rgba(var(--approach-rgb), 0.18) 58%, rgba(251, 251, 250, 0.2)),
    rgba(251, 251, 250, 0.76);
  border-color: rgba(var(--approach-rgb), 0.48);
  box-shadow:
    0 20px 48px rgba(var(--approach-rgb), 0.2),
    0 16px 32px rgba(38, 38, 38, 0.1);
  transform: translateX(8px);
}

.approach-tab:hover::before,
.approach-tab:focus-visible::before,
.approach-tab.is-active::before {
  border-color: rgba(var(--approach-rgb), 0.44);
  color: rgb(var(--approach-rgb));
}

.approach-tab:focus-visible {
  outline: 1px solid rgba(var(--approach-rgb), 0.64);
  outline-offset: 8px;
}

.approach-stage {
  position: relative;
  justify-self: start;
  width: min(1160px, 100%);
  min-height: clamp(430px, 48vh, 520px);
  padding: clamp(34px, 3.6vw, 48px) clamp(54px, 5.2vw, 78px);
  text-align: left;
}

.approach-stage::before {
  inset: 0;
  border: 1px solid rgba(var(--approach-rgb), 0.42);
  background:
    linear-gradient(135deg, rgba(251, 251, 250, 0.86), rgba(251, 251, 250, 0.58) 54%, rgba(251, 251, 250, 0.34)),
    linear-gradient(120deg, rgba(var(--approach-rgb), 0.24), transparent 50%),
    radial-gradient(circle at 12% 0%, rgba(var(--approach-rgb), 0.42), transparent 44%),
    radial-gradient(circle at 96% 92%, rgba(var(--approach-rgb), 0.2), transparent 38%);
  box-shadow:
    0 26px 80px rgba(var(--approach-rgb), 0.2),
    0 18px 52px rgba(38, 38, 38, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(30px) saturate(1.08);
  -webkit-backdrop-filter: blur(30px) saturate(1.08);
  clip-path: polygon(0 0.9rem, 0.9rem 0, 100% 0, 100% calc(100% - 1.05rem), calc(100% - 1.05rem) 100%, 0 100%);
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%),
    linear-gradient(180deg, transparent 0, #000 5%, #000 94%, transparent 100%);
  mask-image:
    linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%),
    linear-gradient(180deg, transparent 0, #000 5%, #000 94%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
}

.approach-stage::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: clamp(10px, 1.1vw, 16px) clamp(-14px, -1vw, -8px) clamp(-14px, -1vw, -8px) clamp(12px, 1vw, 18px);
  border: 1px solid rgba(var(--approach-rgb), 0.44);
  background: rgba(var(--approach-rgb), 0.16);
  clip-path: polygon(0 0.9rem, 0.9rem 0, 100% 0, 100% calc(100% - 1.05rem), calc(100% - 1.05rem) 100%, 0 100%);
  pointer-events: none;
}

.approach-count {
  margin: 0 0 14px;
  color: rgb(var(--approach-rgb));
  font-size: 0.8rem;
  letter-spacing: 0.42em;
}

.approach-stage h2 {
  margin: 0;
  max-width: none;
  font-size: clamp(1.38rem, 2.15vw, 2.08rem);
  font-weight: 620;
  line-height: 1.08;
  letter-spacing: 0;
  white-space: nowrap;
}

.approach-copy {
  display: grid;
  gap: clamp(14px, 1.8vh, 20px);
  margin: 24px 0 0;
  max-width: none;
  color: var(--ink);
  font-size: clamp(0.98rem, 1.02vw, 1.08rem);
  font-weight: 470;
  line-height: 1.36;
}

.approach-copy p {
  margin: 0;
}

.approach-copy-intro {
  max-width: none;
  padding: 0 0 0 clamp(14px, 1.4vw, 18px);
  border-left: 3px solid rgba(var(--approach-rgb), 0.58);
  color: rgba(21, 21, 21, 0.95);
  font-size: clamp(1.12rem, 1.48vw, 1.36rem);
  font-weight: 470;
  line-height: 1.26;
}

.approach-copy-lead {
  color: rgba(21, 21, 21, 0.66);
  font-size: clamp(0.88rem, 0.94vw, 0.98rem);
  font-weight: 680;
  line-height: 1.22;
}

.approach-copy ul {
  display: grid;
  gap: 0.58em;
  margin: -0.18em 0 0;
  padding-left: 0;
  list-style: none;
}

.approach-copy li {
  display: grid;
  grid-template-columns: 0.86rem minmax(0, 1fr);
  gap: 0.64em;
  align-items: start;
  padding-left: 0;
  color: rgba(21, 21, 21, 0.86);
  font-size: clamp(0.94rem, 1vw, 1.05rem);
  font-weight: 470;
  line-height: 1.32;
}

.approach-copy li::before {
  content: "/";
  margin-top: 0.02em;
  color: rgb(var(--approach-rgb));
  font-size: 0.9em;
  font-weight: 860;
  line-height: 1.28;
  opacity: 0.78;
  text-align: left;
}

.approach-copy a {
  color: rgb(var(--approach-rgb));
  font-weight: 820;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.concrete-section {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: grid;
  align-items: center;
  padding: clamp(86px, 10vw, 138px) clamp(24px, 4vw, 120px);
  background: transparent;
}

.concrete-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(251, 251, 250, 0.92), rgba(251, 251, 250, 0.74) 42%, rgba(251, 251, 250, 0.34)),
    linear-gradient(180deg, rgba(251, 251, 250, 0.22), rgba(251, 251, 250, 0.48)),
    url("../img/background-process-cloudy-to-concrete.jpg") center / cover no-repeat;
  opacity: 0.42;
  transform: scale(1.09);
  filter: saturate(0.72) blur(5px);
  transition: opacity 900ms ease, transform 1600ms cubic-bezier(0.16, 1, 0.3, 1), filter 1200ms ease;
  pointer-events: none;
}

.concrete-inner {
  position: relative;
  z-index: 1;
  width: min(var(--max), 100%);
  min-height: min(760px, calc(100svh - 170px));
  margin: 0 auto;
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.concrete-main {
  position: relative;
  width: min(540px, 100%);
}

.concrete-main::before {
  inset: -34px -66px -38px -42px;
}

.concrete-main h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(3rem, 4.8vw, 5rem);
  font-weight: 430;
  line-height: 0.94;
  letter-spacing: 0;
}

.concrete-main p {
  margin: 28px 0 0;
  color: var(--ink);
  font-size: clamp(1.02rem, 1.2vw, 1.18rem);
  font-weight: 480;
  line-height: 1.12;
}

.concrete-bottom {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(260px, 0.7fr);
  gap: clamp(42px, 10vw, 180px);
  align-items: center;
  justify-content: center;
  margin-top: clamp(90px, 18vh, 210px);
}

.concrete-bottom::before {
  inset: -30px -80px -34px;
  background: linear-gradient(90deg, rgba(251, 251, 250, 0.36), rgba(251, 251, 250, 0.22) 50%, rgba(251, 251, 250, 0));
}

.concrete-bottom p {
  justify-self: end;
  margin: 0;
  color: var(--ink);
  font-size: clamp(2.8rem, 4.8vw, 4.65rem);
  font-weight: 430;
  line-height: 0.98;
  letter-spacing: 0;
}

.concrete-bottom ul {
  margin: 0;
  padding-left: 20px;
  color: var(--ink);
  font-size: clamp(1.02rem, 1.2vw, 1.18rem);
  font-weight: 480;
  line-height: 1.28;
}

.comparison-section {
  position: relative;
  min-height: 300svh;
  overflow: visible;
  padding: 0 clamp(24px, 4vw, 120px);
  background: transparent;
}

.comparison-stage {
  position: sticky;
  top: 0;
  z-index: 1;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: clamp(14px, 2.5vh, 28px);
  min-height: 100svh;
  padding: clamp(88px, 12vw, 148px) 0;
}

.comparison-stage > .section-topline {
  left: 0;
}

.comparison-layers {
  position: relative;
  display: grid;
  justify-self: stretch;
  width: 100%;
}

.comparison-layers > * {
  grid-area: 1 / 1;
  align-self: center;
  justify-self: center;
}

.comparison-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(251, 251, 250, 0.9), rgba(251, 251, 250, 0.76)),
    linear-gradient(90deg, rgba(251, 251, 250, 0.9), rgba(251, 251, 250, 0.52)),
    url("../img/difference_1999180331.jpeg") center / cover no-repeat;
  opacity: 0.42;
  transform: scale(1.09);
  filter: saturate(0.72) blur(5px);
  transition: opacity 900ms ease, transform 1600ms cubic-bezier(0.16, 1, 0.3, 1), filter 1200ms ease;
  pointer-events: none;
}

.comparison-intro {
  z-index: 1;
}

.comparison-section[data-phase="chart"] .comparison-intro {
  opacity: 0;
  filter: blur(14px);
  transform: translateY(-26px);
  pointer-events: none;
}

.diff-meters {
  position: relative;
  isolation: isolate;
  display: grid;
  gap: clamp(2px, 0.6vh, 6px);
  width: min(880px, 100%);
  padding: clamp(22px, 2.6vw, 36px) clamp(24px, 3.2vw, 46px) clamp(20px, 2.4vw, 32px);
  border: 1px solid rgba(20, 85, 217, 0.22);
  background:
    linear-gradient(158deg, rgba(255, 255, 255, 0.92), rgba(244, 247, 252, 0.82) 54%, rgba(232, 239, 251, 0.8)),
    radial-gradient(circle at 96% -6%, rgba(20, 85, 217, 0.18), transparent 44%),
    radial-gradient(circle at -2% 106%, rgba(92, 103, 122, 0.12), transparent 42%);
  box-shadow:
    0 44px 96px rgba(20, 85, 217, 0.14),
    0 18px 44px rgba(38, 38, 38, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(22px) saturate(1.06);
  -webkit-backdrop-filter: blur(22px) saturate(1.06);
  clip-path: polygon(0 1rem, 1rem 0, 100% 0, 100% calc(100% - 1.1rem), calc(100% - 1.1rem) 100%, 0 100%);
  opacity: 0;
  filter: blur(14px);
  transform: translateY(28px);
  pointer-events: none;
  transition: opacity 850ms ease, filter 1050ms ease, transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.diff-meters::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  height: 6px;
  background: linear-gradient(90deg, var(--royal-blue), rgba(20, 85, 217, 0.18) 72%, transparent);
  pointer-events: none;
}

.comparison-section[data-phase="chart"] .diff-meters {
  opacity: 1;
  filter: blur(0);
  transform: none;
  pointer-events: auto;
}

.diff-meters__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px 26px;
  margin-bottom: clamp(8px, 1.6vh, 16px);
  padding-bottom: clamp(12px, 1.6vh, 18px);
  border-bottom: 1px solid rgba(38, 38, 38, 0.12);
}

.diff-legend {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: clamp(1.02rem, 1.4vw, 1.42rem);
  font-weight: 760;
  letter-spacing: 0.05em;
  line-height: 1;
  text-transform: uppercase;
}

.diff-legend::before {
  content: "";
  flex: none;
  width: 17px;
  height: 17px;
  clip-path: polygon(0 4px, 4px 0, 100% 0, 100% calc(100% - 4px), calc(100% - 4px) 100%, 0 100%);
}

.diff-legend--trad {
  color: rgba(38, 38, 38, 0.5);
}

.diff-legend--trad::before {
  background: rgba(92, 103, 122, 0.6);
}

.diff-legend--lhc {
  color: var(--royal-blue);
}

.diff-legend--lhc::before {
  background: var(--royal-blue);
}

.meter {
  display: grid;
  grid-template-columns: minmax(128px, 0.3fr) minmax(0, 1fr);
  gap: clamp(14px, 2.4vw, 34px);
  align-items: center;
  padding: clamp(7px, 1vh, 11px) 0;
  opacity: 0;
  filter: blur(8px);
  transform: translateY(14px);
  transition: opacity 560ms ease, filter 720ms ease, transform 640ms cubic-bezier(0.16, 1, 0.3, 1);
}

.meter + .meter {
  border-top: 1px solid rgba(38, 38, 38, 0.08);
}

.comparison-section[data-phase="chart"] .meter {
  opacity: 1;
  filter: blur(0);
  transform: none;
  transition-delay: calc(var(--d, 0) * 110ms + 160ms);
}

.meter__label {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.meter__index {
  color: rgba(20, 85, 217, 0.6);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  font-variant-numeric: tabular-nums;
}

.meter__dim {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1rem, 1.15vw, 1.22rem);
  font-weight: 600;
  letter-spacing: 0;
}

.meter__bars {
  display: grid;
  gap: 6px;
}

.meter__bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(88px, auto);
  align-items: center;
  gap: 16px;
}

.meter__track {
  position: relative;
  height: 11px;
  overflow: hidden;
  background: rgba(38, 38, 38, 0.08);
  clip-path: polygon(0 3px, 3px 0, 100% 0, 100% calc(100% - 3px), calc(100% - 3px) 100%, 0 100%);
}

.meter__fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  transition: width 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.comparison-section[data-phase="chart"] .meter__fill {
  width: var(--meter-val, 0%);
  transition-delay: calc(var(--d, 0) * 110ms + 360ms);
}

.comparison-section[data-phase="chart"] .meter__bar--lhc .meter__fill {
  transition-delay: calc(var(--d, 0) * 110ms + 500ms);
}

.meter__bar--trad .meter__fill {
  background: linear-gradient(90deg, rgba(92, 103, 122, 0.46), rgba(92, 103, 122, 0.7));
}

.meter__bar--lhc .meter__fill {
  background: linear-gradient(90deg, var(--royal-blue), var(--royal-blue-deep));
}

.meter__value {
  font-size: clamp(0.9rem, 1.02vw, 1.06rem);
  line-height: 1.12;
  white-space: nowrap;
}

.meter__bar--trad .meter__value {
  color: rgba(38, 38, 38, 0.48);
  font-weight: 500;
}

.meter__bar--lhc .meter__value {
  color: var(--ink);
  font-weight: 620;
}

.comparison-intro {
  position: relative;
  top: clamp(-54px, -6vh, -28px);
  justify-self: start;
  width: min(1080px, 100%);
  margin: 0;
  padding: 0 0 0 var(--content-indent);
  text-align: left;
}

.comparison-intro::before {
  inset: -28px -54px -32px -36px;
  background: linear-gradient(
    90deg,
    rgba(251, 251, 250, 0),
    rgba(251, 251, 250, 0.68) 34%,
    rgba(251, 251, 250, 0.42) 66%,
    rgba(251, 251, 250, 0)
  );
  box-shadow: 0 18px 42px rgba(38, 38, 38, 0.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.comparison-intro-lead {
  width: max-content;
  max-width: 100%;
  margin: 0;
  color: var(--ink);
  font-size: clamp(2.45rem, 4.2vw, 4.35rem);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: 0;
  white-space: nowrap;
}

.comparison-intro-sub {
  max-width: 820px;
  margin: clamp(14px, 2.4vh, 28px) 0 0;
  color: var(--ink);
  font-size: clamp(1.38rem, 2.15vw, 2.08rem);
  font-weight: 620;
  line-height: 1.08;
}

.services-section {
  --services-bg: url("../img/service_334339069.jpeg");
  position: relative;
  min-height: 520svh;
  overflow: visible;
  padding: 0 clamp(24px, 4vw, 120px);
  color: var(--ink);
  background: transparent;
}

.services-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(251, 251, 250, 0.7), rgba(251, 251, 250, 0.56)),
    linear-gradient(90deg, rgba(251, 251, 250, 0.72), rgba(251, 251, 250, 0.24)),
    var(--services-bg) center / cover no-repeat;
  opacity: 0.42;
  transform: scale(1.09);
  filter: saturate(0.72) blur(5px);
  transition: opacity 900ms ease, transform 1600ms cubic-bezier(0.16, 1, 0.3, 1), filter 1200ms ease;
  pointer-events: none;
}

.services-section[data-service="discovery"] {
  --services-bg: url("../img/service_334339069.jpeg");
}

.services-section[data-service="build"] {
  --services-bg: url("../img/service_334339069.jpeg");
}

.services-section[data-service="optimization"] {
  --services-bg: url("../img/service_334339069.jpeg");
}

.services-section[data-service="embedded"] {
  --services-bg: url("../img/service_334339069.jpeg");
}

.services-stage {
  position: sticky;
  top: 0;
  z-index: 1;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: clamp(14px, 2.5vh, 28px);
  min-height: 100svh;
  padding: clamp(88px, 12vw, 148px) 0;
}

.services-stage > .section-topline {
  left: 0;
}

.services-layers {
  position: relative;
  display: grid;
  justify-self: stretch;
  width: 100%;
}

.services-layers > * {
  grid-area: 1 / 1;
  align-self: center;
  justify-self: center;
}

.services-layers > .service-showcase {
  width: min(1360px, 100%);
}

.services-intro {
  position: relative;
  top: clamp(-54px, -6vh, -28px);
  z-index: 1;
  justify-self: start;
  width: min(1080px, 100%);
  padding: 0 0 0 var(--content-indent);
  text-align: left;
}

.services-intro::before {
  inset: -28px -54px -32px -36px;
  background: linear-gradient(
    90deg,
    rgba(251, 251, 250, 0),
    rgba(251, 251, 250, 0.68) 34%,
    rgba(251, 251, 250, 0.42) 66%,
    rgba(251, 251, 250, 0)
  );
  box-shadow: 0 18px 42px rgba(38, 38, 38, 0.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.services-section[data-sphase="cards"] .services-intro {
  opacity: 0;
  filter: blur(14px);
  transform: translateY(-26px);
  pointer-events: none;
}

.services-intro-lead {
  width: max-content;
  max-width: 100%;
  margin: 0;
  color: var(--ink);
  font-size: clamp(2.45rem, 4.2vw, 4.35rem);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: 0;
  white-space: nowrap;
}

.services-intro-sub {
  max-width: 700px;
  margin: clamp(14px, 2.4vh, 28px) 0 0;
  color: var(--ink);
  font-size: clamp(1.12rem, 1.48vw, 1.36rem);
  font-weight: 470;
  line-height: 1.26;
}

.service-showcase {
  display: grid;
  gap: clamp(24px, 3vw, 38px);
  margin-top: 0;
  opacity: 0;
  filter: blur(14px);
  transform: translateY(28px);
  pointer-events: none;
  transition: opacity 850ms ease, filter 1050ms ease, transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.services-section[data-sphase="cards"] .service-showcase {
  opacity: 1;
  filter: blur(0);
  transform: none;
  pointer-events: auto;
}

.service-menu {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 1.2vw, 16px);
}

.service-tab {
  --service-rgb: 92, 103, 122;
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  gap: 12px 14px;
  min-height: clamp(112px, 11vw, 142px);
  padding: clamp(16px, 1.6vw, 22px);
  border: 1px solid rgba(var(--service-rgb), 0.26);
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(var(--service-rgb), 0.14), rgba(251, 251, 250, 0.1)),
    rgba(251, 251, 250, 0.72);
  box-shadow: 0 12px 24px rgba(38, 38, 38, 0.07);
  cursor: pointer;
  font: inherit;
  text-align: left;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  clip-path: polygon(0 0.55rem, 0.55rem 0, 100% 0, 100% calc(100% - 0.65rem), calc(100% - 0.65rem) 100%, 0 100%);
  transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease, border-color 220ms ease;
}

.service-tab::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, rgba(var(--service-rgb), 0.86), rgba(var(--service-rgb), 0.08));
}

.service-tab::after {
  content: "";
  position: absolute;
  inset: auto clamp(14px, 1.4vw, 20px) clamp(12px, 1.2vw, 18px) auto;
  width: clamp(28px, 3vw, 44px);
  height: 2px;
  background: rgba(var(--service-rgb), 0);
  transition: background-color 220ms ease, width 220ms ease;
}

.service-tab[data-service-card="discovery"] {
  --service-rgb: 92, 103, 122;
}

.service-tab[data-service-card="build"] {
  --service-rgb: 67, 116, 148;
}

.service-tab[data-service-card="optimization"] {
  --service-rgb: 174, 112, 41;
}

.service-tab[data-service-card="embedded"] {
  --service-rgb: 122, 96, 168;
}

.service-tab:hover,
.service-tab:focus-visible {
  transform: translateY(-4px);
  background:
    linear-gradient(135deg, rgba(var(--service-rgb), 0.16), rgba(251, 251, 250, 0.16)),
    rgba(251, 251, 250, 0.76);
  border-color: rgba(var(--service-rgb), 0.38);
  box-shadow: 0 20px 34px rgba(38, 38, 38, 0.11);
}

.service-tab.is-active {
  background:
    linear-gradient(135deg, rgba(var(--service-rgb), 0.19), rgba(251, 251, 250, 0.18)),
    rgba(251, 251, 250, 0.84);
  border-color: rgba(var(--service-rgb), 0.68);
  box-shadow:
    0 0 0 1px rgba(var(--service-rgb), 0.22),
    0 22px 42px rgba(var(--service-rgb), 0.17),
    0 16px 30px rgba(38, 38, 38, 0.08);
  transform: translateY(-5px);
}

.service-tab.is-active::after {
  width: clamp(44px, 4vw, 64px);
  background: rgba(var(--service-rgb), 0.78);
}

.service-tab-index {
  align-self: stretch;
  display: grid;
  place-items: start center;
  min-width: 40px;
  padding-right: 14px;
  border-right: 1px solid rgba(var(--service-rgb), 0.34);
  color: rgba(38, 38, 38, 0.48);
  font-size: 0.74rem;
  font-weight: 720;
  letter-spacing: 0.14em;
  line-height: 1.05;
  white-space: nowrap;
}

.service-tab-label {
  align-self: start;
  color: rgb(var(--service-rgb));
  font-size: clamp(0.82rem, 0.9vw, 0.98rem);
  font-weight: 760;
  letter-spacing: 0.08em;
  line-height: 1.05;
  text-transform: uppercase;
  white-space: normal;
}

.service-tab-title {
  grid-column: 1 / -1;
  color: var(--ink);
  font-size: clamp(0.94rem, 1.08vw, 1.16rem);
  font-weight: 470;
  line-height: 1.12;
  letter-spacing: 0;
}

.service-panels {
  position: relative;
  min-height: clamp(310px, 34vh, 400px);
}

.service-panel {
  --service-rgb: 92, 103, 122;
  position: absolute;
  inset: 0;
  isolation: isolate;
  display: grid;
  align-content: start;
  width: 100%;
  padding: clamp(28px, 3.5vw, 46px);
  border: 1px solid rgba(var(--service-rgb), 0.46);
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(251, 251, 250, 0.88), rgba(251, 251, 250, 0.58) 58%, rgba(251, 251, 250, 0.32)),
    radial-gradient(circle at 8% 0%, rgba(var(--service-rgb), 0.34), transparent 40%),
    radial-gradient(circle at 96% 100%, rgba(var(--service-rgb), 0.18), transparent 38%);
  box-shadow:
    0 28px 74px rgba(var(--service-rgb), 0.18),
    0 18px 52px rgba(38, 38, 38, 0.08);
  backdrop-filter: blur(24px) saturate(1.08);
  -webkit-backdrop-filter: blur(24px) saturate(1.08);
  opacity: 0;
  transform: translateY(14px);
  pointer-events: none;
  clip-path: polygon(0 0.9rem, 0.9rem 0, 100% 0, 100% calc(100% - 1rem), calc(100% - 1rem) 100%, 0 100%);
  transition: opacity 220ms ease, transform 260ms ease;
}

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

.service-panel::before {
  z-index: 1;
  inset: 0 0 auto;
  height: 7px;
  background: linear-gradient(90deg, rgba(var(--service-rgb), 0.9), rgba(var(--service-rgb), 0.18) 68%, transparent);
}

.service-panel::after {
  z-index: -1;
  inset: clamp(10px, 1vw, 14px) clamp(-12px, -0.8vw, -8px) clamp(-12px, -0.8vw, -8px) clamp(12px, 1vw, 16px);
  border: 1px solid rgba(var(--service-rgb), 0.42);
  background: rgba(var(--service-rgb), 0.14);
  clip-path: polygon(0 0.9rem, 0.9rem 0, 100% 0, 100% calc(100% - 1rem), calc(100% - 1rem) 100%, 0 100%);
}

.service-panel.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.service-panel[data-service-panel="discovery"] {
  --service-rgb: 92, 103, 122;
}

.service-panel[data-service-panel="build"] {
  --service-rgb: 67, 116, 148;
}

.service-panel[data-service-panel="optimization"] {
  --service-rgb: 174, 112, 41;
}

.service-panel[data-service-panel="embedded"] {
  --service-rgb: 122, 96, 168;
}

.service-panel-head {
  display: inline-grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  justify-self: start;
  margin: 0 0 clamp(18px, 2.4vw, 28px);
  padding: 0 0 12px;
  border-bottom: 1px solid rgba(var(--service-rgb), 0.42);
  color: rgb(var(--service-rgb));
  font-size: clamp(0.88rem, 1vw, 1.05rem);
  font-weight: 780;
  letter-spacing: 0.13em;
  line-height: 1.08;
  text-transform: uppercase;
}

.service-panel-head span:first-child {
  padding-right: 14px;
  border-right: 1px solid rgba(var(--service-rgb), 0.46);
  color: rgba(38, 38, 38, 0.52);
}

.service-body {
  margin: 0;
  max-width: none;
  font-size: clamp(1.12rem, 1.48vw, 1.36rem);
  font-weight: 470;
  line-height: 1.26;
  letter-spacing: 0;
}

.service-panel-details {
  display: grid;
  grid-template-columns: minmax(300px, 0.92fr) minmax(360px, 1.08fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: start;
  margin-top: clamp(14px, 2vh, 22px);
  padding-top: clamp(10px, 1.4vw, 16px);
  border-top: 1px solid rgba(var(--service-rgb), 0.32);
}

.service-capabilities p {
  margin: 0 0 10px;
  color: rgb(var(--service-rgb));
  font-size: 0.78rem;
  font-weight: 780;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
}

.service-capabilities ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.58em clamp(20px, 3vw, 34px);
  margin: 0;
  padding: 0;
  list-style: none;
  color: rgba(38, 38, 38, 0.82);
  font-size: clamp(0.94rem, 1vw, 1.05rem);
  font-weight: 470;
  line-height: 1.32;
}

.service-capabilities li {
  display: grid;
  grid-template-columns: 0.86rem minmax(0, 1fr);
  gap: 0.64em;
  align-items: start;
  padding-left: 0;
}

.service-capabilities li::before {
  content: "/";
  margin-top: 0.02em;
  color: rgb(var(--service-rgb));
  font-size: 0.9em;
  font-weight: 860;
  line-height: 1.28;
  opacity: 0.78;
  text-align: left;
}

.service-quote {
  position: relative;
  margin: 0;
  min-height: 100%;
  padding: clamp(28px, 3vw, 38px) clamp(24px, 3vw, 34px) clamp(24px, 2.8vw, 32px) clamp(70px, 6vw, 94px);
  border-left: 4px solid rgba(var(--service-rgb), 0.58);
  color: rgba(38, 38, 38, 0.86);
  background:
    radial-gradient(circle at 0 0, rgba(var(--service-rgb), 0.14), transparent 46%),
    linear-gradient(135deg, rgba(251, 251, 250, 0.72), rgba(251, 251, 250, 0.34));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.38);
  clip-path: polygon(0 0.55rem, 0.55rem 0, 100% 0, 100% calc(100% - 0.75rem), calc(100% - 0.75rem) 100%, 0 100%);
  font-size: clamp(1.02rem, 1.32vw, 1.42rem);
  font-style: italic;
  font-weight: 430;
  line-height: 1.24;
}

.service-quote::before {
  content: "“";
  position: absolute;
  left: clamp(18px, 2vw, 28px);
  top: clamp(14px, 1.8vw, 22px);
  z-index: 1;
  color: rgb(var(--service-rgb));
  font-size: clamp(4.7rem, 6.2vw, 6.8rem);
  font-style: normal;
  font-weight: 760;
  line-height: 0.82;
  opacity: 0.36;
  pointer-events: none;
}

.service-quote::after {
  content: "”";
  position: absolute;
  right: clamp(16px, 2.4vw, 30px);
  bottom: -0.28em;
  color: rgb(var(--service-rgb));
  font-size: clamp(3.8rem, 5vw, 5.8rem);
  font-style: normal;
  font-weight: 760;
  line-height: 1;
  opacity: 0.16;
  pointer-events: none;
}

.contact-section {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: grid;
  place-items: center;
  padding: clamp(80px, 10vw, 130px) clamp(24px, 4vw, 120px);
  background: transparent;
}

.contact-section > .section-topline {
  top: clamp(86px, 9vh, 116px);
}

.contact-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(251, 251, 250, 0.94), rgba(251, 251, 250, 0.74) 52%, rgba(251, 251, 250, 0.4)),
    radial-gradient(circle at 50% 38%, rgba(251, 251, 250, 0.34), transparent 34%),
    url("../img/contactus_1935325534.jpeg") center / cover no-repeat;
  opacity: 0.42;
  transform: scale(1.09);
  filter: saturate(0.72) blur(5px);
  transition: opacity 900ms ease, transform 1600ms cubic-bezier(0.16, 1, 0.3, 1), filter 1200ms ease;
  pointer-events: none;
}

.contact-inner {
  position: relative;
  z-index: 1;
  justify-self: start;
  width: min(var(--max), 100%);
  margin-top: clamp(42px, 7vh, 76px);
  padding: 0 0 0 var(--content-indent);
  text-align: left;
  background: transparent;
  backdrop-filter: none;
}

.contact-inner::before {
  inset: -28px -54px -32px -36px;
  background: linear-gradient(
    90deg,
    rgba(251, 251, 250, 0),
    rgba(251, 251, 250, 0.68) 34%,
    rgba(251, 251, 250, 0.42) 66%,
    rgba(251, 251, 250, 0)
  );
  box-shadow: 0 18px 42px rgba(38, 38, 38, 0.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.contact-inner h2 {
  width: max-content;
  max-width: 100%;
  margin: 0;
  color: var(--ink);
  font-size: clamp(2.45rem, 4.2vw, 4.35rem);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: 0;
  white-space: nowrap;
}

.contact-inner > p {
  width: max-content;
  max-width: 100%;
  margin: 22px 0 0;
  color: var(--ink);
  text-align: left;
  font-size: clamp(1.38rem, 2.15vw, 2.08rem);
  font-weight: 620;
  line-height: 1.08;
  white-space: nowrap;
}

.contact-inner > p + p {
  width: min(760px, 100%);
  margin-top: 16px;
  font-size: clamp(1.12rem, 1.48vw, 1.36rem);
  font-weight: 470;
  line-height: 1.26;
  white-space: normal;
}

.contact-cta {
  --contact-rgb: 20, 85, 217;
  display: grid;
  gap: clamp(22px, 3.4vh, 40px);
  width: min(820px, 100%);
  margin: clamp(30px, 5vh, 52px) 0 0;
  color: var(--ink);
}

.contact-cta-top {
  display: flex;
  align-items: center;
  gap: 14px;
}

.contact-availability {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-self: start;
  margin-bottom: 2px;
  padding: 6px 13px 6px 11px;
  color: rgb(var(--contact-rgb));
  background: rgba(var(--contact-rgb), 0.09);
  box-shadow: inset 0 0 0 1px rgba(var(--contact-rgb), 0.28);
  clip-path: polygon(0 0.3rem, 0.3rem 0, 100% 0, 100% calc(100% - 0.3rem), calc(100% - 0.3rem) 100%, 0 100%);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.1;
  text-transform: uppercase;
}

.contact-availability-dot {
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #17b06a;
  box-shadow: 0 0 0 0 rgba(23, 176, 106, 0.5);
  animation: contact-pulse 2.4s ease-out infinite;
}

@keyframes contact-pulse {
  0% { box-shadow: 0 0 0 0 rgba(23, 176, 106, 0.5); }
  70% { box-shadow: 0 0 0 7px rgba(23, 176, 106, 0); }
  100% { box-shadow: 0 0 0 0 rgba(23, 176, 106, 0); }
}

.contact-cup {
  position: relative;
  display: inline-flex;
  flex: none;
  color: rgb(var(--contact-rgb));
}

.contact-cup-icon {
  width: clamp(46px, 4.6vw, 64px);
  height: auto;
}

.contact-steam {
  position: absolute;
  top: -9px;
  width: 2.5px;
  height: 12px;
  border-radius: 2px;
  background: rgba(var(--contact-rgb), 0.5);
  opacity: 0;
  animation: contact-steam 2.8s ease-in-out infinite;
}

.contact-steam:nth-child(1) { left: 30%; animation-delay: 0s; }
.contact-steam:nth-child(2) { left: 47%; animation-delay: 0.55s; }
.contact-steam:nth-child(3) { left: 64%; animation-delay: 1.1s; }

@keyframes contact-steam {
  0% { opacity: 0; transform: translateY(3px) scaleY(0.6); }
  30% { opacity: 0.7; }
  70% { opacity: 0.22; }
  100% { opacity: 0; transform: translateY(-7px) scaleY(1.15); }
}

.contact-mailto {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  width: fit-content;
  max-width: 100%;
  padding: clamp(16px, 1.9vw, 23px) clamp(26px, 2.8vw, 38px);
  border: 0;
  color: var(--white);
  background: linear-gradient(135deg, rgb(var(--contact-rgb)) 0%, #0a37a4 100%);
  cursor: pointer;
  font-size: clamp(1.16rem, 1.6vw, 1.52rem);
  font-weight: 780;
  letter-spacing: 0.01em;
  clip-path: polygon(0 0.55rem, 0.55rem 0, 100% 0, 100% calc(100% - 0.65rem), calc(100% - 0.65rem) 100%, 0 100%);
  box-shadow: 0 16px 34px rgba(var(--contact-rgb), 0.3);
  transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 220ms ease;
}

.contact-mailto-label {
  position: relative;
  z-index: 2;
}

.contact-mailto-arrow {
  position: relative;
  z-index: 2;
  display: inline-flex;
  transition: transform 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

.contact-mailto-arrow svg {
  width: 24px;
  height: 24px;
}

.contact-mailto::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.3) 50%, transparent 70%);
  transform: translateX(-130%);
  transition: transform 720ms ease;
  pointer-events: none;
}

.contact-mailto:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 48px rgba(var(--contact-rgb), 0.4);
}

.contact-mailto:hover .contact-mailto-arrow {
  transform: translateX(5px);
}

.contact-mailto:hover::after {
  transform: translateX(130%);
}

.contact-mailto:focus-visible {
  outline: 3px solid rgba(var(--contact-rgb), 0.5);
  outline-offset: 3px;
}

.contact-social {
  display: grid;
  gap: 12px;
  width: 100%;
  margin: 0;
  color: var(--ink);
}

.contact-social p {
  margin: 0;
  color: rgba(38, 38, 38, 0.58);
  font-size: 0.78rem;
  font-weight: 780;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
}

.contact-social div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.contact-social a {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 22px;
  gap: 14px;
  align-items: center;
  min-height: 70px;
  padding: 8px 16px 8px 8px;
  border: 1px solid rgba(20, 85, 217, 0.22);
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.64), rgba(20, 85, 217, 0.05) 72%),
    rgba(251, 251, 250, 0.7);
  box-shadow: 0 10px 24px rgba(38, 38, 38, 0.06);
  font-size: 1rem;
  font-weight: 640;
  clip-path: polygon(0 0.5rem, 0.5rem 0, 100% 0, 100% calc(100% - 0.55rem), calc(100% - 0.55rem) 100%, 0 100%);
  transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1), border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}

.contact-social a::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, rgba(20, 85, 217, 0.85), rgba(20, 85, 217, 0.12) 72%, transparent);
  opacity: 0;
  transition: opacity 220ms ease;
}

.contact-social a::after {
  content: "";
  width: 22px;
  height: 22px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231455d9'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.06 2.06 0 1 1 0-4.13 2.06 2.06 0 0 1 0 4.13zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z'/%3E%3C/svg%3E") no-repeat center / contain;
  opacity: 0.4;
  transition: opacity 220ms ease, transform 220ms ease;
}

.contact-social a img {
  display: block;
  width: 54px;
  height: 54px;
  object-fit: cover;
  filter: saturate(0.96) contrast(1.02);
  box-shadow: 0 0 0 1px rgba(20, 85, 217, 0.18);
  clip-path: polygon(0 0.42rem, 0.42rem 0, 100% 0, 100% calc(100% - 0.46rem), calc(100% - 0.46rem) 100%, 0 100%);
}

.contact-social a span {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: nowrap;
  border: 0;
  letter-spacing: 0.004em;
}

.contact-social a:hover {
  border-color: rgba(20, 85, 217, 0.5);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.74), rgba(20, 85, 217, 0.12) 72%),
    rgba(251, 251, 250, 0.84);
  box-shadow: 0 18px 34px rgba(20, 85, 217, 0.16);
  transform: translateY(-3px);
}

.contact-social a:hover::before {
  opacity: 1;
}

.contact-social a:hover::after {
  opacity: 1;
  transform: translateY(-1px);
}

.site-footer {
  display: grid;
  grid-template-columns: minmax(240px, 0.8fr) minmax(420px, 1fr);
  align-items: center;
  justify-content: space-between;
  gap: clamp(22px, 4vw, 56px);
  min-height: 0;
  padding: clamp(16px, 2vw, 24px) clamp(22px, 5vw, 74px);
  border-top: 1px solid rgba(38, 38, 38, 0.12);
  background:
    radial-gradient(circle at 12% 12%, rgba(20, 85, 217, 0.08), transparent 42%),
    linear-gradient(135deg, #f7f7f5, #eef1f4);
}

.footer-brand-block {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.6vw, 22px);
}

.footer-brand-text {
  display: grid;
  gap: 2px;
}

.footer-brand {
  display: inline-flex;
  align-items: center;
  width: fit-content;
}

.footer-brand img {
  display: block;
  width: clamp(108px, 10vw, 146px);
  height: auto;
}

.footer-brand-block p {
  margin: 0;
  color: rgba(38, 38, 38, 0.62);
  font-size: clamp(0.92rem, 1vw, 1.04rem);
  font-weight: 470;
  line-height: 1.26;
}

.footer-brand-block .footer-tagline {
  color: var(--ink);
  font-weight: 620;
}

.footer-right {
  display: grid;
  gap: 12px;
  justify-items: end;
}

.footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px clamp(16px, 2.4vw, 28px);
  color: rgba(38, 38, 38, 0.74);
  font-size: 0.92rem;
}

.footer-contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px 16px;
  color: rgba(38, 38, 38, 0.62);
  font-size: 0.92rem;
}

.footer-contact a {
  color: var(--royal-blue);
  font-weight: 620;
}

.footer-contact span {
  color: rgba(38, 38, 38, 0.48);
}

.footer-nav a:hover,
.footer-contact a:hover {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 6px;
}

.reveal {
  opacity: 0.56;
  filter: blur(14px);
  transform: translateY(24px) scale(0.992);
  transition:
    opacity 850ms ease,
    filter 1050ms ease,
    transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, filter, transform;
}

.reveal.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
}

@media (max-width: 1152px) {
  :root {
    --content-indent: clamp(18px, 6vw, 30px);
  }

  .site-header {
    grid-template-columns: 1fr auto;
    min-height: 68px;
    transform: none;
  }

  .brand-link {
    padding-left: 18px;
  }

  .brand-link img {
    width: 116px;
    max-height: 58px;
  }

  .nav-toggle {
    display: block;
    position: relative;
    z-index: 25;
    width: 68px;
    min-height: 68px;
  }

  .site-nav {
    position: fixed;
    inset: 0;
    z-index: 24;
    display: grid;
    place-content: center;
    gap: 20px;
    min-height: 100svh;
    background: rgba(244, 244, 242, 0.98);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-12px);
    transition: opacity 180ms ease, transform 180ms ease;
  }

  .site-header.is-scrolled .site-nav {
    min-height: 100svh;
  }

  .site-nav.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .site-nav a {
    min-width: 220px;
    min-height: 58px;
    font-size: 1.35rem;
  }

  .contact-nav {
    margin-top: 12px;
  }

  .hero {
    padding: 108px 22px 72px;
    align-items: end;
  }

  .hero-kicker {
    top: 110px;
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(100vw - 44px);
    letter-spacing: 0.34em;
    text-align: center;
  }

  .section-topline {
    top: 92px;
    left: 22px;
    transform: none;
    max-width: calc(100vw - 44px);
    font-size: clamp(0.72rem, 3.2vw, 0.98rem);
    letter-spacing: 0.34em;
  }

  .contact-section {
    place-items: start start;
    padding-top: 78px;
  }

  .contact-section > .section-topline {
    position: static;
    justify-self: start;
    margin: 0 0 18px;
  }

  .hero-copy {
    margin-top: 0;
    width: 100%;
    padding-left: 0;
  }

  .hero-support {
    width: 100%;
    max-width: 100%;
    white-space: normal;
  }

  .hero-lede {
    width: 100%;
    max-width: 100%;
    white-space: normal;
  }

  .hero h1 {
    font-size: clamp(2.85rem, 13.2vw, 4.55rem);
    max-width: 100%;
  }

  .hero h1 > span:nth-child(2),
  .hero h1 > span:nth-child(3) {
    margin-left: 0;
  }

  .approach-scroll-frame {
    align-content: start;
    gap: 14px;
    padding: 78px 0 22px;
  }

  .approach-scroll-frame > .section-topline {
    position: static;
    grid-row: 1;
    justify-self: start;
    margin: 0;
  }

  .approach-intro,
  .approach-inner {
    grid-area: 2 / 1;
  }

  .approach-inner {
    grid-template-columns: 1fr;
    gap: 14px;
    width: 100%;
    padding-left: 0;
  }

  .approach-intro {
    grid-template-columns: 1fr;
    gap: 14px;
    top: 0;
    width: 100%;
    padding-left: 0;
  }

  .process-detail {
    font-size: clamp(0.98rem, 4.4vw, 1.18rem);
    line-height: 1.24;
  }

  .process-title,
  .process-subtitle,
  .process-detail {
    grid-column: 1;
  }

  .process-title {
    white-space: normal;
    flex-wrap: wrap;
    gap: 0.12em 0.22em;
  }

  .process-title-mode,
  .process-title-main,
  .about-inner h2,
  .contact-inner h2 {
    font-size: clamp(2.35rem, 11vw, 3.75rem);
    line-height: 0.98;
  }

  .process-subtitle,
  .about-subhead,
  .hero-lede,
  .contact-inner > p {
    font-size: clamp(1.28rem, 6vw, 1.8rem);
    line-height: 1.1;
  }

  .process-detail,
  .about-problem,
  .hero-support,
  .contact-inner > p + p {
    font-size: clamp(1rem, 4.5vw, 1.18rem);
    line-height: 1.32;
  }

  .about-section {
    place-items: start start;
    padding-top: 78px;
    padding-inline: 22px;
  }

  .about-section > .section-topline {
    position: static;
    justify-self: start;
    margin: 0 0 18px;
  }

  .about-inner {
    grid-template-columns: 1fr;
    min-height: 0;
    row-gap: 28px;
    width: 100%;
    padding-left: 0;
  }

  .about-inner h2 {
    grid-column: 1;
    width: 100%;
    max-width: 100%;
    white-space: normal;
  }

  .about-subhead,
  .about-body {
    grid-column: 1;
    margin-top: 0;
  }

  .about-subhead {
    width: 100%;
    max-width: 100%;
    white-space: normal;
  }

  .about-body {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .about-problem {
    transform: none;
  }

  .about-solution {
    margin-top: 0;
  }

  .approach-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .approach-tab {
    width: 100%;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 10px;
    padding: 11px 12px 12px 0;
    font-size: clamp(1.05rem, 5.4vw, 1.55rem);
    transform: none;
  }

  .approach-tab:hover,
  .approach-tab.is-active {
    transform: none;
  }

  .approach-tab::before {
    min-height: 36px;
    font-size: 0.68rem;
  }

  .approach-stage {
    justify-self: start;
    width: 100%;
    min-height: auto;
    padding: 26px 22px 28px;
    text-align: left;
  }

  .approach-stage h2 {
    font-size: clamp(1.35rem, 6.2vw, 2rem);
    white-space: normal;
  }

  .approach-copy-intro {
    padding-left: 13px;
    font-size: clamp(1.04rem, 4.8vw, 1.22rem);
  }

  .approach-copy ul {
    gap: 0.68em;
  }

  .concrete-inner {
    min-height: auto;
  }

  .concrete-main {
    width: 100%;
  }

  .concrete-main h2 {
    font-size: clamp(3rem, 13vw, 4.65rem);
  }

  .concrete-bottom {
    grid-template-columns: 1fr;
    gap: 34px;
    margin-top: 82px;
  }

  .concrete-bottom p {
    justify-self: start;
    font-size: clamp(2.6rem, 12vw, 4.3rem);
  }

  .diff-meters {
    padding: 18px 16px;
  }

  .diff-meters__head {
    margin-bottom: 4px;
    padding-bottom: 10px;
  }

  .diff-legend {
    font-size: 0.9rem;
    gap: 8px;
  }

  .diff-legend::before {
    width: 13px;
    height: 13px;
  }

  .meter {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 7px 0;
  }

  .meter__bars {
    gap: 5px;
  }

  .meter__bar {
    grid-template-columns: minmax(0, 1fr) minmax(0, 47%);
    gap: 10px;
    align-items: center;
  }

  .meter__value {
    white-space: normal;
    font-size: 0.84rem;
    line-height: 1.12;
  }

  .meter__dim {
    font-size: 0.98rem;
  }

  .comparison-stage {
    gap: 14px;
    padding: 78px 0 24px;
  }

  .comparison-stage > .section-topline {
    position: static;
    grid-row: 1;
    justify-self: start;
    margin: 0;
  }

  .comparison-intro {
    width: 100%;
    padding-inline: 0;
  }

  .services-intro {
    width: 100%;
    padding-inline: 0;
  }

  .comparison-intro-lead {
    width: 100%;
    font-size: clamp(2.1rem, 9vw, 2.9rem);
    white-space: normal;
  }

  .services-stage {
    align-content: start;
    gap: 14px;
    padding: 78px 0 24px;
  }

  .services-stage > .section-topline {
    position: static;
    grid-row: 1;
    justify-self: start;
    margin: 0;
  }

  .services-intro-lead {
    width: 100%;
    font-size: clamp(2.1rem, 9vw, 2.9rem);
    white-space: normal;
  }

  .services-intro-sub {
    font-size: clamp(1.05rem, 4.6vw, 1.3rem);
  }

  .service-showcase {
    gap: 16px;
  }

  .service-menu {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .service-tab {
    min-height: 0;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 13px 14px;
    gap: 8px 12px;
  }

  .service-panels {
    min-height: 0;
  }

  .service-panel {
    position: relative;
    inset: auto;
    display: none;
    width: 100%;
    padding: 24px 20px 26px;
    transform: none;
  }

  .service-panel.is-active {
    display: grid;
    transform: none;
  }

  .service-panel-head {
    width: 100%;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    font-size: clamp(0.8rem, 3.4vw, 0.95rem);
  }

  .service-panel-head span:first-child {
    padding-right: 10px;
  }

  .service-body {
    font-size: clamp(1.02rem, 4.6vw, 1.2rem);
    line-height: 1.32;
  }

  .service-panel-details {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .service-capabilities ul {
    grid-template-columns: 1fr;
    font-size: clamp(0.94rem, 4vw, 1.04rem);
  }

  .service-quote {
    min-height: 0;
    padding: 56px 20px 22px;
    font-size: clamp(0.98rem, 4.2vw, 1.12rem);
  }

  .contact-inner {
    width: 100%;
    margin-top: 0;
    padding-left: 0;
    text-align: left;
  }

  .contact-inner h2,
  .contact-inner > p,
  .contact-cta {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    white-space: normal;
  }

  .contact-social div {
    grid-template-columns: 1fr;
  }

  .site-footer {
    grid-template-columns: 1fr;
    align-items: start;
    justify-content: start;
    min-height: 0;
    padding: 24px 22px 28px;
  }

  .footer-right {
    justify-items: start;
  }

  .footer-contact,
  .footer-nav {
    justify-content: flex-start;
  }
}

@media (max-width: 520px) {
  .site-nav a {
    min-width: min(220px, calc(100vw - 44px));
  }

  .hero,
  .about-section,
  .comparison-section,
  .services-section,
  .contact-section {
    padding-inline: 18px;
  }

  .approach-section {
    padding-inline: 18px;
  }

  .approach-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .approach-tab {
    padding: 8px 10px 9px 0;
    font-size: clamp(1rem, 4.9vw, 1.3rem);
  }

  .approach-tab::before {
    min-height: 30px;
  }

  .approach-stage {
    padding: 18px 14px 20px;
  }

  .service-tab {
    grid-template-rows: auto;
    align-items: center;
  }

  .service-tab-title {
    display: none;
  }

  .service-tab::after {
    display: none;
  }

  .service-panel {
    padding: 20px 16px 22px;
  }

  .service-quote {
    padding: 46px 16px 20px;
  }

  .approach-stage h2 {
    font-size: clamp(1.22rem, 5.6vw, 1.8rem);
  }

  .approach-copy ul {
    gap: 0.5em;
  }

  .approach-copy {
    font-size: 0.98rem;
  }

  .contact-social a {
    grid-template-columns: 48px minmax(0, 1fr) 20px;
    padding-right: 12px;
  }

  .contact-social a img {
    width: 48px;
    height: 48px;
  }

  .contact-availability {
    font-size: 0.66rem;
    letter-spacing: 0.03em;
  }

  .footer-nav,
  .footer-contact {
    display: grid;
    gap: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    transition-duration: 1ms !important;
  }

  .reveal {
    opacity: 1;
    filter: none;
    transform: none;
  }
}
