:root {
  --project-surface: #080808;
  --project-surface-soft: #101010;
  --project-stroke: rgba(255, 255, 255, 0.12);
  --project-stroke-strong: rgba(255, 255, 255, 0.2);
  --project-text: rgba(255, 255, 255, 0.94);
  --project-muted: rgba(255, 255, 255, 0.62);
  --project-faint: rgba(255, 255, 255, 0.32);
  --project-accent: #d9d9d9;
  --project-shell: min(100% - 40px, 1240px);
  --project-shell-narrow: min(100% - 40px, 1040px);
  --project-hero-image: url("../img/offices/almaty.webp");
  --project-radius-xl: 36px;
  --project-radius-lg: 28px;
  --project-radius-md: 20px;
  --project-radius-sm: 14px;
}

body.project-case-page {
  background:
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.04), transparent 34%),
    #050505;
  color: var(--project-text);
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: visible;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

html:has(> body.project-case-page) {
  height: auto !important;
  min-height: 100%;
  overflow-x: hidden !important;
  overflow-y: scroll !important;
  overscroll-behavior-y: auto;
  touch-action: pan-y;
}

body.project-case-page:not(.project-modal-open):not(.nav-lock):not(.contacts-lock):not(.reviews-lock):not(.news-lock),
body.project-case-page.site-intro-active:not(.project-modal-open):not(.nav-lock):not(.contacts-lock):not(.reviews-lock):not(.news-lock) {
  overflow-y: visible !important;
}

.project-case-page main {
  position: relative;
  background: #050505;
}

body.project-case-page main > section > .besson-watermark {
  position: absolute !important;
  z-index: 0;
}

.project-shell {
  width: var(--project-shell);
  margin: 0 auto;
}

.project-shell--narrow {
  width: var(--project-shell-narrow);
  margin: 0 auto;
}

.project-section {
  position: relative;
  padding: clamp(42px, 5.2vw, 72px) 0;
}

.project-section[data-theme="light"] {
  background: #ffffff;
  color: #111;
}

.project-section[data-theme="dark"] {
  background: #050505;
  color: var(--project-text);
}

.project-section[data-theme="light"] .project-eyebrow,
.project-section[data-theme="light"] .project-section__lead,
.project-section[data-theme="light"] .project-story__text,
.project-section[data-theme="light"] .project-review__role,
.project-section[data-theme="light"] .project-summary__value,
.project-section[data-theme="light"] .project-summary__narrative,
.project-section[data-theme="light"] .project-summary__footnote,
.project-section[data-theme="light"] .project-gallery__caption,
.project-section[data-theme="light"] .project-player__note,
.project-section[data-theme="light"] .project-cta__text,
.project-section[data-theme="light"] .project-services__lead,
.project-section[data-theme="light"] .project-related__meta {
  color: rgba(17, 17, 17, 0.78);
}

.project-section[data-theme="light"] .project-summary__card,
.project-section[data-theme="light"] .project-story__card,
.project-section[data-theme="light"] .project-related__card,
.project-section[data-theme="light"] .project-summary__layout {
  background: #ffffff;
  border-color: rgba(17, 17, 17, 0.08);
  box-shadow: 0 24px 40px rgba(17, 17, 17, 0.06);
}

.project-eyebrow {
  margin: 0 0 18px;
  font-size: 11px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--project-faint);
}

.project-section__title {
  margin: 0;
  font-family: var(--display-font, sans-serif);
  font-size: clamp(32px, 4.8vw, 74px);
  line-height: 0.98;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.project-section__lead {
  max-width: 720px;
  margin: 18px 0 0;
  font-size: clamp(16px, 1.55vw, 21px);
  line-height: 1.6;
  color: var(--project-muted);
}

.project-hero {
  min-height: 100svh;
  padding: clamp(88px, 8vw, 118px) 0 clamp(20px, 3vw, 38px);
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.5) 38%, rgba(0, 0, 0, 0.78)),
    var(--project-hero-image) center / cover no-repeat,
    #050505;
  overflow: clip;
}

.project-hero::before {
  content: attr(data-watermark);
  position: absolute;
  top: max(76px, 8vh);
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--display-font, sans-serif);
  font-size: clamp(88px, 22vw, 360px);
  line-height: 0.88;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.035);
  pointer-events: none;
  white-space: nowrap;
}

.project-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(720px 420px at 18% 78%, rgba(0, 0, 0, 0.82), rgba(0, 0, 0, 0.42) 42%, transparent 72%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.74) 0%, rgba(0, 0, 0, 0.46) 34%, rgba(0, 0, 0, 0.18) 68%, rgba(0, 0, 0, 0.34) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.68));
  pointer-events: none;
}

.project-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: calc(100svh - clamp(118px, 11vw, 156px));
  grid-template-columns: minmax(0, 0.92fr) minmax(280px, 0.62fr);
  gap: clamp(24px, 4vw, 58px);
  align-items: end;
}

.project-hero__copy {
  display: grid;
  gap: 12px;
  max-width: 860px;
  padding: clamp(16px, 1.9vw, 26px);
  margin-left: calc(clamp(16px, 1.9vw, 26px) * -1);
  border-radius: clamp(18px, 2.2vw, 30px);
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.52), rgba(0, 0, 0, 0.20) 58%, transparent 100%);
  box-shadow: 0 28px 72px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(2px);
}

.project-hero__media {
  position: relative;
  align-self: end;
  justify-self: end;
  width: min(100%, 520px);
  aspect-ratio: 16 / 10;
  margin: 0 0 4px;
  border-radius: clamp(22px, 2.6vw, 34px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: 0 34px 92px rgba(0, 0, 0, 0.42);
}

.project-hero__media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, transparent 48%, rgba(0, 0, 0, 0.36)),
    linear-gradient(90deg, rgba(255, 255, 255, 0.12), transparent 26%);
  pointer-events: none;
}

.project-hero__media::after {
  content: "BESSON";
  position: absolute;
  right: 18px;
  bottom: 16px;
  z-index: 2;
  font-size: 10px;
  letter-spacing: 0.34em;
  color: rgba(255, 255, 255, 0.62);
  text-transform: uppercase;
}

.project-hero__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  filter: saturate(0.72) contrast(1.06);
  transform: scale(1.01);
}

.project-breadcrumbs {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--project-faint);
}

.project-breadcrumbs a {
  color: inherit;
}

.project-hero__kicker {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.62);
  text-shadow: 0 10px 28px rgba(0, 0, 0, 0.72);
}

.project-hero__title {
  margin: 0;
  max-width: 12ch;
  font-family: var(--display-font, sans-serif);
  font-size: clamp(38px, 6vw, 82px);
  line-height: 0.92;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  text-shadow: 0 18px 46px rgba(0, 0, 0, 0.78), 0 2px 10px rgba(0, 0, 0, 0.76);
}

.project-hero__lead {
  max-width: 660px;
  margin: 0;
  font-size: clamp(15px, 1.25vw, 19px);
  line-height: 1.48;
  color: rgba(255, 255, 255, 0.82);
  text-shadow: 0 12px 30px rgba(0, 0, 0, 0.72);
}

.project-hero__meta {
  margin: 2px 0 0;
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.64);
  text-shadow: 0 10px 24px rgba(0, 0, 0, 0.78);
}

.project-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.project-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.02);
  color: inherit;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    transform 220ms ease,
    border-color 220ms ease,
    background-color 220ms ease,
    box-shadow 220ms ease;
}

.project-btn:hover,
.project-btn:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.24);
}

.project-btn--accent {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02));
  border-color: rgba(255, 255, 255, 0.24);
}

.project-btn--accent:hover,
.project-btn--accent:focus-visible {
  border-color: rgba(255, 255, 255, 0.38);
}

.project-btn--ghost {
  background: transparent;
}

.project-hero__panel {
  position: relative;
  display: grid;
  gap: 22px;
  align-self: stretch;
  padding: clamp(22px, 2.6vw, 30px);
  border-radius: var(--project-radius-xl);
  border: 1px solid var(--project-stroke);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)),
    rgba(8, 8, 8, 0.86);
  backdrop-filter: blur(18px);
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.32);
}

.project-hero__panel::before {
  content: "";
  position: absolute;
  inset: 16px;
  border-radius: calc(var(--project-radius-xl) - 12px);
  border: 1px solid rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

.project-hero__panelHeader {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 12px;
}

.project-hero__panelTag {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 32px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 10px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.56);
}

.project-hero__panelLead {
  margin: 0;
  max-width: 34ch;
  font-size: clamp(16px, 1.45vw, 20px);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.78);
}

.project-hero__facts {
  display: grid;
  gap: 0;
  position: relative;
  z-index: 1;
}

.project-hero__fact {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 18px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.project-hero__fact:first-child {
  border-top: 0;
  padding-top: 0;
}

.project-hero__factIndex {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.34);
  background: rgba(255, 255, 255, 0.03);
}

.project-hero__factBody {
  display: grid;
  gap: 6px;
}

.project-hero__factLabel {
  display: block;
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--project-faint);
}

.project-hero__factValue {
  display: block;
  font-size: 15px;
  line-height: 1.45;
  color: var(--project-text);
}

.project-summary {
  padding-top: clamp(42px, 5vw, 68px);
}

.project-summary__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(22px, 3vw, 38px);
  align-items: start;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none !important;
}

.project-summary__statement {
  display: grid;
  gap: 22px;
}

.project-summary__narrative {
  margin: 0;
  font-family: var(--display-font, sans-serif);
  font-size: clamp(20px, 1.85vw, 30px);
  line-height: 1.28;
  letter-spacing: 0.01em;
  color: #101010;
}

.project-summary__footnote {
  margin: 0;
  max-width: 54ch;
  padding-top: 18px;
  border-top: 1px solid rgba(17, 17, 17, 0.08);
  font-size: 15px;
  line-height: 1.75;
  color: rgba(17, 17, 17, 0.72);
}

.project-summary__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
}

.project-summary__row {
  min-height: 76px;
  padding: 12px 0 14px;
  border-top: 1px solid rgba(17, 17, 17, 0.08);
}

.project-summary__row:nth-child(-n + 2) {
  border-top: 0;
}

.project-summary__label {
  display: block;
  margin-bottom: 12px;
  font-size: 10px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgba(17, 17, 17, 0.42);
}

.project-summary__value {
  margin: 0;
  font-size: clamp(17px, 1.55vw, 22px);
  line-height: 1.55;
  color: #101010;
}

#projectVideo .project-section__title {
  max-width: 620px;
  font-size: clamp(26px, 3.2vw, 48px);
  line-height: 1;
}

#projectVideo .project-player {
  margin-top: clamp(24px, 3.4vw, 42px);
}

.project-player {
  position: relative;
  overflow: hidden;
  border-radius: var(--project-radius-xl);
  border: 1px solid var(--project-stroke);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.01)),
    var(--project-surface);
  box-shadow: 0 30px 72px rgba(0, 0, 0, 0.3);
}

.project-player__stage {
  position: relative;
  aspect-ratio: 21 / 9;
  overflow: hidden;
  background: #050505;
  cursor: pointer;
  isolation: isolate;
}

.project-player__stage::before,
.project-video-modal__panel::before {
  content: "";
  position: absolute;
  inset: -30px;
  z-index: 0;
  background-image: var(--project-video-poster);
  background-size: cover;
  background-position: center;
  opacity: 0;
  filter: blur(30px) saturate(1.12);
  transform: scale(1.08);
  pointer-events: none;
}

.project-player__stage[data-video-fit="contain"]::before,
.project-video-modal__panel[data-video-fit="contain"]::before {
  opacity: 0.58;
}

.project-player__stage[data-video-fit="contain"]::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(5, 5, 5, 0.5), transparent 26%, transparent 74%, rgba(5, 5, 5, 0.5)),
    linear-gradient(180deg, rgba(5, 5, 5, 0.16), rgba(5, 5, 5, 0.42));
  pointer-events: none;
}

.project-player video {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #050505;
}

