/* Loaded under prefers-reduced-motion and inside <noscript>.
   The ticket renders already torn; every section is in its final state. */
.hero { height: auto; }
.stage {
  position: relative; height: auto; min-height: 100vh; min-height: 100svh; overflow: visible;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 56px;
  padding: 56px 0 72px; --p: 0.5; --tear: 1;
}
.tilt { order: 1; }
.ticket-box { --dx: 4vw; --dy: 5vh; --dr: 9deg; transform: none !important; animation: none !important; }
.piece-main { opacity: 1; transform: rotate(-1.5deg) !important; }
.scroll-cue { display: none; }
.underlay { position: static; order: 2; opacity: 1; transform: none; }
@media (max-width: 719px) {
  .ticket-box { --dx: 6vw; --dy: 5vh; --dr: 7deg; }
}
.ribbon .track { animation: none !important; }
.ribbon { overflow: hidden; }
.ribbon span:nth-child(n+2) { display: none; }
.flip:not(.built)::before { content: attr(data-word); }
