body {
font-family: Arial;
margin: 50px;
}
.range-wrap {
position: relative;
--svg:url("data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 15 64 50' preserveAspectRatio='none' ><path d='M0 64 C16 64 16 32 32 32 C48 32 48 64 64 64 L64 48 C52 48 52 16 32 16 C12 16 12 48 0 48 L0 64 Z' fill='white'/></svg>") var(--p,0) 0;
}
.ticks {
--sw:120px;
position: absolute;
left: -30px;
right: -30px;
padding:0 10px;
height: 50px;
background: repeating-linear-gradient(to right, red 0 3px, transparent 1px 9px) content-box;
-webkit-mask:var(--svg) /var(--sw) 50px,
linear-gradient(to right, #fff calc(50% - var(--sw)/2 + 1px), transparent 0 calc(50% + var(--sw)/2 - 1px), #fff 0)
right var(--p) top 33px/calc(200% - var(--sw)) 16px;
-webkit-mask-repeat:no-repeat;
z-index:999;
}
input[type=range] {
--sw:100px;
-webkit-appearance: none;
appearance: none;
margin: 20px 0 20px -20px;
padding:0 20px;
width:100%;
height: 90px;