:root {
  --motion-progress: 0;
}

.motion-hero {
  position: relative;
}

.hero-motion-stage {
  position: relative;
  display: flex;
  align-items: flex-end;
  width: 100%;
  height: 100svh;
  overflow: hidden;
  padding: 0 4.2vw 7.2vh;
  background: #050605;
  isolation: isolate;
}

.motion-enabled .motion-hero {
  display: block;
  height: 320svh;
  min-height: 0;
  overflow: visible;
  padding: 0;
}

.motion-enabled .hero-motion-stage {
  position: sticky;
  top: 0;
}

.hero-motion-canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
  filter: brightness(1.03) contrast(1.02);
  transition: opacity 600ms ease;
}

.motion-ready .hero-motion-canvas {
  opacity: 1;
}

.motion-ready .hero-image {
  opacity: 0;
  visibility: hidden;
}

.motion-hero .hero-shade {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(3, 4, 3, 0.86) 0%, rgba(3, 4, 3, 0.38) 43%, rgba(3, 4, 3, 0.08) 72%),
    linear-gradient(0deg, rgba(3, 4, 3, 0.68), transparent 44%);
}

.motion-hero .hero-stage-lights {
  z-index: 2;
  opacity: calc(0.48 - var(--motion-progress) * 0.32);
}

.motion-hero .hero-content,
.motion-hero .scroll-note {
  z-index: 4;
}

.hero-motion-status {
  position: absolute;
  right: clamp(22px, 4vw, 70px);
  bottom: clamp(28px, 4vw, 62px);
  z-index: 5;
  display: grid;
  justify-items: end;
  gap: 5px;
  color: rgba(255, 255, 255, 0.74);
  font-family: var(--font-geist-mono, monospace);
  font-size: 10px;
  letter-spacing: 0.12em;
  line-height: 1.25;
  text-transform: uppercase;
  pointer-events: none;
}

.hero-motion-phase {
  color: #c7ff31;
  font-size: 12px;
}

.hero-motion-progress {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 5;
  height: 2px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.14);
  pointer-events: none;
}

.hero-motion-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: #c7ff31;
  transform: scaleX(var(--motion-progress));
  transform-origin: left;
  will-change: transform;
}

.motion-enabled .scroll-note {
  display: flex;
  align-items: center;
  gap: 12px;
}

.motion-enabled .scroll-note::after {
  content: "";
  width: 34px;
  height: 1px;
  background: #c7ff31;
  transform: scaleX(calc(0.25 + var(--motion-progress) * 0.75));
  transform-origin: left;
}

@media (max-width: 780px) {
  .motion-enabled .motion-hero {
    height: 260svh;
  }

  .hero-motion-canvas {
    filter: brightness(1.02) contrast(1.02);
  }

  .hero-motion-stage {
    align-items: flex-start;
    padding: 145px 22px 42px;
  }

  .motion-hero .hero-shade {
    background:
      linear-gradient(180deg, rgba(3, 4, 3, 0.34), transparent 26%),
      linear-gradient(0deg, rgba(3, 4, 3, 0.84), rgba(3, 4, 3, 0.12) 58%);
  }

  .hero-motion-status {
    right: 20px;
    bottom: max(18px, env(safe-area-inset-bottom));
  }

  .motion-hero .scroll-note {
    bottom: max(18px, env(safe-area-inset-bottom));
  }
}

@media (prefers-reduced-motion: reduce) {
  .motion-enabled .motion-hero {
    height: 100svh;
  }

  .motion-enabled .scroll-note {
    display: none;
  }

  .hero-motion-status,
  .hero-motion-progress {
    display: none;
  }
}

/* Selected-client logo marquee */
.client-strip > .client-marquee {
  position: relative;
  display: block;
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent,
    #000 5%,
    #000 95%,
    transparent
  );
  mask-image: linear-gradient(
    90deg,
    transparent,
    #000 5%,
    #000 95%,
    transparent
  );
}

