/* Generated by @swipewize/site-generator from mock-tidy-shelf.ts and mock-duplicates.ts. Do not edit. */

@keyframes tidy-1 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  9% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: ease-out; }
  10.2% { transform: translate(0px, 0px) scale(1.08) rotate(-3deg); opacity: 1; animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1); }
  16.7% { transform: translate(0px, calc(-1 * (100% + var(--tidy-gap-y)))) scale(1.08) rotate(-3deg); opacity: 1; animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  18.5% { transform: translate(0px, calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  20.58% { transform: translate(calc(-1 * (100% + var(--tidy-gap-x))), calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; }
  21.36% { transform: translate(calc(-1 * (100% + var(--tidy-gap-x))), calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; }
  23.7% { transform: translate(calc(-1 * (100% + var(--tidy-gap-x))), calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(calc(-1 * (100% + var(--tidy-gap-x))), calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-2 {
  0% { opacity: 0; }
  9% { opacity: 0; }
  10.2% { opacity: 1; }
  16.7% { opacity: 1; }
  18.5% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes tidy-3 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  18.5% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  20.58% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 1; }
  21.36% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 1; }
  23.7% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-4 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  18.5% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  20.58% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  21.36% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  23.7% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-5 {
  0% { opacity: 0; transform: scale(1); }
  18.5% { opacity: 0; transform: scale(1); }
  19.436% { opacity: 0; transform: scale(1.1); }
  21.1% { opacity: 1; transform: scale(1.3); }
  23.596% { opacity: 0; transform: scale(1.6); }
  23.7% { opacity: 0; transform: scale(1); }
  100% { opacity: 0; transform: scale(1); }
}

@keyframes tidy-6 {
  0% { background-color: var(--tidy-ledge); }
  18.5% { background-color: var(--tidy-ledge); }
  19.54% { background-color: var(--tidy-flash); }
  25.7% { background-color: var(--tidy-ledge); }
  100% { background-color: var(--tidy-ledge); }
}

@keyframes tidy-7 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  27% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: ease-out; }
  28.2% { transform: translate(0px, 0px) scale(1.08) rotate(-3deg); opacity: 1; animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1); }
  34.7% { transform: translate(0px, calc(-1 * (100% + var(--tidy-gap-y)))) scale(1.08) rotate(-3deg); opacity: 1; animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  36.5% { transform: translate(0px, calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  38.58% { transform: translate(calc(-1 * (100% + var(--tidy-gap-x))), calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; }
  39.36% { transform: translate(calc(-1 * (100% + var(--tidy-gap-x))), calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; }
  41.7% { transform: translate(calc(-1 * (100% + var(--tidy-gap-x))), calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(calc(-1 * (100% + var(--tidy-gap-x))), calc(-1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-8 {
  0% { opacity: 0; }
  27% { opacity: 0; }
  28.2% { opacity: 1; }
  34.7% { opacity: 1; }
  36.5% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes tidy-9 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  36.5% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  38.58% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 1; }
  39.36% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 1; }
  41.7% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-10 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  36.5% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  38.58% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  39.36% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  41.7% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-11 {
  0% { opacity: 0; transform: scale(1); }
  36.5% { opacity: 0; transform: scale(1); }
  37.436% { opacity: 0; transform: scale(1.1); }
  39.1% { opacity: 1; transform: scale(1.3); }
  41.596% { opacity: 0; transform: scale(1.6); }
  41.7% { opacity: 0; transform: scale(1); }
  100% { opacity: 0; transform: scale(1); }
}

@keyframes tidy-12 {
  0% { background-color: var(--tidy-ledge); }
  36.5% { background-color: var(--tidy-ledge); }
  37.54% { background-color: var(--tidy-flash); }
  43.7% { background-color: var(--tidy-ledge); }
  100% { background-color: var(--tidy-ledge); }
}

@keyframes tidy-13 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  47% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: ease-out; }
  48.2% { transform: translate(0px, 0px) scale(1.08) rotate(4deg); opacity: 1; animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1); }
  54.7% { transform: translate(calc(2 * (100% + var(--tidy-gap-x))), calc(1 * (100% + var(--tidy-gap-y)))) scale(1.08) rotate(4deg); opacity: 1; animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  56.5% { transform: translate(calc(2 * (100% + var(--tidy-gap-x))), calc(1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  58.58% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), calc(1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; }
  59.36% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), calc(1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 1; }
  61.7% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), calc(1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), calc(1 * (100% + var(--tidy-gap-y)))) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-14 {
  0% { opacity: 0; }
  47% { opacity: 0; }
  48.2% { opacity: 1; }
  54.7% { opacity: 1; }
  56.5% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes tidy-15 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  56.5% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  58.58% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 1; }
  59.36% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 1; }
  61.7% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(calc(1 * (100% + var(--tidy-gap-x))), 0px) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-16 {
  0% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  56.5% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  58.58% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  59.36% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  61.7% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  92% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  92.01% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 0; }
  97% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
  100% { transform: translate(0px, 0px) scale(1) rotate(0deg); opacity: 1; }
}

@keyframes tidy-17 {
  0% { opacity: 0; transform: scale(1); }
  56.5% { opacity: 0; transform: scale(1); }
  57.436% { opacity: 0; transform: scale(1.1); }
  59.1% { opacity: 1; transform: scale(1.3); }
  61.596% { opacity: 0; transform: scale(1.6); }
  61.7% { opacity: 0; transform: scale(1); }
  100% { opacity: 0; transform: scale(1); }
}

@keyframes tidy-18 {
  0% { background-color: var(--tidy-ledge); }
  56.5% { background-color: var(--tidy-ledge); }
  57.54% { background-color: var(--tidy-flash); }
  63.7% { background-color: var(--tidy-ledge); }
  100% { background-color: var(--tidy-ledge); }
}

@keyframes tidy-19 {
  0% { opacity: 0; transform: translateY(0); }
  36.5% { opacity: 0; transform: translateY(0); animation-timing-function: cubic-bezier(0.5, 1, 0.89, 1); }
  39% { opacity: 1; transform: translateY(-7px); animation-timing-function: cubic-bezier(0.5, 1, 0.89, 1); }
  45.5% { opacity: 0; transform: translateY(-24px); }
  45.51% { opacity: 0; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(0); }
}

@keyframes tidy-20 {
  0% { opacity: 1; }
  23.7% { opacity: 1; }
  25.2% { opacity: 0; }
  92% { opacity: 0; }
  97% { opacity: 1; }
  100% { opacity: 1; }
}

@keyframes tidy-21 {
  0% { opacity: 0; }
  23.7% { opacity: 0; }
  25.2% { opacity: 1; }
  41.7% { opacity: 1; }
  43.2% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes tidy-22 {
  0% { opacity: 0; }
  41.7% { opacity: 0; }
  43.2% { opacity: 1; }
  92% { opacity: 1; }
  93.5% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes tidy-23 {
  0% { transform: translateY(0em); animation-timing-function: step-end; }
  10% { transform: translateY(-1.25em); animation-timing-function: step-end; }
  20% { transform: translateY(-2.5em); animation-timing-function: step-end; }
  30% { transform: translateY(-3.75em); animation-timing-function: step-end; }
  40% { transform: translateY(-5em); animation-timing-function: step-end; }
  50% { transform: translateY(-6.25em); animation-timing-function: step-end; }
  60% { transform: translateY(-7.5em); animation-timing-function: step-end; }
  97% { transform: translateY(0em); animation-timing-function: step-end; }
  100% { transform: translateY(0em); }
}

@keyframes tidy-24 {
  0% { opacity: 0; transform: translateY(12%); }
  68.7% { opacity: 0; transform: translateY(12%); animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  72.2% { opacity: 1; transform: translateY(0); }
  92% { opacity: 1; transform: translateY(0); animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1); }
  97% { opacity: 0; transform: translateY(12%); }
  100% { opacity: 0; transform: translateY(12%); }
}

@media (prefers-reduced-motion: no-preference) {
  .tidy [data-tile="sun-3"] { animation: tidy-1 10000ms linear infinite; }
  .tidy [data-tile="sun-3"] .tidy-touch { animation: tidy-2 10000ms linear infinite; }
  .tidy [data-tile="sun-1"] { animation: tidy-3 10000ms linear infinite; }
  .tidy [data-tile="sun-2"] { animation: tidy-4 10000ms linear infinite; }
  .tidy [data-shelf="0"] .tidy-ring { animation: tidy-5 10000ms linear infinite; }
  .tidy [data-shelf="0"] .tidy-ledge { animation: tidy-6 10000ms linear infinite; }
  .tidy [data-tile="lake-3"] { animation: tidy-7 10000ms linear infinite; }
  .tidy [data-tile="lake-3"] .tidy-touch { animation: tidy-8 10000ms linear infinite; }
  .tidy [data-tile="lake-1"] { animation: tidy-9 10000ms linear infinite; }
  .tidy [data-tile="lake-2"] { animation: tidy-10 10000ms linear infinite; }
  .tidy [data-shelf="1"] .tidy-ring { animation: tidy-11 10000ms linear infinite; }
  .tidy [data-shelf="1"] .tidy-ledge { animation: tidy-12 10000ms linear infinite; }
  .tidy [data-tile="city-1"] { animation: tidy-13 10000ms linear infinite; }
  .tidy [data-tile="city-1"] .tidy-touch { animation: tidy-14 10000ms linear infinite; }
  .tidy [data-tile="city-2"] { animation: tidy-15 10000ms linear infinite; }
  .tidy [data-tile="city-3"] { animation: tidy-16 10000ms linear infinite; }
  .tidy [data-shelf="3"] .tidy-ring { animation: tidy-17 10000ms linear infinite; }
  .tidy [data-shelf="3"] .tidy-ledge { animation: tidy-18 10000ms linear infinite; }
  .tidy .tidy-combo { animation: tidy-19 10000ms linear infinite; }
  .tidy [data-caption="hint"] { animation: tidy-20 10000ms linear infinite; }
  .tidy [data-caption="two"] { animation: tidy-21 10000ms linear infinite; }
  .tidy [data-caption="one"] { animation: tidy-22 10000ms linear infinite; }
  .tidy .tidy-timer-digits { animation: tidy-23 10000ms linear infinite; }
  .tidy .tidy-review { animation: tidy-24 10000ms linear infinite; }
}

@keyframes dup-1 {
  0% { opacity: 0; transform: scale(0.4); }
  5% { opacity: 0; transform: scale(0.4); animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  8.25% { opacity: 1; transform: scale(1); }
  91.25% { opacity: 1; transform: scale(1); }
  94.375% { opacity: 0; transform: scale(0.4); }
  100% { opacity: 0; transform: scale(0.4); }
}

@keyframes dup-2 {
  0% { opacity: 0; }
  5% { opacity: 0; animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  8.25% { opacity: 1; }
  91.25% { opacity: 1; }
  94.375% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes dup-3 {
  0% { opacity: 0; transform: scale(0.4); }
  6.5% { opacity: 0; transform: scale(0.4); animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  9.75% { opacity: 1; transform: scale(1); }
  33.75% { opacity: 1; transform: scale(1); }
  35.625% { opacity: 0; transform: scale(0.4); }
  100% { opacity: 0; transform: scale(0.4); }
}

@keyframes dup-4 {
  0% { opacity: 0; }
  6.5% { opacity: 0; animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  9.75% { opacity: 1; }
  33.75% { opacity: 1; }
  35.625% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes dup-5 {
  0% { opacity: 0; transform: scale(0.4); }
  8% { opacity: 0; transform: scale(0.4); animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  11.25% { opacity: 1; transform: scale(1); }
  91.25% { opacity: 1; transform: scale(1); }
  94.375% { opacity: 0; transform: scale(0.4); }
  100% { opacity: 0; transform: scale(0.4); }
}

@keyframes dup-6 {
  0% { opacity: 0; }
  8% { opacity: 0; animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  11.25% { opacity: 1; }
  91.25% { opacity: 1; }
  94.375% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes dup-7 {
  0% { opacity: 0; transform: scale(0.5); }
  30.625% { opacity: 0; transform: scale(0.5); animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  33.75% { opacity: 0.55; transform: scale(1); }
  40% { opacity: 0; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(1.5); }
}

@keyframes dup-8 {
  0% { opacity: 0; transform: scale(0.5); }
  44.375% { opacity: 0; transform: scale(0.5); animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  47.5% { opacity: 0.55; transform: scale(1); }
  53.75% { opacity: 0; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(1.5); }
}

@keyframes dup-9 {
  0% { opacity: 1; }
  33.75% { opacity: 1; }
  35.625% { opacity: 0; }
  91.25% { opacity: 0; }
  94.375% { opacity: 1; }
  100% { opacity: 1; }
}

@keyframes dup-10 {
  0% { opacity: 0; }
  33.75% { opacity: 0; }
  35.625% { opacity: 1; }
  91.25% { opacity: 1; }
  94.375% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes dup-11 {
  0% { transform: scale(1); }
  47.5% { transform: scale(1); }
  48.75% { transform: scale(0.97); }
  50.625% { transform: scale(1); }
  100% { transform: scale(1); }
}

@keyframes dup-12 {
  0% { opacity: 0; }
  51.25% { opacity: 0; }
  56.25% { opacity: 1; }
  86.25% { opacity: 1; }
  90% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes dup-13 {
  0% { transform: translateY(105%); }
  51.25% { transform: translateY(105%); animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); }
  56.25% { transform: translateY(0); }
  86.25% { transform: translateY(0); animation-timing-function: cubic-bezier(0.32, 0, 0.67, 0); }
  90% { transform: translateY(105%); }
  100% { transform: translateY(105%); }
}

@media (prefers-reduced-motion: no-preference) {
  .dup [data-thumb="2"] .dup-check { animation: dup-1 8000ms linear infinite; }
  .dup [data-thumb="2"] .dup-dim { animation: dup-2 8000ms linear infinite; }
  .dup [data-thumb="3"] .dup-check { animation: dup-3 8000ms linear infinite; }
  .dup [data-thumb="3"] .dup-dim { animation: dup-4 8000ms linear infinite; }
  .dup [data-thumb="4"] .dup-check { animation: dup-5 8000ms linear infinite; }
  .dup [data-thumb="4"] .dup-dim { animation: dup-6 8000ms linear infinite; }
  .dup .dup-tap-thumb { animation: dup-7 8000ms linear infinite; }
  .dup .dup-tap-move { animation: dup-8 8000ms linear infinite; }
  .dup [data-swap="before"] { animation: dup-9 8000ms linear infinite; }
  .dup [data-swap="after"] { animation: dup-10 8000ms linear infinite; }
  .dup .dup-move { animation: dup-11 8000ms linear infinite; }
  .dup .dup-scrim { animation: dup-12 8000ms linear infinite; }
  .dup .dup-sheet { animation: dup-13 8000ms linear infinite; }
}
