.victory-show[data-world="espace"] {
  --vx-sky: #372a76;
  --vx-deep: #16112e;
  --vx-accent: #ffdba9;
}
.victory-show[data-world="agent"] {
  --vx-sky: #285950;
  --vx-deep: #102629;
  --vx-accent: #f9d59e;
}
.victory-show[data-world="nombres"] {
  --vx-sky: #436b68;
  --vx-deep: #163649;
  --vx-accent: #ffdfa0;
}

.vx-space-flight { transform-box: view-box; transform-origin: 0 0; }
.vx-space-mid .vx-space-flight { transform: translate(604px, 327px) rotate(3deg) scale(.88); }
.vx-space-final .vx-space-flight { transform: translate(754px, 194px) rotate(11deg) scale(.91); }
.vx-space-thrust { transform-origin: -65px 0; transform-box: view-box; opacity: .85; }
.vx-space-mid .vx-space-thrust { transform: scaleX(.46); opacity: .57; }
.vx-space-rider { transform-box: fill-box; transform-origin: center 81%; }
.vx-space-marker { fill: #fff0aa; stroke: #edbd96; stroke-width: 1.5; }
.vx-space-comet { fill: #e9d8ff; opacity: .7; }
.vx-space-route, .vx-space-beacon { opacity: .86; }

.victory-show[open] .vx-space-final .vx-space-flight { animation: vx-space-over-moon 4.98s both; }
.victory-show[open] .vx-space-mid .vx-space-flight { animation: vx-space-touchdown 4.98s both; }
.victory-show[open] .vx-space-thrust { animation: vx-space-engine 4.95s ease-in-out both; }
.victory-show[open] .vx-space-mid .vx-space-thrust { animation-name: vx-space-engine-land; }
.victory-show[open] .vx-space-rider { animation: vx-space-wave 4.95s ease-in-out both; }
.victory-show[open] .vx-space-route, .victory-show[open] .vx-space-beacon { animation: vx-space-route 4.98s ease-out both; }
.victory-show[open] .vx-space-comet { animation: vx-space-route 4.9s ease-out both; }

@keyframes vx-space-over-moon {
  0% { transform: translate(145px, 362px) rotate(-17deg) scale(.76); animation-timing-function: ease-in; }
  16% { transform: translate(229px, 326px) rotate(-23deg) scale(.81); animation-timing-function: ease-out; }
  38% { transform: translate(396px, 216px) rotate(-27deg) scale(.93); animation-timing-function: ease-in-out; }
  61% { transform: translate(597px, 150px) rotate(-5deg) scale(.84); animation-timing-function: ease-in-out; }
  82% { transform: translate(732px, 161px) rotate(14deg) scale(.85); animation-timing-function: ease-out; }
  100% { transform: translate(754px, 194px) rotate(11deg) scale(.91); }
}

@keyframes vx-space-touchdown {
  0% { transform: translate(154px, 290px) rotate(-14deg) scale(.73); animation-timing-function: ease-in; }
  23% { transform: translate(282px, 221px) rotate(-18deg) scale(.83); animation-timing-function: ease-out; }
  50% { transform: translate(450px, 228px) rotate(8deg) scale(.92); animation-timing-function: ease-in-out; }
  71% { transform: translate(568px, 278px) rotate(17deg) scale(.93); animation-timing-function: ease-out; }
  89% { transform: translate(604px, 330px) rotate(4deg) scale(.88); animation-timing-function: ease-in-out; }
  100% { transform: translate(604px, 327px) rotate(3deg) scale(.88); }
}

@keyframes vx-space-engine {
  0% { transform: scale(.58, .8); opacity: .59; }
  19% { transform: scale(1.12, 1.06); opacity: .95; }
  43% { transform: scale(.91, .91); opacity: .8; }
  69% { transform: scale(1.06, 1.13); opacity: 1; }
  100% { transform: scale(.88, .94); opacity: .85; }
}

@keyframes vx-space-engine-land {
  0% { transform: scale(.73, .83); opacity: .64; }
  30% { transform: scale(1.13, .96); opacity: .95; }
  64% { transform: scale(.89, .91); opacity: .84; }
  100% { transform: scale(.46, .8); opacity: .57; }
}

@keyframes vx-space-wave {
  0%, 100% { transform: rotate(0); }
  19% { transform: rotate(-13deg) translateY(-3%); }
  34% { transform: rotate(5deg); }
  57% { transform: rotate(12deg) translateY(-6%); }
  76% { transform: rotate(-11deg) translateY(-4%); }
  90% { transform: rotate(7deg) translateY(-7%); }
}

@keyframes vx-space-route {
  0% { opacity: .12; }
  28% { opacity: .54; }
  70% { opacity: .88; }
  100% { opacity: .79; }
}

.vx-agent-door {
  transform-box: view-box;
  transform-origin: 646px 296px;
  transform: translate(153px, 0) skewY(-6deg) scaleX(.25);
}
.vx-agent-dial { transform-box: view-box; transform-origin: 0 0; transform: rotate(286deg); }
.vx-agent-latch { opacity: .65; }
.vx-agent-prize { transform: translateY(-6px); }
.vx-agent-beams { transform-box: view-box; transform-origin: center 54%; opacity: .57; }
.vx-agent-halo { opacity: .87; }
.vx-agent-glint { fill: #fff0ad; stroke: #e9c883; stroke-width: 1.5; }
.vx-agent-fingerprint { opacity: 1; }
.vx-agent-scan { transform: translateY(168px); opacity: .16; }
.vx-agent-led { fill: #a8e9ba; }
.vx-agent-spy { transform-box: fill-box; transform-origin: center 74%; }

.victory-show[open] .vx-agent-door { animation: vx-agent-unlock 5s both; }
.victory-show[open] .vx-agent-dial { animation: vx-agent-turn 3.36s ease-in-out both; }
.victory-show[open] .vx-agent-latch { animation: vx-agent-bolts 2.9s ease-in-out both; }
.victory-show[open] .vx-agent-prize { animation: vx-agent-reveal 5s both; }
.victory-show[open] .vx-agent-prize .vx-agent-spy { animation: vx-agent-curtsy 5s both; }
.victory-show[open] .vx-agent-beams { animation: vx-agent-searchlight 4.95s ease-in-out both; }
.victory-show[open] .vx-agent-halo { animation: vx-agent-halo 5s ease-in-out both; }
.victory-show[open] .vx-agent-glint { animation: vx-agent-halo 4.95s ease-in-out both; }
.victory-show[open] .vx-agent-fingerprint { animation: vx-agent-evidence 4.95s ease-in-out both; }
.victory-show[open] .vx-agent-scan { animation: vx-agent-scan 4.95s ease-in-out both; }
.victory-show[open] .vx-agent-led { animation: vx-agent-led 4.95s ease-in-out both; }
.victory-show[open] .vx-agent-guide { animation: vx-agent-detective 4.95s ease-in-out both; }

@keyframes vx-agent-unlock {
  0%, 39% { transform: translate(0, 0) skewY(0) scaleX(1); animation-timing-function: ease-in; }
  55% { transform: translate(15px, 0) skewY(-3deg) scaleX(.92); animation-timing-function: cubic-bezier(.12,.71,.3,1); }
  84% { transform: translate(142px, 0) skewY(-8deg) scaleX(.33); animation-timing-function: ease-in-out; }
  100% { transform: translate(153px, 0) skewY(-6deg) scaleX(.25); }
}

@keyframes vx-agent-turn {
  0%, 12% { transform: rotate(0); }
  33% { transform: rotate(98deg); }
  48% { transform: rotate(83deg); }
  68% { transform: rotate(216deg); }
  83% { transform: rotate(194deg); }
  100% { transform: rotate(286deg); }
}

@keyframes vx-agent-bolts {
  0%, 60% { transform: translateX(0); opacity: 1; }
  75% { transform: translateX(-13px); }
  90%, 100% { transform: translateX(-26px); opacity: .65; }
}

@keyframes vx-agent-reveal {
  0%, 44% { transform: translateY(31px) scale(.78); opacity: 0; }
  56% { opacity: .62; }
  76% { transform: translateY(-23px) scale(1.03); opacity: 1; }
  100% { transform: translateY(-6px) scale(1); opacity: 1; }
}

@keyframes vx-agent-curtsy {
  0%, 49%, 100% { transform: rotate(0) translateY(0); }
  65% { transform: rotate(-12deg) translateY(-5%); }
  82% { transform: rotate(10deg) translateY(-11%); }
  94% { transform: rotate(-5deg) translateY(1%); }
}

@keyframes vx-agent-searchlight {
  0% { transform: rotate(-8deg); opacity: .33; }
  49% { transform: rotate(9deg); opacity: .75; }
  100% { transform: rotate(0); opacity: .57; }
}

@keyframes vx-agent-halo {
  0%, 36% { opacity: .05; }
  74% { opacity: .96; }
  100% { opacity: .83; }
}

@keyframes vx-agent-evidence {
  0%, 13% { opacity: .18; }
  45% { opacity: .57; }
  72%, 100% { opacity: 1; }
}

@keyframes vx-agent-scan {
  0%, 12% { transform: translateY(0); opacity: .2; }
  23% { opacity: .69; }
  69% { transform: translateY(158px); opacity: .61; }
  100% { transform: translateY(168px); opacity: .16; }
}

@keyframes vx-agent-led {
  0%, 66% { fill: #e5bf81; }
  82%, 100% { fill: #a8e9ba; }
}

@keyframes vx-agent-detective {
  0%, 100% { transform: rotate(0) translateY(0); }
  31% { transform: rotate(-8deg) translateY(4%); }
  70% { transform: rotate(9deg) translateY(-12%); }
  88% { transform: rotate(-5deg) translateY(2%); }
}

.vx-cargo-crate-star { fill: #ffdf86; stroke: #fff1c8; stroke-width: 1.75; }
.vx-cargo-load { fill: #ffe698; stroke: #fff0ba; stroke-width: 2; opacity: 0; }
.vx-cargo-spark { fill: #ffdc91; stroke: #ffefc4; stroke-width: 1.75; }
.vx-cargo-companion, .vx-cargo-bot { transform-box: fill-box; transform-origin: center 79%; }
.vx-cargo-crane { transform: translate(-35px, 2px); }
.vx-cargo-engine { transform-box: view-box; transform-origin: 615px 391px; opacity: .85; }
.vx-cargo-mid .vx-cargo-cart { transform: translateX(46px); }
.vx-cargo-final .vx-cargo-cart { transform: translateX(128px); }
.vx-cargo-balance { transform-box: view-box; transform-origin: 0 0; }

.victory-show[open] .vx-cargo-crane { animation: vx-cargo-hoist 5s ease-in-out both; }
.victory-show[open] .vx-cargo-load { animation: vx-cargo-deposit 5s ease-in-out both; }
.victory-show[open] .vx-cargo-engine { animation: vx-cargo-engine 5s ease-in-out both; }
.victory-show[open] .vx-cargo-mid .vx-cargo-cart { animation: vx-cargo-pack 5s both; }
.victory-show[open] .vx-cargo-final .vx-cargo-cart { animation: vx-cargo-ship 5s both; }
.victory-show[open] .vx-cargo-balance { animation: vx-cargo-level 4.95s ease-out both; }
.victory-show[open] .vx-cargo-bot-left { animation: vx-cargo-robot 4.9s ease-in-out both; }
.victory-show[open] .vx-cargo-bot-right { animation: vx-cargo-robot 4.9s .11s ease-in-out both; }
.victory-show[open] .vx-cargo-companion { animation: vx-cargo-cheer 4.95s ease-in-out both; }
.victory-show[open] .vx-cargo-spark { animation: vx-agent-halo 4.95s ease-in-out both; }

@keyframes vx-cargo-hoist {
  0% { transform: translate(-111px, -7px); }
  33% { transform: translate(0, 4px); }
  54% { transform: translate(0, 69px); }
  70% { transform: translate(-10px, 21px); }
  100% { transform: translate(-35px, 2px); }
}

@keyframes vx-cargo-deposit {
  0%, 43% { opacity: 1; transform: scale(1); }
  61% { opacity: .55; transform: scale(.76); }
  75%, 100% { opacity: 0; transform: scale(.55); }
}

@keyframes vx-cargo-engine {
  0%, 50% { transform: scaleX(.34); opacity: .26; }
  73% { transform: scaleX(1.25); opacity: 1; }
  100% { transform: scaleX(.84); opacity: .85; }
}

@keyframes vx-cargo-pack {
  0%, 53% { transform: translateX(-63px); animation-timing-function: ease-in; }
  80% { transform: translateX(31px); animation-timing-function: ease-out; }
  100% { transform: translateX(46px); }
}

@keyframes vx-cargo-ship {
  0%, 50% { transform: translateX(-54px); animation-timing-function: ease-in; }
  83% { transform: translateX(104px); animation-timing-function: ease-out; }
  100% { transform: translateX(128px); }
}

@keyframes vx-cargo-level {
  0% { transform: rotate(-13deg); }
  28% { transform: rotate(10deg); }
  55% { transform: rotate(-6deg); }
  76% { transform: rotate(3deg); }
  100% { transform: rotate(0); }
}

@keyframes vx-cargo-robot {
  0%, 49%, 100% { transform: translateY(0) rotate(0); }
  68% { transform: translateY(-15%) rotate(-6deg); }
  85% { transform: translateY(2%) rotate(4deg); }
}

@keyframes vx-cargo-cheer {
  0%, 100% { transform: rotate(0) translateY(0); }
  31% { transform: rotate(-8deg) translateY(3%); }
  66% { transform: rotate(12deg) translateY(-10%); }
  85% { transform: rotate(-5deg) translateY(4%); }
}

@media (prefers-reduced-motion: reduce) {
  .victory-show .vx-space-mid *,
  .victory-show .vx-space-final *,
  .victory-show .vx-agent-mid *,
  .victory-show .vx-agent-final *,
  .victory-show .vx-cargo-mid *,
  .victory-show .vx-cargo-final * { animation: none !important; }
}