.project-player__stage[data-video-fit="contain"] video {
  width: auto;
  max-width: 100%;
  height: 100%;
  margin: 0 auto;
  object-fit: contain;
  background: transparent;
}

.project-player__stage[data-video-fit="contain"][data-video-orientation="vertical"] video {
  aspect-ratio: 9 / 16;
}

.project-player__stage[data-poster-mode="background"]::before {
  inset: 0;
  opacity: 1;
  filter: saturate(0.94) contrast(1.06) brightness(0.78);
  transform: none;
}

.project-player__stage[data-poster-mode="background"]::after {
  background:
    linear-gradient(180deg, rgba(5, 5, 5, 0.04), rgba(5, 5, 5, 0.42)),
    linear-gradient(90deg, rgba(5, 5, 5, 0.28), transparent 28%, transparent 72%, rgba(5, 5, 5, 0.28));
}

.project-player__stage[data-poster-mode="background"] video {
  opacity: 1;
  transition: opacity 180ms ease;
}

.project-player:not(.is-video-engaged) .project-player__stage[data-poster-mode="background"] video {
  opacity: 0;
}

.project-player__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: clamp(18px, 2.2vw, 24px);
  background:
    linear-gradient(180deg, rgba(5, 5, 5, 0.08), rgba(5, 5, 5, 0.62)),
    radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.12), transparent 32%);
  pointer-events: none;
}

.project-player__brand {
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}

.project-player__play {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: clamp(72px, 8vw, 96px);
  height: clamp(72px, 8vw, 96px);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  backdrop-filter: blur(12px);
  display: grid;
  place-items: center;
  transition: transform 220ms ease, background-color 220ms ease, opacity 220ms ease;
}

.project-player .project-player__play {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  z-index: 3;
}

.project-player__play svg {
  width: 24px;
  height: 24px;
  margin-left: 4px;
}

.project-player.is-playing .project-player__play {
  opacity: 0;
  pointer-events: none;
}

.project-player__stageActions {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}

.project-player:hover .project-player__stageActions,
.project-player.is-playing .project-player__stageActions,
.project-player:focus-within .project-player__stageActions {
  opacity: 1;
  pointer-events: auto;
}

.project-player__stageButton {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.48);
  color: #fff;
  display: grid;
  place-items: center;
  backdrop-filter: blur(10px);
}

.project-player__stageButton svg {
  width: 16px;
  height: 16px;
}

.project-player__play:hover,
.project-player__play:focus-visible {
  transform: translate(-50%, -50%) scale(1.04);
  background: rgba(255, 255, 255, 0.14);
}

.project-player__controls {
  display: grid;
  gap: 12px;
  padding: 16px 18px 20px;
}

.project-player__range {
  appearance: none;
  width: 100%;
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  accent-color: var(--project-accent);
}

.project-player__seekWrap {
  position: relative;
  width: 100%;
  height: 18px;
  display: grid;
  align-items: center;
  touch-action: none;
}

.project-player__seekButton {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}

.project-player__seekButton::before,
.project-player__seekFill {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  height: 4px;
  border-radius: 999px;
  transform: translateY(-50%);
}

.project-player__seekButton::before {
  right: 0;
  background: rgba(255, 255, 255, 0.18);
}

.project-player__seekFill {
  width: 0;
  max-width: 100%;
  background: #fff;
  box-shadow: 0 0 18px rgba(255, 255, 255, 0.18);
  pointer-events: none;
}

.project-player__seekButton:focus-visible::before {
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.22);
}

.project-player__seekWrap > .project-player__range {
  position: relative;
  z-index: 1;
  background: transparent;
  pointer-events: none;
}

.project-player__range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
}

.project-player__row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.project-player__volumeGroup {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.project-player__button {
  min-width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.02);
  color: inherit;
  display: grid;
  place-items: center;
  transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.project-player__button:hover,
.project-player__button:focus-visible {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.24);
}

.project-player__button svg {
  width: 16px;
  height: 16px;
}

.project-player__time {
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--project-faint);
  white-space: nowrap;
  margin-right: auto;
}

.project-player__volume {
  width: 72px;
}

.project-player__note {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--project-muted);
}

.project-story__row {
  display: grid;
  grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(22px, 3vw, 40px);
  align-items: start;
  padding: 24px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.project-story__row:first-of-type {
  margin-top: 24px;
}

.project-story__title {
  position: sticky;
  top: 108px;
}

.project-story__title h2 {
  margin: 0;
  font-family: var(--display-font, sans-serif);
  font-size: clamp(26px, 3vw, 42px);
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.project-story__text {
  margin: 0;
  font-size: clamp(16px, 1.44vw, 20px);
  line-height: 1.72;
  color: var(--project-muted);
}

.project-story__card {
  padding: 24px;
  border-radius: var(--project-radius-lg);
  border: 1px solid var(--project-stroke);
  background: rgba(255, 255, 255, 0.03);
}

.project-story__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.project-story__item {
  padding: 14px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 16px;
  line-height: 1.6;
  color: var(--project-text);
}

.project-story__item:first-child {
  border-top: 0;
  padding-top: 0;
}

.project-proof {
  overflow: hidden;
}

.project-proof__story {
  margin-top: clamp(28px, 4vw, 54px);
}

.project-proof__work,
.project-proof__result {
  margin-top: clamp(32px, 4.4vw, 62px);
}

.project-proof__subtitle {
  margin: 0 0 clamp(18px, 2.4vw, 30px);
  font-family: var(--display-font, sans-serif);
  font-size: clamp(24px, 3.2vw, 48px);
  line-height: 1.02;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.94);
}

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

.project-proof__card {
  position: relative;
  min-height: 188px;
  padding: clamp(18px, 1.8vw, 24px);
  border-radius: var(--project-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.018)),
    #070707;
  overflow: hidden;
}

.project-proof__card::after {
  content: "";
  position: absolute;
  inset: auto -24px -38px auto;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  pointer-events: none;
}

.project-proof__cardIndex {
  display: block;
  margin-bottom: 34px;
  font-size: 10px;
  letter-spacing: 0.28em;
  color: rgba(255, 255, 255, 0.36);
}

.project-proof__card h3 {
  margin: 0 0 12px;
  font-family: var(--display-font, sans-serif);
  font-size: clamp(17px, 1.32vw, 22px);
  line-height: 1.04;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.project-proof__card p,
.project-proof__resultText {
  margin: 0;
  font-size: clamp(14px, 1.05vw, 16px);
  line-height: 1.58;
  color: rgba(255, 255, 255, 0.66);
}

.project-proof__resultText {
  max-width: 920px;
  margin-bottom: clamp(20px, 2.6vw, 34px);
}

.project-gallery {
  --gallery-rotation: 0deg;
  --gallery-radius: clamp(560px, 48vw, 720px);
  --gallery-card-w: clamp(244px, 20vw, 286px);
  --gallery-card-h: clamp(292px, 23vw, 332px);
  position: relative;
  min-height: clamp(410px, 39vw, 540px);
  margin-top: clamp(24px, 3vw, 38px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: hidden;
  isolation: isolate;
  touch-action: pan-y pinch-zoom;
  cursor: grab;
}

.project-gallery[data-swiping="true"] {
  cursor: grabbing;
}

.project-gallery__scene {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: clamp(430px, 41vw, 560px);
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 2000px;
  z-index: 1;
  touch-action: pan-y pinch-zoom;
}

.project-gallery__ring {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
  transform: rotateY(var(--gallery-rotation));
  transform-style: preserve-3d;
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.project-gallery[data-gallery-motion="live"] .project-gallery__ring,
.project-gallery[data-swiping="true"] .project-gallery__ring {
  transition: none;
}

.project-gallery__card {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--gallery-card-w);
  height: var(--gallery-card-h);
  margin-left: calc(var(--gallery-card-w) * -0.5);
  margin-top: calc(var(--gallery-card-h) * -0.5);
  transform:
    rotateY(var(--item-angle))
    translateZ(var(--gallery-radius));
  transform-style: preserve-3d;
  transition: opacity 300ms linear;
  will-change: opacity;
}

.project-gallery__cardInner {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 12px;
  border: 0;
  background: transparent;
  box-shadow: 0 26px 62px rgba(0, 0, 0, 0.34);
  transform: scale(0.92);
  filter: saturate(0.86) contrast(0.98);
  transition:
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 360ms ease,
    box-shadow 360ms ease;
}

.project-gallery__card.is-active .project-gallery__cardInner {
  transform: scale(0.975);
  filter: saturate(1) contrast(1.03);
  box-shadow: 0 34px 86px rgba(0, 0, 0, 0.48);
}

.project-gallery__card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  user-select: none;
  pointer-events: none;
}

.project-gallery__cardShade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.2) 44%, rgba(0, 0, 0, 0.86)),
    linear-gradient(90deg, rgba(0, 0, 0, 0.42), transparent 50%, rgba(0, 0, 0, 0.24));
}

.project-gallery__cardCopy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 18px;
  color: #fff;
}

.project-gallery__cardTitle {
  margin: 0;
  font-family: var(--display-font, sans-serif);
  font-size: clamp(18px, 1.65vw, 24px);
  line-height: 1.08;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.project-gallery__cardMeta,
.project-gallery__cardCredit {
  display: block;
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.68);
}

.project-gallery__cardCredit {
  margin-top: 10px;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.5);
}

.project-gallery__caption {
  display: none;
}

#projectGalleryLead:empty {
  display: none;
}

#projectSummaryLead:empty,
#projectSummaryFootnote:empty,
#projectPlayerNote:empty,
#projectServicesLead:empty,
#projectRelatedLead:empty {
  display: none;
}

.project-results__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 1.4vw, 16px);
  counter-reset: result-card;
}

.project-results__card {
  position: relative;
  min-height: clamp(154px, 15vw, 218px);
  padding: clamp(18px, 2.4vw, 28px);
  border-radius: var(--project-radius-lg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    radial-gradient(circle at 92% 8%, rgba(255, 255, 255, 0.13), transparent 26%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.015)),
    #070707;
  color: #fff;
  overflow: hidden;
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 680ms cubic-bezier(0.19, 1, 0.22, 1),
    transform 780ms cubic-bezier(0.19, 1, 0.22, 1),
    border-color 220ms ease,
    background-color 220ms ease;
  transition-delay: calc(var(--metric-index, 0) * 70ms);
}

.project-results__card::before {
  content: attr(data-result-index);
  position: absolute;
  top: 18px;
  right: 18px;
  font-size: 10px;
  letter-spacing: 0.26em;
  color: rgba(255, 255, 255, 0.24);
}

.project-results__card::after {
  content: "BESSON";
  position: absolute;
  right: -0.08em;
  bottom: -0.22em;
  font-family: var(--display-font, sans-serif);
  font-size: clamp(58px, 8vw, 124px);
  line-height: 0.8;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.035);
  pointer-events: none;
}

.project-results__grid.is-in .project-results__card {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.project-results__value {
  position: relative;
  z-index: 1;
  display: block;
  margin-bottom: clamp(18px, 2.2vw, 30px);
  font-family: var(--display-font, sans-serif);
  font-size: clamp(44px, 6.2vw, 98px);
  line-height: 0.84;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.94);
}

.project-results__label {
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: 28ch;
  font-size: clamp(14px, 1.2vw, 17px);
  line-height: 1.48;
  color: rgba(255, 255, 255, 0.68);
}

.project-review {
  position: relative;
  padding: clamp(34px, 4vw, 44px);
  border-radius: var(--project-radius-xl);
  border: 1px solid var(--project-stroke);
  background:
    radial-gradient(circle at top right, rgba(255, 255, 255, 0.08), transparent 24%),
    rgba(255, 255, 255, 0.03);
}

