Sea Select glow: defer sea-btn reopen + glow handoff past parse time; pulse the glow-handoff — TDD

room.html includes _sea_overlay.html (~L77) BEFORE _burger.html (~L167, which
holds #id_burger_btn + #id_sea_btn), so the overlay's two inline scripts
captured those btns at parse time → null → both bindings silently no-op'd:
the sea btn (active post-completion) did nothing on click + the burger stayed
stuck --priId because its glow-handoff transfer listener never bound. Defer both
the sea-btn REOPEN binding (_bindSeaReopen) & the burger→sea_btn→.sea-select
GLOW chain (_bindGlowHandoff) to DOMContentLoaded so the burger fan exists first.

Also make the glow-handoff halo PULSE (quick ease-in swell, slow ease-out decay
via per-segment timing fns + a lopsided 22/78 keystop split) instead of a flat
glow — the burger, then the sea btn after the handoff click, keep cueing
"click me to reopen your sea".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-06-08 00:38:58 -04:00
parent 0a6bfcf6cc
commit 82f4af9bcc
3 changed files with 92 additions and 31 deletions

View File

@@ -183,13 +183,39 @@
// the burger. AUTO DRAW's guard-OK ends the cycle permanently (the user
// has actually drawn — they've found the path). Owner: my_sea.html +
// _sea_overlay.html JS.
// The --priId border/color stays steady; the --ninUser halo PULSES — a quick
// ease-IN swell then a slow ease-OUT decay (user-spec 2026-06-08) so the burger
// (and, after the handoff click, the sea btn) keeps cueing "click me to reopen
// your sea" rather than sitting as a flat glow. Rides until the chain advances.
#id_burger_btn.glow-handoff,
#id_sea_btn.glow-handoff {
color: rgba(var(--priId), 1);
border-color: rgba(var(--priId), 1);
box-shadow:
0 0 0.5rem 0.1rem rgba(var(--ninUser), 0.75),
0 0 1.2rem 0.3rem rgba(var(--ninUser), 0.35);
animation: glow-handoff-pulse 1.8s infinite;
}
// Quick ease-IN to the bright peak over the first ~22% of the cycle, then a slow
// ease-OUT fade back to the dim trough across the remaining ~78%. The per-segment
// timing fns set the in/out asymmetry; the lopsided keystop split makes the swell
// feel snappy and the decay linger.
@keyframes glow-handoff-pulse {
0% {
box-shadow:
0 0 0.35rem 0.05rem rgba(var(--ninUser), 0.25),
0 0 0.7rem 0.1rem rgba(var(--ninUser), 0.12);
animation-timing-function: ease-in;
}
22% {
box-shadow:
0 0 0.6rem 0.15rem rgba(var(--ninUser), 0.95),
0 0 1.4rem 0.4rem rgba(var(--ninUser), 0.55);
animation-timing-function: ease-out;
}
100% {
box-shadow:
0 0 0.35rem 0.05rem rgba(var(--ninUser), 0.25),
0 0 0.7rem 0.1rem rgba(var(--ninUser), 0.12);
}
}
// ── Sky-saved glow (CAST SKY → SAVE SKY) ──────────────────────────────