.client-strip .client-marquee-track {
  display: flex;
  width: max-content;
  gap: 0;
  animation: client-logo-scroll 28s linear infinite;
  will-change: transform;
}

.client-strip .client-logo-set {
  display: flex;
  flex: none;
  align-items: center;
  gap: clamp(58px, 7vw, 120px);
  min-width: max-content;
  margin: 0;
  padding: 0 clamp(58px, 7vw, 120px) 0 0;
  list-style: none;
}

.client-strip .client-logo {
  display: flex;
  flex: 0 0 clamp(160px, 13vw, 220px);
  align-items: center;
  justify-content: center;
  height: 52px;
}

.client-strip .client-logo img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 46px;
  opacity: 0.74;
  filter: grayscale(1) brightness(0) invert(1);
  transition:
    opacity 240ms ease,
    transform 240ms ease;
}

.client-strip .client-logo:hover img {
  opacity: 1;
  transform: scale(1.035);
}

.client-strip .client-marquee:hover .client-marquee-track {
  animation-play-state: paused;
}

@keyframes client-logo-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@media (max-width: 780px) {
  .client-strip > .client-marquee {
    width: calc(100% + 44px);
    margin-left: -22px;
  }

  .client-strip .client-logo-set {
    gap: 44px;
    padding-right: 44px;
  }

  .client-strip .client-logo {
    flex-basis: 146px;
    height: 42px;
  }

  .client-strip .client-logo img {
    max-height: 36px;
  }

  .client-strip .client-marquee-track {
    animation-duration: 22s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .client-strip > .client-marquee {
    width: 100%;
    margin-left: 0;
    overflow: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .client-strip .client-marquee-track {
    width: 100%;
    animation: none;
  }

  .client-strip .client-logo-set:first-child {
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
    gap: 22px 32px;
    padding: 0;
  }

  .client-strip .client-logo-set[aria-hidden="true"] {
    display: none;
  }

  .client-strip .client-logo {
    flex: 1 1 160px;
  }
}

/* Keep the compact Mercedes-Benz source visually balanced with the other marks. */
.client-strip .client-logo img[src*="mercedes-benz.svg"] {
  width: min(177px, 100%);
}

/* Real-event film selector inside Selected Work. */
.event-film-shell {
  color: #fff;
  background: #050505;
  border-top: 2px solid var(--acid);
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.65fr);
  margin-top: clamp(56px, 6vw, 90px);
  overflow: hidden;
}

.event-film-feature {
  min-width: 0;
  margin: 0;
  border-right: 1px solid #ffffff24;
}

.event-film-media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #0b0b0b;
}

.event-film-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, #00000026 0%, transparent 48%, #00000080 100%);
}

.event-film-media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #0b0b0b;
}

.event-film-badge {
  position: absolute;
  z-index: 2;
  top: 20px;
  left: 20px;
  color: #080808;
  background: var(--acid);
  padding: 9px 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 9px;
  font-weight: 750;
}

.event-film-toggle {
  position: absolute;
  z-index: 3;
  right: 20px;
  bottom: 20px;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 92px;
  min-height: 46px;
  padding: 0 16px;
  color: #fff;
  background: #050505d9;
  border: 1px solid #ffffff80;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
  backdrop-filter: blur(8px);
}

.js .event-film-toggle {
  display: flex;
}

.event-film-toggle:hover {
  color: #050505;
  background: var(--acid);
  border-color: var(--acid);
}

.event-film-toggle-icon {
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 8px solid currentColor;
}

.event-film-toggle.is-playing .event-film-toggle-icon {
  width: 9px;
  height: 11px;
  border: 0;
  background: linear-gradient(90deg, currentColor 0 3px, transparent 3px 6px, currentColor 6px 9px);
}

.event-film-feature figcaption {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 30px;
  min-height: 104px;
  padding: 22px 24px 24px;
}