.project-review blockquote {
  margin: 0;
  font-family: var(--display-font, sans-serif);
  font-size: clamp(26px, 3.2vw, 48px);
  line-height: 1.08;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.project-review__meta {
  margin-top: 22px;
}

.project-review__author {
  display: block;
  font-size: 15px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.project-review__role {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  color: var(--project-muted);
}

.project-services__chips {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px 26px;
  margin-top: 24px;
}

.project-services__chip {
  position: relative;
  display: inline-flex;
  width: 100%;
  min-width: 0;
  min-height: 42px;
  align-items: center;
  padding: 11px 13px 12px;
  border: 0;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.012);
  font-size: 11px;
  font-weight: 360;
  line-height: 1.32;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(5, 5, 5, 0.72);
  transition:
    background 0.28s ease,
    color 0.28s ease,
    opacity 0.28s ease,
    transform 0.28s ease;
  overflow-wrap: anywhere;
}

.project-services__chip::after {
  content: "";
  position: absolute;
  left: 13px;
  right: 13px;
  bottom: 8px;
  height: 1px;
  background: currentColor;
  opacity: 0.16;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease, opacity 0.35s ease;
}

.project-services__chip:hover,
.project-services__chip:focus-visible {
  opacity: 1;
  color: rgba(5, 5, 5, 0.94);
  background: rgba(0, 0, 0, 0.055);
  transform: translateY(-1px);
}

.project-services__chip:hover::after,
.project-services__chip:focus-visible::after {
  opacity: 0.42;
  transform: scaleX(1);
}

.project-related__grid {
  display: flex;
  gap: 14px;
  margin-top: 20px;
  overflow-x: auto;
  padding: 0 0 14px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.project-related__grid::-webkit-scrollbar {
  display: none;
}

.project-related__card {
  display: block;
  flex: 0 0 min(390px, 32vw);
  scroll-snap-align: start;
  border-radius: var(--project-radius-lg);
  overflow: hidden;
  border: 1px solid var(--project-stroke);
  background: rgba(255, 255, 255, 0.03);
}

.project-related__cardMedia {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #0b0b0b;
}

.project-related__cardMedia img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.project-related__body {
  padding: 18px;
}

.project-related__meta {
  margin: 0 0 10px;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--project-faint);
}

.project-related__title {
  margin: 0;
  font-size: 18px;
  line-height: 1.4;
}

.project-related__link {
  display: inline-flex;
  margin-top: 14px;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--project-muted);
}

.project-cta {
  position: relative;
  overflow: clip;
  padding: clamp(48px, 7vw, 94px) 0;
  isolation: isolate;
}

.project-cta::after {
  content: "";
  position: absolute;
  right: max(-120px, -7vw);
  bottom: max(-170px, -10vw);
  width: clamp(260px, 31vw, 520px);
  aspect-ratio: 1;
  background: url("../brand/besson-monogram.png") center / contain no-repeat;
  opacity: 0.12;
  filter: grayscale(1) contrast(1.2);
  transform: rotate(-12deg);
  pointer-events: none;
  z-index: 0;
}

.project-section.project-cta[data-theme="dark"] {
  background:
    radial-gradient(circle at 82% 16%, rgba(255, 255, 255, 0.07), transparent 28%),
    linear-gradient(180deg, #050505 0%, #090909 48%, #050505 100%);
}

.project-cta__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(280px, 0.56fr);
  align-items: end;
  gap: clamp(28px, 6vw, 92px);
  padding: clamp(34px, 5.4vw, 74px) 0;
  border: 0;
  background: transparent;
  z-index: 1;
}

.project-cta__inner::before,
.project-cta__inner:not([data-watermark])::before {
  content: none;
}

.project-cta__inner > * {
  position: relative;
  z-index: 1;
}

.project-cta .project-eyebrow {
  grid-column: 1 / -1;
  margin-bottom: clamp(10px, 1.5vw, 18px);
}

.project-cta .project-section__title {
  grid-column: 1;
  margin: 0;
  max-width: 760px;
  font-size: clamp(44px, 7.4vw, 104px);
  line-height: 0.9;
  letter-spacing: -0.065em;
}

.project-cta__text {
  grid-column: 2;
  align-self: start;
  margin: 0;
  max-width: 430px;
  font-size: clamp(15px, 1.35vw, 20px);
  line-height: 1.48;
  color: rgba(255, 255, 255, 0.68);
}

.project-related-section .besson-watermark {
  --wm-opacity: .072;
  --wm-x: -34%;
  --wm-y: -34%;
}

.project-cta__brand {
  width: fit-content;
  margin: 0 0 clamp(22px, 3vw, 34px);
  padding: 12px 16px 11px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.project-cta__brandMain {
  font-family: var(--display-font, sans-serif);
  font-size: clamp(18px, 2vw, 28px);
  line-height: 1;
  letter-spacing: 0.16em;
}

.project-cta__brandSub {
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.34em;
  color: rgba(255, 255, 255, 0.58);
}

.project-cta__actions {
  display: flex;
  flex-wrap: wrap;
  grid-column: 2;
  gap: 10px;
  margin-top: clamp(18px, 2.8vw, 34px);
}

.project-cta .project-btn {
  min-height: 50px;
  padding: 0 19px;
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.025);
  backdrop-filter: blur(14px);
}

.project-cta .project-btn--accent {
  min-height: clamp(60px, 4.8vw, 72px);
  padding: 0 clamp(30px, 3.4vw, 48px);
  background: #fff;
  border-color: #fff;
  color: #050505;
  font-size: clamp(12px, 0.9vw, 14px);
  letter-spacing: 0.24em;
}

.project-cta .project-btn:hover,
.project-cta .project-btn:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(255, 255, 255, 0.46);
  background: rgba(255, 255, 255, 0.08);
}

.project-cta .project-btn--accent:hover,
.project-cta .project-btn--accent:focus-visible {
  background: #f4f4f4;
  border-color: #fff;
  color: #050505;
}

.project-video-modal {
  position: fixed;
  inset: 0;
  z-index: 2600;
  display: grid;
  place-items: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 220ms ease, visibility 220ms ease;
}

.project-video-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.project-video-modal__bg {
  position: absolute;
  inset: 0;
  background: rgba(5, 5, 5, 0.82);
  backdrop-filter: blur(8px);
}

.project-video-modal__panel {
  position: relative;
  overflow: hidden;
  z-index: 1;
  width: min(92vw, 1120px);
  padding: 18px;
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #070707;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.44);
}

.project-video-modal__top {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 14px;
}

.project-video-modal__top h3 {
  margin: 0;
  font-size: 14px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.project-video-modal__close {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.02);
  color: inherit;
}

.project-video-modal video {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  border-radius: 20px;
  background: #000;
}

.project-video-modal__panel[data-video-fit="contain"] video {
  width: auto;
  max-width: 100%;
  height: min(70vh, calc(92vw * 9 / 16));
  margin: 0 auto;
  object-fit: contain;
  background: transparent;
}

.project-video-modal__panel[data-video-fit="contain"][data-video-orientation="vertical"] video {
  aspect-ratio: 9 / 16;
}

.project-reveal {
  opacity: 0;
  transform: translate3d(0, 24px, 0) scale(0.985);
  filter: blur(8px);
  transition:
    opacity 720ms cubic-bezier(0.19, 1, 0.22, 1),
    transform 820ms cubic-bezier(0.19, 1, 0.22, 1),
    filter 820ms cubic-bezier(0.19, 1, 0.22, 1);
}

.project-reveal.is-in {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}

@media (prefers-reduced-motion: reduce) {
  .project-btn,
  .project-player__button,
  .project-player__play,
  .project-gallery__ring,
  .project-gallery__card,
  .project-reveal {
    transition: none !important;
  }

  .project-reveal {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

@media (max-width: 1100px) {
  .project-summary__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .project-summary__grid,
  .project-results__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .project-related__card {
    flex-basis: min(420px, 44vw);
  }
}

@media (max-width: 900px) {
  .project-hero {
    min-height: 100svh;
    padding: 86px 0 20px;
  }

  .project-hero__grid,
  .project-story__row {
    grid-template-columns: minmax(0, 1fr);
  }

  .project-proof__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .project-proof__card {
    min-height: 164px;
  }

  .project-hero__grid {
    min-height: calc(100svh - 106px);
    align-items: center;
    align-content: center;
    gap: 16px;
  }

  .project-hero__media {
    justify-self: start;
    width: min(100%, 520px);
    max-height: 28svh;
    aspect-ratio: 16 / 8.5;
    order: -1;
    opacity: 0.9;
  }

	  .project-hero__copy {
	    gap: 12px;
	    max-width: min(100%, 680px);
	    padding: 18px;
	    margin-left: -10px;
	    background: linear-gradient(140deg, rgba(0, 0, 0, 0.66), rgba(0, 0, 0, 0.30) 68%, transparent 100%);
	  }

  .project-hero__title {
    max-width: none;
    font-size: clamp(32px, 8.4vw, 52px);
    line-height: 0.92;
  }

  .project-hero__lead {
    font-size: 15px;
    line-height: 1.4;
  }

  .project-hero__actions {
    gap: 10px;
  }

  .project-btn {
    min-height: 46px;
    padding: 0 16px;
    font-size: 11px;
    letter-spacing: 0.16em;
  }

  .project-player__stage {
    aspect-ratio: 16 / 9;
  }

  #projectVideo .project-section__title {
    font-size: clamp(26px, 6vw, 38px);
  }

  .project-hero__factBody {
    gap: 4px;
  }

  .project-story__title {
    position: static;
  }

  .project-summary__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  :root {
    --project-shell: min(100% - 24px, 1240px);
    --project-shell-narrow: min(100% - 24px, 1040px);
  }

  .project-section {
    padding: 30px 0;
  }

  .project-section__title {
    font-size: clamp(27px, 7.2vw, 38px);
    line-height: 1;
  }

  .project-section__lead {
    margin-top: 12px;
    font-size: 14px;
    line-height: 1.42;
  }

  .project-breadcrumbs {
    display: none;
  }

  .project-hero {
    min-height: 100svh;
    padding: 82px 0 18px;
  }

	  .project-hero__grid {
	    min-height: calc(100svh - 100px);
	    align-items: center;
	    gap: 12px;
	  }

	  .project-hero__copy {
	    width: calc(100% + 8px);
	    max-width: none;
	    padding: 14px 12px;
	    margin-left: -4px;
	    border-radius: 18px;
	    background: linear-gradient(145deg, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.38) 72%, transparent 100%);
	    backdrop-filter: none;
	  }

  .project-hero__media {
    width: min(100%, 360px);
    max-height: 22svh;
    border-radius: 18px;
    opacity: 0.88;
  }

  .project-hero__media::after {
    right: 12px;
    bottom: 10px;
    font-size: 8px;
    letter-spacing: 0.26em;
  }

  .project-hero__title {
    font-size: clamp(27px, 7.25vw, 38px);
    line-height: 0.96;
  }

  .project-hero__meta {
    font-size: 10px;
    letter-spacing: 0.18em;
  }

  .project-breadcrumbs {
    gap: 6px;
    font-size: 10px;
    letter-spacing: 0.14em;
  }

  .project-hero__kicker {
    font-size: 10px;
    letter-spacing: 0.24em;
  }

  .project-hero__lead {
    font-size: 13px;
    line-height: 1.34;
  }

  .project-hero__facts,
  .project-results__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .project-summary__layout {
    padding: 0;
    gap: 18px;
  }

  .project-summary {
    padding: 30px 0 28px;
  }

  .project-summary .project-section__lead {
    display: none;
  }

  .project-summary__statement {
    gap: 12px;
  }

  .project-summary__narrative {
    font-size: 16px;
    line-height: 1.45;
  }

  .project-summary__footnote {
    display: none;
  }

  .project-summary__value {
    font-size: 14px;
    line-height: 1.45;
  }

  .project-summary__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
  }

  .project-summary__row {
    min-height: 0;
    padding: 9px 0 10px;
  }

  .project-summary__row:nth-child(-n + 2) {
    border-top: 0;
  }

  .project-summary__label {
    margin-bottom: 8px;
    font-size: 9px;
    letter-spacing: 0.2em;
  }

	  .project-gallery {
	    --gallery-radius: min(122vw, 520px);
	    --gallery-card-w: min(42vw, 184px);
    --gallery-card-h: min(58vw, 254px);
    min-height: min(106vw, 470px);
    margin-top: 34px;
    padding: 0;
    border-radius: 0;
  }

  .project-gallery__scene {
    min-height: min(102vw, 440px);
    perspective: 1500px;
  }

  .project-gallery__cardInner {
    border-radius: 14px;
  }

  .project-gallery__cardCopy {
    padding: 14px;
  }

  .project-gallery__cardTitle {
    font-size: 16px;
  }

  .project-gallery__cardMeta,
  .project-gallery__cardCredit {
    font-size: 9px;
    letter-spacing: 0.1em;
  }

  .project-gallery__caption {
    display: none;
  }

  #projectGalleryWrap {
    padding-top: 44px;
    padding-bottom: 48px;
  }

  #projectGalleryWrap + .project-cta {
    padding-top: 42px;
  }

  .project-player__row {
    flex-wrap: nowrap;
  }

  .project-player__volumeGroup {
    gap: 8px;
  }

  .project-player__volume {
    width: 56px;
  }

  .project-player__controls {
    padding: 12px 14px 14px;
    gap: 10px;
  }

  .project-player__time {
    font-size: 11px;
    letter-spacing: 0.1em;
  }

  .project-player__note {
    display: none;
  }

  .project-player__stageActions {
    top: 12px;
    right: 12px;
  }

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

  .project-results__card {
    min-height: 128px;
    padding: 16px;
  }

  .project-results__value {
    margin-bottom: 14px;
    font-size: clamp(31px, 11vw, 50px);
  }

  .project-results__label {
    font-size: 13px;
    line-height: 1.45;
  }

  .project-related__card {
    flex-basis: 82vw;
  }

  .project-video-modal {
    padding: 12px;
  }

  .project-video-modal__panel {
    width: 100%;
    padding: 14px;
    border-radius: 20px;
  }

  .project-cta__inner {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 18px;
    padding: 34px 0;
  }

  .project-cta::after {
    right: -116px;
    bottom: -96px;
    width: 276px;
    opacity: 0.1;
  }

  .project-cta .project-eyebrow,
  .project-cta .project-section__title,
  .project-cta__text,
  .project-cta__actions {
    grid-column: 1;
  }

  .project-cta .project-section__title {
    max-width: 9.5em;
    font-size: clamp(38px, 12vw, 58px);
    line-height: 0.94;
  }

  .project-cta__text {
    max-width: none;
    font-size: 14px;
    line-height: 1.52;
  }

  .project-cta__actions {
    width: 100%;
    margin-top: 8px;
  }

  .project-cta .project-btn {
    width: 100%;
    min-height: 48px;
  }

  .project-cta .project-btn--accent {
    min-height: 58px;
  }
}

