diff --git a/PROJECT.md b/PROJECT.md index abcef37..c8d28d5 100644 --- a/PROJECT.md +++ b/PROJECT.md @@ -681,12 +681,13 @@ What that cost each screen: **The walk-on's two levels are ONE face at ONE size** (Oliver): a comparison drawn at two sizes is a headline with a footnote. Only the colour differs, and only where it means something. -Deliberately NOT taken from the handoff: **the wall's corner chips**. Both went the same evening -(Oliver: "sinnlos") — LAST remembered what you played last time, which a gallery of six posters does -not need to do for you, and 18 RUNGS was a number about a mode on the screen where you choose -BETWEEN modes. The LAST chip survives on the DIFFICULTY chips, where it is the only thing that says -what you last set. One other deviation: the meters' legend reads `PACE · BOUNCE`, the order the bars -are actually drawn in. +Deliberately NOT taken from the handoff: **the corner chips, all of them**. They went the same +evening (Oliver: "sinnlos", then "da auch") — LAST remembered what you played last time, which a +gallery of six posters does not need to do for you; 18 RUNGS was a number about a mode on the screen +where you choose BETWEEN modes; and the difficulty screen's LAST was the last place still breaking +the wizard's own rule that a QUESTION SCREEN CARRIES NO SELECTION. The `.last` class is gone from +the stylesheet with them. One other deviation: the meters' legend reads `PACE · BOUNCE`, the order +the bars are actually drawn in. With the chips went the last caller of the second step's poster branch (`buildSub`'s `t.kids` loop): no MENU row has fanned out into sub-posters since the cup left that pocket, so it is gone too. diff --git a/index.html b/index.html index 257b0eb..5dcf92b 100644 --- a/index.html +++ b/index.html @@ -518,9 +518,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one' && !window.Capacitor?.isNat pointer-events: none; } /* the words and the chips ride ABOVE the veil — a pseudo-element is the last thing painted */ #modeList .cb, #modeSub .cb { position: relative; z-index: 2; } - .last { position: absolute; z-index: 2; top: 7px; right: 9px; font: 400 8px Silkscreen, monospace; - color: var(--acid); background: rgba(0,0,0,0.72); padding: 3px 6px; - letter-spacing: 1px; border: 1px solid rgba(188,212,85,0.5); } #modeList b, #modeSub b { text-shadow: 0 1px 0 #000, 0 0 6px rgba(0,0,0,0.9); } /* the subtitle carries the mode's one-line rules over busy art, so it gets WHITE at full opacity, a size up from the court rows' 9px, and a solid black underlay — "barely readable" diff --git a/src/main.js b/src/main.js index 096a2c3..4f9bd7a 100644 --- a/src/main.js +++ b/src/main.js @@ -157,9 +157,10 @@ function buildSub(top) { if (t.diffs) DIFFS.forEach((d, i) => { const b = document.createElement('button'); b.className = 'chip' + (i === DIFFS.length - 1 ? ' hot' : ''); + // no LAST chip here either (Oliver): a question screen carries no memory of its own answer — + // the wizard's own rule, applied to the last screen that was still breaking it b.innerHTML = `${d.name}` - + [0, 1, 2].map(k => ``).join('') + '' - + (d.id === pickedDiff ? 'LAST' : ''); + + [0, 1, 2].map(k => ``).join('') + ''; b.addEventListener('click', () => { pickedDiff = d.id; try { localStorage.setItem('diff', d.id); } catch {}