/* Static content is the default. This file never hides content before JS is ready. */
[data-rotate] { display: grid; }
[data-rotate] > * { grid-area: 1 / 1; visibility: hidden; }
[data-rotate] > :first-child { visibility: visible; }
.motion-ready [data-rotate] > * { visibility: visible; opacity: 0; transform: translateY(8px); }
.motion-ready [data-rotate] > .is-current { opacity: 1; transform: none; animation: motion-word .45s ease both; }
.motion-ready [data-stagger] .motion-item:not(.is-in) { opacity: 0; }
.motion-ready [data-stagger] .motion-item.is-in { animation: motion-enter .6s cubic-bezier(.2,.7,.2,1) both; animation-delay: calc(var(--i, 0) * var(--stagger-gap, 150ms)); }
.motion-ready [data-draw].motion-stroke:not(.is-drawn),
.motion-ready [data-draw]:not(.is-drawn) .motion-stroke { transform: scaleX(0); }
.motion-stroke { transform-origin: left center; }
.motion-ready [data-draw].motion-stroke.is-drawn,
.motion-ready [data-draw].is-drawn .motion-stroke { animation: motion-draw var(--draw-duration, 1s) ease both; }
[data-count] { font-variant-numeric: tabular-nums; }
[data-motion-toggle] { display: none; }
.motion-ready [data-motion-toggle]:not([hidden]) { display: inline-flex; }
@media (hover: hover) and (pointer: fine) {
  .motion-ready [data-tilt] { transform: perspective(1600px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); transition: transform .25s ease-out; }
}
@keyframes motion-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes motion-word { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes motion-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
/* Includes pseudo-elements and animations defined by the host page. */
.motion-ready [data-motion-paused],
.motion-ready [data-motion-paused]::before, .motion-ready [data-motion-paused]::after,
.motion-ready [data-motion-paused] *,
.motion-ready [data-motion-paused] *::before, .motion-ready [data-motion-paused] *::after { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
  .motion-ready [data-scene], .motion-ready [data-scene] *,
  .motion-ready [data-scene] *::before, .motion-ready [data-scene] *::after,
  .motion-ready [data-stagger] .motion-item,
  .motion-ready [data-draw], .motion-ready [data-draw] *,
  .motion-ready [data-draw]::before, .motion-ready [data-draw]::after,
  .motion-ready [data-rotate] > *, .motion-ready [data-tilt] { animation: none !important; transition: none !important; }
  .motion-ready [data-stagger] .motion-item { opacity: 1; transform: none; }
  .motion-ready [data-tilt] { transform: none; }
  .motion-ready .motion-stroke { transform: scaleX(1) !important; }
}

/* Completion removes delayed keyframes so a manual pause never conceals one-shot content. */
.motion-ready [data-motion-complete],
.motion-ready [data-motion-complete]::before, .motion-ready [data-motion-complete]::after,
.motion-ready [data-motion-complete] *,
.motion-ready [data-motion-complete] *::before, .motion-ready [data-motion-complete] *::after {
  animation: none !important;
  transition: none !important;
}