/* 2026-06-06: reliable fullscreen layout for the project video player. */
.project-player:fullscreen,
.project-player:-webkit-full-screen,
.project-player.is-pseudo-fullscreen {
  width: 100vw !important;
  height: 100vh !important;
  max-width: none !important;
  border-radius: 0 !important;
  border: 0 !important;
  background: #050505 !important;
  display: grid !important;
  grid-template-rows: minmax(0, 1fr) auto !important;
}

.project-player.is-pseudo-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483647 !important;
}

body.project-player-fullscreen-open {
  overflow: hidden !important;
}

body.project-player-fullscreen-open .nav,
body.project-player-fullscreen-open .contact-pill,
body.project-player-fullscreen-open .cookie-banner,
body.project-player-fullscreen-open .cursor-dot,
body.project-player-fullscreen-open .cursor-ring {
  opacity: 0 !important;
  pointer-events: none !important;
}

.project-player:fullscreen .project-player__stage,
.project-player:-webkit-full-screen .project-player__stage,
.project-player.is-pseudo-fullscreen .project-player__stage {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
}

.project-player:fullscreen video,
.project-player:-webkit-full-screen video,
.project-player.is-pseudo-fullscreen video,
.project-player__stage:fullscreen video,
.project-player__stage:-webkit-full-screen video {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.project-player:fullscreen .project-player__stageActions,
.project-player:-webkit-full-screen .project-player__stageActions,
.project-player.is-fullscreen .project-player__stageActions,
.project-player.is-pseudo-fullscreen .project-player__stageActions {
  opacity: 1 !important;
  pointer-events: auto !important;
}

.project-faq {
  position: relative;
  z-index: 1;
}

.project-faq .faq-home__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.project-news {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(92px, 9vw, 136px) 0 clamp(72px, 8vw, 116px);
  background:
    radial-gradient(760px 360px at 14% 0%, rgba(255, 255, 255, 0.09), transparent 62%),
    radial-gradient(680px 360px at 90% 28%, rgba(110, 210, 255, 0.07), transparent 64%),
    #050505;
  color: #f5f5f5;
}

.project-news::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 34%);
  opacity: 0.72;
}

.project-news__inner {
  position: relative;
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
}

.project-news__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px 28px;
  align-items: start;
  max-width: 720px;
  margin: 0 0 26px;
}

.project-news__kicker {
  margin: 0 0 10px;
  color: rgba(255, 255, 255, 0.52);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.project-news__title {
  margin: 0;
  color: rgba(255, 255, 255, 0.96);
  font-size: var(--section-title-size, clamp(40px, 7vw, 96px));
  line-height: var(--section-title-line, 0.88);
  font-weight: 900;
  letter-spacing: -0.06em;
  text-transform: uppercase;
  text-wrap: balance;
}

.project-news__lead {
  grid-column: 1 / -1;
  margin: 16px 0 0;
  max-width: 620px;
  color: rgba(255, 255, 255, 0.62);
  font-size: clamp(14px, 1.2vw, 16px);
  line-height: 1.62;
}

.project-news__lines {
  grid-column: 1 / -1;
  display: grid;
  gap: 6px;
  margin-top: 20px;
  width: min(420px, 100%);
}

.project-news__lines span {
  display: block;
  height: 1px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.52);
  transform-origin: left;
  opacity: 0.8;
}

.project-news__lines span:nth-child(1) {
  width: 100%;
}

.project-news__lines span:nth-child(2) {
  width: 68%;
  opacity: 0.55;
}

.project-news__lines span:nth-child(3) {
  width: 38%;
  opacity: 0.32;
}

.project-news__hub {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 10px;
  font-weight: 620;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 220ms ease, color 220ms ease, background 220ms ease, transform 220ms ease;
}

.project-news__hub:hover,
.project-news__hub:focus-visible {
  border-color: rgba(255, 255, 255, 0.82);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  transform: translateY(-1px);
}

.project-news__grid {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  margin-right: calc((min(1120px, calc(100vw - 48px)) - 100vw) / 2);
  padding: 0 calc((100vw - min(1120px, calc(100vw - 48px))) / 2) 6px 0;
}

.project-news__grid::-webkit-scrollbar {
  display: none;
}

.project-news__card {
  display: block;
  position: relative;
  flex: 0 0 clamp(300px, 31vw, 380px);
  scroll-snap-align: start;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.022));
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  color: inherit;
  cursor: pointer;
  outline: none;
  text-decoration: none;
}

.project-news__card:focus-visible {
  border-color: rgba(255, 255, 255, 0.42);
  box-shadow: 0 28px 78px rgba(0, 0, 0, 0.52), 0 0 0 3px rgba(255, 255, 255, 0.12);
}

.project-news__media {
  position: relative;
  height: 230px;
  overflow: hidden;
  background: #111;
}

.project-news__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(0.82) contrast(1.08) brightness(0.72);
  transform: scale(1.02);
  transition:
    transform 700ms cubic-bezier(0.19, 1, 0.22, 1),
    filter 320ms ease;
}

.project-news__card:hover .project-news__media img {
  transform: scale(1.075);
  filter: saturate(0.95) contrast(1.1) brightness(0.8);
}

.project-news__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(5, 5, 5, 0.88), rgba(5, 5, 5, 0.08) 58%, rgba(5, 5, 5, 0.20));
  pointer-events: none;
}

.project-news__meta {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 12px;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.project-news__meta span:last-child {
  text-align: right;
}

.project-news__body {
  padding: 18px;
}

.project-news__tag {
  margin: 0 0 10px;
  color: rgba(255, 255, 255, 0.46);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.project-news__card h3 {
  margin: 0;
  color: rgba(255, 255, 255, 0.94);
  font-size: clamp(16px, 1.55vw, 20px);
  line-height: 1.2;
  font-weight: 660;
  letter-spacing: 0.01em;
  text-wrap: balance;
}

.project-news__summary {
  margin: 12px 0 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 13px;
  line-height: 1.55;
}

.project-news__more {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition:
    grid-template-rows 420ms cubic-bezier(0.19, 1, 0.22, 1),
    opacity 280ms ease,
    margin-top 280ms ease;
}

.project-news__moreInner {
  overflow: hidden;
}

.project-news__more p {
  margin: 0;
  color: rgba(255, 255, 255, 0.74);
  font-size: 13px;
  line-height: 1.58;
}

.project-news__card.is-expanded .project-news__more {
  grid-template-rows: 1fr;
  opacity: 1;
  margin-top: 14px;
}

.project-news__hashtags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
}

.project-news__hashtags span {
  color: rgba(255, 255, 255, 0.82);
  font-size: 9px;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.project-news__toggle {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
  font: inherit;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
}

.project-news__toggle::after {
  content: "";
  width: 34px;
  height: 1px;
  background: rgba(255, 255, 255, 0.42);
  transform-origin: left;
  transition: transform 260ms ease, background 260ms ease;
}

.project-news__card:hover .project-news__toggle::after,
.project-news__card:focus-visible .project-news__toggle::after {
  transform: scaleX(1.32);
  background: rgba(255, 255, 255, 0.86);
}

.project-news__card.is-expanded .project-news__toggle::after {
  transform: scaleX(0.58);
}

@media (max-width: 720px) {
  .project-faq .faq-home__grid {
    grid-template-columns: 1fr;
  }

	  .project-news {
	    padding: 64px 0;
	  }

  .project-news__inner {
    width: calc(100% - 32px);
  }

	  .project-news__head {
	    grid-template-columns: 1fr;
	    gap: 14px;
	    margin-bottom: 26px;
	  }

  .project-news__hub {
    justify-self: start;
  }

  .project-news__title {
    font-size: clamp(34px, 12vw, 48px);
  }

	  .project-news__grid {
	    gap: 14px;
	    margin-right: -16px;
	    padding-right: 16px;
	  }

	  .project-news__card {
	    flex-basis: min(82vw, 330px);
	  }

	  .project-news__media {
	    height: 205px;
	  }

  .project-news__more p {
    font-size: 12.5px;
  }

  .project-news__hashtags {
    gap: 6px;
  }
	}

@media (prefers-reduced-motion: reduce) {
  .project-news__media img,
  .project-news__more,
  .project-news__toggle::after {
    transition: none;
  }
}

body[data-project-slug="ucell-new-year-corporate"] .project-hero {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.42) 42%, rgba(0, 0, 0, 0.76)),
    var(--project-hero-image) center / cover no-repeat,
    #050505;
}

body[data-project-slug="ucell-new-year-corporate"] .project-hero__grid {
  grid-template-columns: minmax(0, 0.98fr);
}

body[data-project-slug="ucell-new-year-corporate"] .project-hero__media {
  display: none !important;
}

@media (max-width: 900px) {
  body[data-project-slug="ucell-new-year-corporate"] .project-hero {
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.24), rgba(0, 0, 0, 0.48) 50%, rgba(0, 0, 0, 0.82)),
      var(--project-hero-image) center / cover no-repeat,
      #050505;
  }
}

/* 2026-06-05: all project heroes use the main project image as a full-screen background. */
.project-hero {
  min-height: 100svh !important;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.48) 46%, rgba(0, 0, 0, 0.78)),
    var(--project-hero-image) center center / cover no-repeat,
    #050505 !important;
}

.project-hero__grid {
  grid-template-columns: minmax(0, 1fr) !important;
}

