Я бы пошел другим путем и не стал бы скруглять кучу дивов. А вместо этого спрятал бы нескругленные части.
Добавляем новый див
...
<div class="menu">
<div class="toggle-hidden">
</div>
<div class="toggle">
...
Прописываем ему класс
.toggle-hidden {
content: '';
display: block;
width: 65px;
height: 65px;
z-index: 10000;
overflow: hidden;
position: absolute;
background: linear-gradient(45deg, #8460ed, #ff1252); // даем цвет чтобы спрятать ненужное
background-size: 200% 200%; // тут можно поиграться с циферками
background-position: calc(50% - 65px/2) calc(50% - 65px/2); // чтобы цвета больше совпадали с боди
border-radius: 50%;
}
И дальше остается только цвет подобрать чтоб в фон попадало идеально
Касательно иконок
ion-icon {
color: white;
transform: rotate(calc(-360deg / 8 * var(--i)));
display: inline-block;
}