/* Cinematic enhancement of the original homepage. No design-token overrides. */
.works { --nv-motion-css: ready; }
html:not([data-nv-motion]) * { cursor: auto !important; }
html:not([data-nv-motion]) .cursor { display: none; }
html:not([data-nv-motion]) .faq__a { height: auto; overflow: visible; }

html[data-nv-motion="full"] .hero__headline .word {
  transform-origin: 50% 100%;
  animation-name: nvHeroWord;
  animation-duration: 1200ms;
  animation-timing-function: cubic-bezier(.16, 1, .3, 1);
}

@keyframes nvHeroWord {
  from { opacity: 0; transform: translate3d(0, 105%, 0) rotateX(18deg) rotateZ(1.5deg); }
  45% { opacity: 1; }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotateX(0) rotateZ(0); }
}

html[data-nv-motion="full"] .hero__bg { transform-origin: 60% 65%; }

.nv-theatre {
  position: relative;
  isolation: isolate;
  height: calc(var(--nv-pin-size, 760px) + var(--nv-travel, 0px));
}

.nv-theatre__pin {
  position: sticky;
  top: var(--nv-top, 90px);
  min-height: var(--nv-height, 650px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  overflow: clip;
  background: var(--paper);
}

.nv-theatre .featured-works {
  position: relative;
  flex: none;
  width: 100%;
  opacity: 1;
  transform: none;
  transition: none;
  perspective: 1500px;
  perspective-origin: 50% var(--nv-scene-y, 300px);
}

.nv-theatre .featured-work {
  position: relative;
  transform-origin: 50% 50%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transition-property: border-color, box-shadow;
  scroll-margin-top: calc(var(--nv-top, 90px) + 12px);
  scroll-margin-bottom: 75px;
}

.nv-theatre[data-nv-phase="scene"] .featured-work {
  box-shadow: 0 25px 55px -25px rgba(30, 42, 66, .24);
}

.nv-theatre.is-near[data-nv-phase="scene"] .featured-work { will-change: transform, opacity; }

.nv-theatre[data-nv-phase="scene"] .featured-work:hover {
  box-shadow: 0 25px 55px -20px rgba(30, 42, 66, .3);
}

.nv-theatre__rail {
  position: absolute;
  z-index: 5;
  left: var(--pad-x);
  right: var(--pad-x);
  bottom: 17px;
  display: flex;
  align-items: center;
  gap: 22px;
  min-height: 32px;
  color: var(--mid);
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.nv-theatre__skip {
  flex: none;
  padding-block: 8px;
  text-underline-offset: 5px;
}

.nv-theatre__skip:hover,
.nv-theatre__skip:focus-visible { color: var(--signal); text-decoration: underline; }

.nv-theatre__line {
  height: 1px;
  flex: 1;
  overflow: hidden;
  background: var(--line);
}

.nv-theatre__line i {
  display: block;
  height: 1px;
  width: 100%;
  background: var(--signal);
  transform: scaleX(var(--nv-progress, 0));
  transform-origin: left;
}

.nv-theatre__chapter { font-variant-numeric: tabular-nums; white-space: nowrap; }

.nv-theatre__destination {
  position: absolute;
  top: var(--nv-travel, 0px);
  left: 0;
  width: 1px;
  height: 1px;
  scroll-margin-top: var(--nv-top, 90px);
  pointer-events: none;
}

.nv-theatre[data-nv-phase="grid"] .featured-work {
  transition-property: border-color, box-shadow, transform;
}
.nv-theatre[data-nv-phase="grid"] .nv-theatre__rail { visibility: hidden; }

html[data-nv-motion] .hero__img,
html[data-nv-motion] .hero__headline { will-change: auto; }

html[data-nv-motion="full"] .nv-theatre a:focus-visible {
  outline: 2px solid var(--signal);
  outline-offset: 3px;
}

@media (max-width: 880px) {
  .nv-theatre .featured-works { perspective: 1100px; }
  .nv-theatre__rail { gap: 14px; bottom: auto; top: 7px; }
  .nv-theatre__pin { justify-content: flex-start; }
  .nv-theatre[data-nv-phase="scene"] .featured-work {
    box-shadow: 0 16px 32px -15px rgba(30, 42, 66, .24);
  }
}

/* Existing content remains readable when the system requests reduced motion. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero__headline .word { animation: none !important; opacity: 1; transform: none; }
  .hero__img, .hero__headline, .hero__bg { transform: none !important; transition: none !important; }
  .reveal-el { opacity: 1; transform: none; transition: none; }
  .footer__ticker-track, .scroll-hint__line::after { animation: none !important; }
  .nv-theatre { height: auto; }
  .nv-theatre__pin { position: relative; top: auto; min-height: 0; overflow: visible; }
  .nv-theatre__rail, .nv-theatre__destination { display: none; }
  .nv-theatre .featured-work { transform: none !important; opacity: 1 !important; }
}
