{p.items
.map((it, j) => {
const arrive = spr(t, at(j), 15, 10);
if (t < at(j)) return null;
// how many arrived after me (smoothly) = my slot in the list
let idx = 0;
for (let k = j + 1; k < n; k++) idx += spr(t, at(k), 15, 10);
const y = lerp(idx * (H + GAP), idx * 20, fold) + (1 - arrive) * -70;
const sc = lerp(1, 1 - idx * 0.055, fold) * lerp(0.88, 1, arrive);
const op = Math.min(1, arrive * 1.6) * lerp(1, 1 - idx * 0.28, fold);
const rtl = dirOf(it.title + it.body + it.app) === 'rtl';
const inner = 1 - fold * Math.min(1, idx * 1.5); // the folded cards behind show only their glass
return (
{it.icon}
{it.app}
{p.when}
{it.title}
{it.body}
);
})
.reverse()}