/* scrolly.css — narrativa por scroll com cena sticky (scaffold; só tokens). */
.scrolly { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.scrolly-graphic { position: sticky; top: 15vh; }
.scrolly-graphic [data-scene][hidden] { display: none; }
.scrolly-steps { display: grid; }
.scrolly-step { min-height: 70vh; display: flex; align-items: center;
  opacity: 0.25; transition: opacity 0.4s ease; }
.scrolly-step.is-active { opacity: 1; }
.scrolly-step > * { max-width: 26rem; }
.viz-dim { opacity: 0.15; transition: opacity 0.3s ease; }
@media (prefers-reduced-motion: reduce) {
  .scrolly-step, .viz-dim { transition: none; }
}
@media (max-width: 860px) {
  .scrolly { grid-template-columns: 1fr; gap: 1.5rem; }
  .scrolly-graphic { position: sticky; top: 0; z-index: 1; background: var(--bg);
    padding: 0.75rem 0; }
  .scrolly-step { min-height: 55vh; }
}