(ctx(), '2d'); const autonomyLevel = 0.5; // or whatever your API returns const ritualWidth = 30; const ritualHeight = 180; const ritualYOffset = 400; function drawRitual() { ctx().clearRect(0, 0, canvas.width, canvas.height); const gradient = ctx().createLinearGradient(0, 0, canvas.width, 0); gradient.addColorStop(0, 'rgba(255,186,32,1)'); gradient.addColorStop(autonomyLevel, 'rgba(255,186,32,1)'); gradient.addColorStop(1, 'rgba(74,90,181,1)'); ctx().globalAlpha = 0.8; ctx().fillRect( canvas.width / 2 - ritualWidth / 2, canvas.height - ritualYOffset, ritualWidth, ritualHeight ); ctx().strokeStyle = gradient; ctx().lineWidth = 16; ctx().beginPath(); ctx().moveTo( canvas.width / 2 - ritualWidth / 2 + 8, canvas.height - ritualYOffset ); ctx()..lineTo( canvas.width / 2 + ritualWidth / 2 - 8, canvas.height -