function updateZoneVisuals(zone, zoneData) { const satisfaction = gameState.zoneSatisfaction[zone.id]; const bar = document.getElementById(`bar-${zone.id}`); if (bar) { bar.style.width = satisfaction + '%'; }

@keyframes float { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(2deg); } }

document.addEventListener('mouseup', () => { gameState.isMassaging = false; if (gameState.currentZone) { gameState.currentZone.classList.remove('massaging'); } gameState.currentZone = null; yankeeCursor.classList.remove('active'); });

.tool-btn.selected { background: var(--accent); color: var(--bg); transform: scale(1.05); }

// Custom cursor document.addEventListener('mousemove', (e) => { yankeeCursor.style.left = e.clientX - 30 + 'px'; yankeeCursor.style.top = e.clientY - 30 + 'px'; });

: In many couples' board games, a massage serves as the "punishment" for the loser, turning a competitive moment into a bonding one.

particleContainer.appendChild(particle); setTimeout(() => particle.remove(), 1000); }

<div class="space-y-4"> <div class="flex items-center justify-between"> <span class="text-sm" style="color: var(--muted)">Time</span> <span id="timerDisplay" class="font-display font-bold">00:00</span> </div>