.prototype--gpt .prototype-gate__content { width: min(64rem, 86vw); }
.prototype--gpt .prototype-gate h1 { font-size: clamp(3.4rem, 8.4vw, 9.4rem); letter-spacing: 0.12em; }
.prototype--gpt .prototype-loading { width: min(38rem, 74vw); }

/* The character is punctuation, not a permanent presenter. */
.prototype--gpt .gpt-character,
.prototype--gpt.is-playing .gpt-character {
  width: clamp(6.5rem, 9vw, 12.5rem);
  height: min(22vh, 17vw);
  bottom: 1.2vh;
  opacity: 0;
  transition: opacity 280ms ease, transform 520ms var(--ease-film);
}
.prototype--gpt.is-playing .gpt-character.is-active { opacity: 0.92; }
.prototype--gpt .gpt-character[data-action="push-word"] { width: clamp(7rem, 10.5vw, 14.5rem); height: min(24vh, 19vw); }
.prototype--gpt .gpt-character[data-action="page-turn"] { width: clamp(8rem, 12vw, 16.5rem); height: min(26vh, 21vw); }
.prototype--gpt .gpt-character[data-side="right"] { --character-x: -37vw; }
.prototype--gpt .gpt-character[data-side="left"] { --character-x: 37vw; }
.prototype--gpt .gpt-character[data-side="top"],
.prototype--gpt .gpt-character[data-side="bottom"] { --character-x: -37vw; }
.prototype--gpt .gpt-character[data-side="bottom-right"] {
  --character-x: 39vw;
  right: 1.2vw;
  left: auto;
  bottom: 0.8vh;
  transform: none;
}

/* One sung phrase per cue, kept small enough to preserve faces. */
.prototype--gpt .kinetic-copy { width: min(72vw, 82rem); }
.prototype--gpt .kinetic-copy__lines { font-size: clamp(2rem, 4.15vw, 5.2rem); line-height: 1.15; }
.prototype--gpt .kinetic-copy__line { white-space: nowrap; }
.prototype--gpt .kinetic-copy[data-motion="finale"] .kinetic-copy__lines { font-size: clamp(2.1rem, 4.45vw, 5.6rem); }
.prototype--gpt .kinetic-copy[data-side="left"],
.prototype--gpt .kinetic-copy[data-side="right"] { width: min(55vw, 64rem); }
.prototype--gpt .kinetic-copy[data-side="top"] { --copy-y: -27vh; width: min(74vw, 86rem); text-align: center; }
.prototype--gpt .kinetic-copy[data-side="bottom"] { --copy-y: 28vh; width: min(74vw, 86rem); text-align: center; }
.prototype--gpt .kinetic-copy__eyebrow { margin-bottom: clamp(.5rem, 1.1vh, 1rem); font-size: clamp(.48rem, .55vw, .7rem); }

/* Keep the two faces in the red portrait series intact: the couple frame is
   promoted to the tall center column and shown without a destructive crop. */
.prototype--gpt .prototype-scene[data-layout-id="round4-01"] .prototype-photo:nth-child(2) {
  top: 9vh;
  right: 0;
  bottom: 13vh;
  left: auto;
  width: 34vw;
  z-index: 3;
  transform: none;
}

.prototype--gpt .prototype-scene[data-layout-id="round4-01"] .prototype-photo:nth-child(3) {
  top: 2vh;
  right: auto;
  bottom: 2vh;
  left: 50%;
  width: 38vw;
  z-index: 4;
  transform: translateX(-50%);
}

.prototype--gpt .prototype-scene[data-layout-id="round4-01"] .prototype-photo:nth-child(3) img {
  object-fit: contain;
  object-position: center;
}

@media (max-aspect-ratio: 4 / 3) {
  .prototype--gpt .gpt-character,
  .prototype--gpt .gpt-character[data-action="push-word"],
  .prototype--gpt .gpt-character[data-action="page-turn"] {
    width: clamp(6rem, 22vw, 11rem);
    height: 22vh;
  }
  .prototype--gpt .gpt-character[data-side="bottom-right"] {
    --character-x: 0vw !important;
    right: 2vw;
    left: auto;
    transform: none;
  }
  .prototype--gpt .kinetic-copy[data-side="left"],
  .prototype--gpt .kinetic-copy[data-side="right"] { --copy-x: 0; --copy-y: -20vh; width: 86vw; text-align: center; }
}