.project-hero__media {
  display: none !important;
  filter: none !important;
  transform: none !important;
  opacity: 1 !important;
}

.project-hero__media img {
  filter: none !important;
}

.project-player__seekWrap {
  position: relative !important;
  height: 18px !important;
}

.project-player__seekButton {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  height: 18px !important;
  min-height: 18px !important;
  pointer-events: auto !important;
  touch-action: none !important;
}

.project-player__seekWrap > .project-player__range {
  pointer-events: none !important;
}

.project-player.is-seek-loading .project-player__seekButton::before {
  opacity: 0.72;
}

.project-player.is-seek-loading .project-player__seekFill {
  box-shadow: 0 0 26px rgba(255, 255, 255, 0.32);
}

@media (max-width: 900px) {
  .project-hero {
    min-height: 100svh !important;
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.22), rgba(0, 0, 0, 0.5) 52%, rgba(0, 0, 0, 0.84)),
      var(--project-hero-image) center center / cover no-repeat,
      #050505 !important;
  }
}

/* 2026-06-06: quieter project hero card and editorial summary. */
.project-hero {
  padding-bottom: clamp(26px, 4.2vw, 54px) !important;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.32) 48%, rgba(0, 0, 0, 0.72)),
    var(--project-hero-image) center center / cover no-repeat,
    #050505 !important;
}

.project-hero__grid {
  align-items: end !important;
  align-content: end !important;
  min-height: calc(100svh - clamp(118px, 11vw, 156px)) !important;
}

.project-hero__copy {
  width: fit-content !important;
  max-width: min(620px, 100%) !important;
  gap: 10px !important;
  padding: clamp(14px, 1.35vw, 20px) !important;
  margin-left: 0 !important;
  border-radius: clamp(16px, 1.7vw, 24px) !important;
  background:
    linear-gradient(135deg, rgba(0, 0, 0, 0.58), rgba(0, 0, 0, 0.28) 68%, rgba(0, 0, 0, 0.08)) !important;
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.28) !important;
  backdrop-filter: blur(1.5px) !important;
}

.project-hero__title {
  max-width: min(18ch, 100%) !important;
  font-size: clamp(28px, 3.45vw, 48px) !important;
  line-height: 1 !important;
  letter-spacing: 0.045em !important;
}

.project-hero .project-breadcrumbs {
  display: none !important;
}

.project-hero__kicker {
  font-size: 9px !important;
  letter-spacing: 0.28em !important;
}

.project-hero__lead,
.project-hero__meta,
#projectHeroLead,
#projectHeroMetaLine {
  display: none !important;
}

.project-hero__actions {
  margin-top: 4px !important;
  gap: 9px !important;
}

.project-btn {
  min-height: 42px !important;
  padding: 0 15px !important;
  font-size: 10px !important;
  letter-spacing: 0.16em !important;
}

.project-summary {
  padding-top: clamp(34px, 4vw, 54px) !important;
}

.project-summary #projectSummaryTitleMain,
.project-summary .project-section__title {
  display: none !important;
}

.project-summary .project-eyebrow {
  margin-bottom: clamp(18px, 2.2vw, 28px) !important;
  color: rgba(17, 17, 17, 0.46) !important;
  font-size: 10px !important;
  font-weight: 420 !important;
  letter-spacing: 0.34em !important;
}

.project-summary__layout {
  gap: clamp(24px, 4vw, 54px) !important;
}

.project-summary__statement {
  gap: 14px !important;
}

.project-summary__narrative {
  max-width: 30em !important;
  font-family: var(--display-font, sans-serif) !important;
  font-size: clamp(18px, 1.55vw, 25px) !important;
  font-weight: 320 !important;
  line-height: 1.38 !important;
  letter-spacing: -0.018em !important;
  color: rgba(17, 17, 17, 0.82) !important;
  text-wrap: balance;
}

.project-summary__paragraph {
  display: block;
}

.project-summary__paragraph + .project-summary__paragraph {
  margin-top: 0.82em;
}

.project-summary__value {
  font-size: clamp(15px, 1.2vw, 19px) !important;
  font-weight: 360 !important;
  line-height: 1.48 !important;
  color: rgba(17, 17, 17, 0.78) !important;
}

@media (max-width: 900px) {
  .project-hero {
    padding: 78px 0 18px !important;
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.34) 52%, rgba(0, 0, 0, 0.78)),
      var(--project-hero-image) center center / cover no-repeat,
      #050505 !important;
  }

  .project-hero__grid {
    min-height: calc(100svh - 96px) !important;
    align-items: end !important;
    align-content: end !important;
    gap: 0 !important;
  }

  .project-hero__copy {
    width: min(100%, 520px) !important;
    max-width: min(100%, 520px) !important;
    padding: 13px !important;
    border-radius: 18px !important;
    background: linear-gradient(145deg, rgba(0, 0, 0, 0.66), rgba(0, 0, 0, 0.34) 76%, rgba(0, 0, 0, 0.1)) !important;
  }

  .project-hero__title {
    max-width: min(16ch, 100%) !important;
    font-size: clamp(23px, 6.25vw, 34px) !important;
    line-height: 1 !important;
    letter-spacing: 0.035em !important;
  }

  .project-hero__actions {
    margin-top: 2px !important;
  }
}

@media (max-width: 640px) {
  .project-summary {
    padding: 26px 0 24px !important;
  }

  .project-summary .project-eyebrow {
    margin-bottom: 15px !important;
    font-size: 9px !important;
    letter-spacing: 0.28em !important;
  }

  .project-summary__layout {
    gap: 16px !important;
  }

  .project-summary__narrative {
    max-width: 100% !important;
    font-size: 15px !important;
    font-weight: 330 !important;
    line-height: 1.44 !important;
    letter-spacing: -0.01em !important;
    text-wrap: pretty;
  }

  .project-summary__paragraph + .project-summary__paragraph {
    margin-top: 0.72em;
  }

  .project-summary__grid {
    gap: 0 12px !important;
  }

  .project-summary__row {
    padding: 8px 0 9px !important;
  }

  .project-summary__label {
    margin-bottom: 6px !important;
    font-size: 8px !important;
    letter-spacing: 0.18em !important;
  }

  .project-summary__value {
    font-size: 13px !important;
    line-height: 1.42 !important;
  }

  .project-proof__cards {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .project-proof__card {
    min-height: 0;
    padding: 16px;
  }

  .project-proof__cardIndex {
    margin-bottom: 18px;
  }

  .project-proof__subtitle {
    font-size: clamp(22px, 6.4vw, 32px);
  }

  .project-btn {
    min-height: 40px !important;
    padding: 0 13px !important;
    font-size: 9px !important;
    letter-spacing: 0.13em !important;
  }

  #projectServicesTitleMain {
    max-width: 10em !important;
  }

  #projectServicesLead {
    max-width: 28em !important;
    margin-top: 10px !important;
    font-size: 12px !important;
    line-height: 1.38 !important;
  }

  .project-services__chips {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 16px !important;
    margin-top: 18px !important;
  }

  .project-services__chip {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 9px 10px 10px !important;
    border-radius: 12px !important;
    font-size: 9px !important;
    font-weight: 360 !important;
    line-height: 1.28 !important;
    letter-spacing: 0.095em !important;
    overflow-wrap: anywhere;
  }

  .project-services__chip::after {
    left: 10px !important;
    right: auto !important;
    bottom: 7px !important;
    width: min(calc(100% - 20px), 56px) !important;
  }
}

/* 2026-06-06: cleaner related projects heading. */
.project-related-section #projectRelatedKicker {
  display: none !important;
}

.project-related-section #projectRelatedTitleMain {
  margin-top: -10px !important;
}

.project-related-section .project-related__grid {
  margin-top: clamp(30px, 3.2vw, 44px) !important;
}

/* 2026-06-06: fullscreen button must be clickable before video playback. */
.project-player .project-player__stageActions {
  opacity: 1 !important;
  pointer-events: auto !important;
}

.project-player .project-player__stageButton {
  opacity: 0.82 !important;
}

.project-player .project-player__stageButton:hover,
.project-player .project-player__stageButton:focus-visible {
  opacity: 1 !important;
}

@media (max-width: 640px) {
  .project-related-section #projectRelatedTitleMain {
    margin-top: -6px !important;
  }

  .project-related-section .project-related__grid {
    margin-top: 26px !important;
  }
}

/* 2026-06-09: stronger desktop project CTA button and safer title leading. */
@media (min-width: 901px) {
  .project-cta .project-section__title {
    line-height: 0.98 !important;
  }

  .project-cta .project-btn--accent {
    min-height: clamp(72px, 5.4vw, 88px) !important;
    padding-inline: clamp(42px, 4.2vw, 68px) !important;
    font-size: clamp(13px, 1vw, 15px) !important;
  }
}

/* 2026-06-09: unified project typography from gallery to news. */
body.project-case-page {
  --project-late-title-size: clamp(38px, 5.2vw, 76px);
  --project-late-title-line: 1.02;
  --project-late-title-track: 0.045em;
  --project-late-title-weight: 820;
  --project-late-kicker-size: 10px;
  --project-late-kicker-track: 0.28em;
  --project-late-kicker-weight: 420;
}

body.project-case-page #projectGalleryWrap .project-eyebrow,
body.project-case-page .project-cta .project-eyebrow,
body.project-case-page #projectServicesKicker,
body.project-case-page .project-faq .faq-home__kicker,
body.project-case-page .project-news__kicker {
  margin: 0 0 clamp(10px, 1.1vw, 14px) !important;
  font-family: inherit !important;
  font-size: var(--project-late-kicker-size) !important;
  font-weight: var(--project-late-kicker-weight) !important;
  line-height: 1.1 !important;
  letter-spacing: var(--project-late-kicker-track) !important;
  text-transform: uppercase !important;
}

body.project-case-page #projectGalleryTitleMain,
body.project-case-page .project-cta .project-section__title,
body.project-case-page #projectServicesTitleMain,
body.project-case-page #projectRelatedTitleMain,
body.project-case-page .project-faq .faq-home__title,
body.project-case-page .project-news__title {
  margin-top: 0 !important;
  max-width: min(980px, 100%) !important;
  font-family: var(--display-font, sans-serif) !important;
  font-size: var(--project-late-title-size) !important;
  font-weight: var(--project-late-title-weight) !important;
  line-height: var(--project-late-title-line) !important;
  letter-spacing: var(--project-late-title-track) !important;
  text-transform: uppercase !important;
  text-wrap: balance;
}

body.project-case-page .project-faq .faq-home__head {
  max-width: min(980px, 100%) !important;
  margin-right: auto !important;
  margin-left: 0 !important;
  text-align: left !important;
}

body.project-case-page .project-news__head {
  max-width: min(980px, 100%) !important;
}

@media (max-width: 720px) {
  body.project-case-page {
    --project-late-title-size: clamp(31px, 10.4vw, 46px);
    --project-late-title-line: 1.04;
    --project-late-title-track: 0.035em;
    --project-late-kicker-size: 9px;
    --project-late-kicker-track: 0.22em;
  }
}

/* 2026-06-15: complete typography normalization for all project pages. */
body.project-case-page {
  --project-type-ui: var(--body-font, var(--font-body, Inter, sans-serif));
  --project-type-display: var(--display-font, var(--project-type-ui));
  --project-type-hero-size: clamp(34px, 4.4vw, 66px);
  --project-type-hero-line: 1;
  --project-type-hero-track: 0.035em;
  --project-type-title-size: clamp(34px, 4.6vw, 66px);
  --project-type-title-line: 1.02;
  --project-type-title-track: 0.042em;
  --project-type-title-weight: 820;
  --project-type-kicker-size: 10px;
  --project-type-kicker-line: 1.1;
  --project-type-kicker-track: 0.28em;
  --project-type-kicker-weight: 430;
  --project-type-body-size: clamp(15px, 1.08vw, 18px);
  --project-type-body-line: 1.58;
  --project-type-body-track: 0.005em;
  --project-type-body-weight: 360;
  --project-type-card-title-size: clamp(16px, 1.18vw, 20px);
  --project-type-card-title-line: 1.24;
  --project-type-card-title-track: 0.01em;
  --project-type-card-title-weight: 560;
  --project-type-meta-size: 10px;
  --project-type-meta-line: 1.22;
  --project-type-meta-track: 0.18em;
  --project-type-meta-weight: 440;
  --project-type-control-size: 10px;
  --project-type-control-track: 0.16em;
  font-family: var(--project-type-ui) !important;
}

