@layer lab{.tf-stage{flex-direction:column;align-items:stretch;gap:10px}.tf-track{width:100%;height:24px;position:relative;overflow:hidden}.tf-box{background-color:var(--accent);width:16px;height:16px;animation:2.4s infinite alternate tf-move;animation-play-state:var(--ps,running);border-radius:3px}.tf-stage .caption{font-family:var(--mono);color:var(--muted);font-size:11px}@keyframes tf-move{0%{animation-timing-function:linear;transform:translate(0)}25%{animation-timing-function:ease;transform:translate(100px)}50%{animation-timing-function:ease-in;transform:translate(200px)}75%{animation-timing-function:ease-out;transform:translate(300px)}to{transform:translate(400px)}}.sprite-stage{gap:40px}.sprite{width:48px;height:48px;animation-play-state:var(--ps,running);background-position:0 0;background-repeat:no-repeat}.sprite.heart{background-image:var(--heart);background-size:2900%;animation:1s steps(29,jump-none) infinite sprite-heart}.sprite.three{background-image:var(--steps);animation:1.5s steps(3,jump-none) infinite both sprite-three}@keyframes sprite-heart{to{background-position:right 0}}@keyframes sprite-three{to{background-position:100% 0}}.ps-stage{flex-direction:column;gap:12px}.runner{cursor:pointer;background:var(--runner) no-repeat 0 0;width:50px;height:72px;animation:1s steps(10,end) infinite ps-run;animation-play-state:var(--ps,running)}.ps-stage .caption{font-family:var(--mono);color:var(--muted);font-size:12px}@keyframes ps-run{to{background-position:-500px 0}}.comp-stage{gap:40px;min-height:160px}.demo-cell{font-family:var(--mono);color:var(--muted);flex-direction:column;align-items:center;gap:10px;font-size:11px;display:flex}.composition{aspect-ratio:1;background:var(--heart) no-repeat 100% 0 / 2900%;width:50px;animation:1.2s infinite comp-move;animation-play-state:var(--ps,running);transform:translate(-50px)scale(.5)}.composition.replace{animation-composition:replace}.composition.accumulate{animation-composition:accumulate}.composition.add{animation-composition:add}@keyframes comp-move{to{transform:translate(50px)scale(2)}}}
