/* Interaction ownership fixes: touch diamond, replayable proof, manifesto end-state, contact reverse. */

.signal-core {
  touch-action: pan-y;
  overscroll-behavior: contain;
}
.signal-stage.is-dragging .signal-core { cursor: grabbing; }

.flip-display { touch-action: manipulation; }
.flip-display.is-replaying {
  animation: flip-replay-pulse .62s cubic-bezier(.16,1,.3,1);
}
@keyframes flip-replay-pulse {
  0% { box-shadow: 0 16px 32px rgba(24,31,43,.14); }
  42% { box-shadow: 0 22px 42px rgba(24,31,43,.28), 0 0 0 3px rgba(238,120,35,.16); }
  100% { box-shadow: 0 16px 32px rgba(24,31,43,.14); }
}

.manifesto-luminance.is-fully-lit .manifesto-letter-copy .manifesto-letter {
  color: #f3eee6 !important;
  -webkit-text-fill-color: currentColor;
}
.manifesto-luminance.is-fully-lit .manifesto-letter-copy .manifesto-letter.is-accent {
  color: #f3eee6 !important;
}
.manifesto-luminance.is-fully-lit .manifesto-word.is-touched .manifesto-letter,
.manifesto-word.is-tapped .manifesto-letter {
  color: transparent !important;
  -webkit-text-fill-color: transparent;
}
.manifesto-word.is-tapped {
  background: var(--prism-gradient);
  -webkit-background-clip: text;
  background-clip: text;
}

.contact.motion-managed .contact-title > span,
.contact.motion-managed .contact-choice {
  animation: none !important;
}
.contact.motion-managed.is-contact-settled .contact-title > span,
.contact.motion-managed.is-contact-settled .contact-choice {
  opacity: 1 !important;
  filter: none !important;
  clip-path: none !important;
}

@media (max-width: 900px) {
  .signal-core { touch-action: pan-y; }
  .flip-display { cursor: pointer; }
  .manifesto-letter-copy .manifesto-word { cursor: pointer; }
}

@media (prefers-reduced-motion: reduce) {
  .flip-display.is-replaying { animation: none; }
  .manifesto-luminance .manifesto-letter-copy .manifesto-letter { color: #f3eee6 !important; }
  .manifesto-luminance .manifesto-letter-copy .manifesto-letter.is-accent { color: #f3eee6 !important; }
}
