Edit in JSFiddle

<div class="demo">
	<svg class="progress" width="140" height="140" viewBox="0 0 140 140">
  <defs>
    <filter id="dropshadow" x="-40%" y="-40%" width="180%" height="180%" filterUnits="userSpaceOnUse">
      <feGaussianBlur in="SourceAlpha" stdDeviation="3"/> <!-- stdDeviation is how much to blur -->
      <feOffset dx="10" dy="10" result="offsetblur"/> 
      <feOffset dx="-10" dy="-10" result="offsetblur"/>
      <feMerge> 
        <feMergeNode/>
        <feMergeNode in="SourceGraphic"/>
        <feMergeNode in="SourceGraphic"/>
      </feMerge>
    </filter>
  </defs>
  
		<circle class="progress__meter" cx="70" cy="70" r="54" stroke-width="12" />
		<circle style="filter:url(#dropshadow)" class="progress__value" cx="70" cy="70" r="54" stroke-width="12" />
	</svg>
	<input id="control" type="range" value="60" />
</div>

.demo {
	flex-direction: column;
	
	&:first-child {
		margin-bottom: 20px;
	}
}

.progress {
	transform: rotate(-90deg);
}

.progress__meter,
.progress__value {
	fill: none;
}

.progress__meter {
	stroke: #e6e6e6;
}

.progress__value {
	stroke: #f77a52;
	stroke-linecap: round;
}
var control = document.getElementById('control');
var progressValue = document.querySelector('.progress__value');

var RADIUS = 54;
var CIRCUMFERENCE = 2 * Math.PI * RADIUS;

function progress(value) {
	var progress = value / 100;
	var dashoffset = CIRCUMFERENCE * (1 - progress);
	
	console.log('progress:', value + '%', '|', 'offset:', dashoffset)
	
	progressValue.style.strokeDashoffset = dashoffset;
}

control.addEventListener('input', function(event) {
	progress(event.target.valueAsNumber);
});

progressValue.style.strokeDasharray = CIRCUMFERENCE;
progress(60);