/* Cinematic motion pass */
.cine-reveal { --cine-delay: 0ms; }

.cine-ready .cine-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 760ms var(--ease), transform 760ms var(--ease);
  transition-delay: var(--cine-delay);
  will-change: opacity, transform;
}

.cine-ready .cine-reveal.cine-soft { transform: translateY(12px); }
.cine-ready .cine-reveal.cine-scale { transform: translateY(18px) scale(0.985); }
.cine-ready .cine-reveal.in { opacity: 1; transform: none; }

.cine-spotlight {
  position: relative;
  overflow: hidden;
}

.cine-spotlight::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(circle 220px at var(--mx, 50%) var(--my, 50%), rgba(244,115,33,0.13), transparent 62%);
  opacity: 0;
  transition: opacity 260ms var(--ease);
}

.cine-spotlight:hover::before,
.cine-spotlight:focus-within::before {
  opacity: 1;
}

.cine-spotlight > * {
  position: relative;
  z-index: 1;
}

.cine-ready .page-hero::before,
.cine-ready .project-hero::before {
  animation: cine-grid-drift 18s linear infinite;
}

@keyframes cine-grid-drift {
  from { background-position: 0 0; }
  to { background-position: 22px 22px; }
}

.lb-img {
  transition: opacity 220ms var(--ease), transform 260ms var(--ease);
}

.lb-img.is-switching {
  opacity: 0;
  transform: scale(0.985);
}

.summary-strip .item.is-active {
  background: var(--paper);
}

.summary-strip .item.is-active .arr {
  color: var(--tangerine);
}

.summary-strip .item.is-active .arr svg {
  transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
  .cine-ready .cine-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .cine-ready .page-hero::before,
  .cine-ready .project-hero::before {
    animation: none;
  }

  .lb-img { transition: none; }
}
