diff --git a/website/components/symmetry-aware-einsum-contractions/SymmetryAwareEinsumContractionsApp.jsx b/website/components/symmetry-aware-einsum-contractions/SymmetryAwareEinsumContractionsApp.jsx
index 7ae42afaa..37285c751 100644
--- a/website/components/symmetry-aware-einsum-contractions/SymmetryAwareEinsumContractionsApp.jsx
+++ b/website/components/symmetry-aware-einsum-contractions/SymmetryAwareEinsumContractionsApp.jsx
@@ -741,7 +741,7 @@ export default function SymmetryAwareEinsumContractionsApp() {
style={{ letterSpacing: '0.2em' }}
>
- An interactive paper
+ An interactive walkthrough
({ kind: 'paragraph', text });
const preamble = {
title: 'Counting symmetry-aware einsums',
- deck: 'Multiply once; accumulate wherever the orbit projects. This interactive paper counts exact direct events as representative-product multiplication chains plus $O \\to Q$ accumulation updates.',
+ deck: 'Multiply once; accumulate wherever the orbit projects. This interactive walkthrough counts exact direct events as representative-product multiplication chains plus $O \\to Q$ accumulation updates.',
slots: {
einsumIntroBeforeSummed: [
p('A direct einsum visits assignments of index labels. Labels that appear on inputs but not on the output are '),
diff --git a/website/symmetry-explorer.route.test.mjs b/website/symmetry-explorer.route.test.mjs
index 0d78a98dc..a076a610c 100644
--- a/website/symmetry-explorer.route.test.mjs
+++ b/website/symmetry-explorer.route.test.mjs
@@ -76,7 +76,7 @@ test('masthead lands the result and appendix transition exposes an A-E map', ()
'utf8',
);
- assert.match(appSource, /An interactive paper/);
+ assert.match(appSource, /An interactive walkthrough/);
assert.match(appSource, /Counting symmetry-aware einsums/);
assert.match(appSource, /Symmetry can turn many label assignments into one representative product/);
assert.match(appSource, /reuse is only half the cost/);