.v2 .brand { position: relative; }
.v2 .brand small {
  align-self: flex-start;
  margin: -4px 0 0 -5px;
  color: var(--violet);
  font: 500 7px/1 var(--mono);
  letter-spacing: .08em;
}

.v2 .motion-reveal {
  opacity: 0;
  clip-path: inset(0 0 16% 0);
  transform: translateY(58px);
  transition:
    opacity .8s ease,
    clip-path .95s cubic-bezier(.16, 1, .3, 1),
    transform .95s cubic-bezier(.16, 1, .3, 1);
}
.v2 .motion-reveal.is-visible {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transform: translateY(0);
}
.v2 .hero-copy.motion-reveal { transition-delay: .08s; }
.v2 .hero-media.motion-reveal { transition-delay: .24s; }

.v2 .hero-media {
  border-radius: 46% 46% 3px 3px / 15% 15% 3px 3px;
  box-shadow: 28px 28px 0 var(--blue), -1px -1px 0 var(--ink);
}
.v2 .hero-media::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 50%;
  width: 1px;
  height: 80px;
  background: rgba(255,255,255,.55);
}
.v2 .hero::before { animation: v2Float 10s ease-in-out infinite alternate; }
.v2 .hero::after { animation: v2Turn 14s linear infinite; }

.v2 .project-arch .project-media {
  border-radius: 48% 48% 0 0 / 24% 24% 0 0;
  box-shadow: inset 0 0 0 1px var(--ink);
}
.v2 .project-ticket .project-media {
  clip-path: polygon(0 0, 90% 0, 100% 12%, 100% 100%, 10% 100%, 0 88%);
}
.v2 .project-ticket::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -14px 14px 94px -14px;
  border: 1px solid var(--ink);
  clip-path: polygon(0 0, 90% 0, 100% 12%, 100% 100%, 10% 100%, 0 88%);
}

.film-chapters {
  position: relative;
  background: var(--ink);
}
.chapters-header {
  min-height: 84vh;
  display: grid;
  align-content: center;
  padding: 150px clamp(52px, 7.4vw, 132px);
  color: var(--white);
}
.chapters-header > p {
  margin: 0 0 28px;
  color: rgba(248,246,239,.52);
  font: 500 10px/1.4 var(--mono);
  letter-spacing: .13em;
  text-transform: uppercase;
}
.chapters-header h2 {
  max-width: 1040px;
  margin: 0;
  font-size: clamp(48px, 6.3vw, 108px);
  line-height: .93;
  letter-spacing: -.065em;
  font-weight: 500;
}