body.project-case-page :where(
  .project-hero,
  .project-section,
  .project-news,
  .project-faq,
  .contact,
  .msf,
  .project-btn,
  input,
  textarea,
  button,
  select
) {
  font-family: var(--project-type-ui) !important;
}

body.project-case-page :where(
  .project-hero__title,
  .project-section__title,
  .contact__title,
  .faq-home__title,
  .project-news__title
) {
  font-family: var(--project-type-display) !important;
  font-weight: var(--project-type-title-weight) !important;
  text-transform: uppercase !important;
  text-wrap: balance;
}

body.project-case-page .project-hero__title {
  font-size: var(--project-type-hero-size) !important;
  line-height: var(--project-type-hero-line) !important;
  letter-spacing: var(--project-type-hero-track) !important;
}

body.project-case-page :where(
  #projectVideoTitleMain,
  #projectGalleryTitleMain,
  #projectFinalCtaTitleMain,
  #projectServicesTitleMain,
  #projectRelatedTitleMain,
  #projectFaqTitle,
  #projectNewsTitle,
  .contact__title
) {
  max-width: min(980px, 100%) !important;
  font-size: var(--project-type-title-size) !important;
  line-height: var(--project-type-title-line) !important;
  letter-spacing: var(--project-type-title-track) !important;
}

body.project-case-page :where(
  .project-hero__kicker,
  .project-eyebrow,
  .faq-home__kicker,
  .project-news__kicker,
  .project-player__brand,
  .project-summary__label,
  .project-results__card::before,
  .project-related__meta,
  .project-related__link,
  .project-news__meta,
  .project-news__tag,
  .project-news__toggle,
  .project-news__hashtags span,
  .msf__label,
  .msf__count,
  .msf__docsLabel,
  .msf__attachTx,
  .msf__cta,
  .msf__back
) {
  font-family: var(--project-type-ui) !important;
  font-size: var(--project-type-kicker-size) !important;
  font-weight: var(--project-type-kicker-weight) !important;
  line-height: var(--project-type-kicker-line) !important;
  letter-spacing: var(--project-type-kicker-track) !important;
  text-transform: uppercase !important;
}

body.project-case-page :where(
  .project-hero__lead,
  .project-section__lead,
  .project-summary__narrative,
  .project-summary__footnote,
  .project-story__item,
  .project-review__quote,
  .project-cta__text,
  .contact__sub,
  .faq-home__item p,
  .project-news__summary,
  .project-news__more p,
  .msf__hint,
  .msf__docsNotice,
  .msf__docsHint,
  .msf-legal__text,
  .msf__status
) {
  font-family: var(--project-type-ui) !important;
  font-size: var(--project-type-body-size) !important;
  font-weight: var(--project-type-body-weight) !important;
  line-height: var(--project-type-body-line) !important;
  letter-spacing: var(--project-type-body-track) !important;
}

body.project-case-page :where(
  .project-hero__meta,
  .project-breadcrumbs,
  .project-player__time,
  .project-player__note,
  .project-gallery__cardMeta,
  .project-gallery__cardCredit,
  .project-review__author,
  .project-review__role,
  .project-results__label,
  .project-summary__value,
  .project-services__chip,
  .msf__input,
  .msf-phone__code,
  .msf-phone__flag,
  .msf__nodocsTx
) {
  font-family: var(--project-type-ui) !important;
  font-weight: 380 !important;
  letter-spacing: 0.02em !important;
}

body.project-case-page :where(
  .project-summary__value,
  .project-results__label,
  .project-services__chip,
  .project-player__time,
  .msf__input
) {
  font-size: clamp(13px, 0.98vw, 16px) !important;
  line-height: 1.45 !important;
}

body.project-case-page :where(
  .project-gallery__cardTitle,
  .project-related__title,
  .project-news__card h3,
  .faq-home__item h3,
  .msf__panelHead,
  .msf__docsLabel
) {
  font-family: var(--project-type-ui) !important;
  font-size: var(--project-type-card-title-size) !important;
  font-weight: var(--project-type-card-title-weight) !important;
  line-height: var(--project-type-card-title-line) !important;
  letter-spacing: var(--project-type-card-title-track) !important;
}

body.project-case-page :where(
  .project-btn,
  .project-player__button,
  .project-player__stageButton,
  .project-player__play,
  .project-services__chip,
  .project-related__link,
  .project-news__hub,
  .project-news__toggle,
  .msf__cta,
  .msf__back,
  .msf__attachBtn,
  .msf-step
) {
  font-family: var(--project-type-ui) !important;
  font-size: var(--project-type-control-size) !important;
  font-weight: 520 !important;
  line-height: 1 !important;
  letter-spacing: var(--project-type-control-track) !important;
}

body.project-case-page .project-results__value {
  font-family: var(--project-type-display) !important;
  font-size: clamp(42px, 6.6vw, 94px) !important;
  font-weight: 820 !important;
  line-height: 0.92 !important;
  letter-spacing: 0.01em !important;
}

body.project-case-page .project-summary .project-eyebrow {
  margin-bottom: clamp(18px, 2.2vw, 28px) !important;
}

body.project-case-page .project-faq .faq-home__head,
body.project-case-page .project-news__head {
  max-width: min(980px, 100%) !important;
}

@media (max-width: 720px) {
  body.project-case-page {
    --project-type-hero-size: clamp(25px, 7.1vw, 36px);
    --project-type-title-size: clamp(30px, 10vw, 44px);
    --project-type-title-track: 0.035em;
    --project-type-kicker-size: 9px;
    --project-type-kicker-track: 0.22em;
    --project-type-body-size: 14px;
    --project-type-card-title-size: 15px;
    --project-type-control-size: 9px;
  }
}

/* 2026-06-15: high-specificity typography lock for reused project sections. */
body.project-case-page #projectHeroTitle.project-hero__title {
  font-family: var(--project-type-display) !important;
  font-size: var(--project-type-hero-size) !important;
  font-weight: var(--project-type-title-weight) !important;
  line-height: var(--project-type-hero-line) !important;
  letter-spacing: var(--project-type-hero-track) !important;
  text-transform: uppercase !important;
}

body.project-case-page #projectVideo #projectVideoTitleMain.project-section__title,
body.project-case-page #projectGalleryTitleMain.project-section__title,
body.project-case-page #projectFinalCtaTitleMain.project-section__title,
body.project-case-page #projectServicesTitleMain.project-section__title,
body.project-case-page #projectRelatedTitleMain.project-section__title,
body.project-case-page #projectNewsTitle.project-news__title,
body.project-case-page #projectFaqTitle.faq-home__title,
body.project-case-page #contact #contactTitle.contact__title {
  max-width: min(980px, 100%) !important;
  font-family: var(--project-type-display) !important;
  font-size: var(--project-type-title-size) !important;
  font-weight: var(--project-type-title-weight) !important;
  line-height: var(--project-type-title-line) !important;
  letter-spacing: var(--project-type-title-track) !important;
  text-transform: uppercase !important;
  text-wrap: balance;
}

body.project-case-page .project-hero__kicker,
body.project-case-page .project-eyebrow,
body.project-case-page .faq-home__kicker,
body.project-case-page .project-news__kicker,
body.project-case-page .project-summary__label,
body.project-case-page .project-related__meta,
body.project-case-page .project-related__link,
body.project-case-page .project-news__meta,
body.project-case-page .project-news__tag,
body.project-case-page .project-news__hub,
body.project-case-page .project-news__toggle,
body.project-case-page .project-news__hashtags span {
  font-family: var(--project-type-ui) !important;
  font-size: var(--project-type-kicker-size) !important;
  font-weight: var(--project-type-kicker-weight) !important;
  line-height: var(--project-type-kicker-line) !important;
  letter-spacing: var(--project-type-kicker-track) !important;
  text-transform: uppercase !important;
}

body.project-case-page .project-summary__narrative,
body.project-case-page .project-summary__footnote,
body.project-case-page .project-section__lead,
body.project-case-page .project-cta__text,
body.project-case-page .project-news__summary,
body.project-case-page .project-news__more p,
body.project-case-page .faq-home__item p,
body.project-case-page .contact__sub,
body.project-case-page .msf__hint,
body.project-case-page .msf__docsNotice,
body.project-case-page .msf__docsHint,
body.project-case-page .msf-legal__text,
body.project-case-page .msf__status {
  font-family: var(--project-type-ui) !important;
  font-size: var(--project-type-body-size) !important;
  font-weight: var(--project-type-body-weight) !important;
  line-height: var(--project-type-body-line) !important;
  letter-spacing: var(--project-type-body-track) !important;
}

body.project-case-page .project-related__title,
body.project-case-page .project-news__card h3,
body.project-case-page .faq-home__item h3,
body.project-case-page .msf__panelHead {
  font-family: var(--project-type-ui) !important;
  font-size: var(--project-type-card-title-size) !important;
  font-weight: var(--project-type-card-title-weight) !important;
  line-height: var(--project-type-card-title-line) !important;
  letter-spacing: var(--project-type-card-title-track) !important;
}

body.project-case-page .project-services__chip,
body.project-case-page .project-btn,
body.project-case-page .project-player__button,
body.project-case-page .project-player__stageButton,
body.project-case-page .project-player__play,
body.project-case-page .project-news__hub,
body.project-case-page .project-news__toggle,
body.project-case-page .msf__cta,
body.project-case-page .msf__back,
body.project-case-page .msf__attachBtn,
body.project-case-page .msf-step {
  font-family: var(--project-type-ui) !important;
  font-size: var(--project-type-control-size) !important;
  font-weight: 520 !important;
  line-height: 1 !important;
  letter-spacing: var(--project-type-control-track) !important;
  text-transform: uppercase !important;
}

body.project-case-page .msf__input,
body.project-case-page .msf-phone__code,
body.project-case-page .msf-phone__flag,
body.project-case-page .project-summary__value,
body.project-case-page .project-results__label,
body.project-case-page .project-player__time {
  font-family: var(--project-type-ui) !important;
  font-size: clamp(13px, 0.98vw, 16px) !important;
  font-weight: 380 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.02em !important;
}

/* 2026-06-15: project CTA now contains the real MSF form, styled without event-page accent colors. */
body.project-case-page #contact.project-cta--form.contact {
  position: relative !important;
  display: block !important;
  min-height: 0 !important;
  padding: clamp(58px, 7vw, 104px) 0 !important;
  overflow: clip !important;
  background:
    radial-gradient(circle at 84% 14%, rgba(255, 255, 255, 0.08), transparent 27%),
    linear-gradient(180deg, #050505 0%, #090909 52%, #050505 100%) !important;
  color: #fff !important;
  isolation: isolate;
}

body.project-case-page #contact.project-cta--form::before,
body.project-case-page #contact.project-cta--form::after {
  content: none !important;
}

body.project-case-page #contact.project-cta--form .project-shell {
  position: relative;
  z-index: 2;
}

body.project-case-page .project-cta-form__panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(440px, 0.72fr);
  gap: clamp(28px, 5vw, 76px);
  align-items: center;
  padding: clamp(28px, 4.2vw, 58px);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: clamp(28px, 3.4vw, 46px);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)),
    rgba(255, 255, 255, 0.035);
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.44);
  backdrop-filter: blur(18px);
  overflow: hidden;
}

body.project-case-page .project-cta-form__panel::before {
  content: "BESSON";
  position: absolute;
  right: -0.08em;
  bottom: -0.22em;
  font-family: var(--project-type-display);
  font-size: clamp(86px, 15vw, 250px);
  font-weight: 820;
  line-height: 0.8;
  letter-spacing: -0.07em;
  color: rgba(255, 255, 255, 0.035);
  pointer-events: none;
}