.event-film-feature figcaption div {
  display: grid;
  gap: 7px;
}

.event-film-feature figcaption span,
.event-film-picker-heading > span {
  color: var(--acid);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 9px;
  font-weight: 700;
}

.event-film-feature figcaption strong {
  letter-spacing: -0.025em;
  font-size: clamp(22px, 2.3vw, 34px);
  font-weight: 560;
}

.event-film-feature figcaption p {
  color: #a7a7a2;
  max-width: 270px;
  margin: 0;
  text-align: right;
  font-size: 12px;
  line-height: 1.5;
}

.event-film-picker {
  display: flex;
  min-width: 0;
  padding: 24px 26px 22px;
  flex-direction: column;
}

.event-film-picker-heading {
  display: grid;
  gap: 9px;
  margin-bottom: 21px;
}

.event-film-picker-heading strong {
  max-width: 250px;
  letter-spacing: -0.035em;
  font-size: clamp(21px, 2vw, 29px);
  font-weight: 520;
  line-height: 1.04;
}

.event-film-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.event-film-list button {
  position: relative;
  width: 100%;
  min-height: 65px;
  padding: 11px 2px 11px 12px;
  color: #fff;
  border-top: 1px solid #ffffff1f;
  border-left: 2px solid transparent;
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.event-film-list li:last-child button {
  border-bottom: 1px solid #ffffff1f;
}

.js .event-film-list button {
  cursor: pointer;
}

.event-film-list button:hover,
.event-film-list button[aria-pressed="true"] {
  color: var(--acid);
  background: linear-gradient(90deg, #d8ff430d, transparent 75%);
  border-left-color: var(--acid);
}

.event-film-list button > span:first-child {
  color: #757570;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
}

.event-film-list button > span:nth-child(2) {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.event-film-list strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 610;
}

.event-film-list small {
  color: #898984;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
}

.event-film-list i {
  color: #777;
  font-size: 8px;
  font-style: normal;
}

.event-film-list button[aria-pressed="true"] i {
  color: var(--acid);
}

.event-film-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: auto;
  padding-top: 22px;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 10px;
  font-weight: 700;
}

.event-film-link svg {
  flex: none;
  transition: transform 200ms ease;
}

.event-film-link:hover {
  color: var(--acid);
}

.event-film-link:hover svg {
  transform: translateX(4px);
}

.event-film-shell + .project-grid {
  margin-top: clamp(72px, 8vw, 120px);
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 980px) {
  .event-film-shell {
    grid-template-columns: 1fr;
  }

  .event-film-feature {
    border-right: 0;
    border-bottom: 1px solid #ffffff24;
  }

  .event-film-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 20px;
  }

  .event-film-link {
    margin-top: 24px;
  }
}

@media (max-width: 780px) {
  .client-strip .client-logo img[src*="mercedes-benz.svg"] {
    width: min(138px, 100%);
  }

  .event-film-feature figcaption {
    grid-template-columns: 1fr;
    gap: 12px;
    min-height: 0;
    padding: 18px;
  }

  .event-film-feature figcaption p {
    max-width: none;
    text-align: left;
  }

  .event-film-picker {
    padding: 24px 18px 22px;
  }

  .event-film-badge {
    top: 14px;
    left: 14px;
  }

  .event-film-toggle {
    right: 14px;
    bottom: 14px;
  }
}

@media (max-width: 520px) {
  .event-film-shell {
    width: calc(100% + 22px);
    margin-left: -11px;
  }

  .event-film-list {
    grid-template-columns: 1fr;
  }

  .event-film-list button {
    min-height: 61px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .event-film-link svg,
  .event-film-toggle,
  .event-film-list button {
    transition: none;
  }
}

/* Native controls provide keyboard-accessible sound, seeking and fullscreen. */
.js .event-film-toggle { display: none; }
.event-film-media::after { display: none; }