.film-chapter {
  --drift: 0px;
  position: relative;
  min-height: 108vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(44px, 6vw, 110px);
  padding: calc(var(--header) + 70px) clamp(72px, 9vw, 160px) 84px;
  overflow: hidden;
  border-top: 1px solid rgba(17,17,22,.2);
  scroll-margin-top: var(--header);
}
.film-chapter::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(17,17,22,.7);
}
.film-chapter::after {
  content: "";
  position: absolute;
  top: 13%;
  left: calc(50% - 4px);
  width: 8px;
  height: 8px;
  border: 1px solid var(--ink);
  border-radius: 50%;
  background: inherit;
}
.chapter-artist { background: linear-gradient(135deg, #c4dbe2 0%, #d4e5e7 100%); }
.chapter-unique { background: linear-gradient(155deg, #a9cad8 0%, #c8dfe6 62%, #d5dfe0 100%); }
.chapter-details { background: linear-gradient(135deg, #d8e4df 0%, #d8e1e5 50%, #ead9e9 100%); }
.chapter-afterlife { background: linear-gradient(125deg, #e9e4d8 0%, #ead9e8 72%, #e7cde6 100%); }

.chapter-copy {
  position: relative;
  z-index: 3;
  max-width: 600px;
  margin-left: clamp(28px, 3vw, 54px);
}
.chapter-copy > * {
  opacity: 0;
  transform: translateY(44px);
  transition: opacity .72s ease, transform .9s cubic-bezier(.16,1,.3,1);
}
.film-chapter.is-entered .chapter-copy > * { opacity: 1; transform: translateY(0); }
.film-chapter.is-entered .chapter-copy > *:nth-child(1) { transition-delay: .08s; }
.film-chapter.is-entered .chapter-copy > *:nth-child(2) { transition-delay: .14s; }
.film-chapter.is-entered .chapter-copy > *:nth-child(3) { transition-delay: .21s; }
.film-chapter.is-entered .chapter-copy > *:nth-child(4) { transition-delay: .31s; }
.chapter-copy > span {
  display: block;
  margin-bottom: 20px;
  color: var(--violet);
  font: 500 11px/1 var(--mono);
}
.chapter-copy > p:first-of-type {
  margin: 0 0 26px;
  font: 500 9px/1 var(--mono);
  letter-spacing: .14em;
}
.chapter-copy h3 {
  margin: 0 0 28px;
  font-size: clamp(50px, 6.2vw, 102px);
  line-height: .88;
  letter-spacing: -.07em;
  font-weight: 500;
}
.chapter-copy > p:last-child {
  max-width: 560px;
  margin: 0;
  color: #49474b;
  font-size: clamp(15px, 1.15vw, 19px);
  line-height: 1.7;
}
.chapter-unique .chapter-copy,
.chapter-afterlife .chapter-copy { align-self: end; margin-bottom: 8vh; }
.chapter-details .chapter-copy { align-self: start; margin-top: 13vh; }

.shape-frame {
  position: relative;
  z-index: 2;
  justify-self: center;
  opacity: 0;
  will-change: transform, clip-path;
  transition:
    opacity .7s ease,
    clip-path 1.2s cubic-bezier(.16,1,.3,1),
    transform 1.25s cubic-bezier(.16,1,.3,1);
}
.shape-frame video {
  width: 100%;
  height: calc(100% + 80px);
  position: absolute;
  top: -40px;
  left: 0;
  object-fit: cover;
  filter: saturate(.72) contrast(1.05);
  transform: translateY(var(--drift)) scale(1.05);
  transition: filter .5s ease;
}
.shape-frame:hover video { filter: saturate(1) contrast(1.02); }
.shape-frame > span {
  position: absolute;
  z-index: 4;
  right: 22px;
  bottom: 18px;
  color: var(--white);
  font: 500 8px/1 var(--mono);
  letter-spacing: .13em;
  text-shadow: 0 2px 12px #000;
}

.shape-arch {
  width: min(40vw, 590px);
  height: min(71vh, 680px);
  overflow: hidden;
  clip-path: inset(100% 0 0 0 round 48% 48% 0 0 / 28% 28% 0 0);
  transform: translateY(80px);
  border-radius: 48% 48% 0 0 / 28% 28% 0 0;
  background: #84979c;
}
.chapter-artist.is-entered .shape-arch {
  opacity: 1;
  clip-path: inset(0 0 0 0 round 48% 48% 0 0 / 28% 28% 0 0);
  transform: translateY(0);
}

.shape-split {
  width: min(43vw, 680px);
  height: min(66vh, 610px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.split-half {
  width: 52%;
  height: 92%;
  position: relative;
  overflow: hidden;
  opacity: 0;
  background: #8199a2;
  transition: opacity .7s ease, transform 1.15s cubic-bezier(.16,1,.3,1);
}
.split-left {
  border-radius: 58% 42% 55% 45% / 48% 36% 64% 52%;
  transform: translate(-90px, 45px) rotate(-13deg);
}
.split-right {
  border-radius: 43% 57% 38% 62% / 36% 48% 52% 64%;
  transform: translate(90px, -40px) rotate(13deg);
}
.chapter-unique.is-entered .shape-split { opacity: 1; }
.chapter-unique.is-entered .split-half { opacity: 1; }
.chapter-unique.is-entered .split-left { transform: translate(18px, 20px) rotate(-5deg); }
.chapter-unique.is-entered .split-right { transform: translate(-18px, -18px) rotate(5deg); }
.split-half video { top: -40px; left: -5%; width: 110%; }

.shape-blob {
  width: min(44vw, 720px);
  height: min(60vh, 540px);
  overflow: hidden;
  clip-path: circle(0% at 50% 50%);
  transform: translateY(70px) rotate(8deg);
  border-radius: 44% 56% 35% 65% / 42% 35% 65% 58%;
  background: #8d8790;
}
.chapter-details.is-entered .shape-blob {
  opacity: 1;
  clip-path: circle(76% at 50% 50%);
  transform: translateY(0) rotate(-2deg);
}

.shape-circle {
  width: min(39vw, 570px);
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
  transform: scale(.18) rotate(-35deg);
  background: #7c747d;
}
.chapter-afterlife.is-entered .shape-circle { opacity: 1; transform: scale(1) rotate(0); }

.chapter-navigator {
  position: fixed;
  z-index: 72;
  top: 50%;
  left: clamp(18px, 2.2vw, 38px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  opacity: 0;
  transform: translateY(-50%) translateX(-16px);
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
}
.in-chapters .chapter-navigator { opacity: 1; transform: translateY(-50%) translateX(0); pointer-events: auto; }
.in-chapters .section-rail { opacity: 0; pointer-events: none; }
.chapter-navigator a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 18px;
  text-decoration: none;
}
.chapter-navigator i {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border: 1px solid var(--ink);
  border-radius: 50%;
  background: transparent;
}
.chapter-navigator span {
  max-width: 0;
  overflow: hidden;
  opacity: 0;
  white-space: nowrap;
  font: 500 9px/1 var(--mono);
  letter-spacing: .08em;
  transition: max-width .35s ease, opacity .3s ease;
}
.chapter-navigator a:hover span,
.chapter-navigator a.is-active span { max-width: 180px; opacity: 1; }
.chapter-navigator a.is-active i { background: var(--ink); }

.v2 .services { position: relative; overflow: hidden; }
.v2 .services::after {
  content: "";
  position: absolute;
  right: -160px;
  bottom: -260px;
  width: 520px;
  height: 520px;
  border: 1px solid rgba(17,17,22,.18);
  border-radius: 50%;
}
.v2 .service-item.motion-reveal:nth-child(2) { transition-delay: .08s; }
.v2 .service-item.motion-reveal:nth-child(3) { transition-delay: .16s; }
.v2 .process-list .motion-reveal:nth-child(2) { transition-delay: .08s; }
.v2 .process-list .motion-reveal:nth-child(3) { transition-delay: .16s; }
.v2 .process-list .motion-reveal:nth-child(4) { transition-delay: .24s; }

@keyframes v2Float {
  from { transform: translate3d(0, -12px, 0) scale(.96); }
  to { transform: translate3d(-24px, 24px, 0) scale(1.06); }
}
@keyframes v2Turn { to { transform: rotate(385deg); } }

@media (max-width: 850px) {
  .v2 .brand small { display: none; }
  .v2 .hero-media {
    border-radius: 44% 44% 3px 3px / 12% 12% 3px 3px;
    box-shadow: 14px 14px 0 var(--blue);
  }
  .v2 .project-arch .project-media { border-radius: 45% 45% 0 0 / 18% 18% 0 0; }
  .chapter-navigator { display: none; }
  .chapters-header { min-height: 78svh; padding: 110px 24px; }
  .film-chapter {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 58px;
    padding: 105px 24px;
  }
  .film-chapter::before { display: none; }
  .film-chapter::after { top: 34px; left: 24px; }
  .chapter-copy,
  .chapter-unique .chapter-copy,
  .chapter-afterlife .chapter-copy,
  .chapter-details .chapter-copy { align-self: auto; margin: 0; }
  .chapter-copy h3 { font-size: clamp(52px, 13vw, 78px); }
  .shape-frame { grid-row: 2; }
  .shape-arch,
  .shape-split,
  .shape-blob { width: 100%; height: 60svh; }
  .shape-circle { width: min(82vw, 520px); }
  .split-half { height: 80%; }
}

@media (max-width: 520px) {
  .v2 .motion-reveal {
    clip-path: inset(0 0 10% 0);
    transform: translateY(38px);
  }
  .chapters-header { min-height: 72svh; padding: 90px 18px; }
  .chapters-header h2 { font-size: 48px; }
  .film-chapter { gap: 44px; padding: 86px 18px; }
  .film-chapter::after { left: 18px; }
  .chapter-copy h3 { font-size: 54px; }
  .chapter-copy > p:last-child { font-size: 14px; }
  .shape-arch, .shape-split, .shape-blob { height: 54svh; }
  .shape-frame > span { right: 14px; bottom: 12px; }
  .split-left { transform: translate(-55px, 35px) rotate(-11deg); }
  .split-right { transform: translate(55px, -30px) rotate(11deg); }
  .chapter-unique.is-entered .split-left { transform: translate(9px, 12px) rotate(-4deg); }
  .chapter-unique.is-entered .split-right { transform: translate(-9px, -12px) rotate(4deg); }
  .shape-circle { width: 82vw; }
}

@media (prefers-reduced-motion: reduce) {
  .v2 .motion-reveal,
  .chapter-copy > *,
  .shape-frame,
  .split-half {
    opacity: 1 !important;
    clip-path: none !important;
    transform: none !important;
  }
  .v2 .hero::before,
  .v2 .hero::after { animation: none; }
}