body.project-case-page .project-cta-form__copy,
body.project-case-page .project-cta-form__form {
  position: relative;
  z-index: 2;
}

body.project-case-page .project-cta-form__copy {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: clamp(360px, 34vw, 560px);
}

body.project-case-page #contact.project-cta--form .project-eyebrow {
  margin: 0 0 clamp(14px, 1.8vw, 24px) !important;
  color: rgba(255, 255, 255, 0.58) !important;
}

body.project-case-page #contact.project-cta--form #projectFinalCtaTitleMain.project-section__title {
  margin: 0 !important;
  max-width: 720px !important;
  color: #fff !important;
}

body.project-case-page #contact.project-cta--form .project-cta__text {
  display: block !important;
  grid-column: auto !important;
  max-width: 520px !important;
  margin: clamp(18px, 2.2vw, 28px) 0 0 !important;
  color: rgba(255, 255, 255, 0.7) !important;
}

body.project-case-page .project-cta-form__form .msf {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.project-case-page .project-cta-form__form .msf__card {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 246, 246, 0.96)) !important;
  box-shadow: 0 24px 62px rgba(0, 0, 0, 0.34) !important;
}

body.project-case-page #contact.project-cta--form .msf__close {
  display: none !important;
}

body.project-case-page.project-modal-open #contact.project-cta--form {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1100 !important;
  width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  padding: 0 !important;
  overflow: hidden !important;
}

@supports (height: 100dvh) {
  body.project-case-page.project-modal-open #contact.project-cta--form {
    height: 100dvh !important;
    min-height: 100dvh !important;
  }
}

body.project-case-page.project-modal-open #contact.project-cta--form .project-shell,
body.project-case-page.project-modal-open #contact.project-cta--form .project-cta-form__panel {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.project-case-page.project-modal-open #contact.project-cta--form .project-cta-form__copy {
  display: none !important;
}

body.project-case-page.project-modal-open #contact.project-cta--form .project-cta-form__form {
  position: fixed !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  padding: clamp(76px, 10vh, 104px) clamp(18px, 3vw, 28px) clamp(18px, 4vh, 38px) !important;
}

body.project-case-page.project-modal-open #contact.project-cta--form .msf {
  position: static !important;
  inset: auto !important;
  display: grid !important;
  place-items: center !important;
  width: min(640px, calc(100vw - 36px)) !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

body.project-case-page.project-modal-open #contact.project-cta--form .msf__card {
  width: 100% !important;
  max-height: calc(100vh - clamp(124px, 16vh, 150px)) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}

@supports (height: 100dvh) {
  body.project-case-page.project-modal-open #contact.project-cta--form .msf__card {
    max-height: calc(100dvh - clamp(124px, 16vh, 150px)) !important;
  }
}

body.project-case-page.project-modal-open #contact.project-cta--form .msf__close {
  display: block !important;
}

/* 2026-06-15: project FAQ follows the homepage FAQ rhythm. */
body.project-case-page #projectFaq.project-faq.faq-home {
  padding: clamp(56px, 6vw, 84px) 0 !important;
  background: #fff !important;
  color: #050505 !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__inner {
  width: min(1180px, calc(100% - 2 * var(--page-pad, clamp(18px, 4vw, 56px)))) !important;
  margin: 0 auto !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__head {
  max-width: 760px !important;
  margin: 0 auto clamp(26px, 3vw, 42px) !important;
  text-align: center !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__kicker {
  margin: 0 0 12px !important;
  font-size: 10px !important;
  font-weight: 360 !important;
  line-height: 1 !important;
  letter-spacing: var(--besson-menu-track, 0.24em) !important;
  color: rgba(0, 0, 0, 0.46) !important;
}

body.project-case-page #projectFaqTitle.faq-home__title {
  margin: 0 !important;
  max-width: none !important;
  font-size: clamp(22px, 2.3vw, 32px) !important;
  line-height: 1 !important;
  letter-spacing: var(--besson-menu-track, 0.24em) !important;
  color: #050505 !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item {
  min-height: 0 !important;
  padding: clamp(16px, 1.6vw, 22px) !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item h3 {
  margin: 0 !important;
  font-size: clamp(12px, .95vw, 15px) !important;
  line-height: 1.24 !important;
  letter-spacing: 0.08em !important;
  font-weight: 720 !important;
  color: #050505 !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item p {
  margin: 10px 0 0 !important;
  font-size: clamp(11px, .85vw, 13px) !important;
  line-height: 1.48 !important;
  letter-spacing: 0.02em !important;
  color: rgba(0, 0, 0, 0.62) !important;
}

@media (max-width: 760px) {
  body.project-case-page #projectFaq.project-faq .faq-home__grid {
    grid-template-columns: 1fr !important;
  }
}

/* 2026-06-16: project contact block uses the working event-page form layout. */
body.project-case-page .project-event-form.event-landing__cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(72px, 8vw, 124px) clamp(18px, 5.2vw, 78px);
  background: #050505;
  color: #fff;
}

body.project-case-page .project-event-form .event-landing__ctaInner {
  position: relative;
  z-index: 1;
  width: min(100%, 1460px);
  margin: 0 auto;
}

body.project-case-page .project-event-form .event-landing__watermark {
  position: absolute;
  z-index: 0;
  display: block;
  width: var(--event-wm-width, clamp(420px, 48vw, 940px));
  height: var(--event-wm-height, clamp(560px, 66vw, 1260px));
  background: var(--event-wm-color, #9a9a9a);
  opacity: var(--event-wm-opacity, .16);
  pointer-events: none;
  user-select: none;
  -webkit-mask-image: url("../brand/besson-monogram.png");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../brand/besson-monogram.png");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  transform: translate3d(var(--event-wm-x, 0), var(--event-wm-y, 0), 0) rotate(var(--event-wm-rotate, 0deg));
  will-change: auto;
}

body.project-case-page .project-event-form .event-landing__watermark--cta {
  --event-wm-width: clamp(520px, 58vw, 1120px);
  --event-wm-height: clamp(700px, 78vw, 1480px);
  --event-wm-color: #c6c6c6;
  --event-wm-opacity: .16;
  --event-wm-x: -50%;
  --event-wm-y: -50%;
  left: 50%;
  top: 50%;
}

body.project-case-page .project-event-form .event-landing__ctaPanel {
  display: grid;
  grid-template-columns: minmax(0, .68fr) minmax(420px, .92fr);
  gap: clamp(48px, 6vw, 112px);
  align-items: center;
  padding: clamp(26px, 4vw, 62px);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: clamp(32px, 4vw, 72px);
  background:
    radial-gradient(circle at 8% 12%, rgba(255, 255, 255, .14), transparent 24rem),
    linear-gradient(135deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .025));
  box-shadow: 0 28px 96px rgba(0, 0, 0, .28);
}

body.project-case-page .project-event-form .event-landing__ctaCopy,
body.project-case-page .project-event-form .event-landing__formWrap.contact {
  position: relative;
  z-index: 1;
}

body.project-case-page .project-event-form .event-landing__sectionKicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  color: rgba(255, 255, 255, .62);
  font-family: var(--project-type-control, var(--project-type-ui));
  font-size: 12px;
  line-height: 1;
  letter-spacing: .24em;
  text-transform: uppercase;
}

body.project-case-page .project-event-form .event-landing__sectionKicker::before {
  content: "";
  width: 44px;
  height: 1px;
  background: currentColor;
  opacity: .58;
}

body.project-case-page .project-event-form .event-landing__ctaTitle {
  margin: 0;
  max-width: min(100%, 620px);
  color: #fff;
  font-family: var(--project-type-display);
  font-size: clamp(42px, 5.2vw, 82px);
  font-weight: 720;
  line-height: 1.04;
  letter-spacing: -.018em;
  text-wrap: balance;
}

body.project-case-page .project-event-form .event-landing__ctaText {
  display: block;
  max-width: 500px;
  margin: 24px 0 0;
  color: rgba(255, 255, 255, .72);
  font-family: var(--project-type-text);
  font-size: clamp(17px, 1.35vw, 22px);
  font-weight: 360;
  line-height: 1.38;
  letter-spacing: -.02em;
}

body.project-case-page .project-event-form .event-landing__formWrap.contact {
  display: block !important;
  align-self: center;
  justify-self: end;
  width: min(100%, 640px) !important;
  min-width: 0;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  place-items: initial !important;
}

body.project-case-page .project-event-form .event-landing__formWrap .msf {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
}

body.project-case-page .project-event-form .event-landing__formWrap .msf__close {
  display: none !important;
}

body.project-case-page .project-event-form .event-landing__formWrap .msf__card {
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(246, 246, 246, .96)) !important;
  border-color: rgba(255, 255, 255, .14) !important;
  box-shadow: 0 24px 62px rgba(0, 0, 0, .34) !important;
}

body.project-case-page .project-event-form .event-landing__formWrap .contact-success {
  margin-top: 18px;
}

@media (max-width: 980px) {
  body.project-case-page .project-event-form .event-landing__ctaPanel {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(24px, 5vw, 42px);
  }

  body.project-case-page .project-event-form .event-landing__formWrap.contact {
    justify-self: stretch;
    width: 100% !important;
  }
}

body.project-case-page.project-modal-open .project-event-form .event-landing__formWrap.contact {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2301 !important;
  display: block !important;
  width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  pointer-events: none !important;
  overflow: hidden !important;
}

@supports (height: 100dvh) {
  body.project-case-page.project-modal-open .project-event-form .event-landing__formWrap.contact {
    height: 100dvh !important;
    min-height: 100dvh !important;
  }
}

body.project-case-page.project-modal-open .project-event-form .event-landing__formWrap .msf {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2302 !important;
  display: grid !important;
  width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: clamp(14px, 3vw, 28px) !important;
  place-items: center !important;
  pointer-events: auto !important;
  overflow: hidden !important;
}

@supports (height: 100dvh) {
  body.project-case-page.project-modal-open .project-event-form .event-landing__formWrap .msf {
    height: 100dvh !important;
    min-height: 100dvh !important;
  }
}

body.project-case-page.project-modal-open .project-event-form .event-landing__formWrap .msf__close {
  display: block !important;
}

body.project-case-page.project-modal-open .project-event-form .event-landing__formWrap .msf__card {
  width: min(640px, calc(100vw - 28px)) !important;
  max-height: calc(100vh - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  margin: auto !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
}

@supports (height: 100dvh) {
body.project-case-page.project-modal-open .project-event-form .event-landing__formWrap .msf__card {
    max-height: calc(100dvh - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  }
}

/* 2026-06-22: shared project-page polish for FAQ, related news and event form parity. */
body.project-case-page #projectSummaryTitleMain[hidden] {
  display: none !important;
}

body.project-case-page #projectFaq.project-faq.faq-home {
  padding: clamp(72px, 8vw, 118px) 0 !important;
  background: #fff !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__head {
  max-width: 900px !important;
  margin: 0 auto clamp(34px, 4.2vw, 58px) !important;
  text-align: center !important;
}

body.project-case-page #projectFaqTitle.faq-home__title {
  font-size: clamp(42px, 5.4vw, 82px) !important;
  line-height: .94 !important;
  font-weight: 900 !important;
  letter-spacing: -.052em !important;
  text-transform: uppercase !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item {
  padding: clamp(22px, 2.2vw, 32px) !important;
  border-radius: 26px !important;
  border-color: rgba(0, 0, 0, .08) !important;
  background: rgba(255, 255, 255, .92) !important;
  box-shadow: 0 22px 70px rgba(0, 0, 0, .045) !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item h3 {
  font-size: clamp(18px, 1.8vw, 25px) !important;
  line-height: 1.12 !important;
  font-weight: 760 !important;
  letter-spacing: -.035em !important;
  text-transform: none !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item p {
  margin-top: 14px !important;
  font-size: clamp(14px, 1vw, 16px) !important;
  line-height: 1.58 !important;
  letter-spacing: -.01em !important;
}

body.project-case-page .project-news__card {
  cursor: pointer;
}

body.project-case-page .project-news__card:focus-visible {
  outline: 1px solid rgba(255, 255, 255, .72);
  outline-offset: 4px;
}

body.project-case-page .project-news__moreInner {
  min-height: 0;
}

body.project-case-page .project-news__hashtags span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px;
  background: rgba(255, 255, 255, .045);
}

body.project-case-page .project-event-form .event-landing__ctaPanel {
  grid-template-columns: minmax(0, .92fr) minmax(420px, 640px) !important;
  align-items: center !important;
}

/* 2026-06-25: shared CTA, canonical FAQ rhythm and form upload alignment. */
body.project-case-page .project-missing-cta,
body.service-detail-page .service-missing-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

body.project-case-page .project-missing-cta {
  padding: clamp(48px, 5.4vw, 82px) 0;
  background: #fff;
  color: #050505;
}

body.service-detail-page .service-missing-cta {
  padding: clamp(44px, 4.8vw, 72px) 0;
  background: #050505;
  color: #fff;
}

body.project-case-page .project-missing-cta__inner,
body.service-detail-page .service-missing-cta__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, .82fr) auto;
  align-items: end;
  gap: clamp(22px, 4vw, 56px);
  width: 100%;
  padding: clamp(26px, 3.4vw, 46px);
  border-radius: clamp(24px, 3vw, 42px);
}

body.project-case-page .project-missing-cta__inner {
  border: 1px solid rgba(0, 0, 0, .08);
  background:
    linear-gradient(135deg, rgba(0, 0, 0, .035), rgba(0, 0, 0, 0) 62%),
    #fff;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .055);
}

body.service-detail-page .service-missing-cta__inner {
  border: 1px solid rgba(255, 255, 255, .12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, 0) 58%),
    rgba(255, 255, 255, .035);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .34);
}

body.project-case-page .project-missing-cta__inner h2,
body.service-detail-page .service-missing-cta__inner h2 {
  grid-column: 1;
  margin: 0;
  max-width: 12ch;
  font-family: var(--project-type-display, inherit);
  font-size: clamp(34px, 5.1vw, 78px);
  font-weight: 900;
  line-height: .94;
  letter-spacing: -.055em;
  text-transform: uppercase;
}

body.project-case-page .project-missing-cta__inner .project-eyebrow,
body.service-detail-page .service-missing-cta__inner .project-eyebrow {
  grid-column: 1 / -1;
  margin: 0 0 clamp(10px, 1.3vw, 18px);
}

body.project-case-page .project-missing-cta__inner p:not(.project-eyebrow),
body.service-detail-page .service-missing-cta__inner p:not(.project-eyebrow) {
  grid-column: 1;
  margin: clamp(14px, 1.8vw, 22px) 0 0;
  max-width: 58ch;
  font-family: var(--project-type-ui, inherit);
  font-size: clamp(14px, 1.15vw, 17px);
  font-weight: 360;
  line-height: 1.56;
  letter-spacing: -.01em;
}

body.project-case-page .project-missing-cta__button,
body.service-detail-page .service-missing-cta__button {
  grid-column: 2;
  grid-row: 2 / 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 clamp(22px, 3vw, 38px);
  border-radius: 999px;
  font-family: var(--project-type-ui, inherit);
  font-size: 10px;
  font-weight: 620;
  line-height: 1;
  letter-spacing: .22em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 220ms ease, background-color 220ms ease, color 220ms ease, border-color 220ms ease;
}

body.project-case-page .project-missing-cta__button {
  border: 1px solid rgba(0, 0, 0, .16);
  background: #050505;
  color: #fff;
}

body.service-detail-page .service-missing-cta__button {
  border: 1px solid rgba(255, 255, 255, .2);
  background: #fff;
  color: #050505;
}

body.project-case-page .project-missing-cta__button:hover,
body.project-case-page .project-missing-cta__button:focus-visible,
body.service-detail-page .service-missing-cta__button:hover,
body.service-detail-page .service-missing-cta__button:focus-visible {
  transform: translateY(-2px);
}

body.project-case-page #contact .msf__docsTop,
body.service-detail-page #contact .msf__docsTop {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  justify-items: start !important;
  align-items: start !important;
  gap: 14px !important;
}

body.project-case-page #contact .msf__attachBtn,
body.service-detail-page #contact .msf__attachBtn {
  justify-self: start !important;
  width: auto !important;
  max-width: 100% !important;
}

body.project-case-page #projectFaq.project-faq.faq-home,
body.service-detail-page #faq.faq-home {
  padding: clamp(72px, 8vw, 120px) 0 !important;
  background: #fff !important;
  color: #080808 !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__inner,
body.service-detail-page #faq.faq-home .faq-home__inner {
  width: min(1180px, calc(100% - 48px)) !important;
  margin: 0 auto !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__head,
body.service-detail-page #faq.faq-home .faq-home__head {
  max-width: none !important;
  margin: 0 0 clamp(28px, 4vw, 46px) !important;
  text-align: center !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__kicker,
body.service-detail-page #faq.faq-home .faq-home__kicker {
  margin: 0 0 12px !important;
  font-size: 12px !important;
  line-height: 1 !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  color: rgba(0, 0, 0, .42) !important;
}

body.project-case-page #projectFaqTitle.faq-home__title,
body.service-detail-page #faq.faq-home .faq-home__title {
  margin: 0 !important;
  font-family: var(--project-type-display, inherit) !important;
  font-size: clamp(38px, 5.2vw, 76px) !important;
  line-height: .94 !important;
  font-weight: 900 !important;
  letter-spacing: var(--section-title-tracking, -.045em) !important;
  text-transform: uppercase !important;
  color: #080808 !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__grid,
body.service-detail-page #faq.faq-home .faq-home__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item,
body.service-detail-page #faq.faq-home .faq-home__item {
  padding: 24px !important;
  border: 1px solid rgba(0, 0, 0, .08) !important;
  border-radius: 24px !important;
  background: rgba(255, 255, 255, .86) !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .04) !important;
  transform: none !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item h3,
body.service-detail-page #faq.faq-home .faq-home__item h3 {
  margin: 0 0 10px !important;
  font-size: clamp(18px, 2vw, 24px) !important;
  line-height: 1.12 !important;
  font-weight: 760 !important;
  letter-spacing: -.035em !important;
  text-transform: none !important;
  color: #080808 !important;
}

body.project-case-page #projectFaq.project-faq .faq-home__item p,
body.service-detail-page #faq.faq-home .faq-home__item p {
  margin: 0 !important;
  font-size: 15px !important;
  line-height: 1.58 !important;
  letter-spacing: -.01em !important;
  color: rgba(0, 0, 0, .66) !important;
}

/* 2026-06-25: BTL service pages use clean homepage/event FAQ rhythm and the main MSF form. */
body.service-detail-page.btl-service-page .service-project-curtain {
  margin-top: 0;
}

body.service-detail-page.btl-service-page .service-project-curtain #contact.contact {
  padding-top: clamp(54px, 6vw, 86px);
}

body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical {
  overflow: hidden;
  padding: clamp(78px, 8.4vw, 128px) 0 !important;
  background:
    radial-gradient(circle at 14% 8%, rgba(0, 0, 0, .035), transparent 34%),
    #f7f7f4 !important;
}

body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__head {
  text-align: left !important;
  margin-bottom: clamp(24px, 3.2vw, 42px) !important;
}

body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 clamp(28px, 4vw, 72px) !important;
  border-top: 1px solid rgba(0, 0, 0, .14) !important;
}

body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__item {
  padding: clamp(20px, 2.3vw, 30px) 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, .14) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__item:hover,
body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__item:focus-within {
  transform: none !important;
}

body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__item h3 {
  margin: 0 0 10px !important;
  font-size: clamp(17px, 1.7vw, 22px) !important;
  line-height: 1.14 !important;
  font-weight: 680 !important;
  letter-spacing: -.02em !important;
}

body.service-detail-page.btl-service-page .project-news.service-news .project-news__head {
  grid-template-columns: 1fr !important;
}

body.service-detail-page.btl-service-page .project-news.service-news .project-news__actions {
  display: flex;
  justify-content: center;
  margin-top: clamp(24px, 3.2vw, 42px);
}

body.service-detail-page.btl-service-page .project-news.service-news .project-news__hub {
  min-height: 52px;
  padding: 0 clamp(22px, 3vw, 36px);
  border-color: rgba(255, 255, 255, .28);
  background: transparent;
}

body.service-detail-page.btl-service-page .project-news.service-news .project-news__hub:hover,
body.service-detail-page.btl-service-page .project-news.service-news .project-news__hub:focus-visible {
  border-color: rgba(255, 255, 255, .78);
  background: rgba(255, 255, 255, .06);
}

@media (max-width: 720px) {
  body.service-detail-page.btl-service-page .service-project-curtain #contact.contact {
    padding-top: 48px;
  }

  body.service-detail-page.btl-service-page #contact .contact__inner {
    width: calc(100% - 28px);
  }

  body.service-detail-page.btl-service-page #contact .contact__head {
    margin-bottom: 18px;
  }

  body.service-detail-page.btl-service-page #contact .contact__title {
    font-size: clamp(34px, 11vw, 48px);
    line-height: .98;
  }

  body.service-detail-page.btl-service-page #contact .msf {
    width: 100%;
  }

  body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical {
    padding: 58px 0 !important;
  }

  body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__inner {
    width: calc(100% - 28px) !important;
  }

  body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__head {
    margin-bottom: 22px !important;
  }

  body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__title {
    font-size: clamp(34px, 12vw, 48px) !important;
    line-height: .98 !important;
  }

  body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__grid {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__item {
    padding: 18px 0 !important;
  }

  body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__item h3 {
    font-size: 16px !important;
    line-height: 1.2 !important;
  }

  body.service-detail-page.btl-service-page #faq.faq-home.service-faq--canonical .faq-home__item p {
    font-size: 13px !important;
    line-height: 1.48 !important;
  }

  body.service-detail-page.btl-service-page .project-news.service-news .project-news__actions {
    justify-content: stretch;
    margin-top: 22px;
  }

  body.service-detail-page.btl-service-page .project-news.service-news .project-news__hub {
    width: 100%;
  }
}

/* 2026-07-05: shared premium section subtitle typography. */
body.project-case-page :where(
  .project-section__lead,
  .project-services__lead,
  .project-news__lead,
  .project-proof__subtitle,
  .projects-filter__lead,
  .service-section-lead
),
body.projects-showcase-page :where(
  .projects-showcase__lead,
  .projects-filter__lead,
  .project-news__lead
){
  display:block !important;
  max-width:min(1120px, calc(100vw - 64px)) !important;
  margin:clamp(18px,2.2vw,30px) auto 0 !important;
  color:currentColor !important;
  opacity:.56 !important;
  font-family:var(--body-font, Inter, "Helvetica Neue", Arial, sans-serif) !important;
  font-size:clamp(24px,3.05vw,44px) !important;
  font-weight:360 !important;
  line-height:1.34 !important;
  letter-spacing:.005em !important;
  text-align:center !important;
  text-transform:none !important;
  text-wrap:balance !important;
}

body.project-case-page [data-theme="dark"] :where(
  .project-section__lead,
  .project-services__lead,
  .project-news__lead,
  .project-proof__subtitle,
  .projects-filter__lead,
  .service-section-lead
){
  opacity:.64 !important;
}

@media (max-width:760px){
  body.project-case-page :where(
    .project-section__lead,
    .project-services__lead,
    .project-news__lead,
    .project-proof__subtitle,
    .projects-filter__lead,
    .service-section-lead
  ),
  body.projects-showcase-page :where(
    .projects-showcase__lead,
    .projects-filter__lead,
    .project-news__lead
  ){
    max-width:calc(100vw - 34px) !important;
    margin-top:16px !important;
    font-size:clamp(18px,5.7vw,28px) !important;
    line-height:1.38 !important;
    letter-spacing:0 !important;
  }
}
