.mg-loader {
  --mg-loader-size: 48px;
  --mg-loader-color: var(--magnetic, #58102f);
  --mg-loader-cycle: 1.2s;
  --mg-loader-blade: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M66.9 23.6C67.0 24.2 67.2 24.7 67.3 25.3C67.4 25.9 67.5 26.4 67.6 27.0C67.7 27.6 67.8 28.2 67.9 28.8C68.0 29.5 68.1 30.1 68.1 30.8C68.2 31.4 68.3 32.1 68.3 32.8C68.3 33.5 68.2 34.2 68.1 34.9C68.1 35.6 68.0 36.4 67.9 37.2C67.9 38.0 67.9 38.9 67.7 39.7C67.6 40.5 67.3 41.2 67.0 42.1C66.7 42.9 66.5 43.9 66.2 44.7C65.8 45.6 65.4 46.5 64.9 47.3C64.4 48.1 63.9 49.0 63.2 49.5C62.5 50.1 61.7 50.6 60.7 50.5C59.7 50.4 58.5 49.9 57.4 48.8C56.2 47.7 54.8 45.2 53.9 44.0C53.0 42.8 52.4 42.2 51.8 41.6C51.2 41.0 50.7 40.7 50.2 40.2C49.7 39.8 49.2 39.4 48.8 39.1C48.4 38.8 48.0 38.4 47.6 38.2C47.2 38.0 46.8 37.9 46.5 37.7C46.1 37.6 45.7 37.4 45.3 37.2C44.9 37.1 44.6 36.9 44.2 36.7C43.7 36.6 43.3 36.6 42.8 36.5C42.4 36.4 41.9 36.3 41.4 36.2C40.8 36.2 40.3 36.2 39.5 36.3C38.7 36.3 38.1 36.3 36.7 36.6C35.3 37.0 33.1 38.0 31.1 38.4C29.2 38.9 25.8 39.7 25.0 39.2C24.3 38.7 25.8 36.7 26.7 35.5C27.6 34.2 29.5 32.7 30.5 31.7C31.5 30.6 32.2 29.9 32.8 29.1C33.4 28.4 33.7 27.8 34.1 27.3C34.5 26.7 34.8 26.2 35.1 25.7C35.4 25.2 35.5 24.7 35.7 24.3C35.9 23.8 36.2 23.4 36.3 22.9C36.4 22.5 36.5 22.1 36.6 21.6C36.6 21.1 36.5 20.6 36.5 20.1C36.5 19.6 36.6 19.1 36.5 18.5C36.3 17.8 36.2 17.2 35.8 16.2C35.3 15.2 34.4 13.9 33.7 12.5C33.1 11.1 32.0 9.0 31.9 7.9C31.9 6.7 32.8 6.4 33.4 5.8C34.0 5.2 34.7 4.6 35.5 4.3C36.3 4.0 37.3 4.1 38.2 4.0C39.0 3.9 39.8 3.8 40.7 3.7C41.5 3.7 42.3 3.6 43.1 3.7C43.9 3.7 44.7 3.9 45.5 4.0C46.2 4.1 46.9 4.2 47.7 4.3C48.4 4.5 49.1 4.7 49.8 4.9C50.4 5.1 51.1 5.3 51.7 5.6C52.4 5.9 53.0 6.1 53.6 6.4C54.1 6.8 54.7 7.2 55.2 7.5C55.8 7.9 56.3 8.2 56.8 8.5C57.3 8.8 57.8 9.2 58.2 9.6C58.7 10.0 59.1 10.5 59.5 10.9C59.9 11.4 60.3 11.8 60.7 12.2C61.0 12.6 61.4 13.0 61.7 13.5C62.1 13.9 62.5 14.3 62.8 14.7C63.1 15.2 63.4 15.7 63.6 16.1C63.9 16.6 64.2 17.1 64.4 17.6C64.6 18.1 64.7 18.6 65.0 19.1C65.2 19.6 65.5 20.0 65.8 20.5C66.0 21.0 66.2 21.5 66.4 22.0C66.6 22.5 66.7 23.1 66.9 23.6Z'/%3E%3C/svg%3E");
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: var(--ink, #212934);
  font-family: var(--sans, "Montserrat", system-ui, sans-serif);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}
.mg-loader--sm { --mg-loader-size: 20px; flex-direction: row; gap: 8px; font-size: 14px; }
.mg-loader--lg { --mg-loader-size: 72px; gap: 16px; font-size: 16px; }
.mg-loader--block { display: flex; width: 100%; padding: 32px 16px; }

.mg-loader__mark {
  position: relative;
  display: block;
  width: var(--mg-loader-size);
  height: var(--mg-loader-size);
  flex: none;
  animation: mg-loader-turn calc(var(--mg-loader-cycle) * 3) linear infinite;
}
.mg-loader__mark > i {
  position: absolute;
  inset: 0;
  background: var(--mg-loader-color);
  -webkit-mask: var(--mg-loader-blade) center / 100% 100% no-repeat;
  mask: var(--mg-loader-blade) center / 100% 100% no-repeat;
  rotate: 6.3deg;
  animation: mg-loader-blade var(--mg-loader-cycle) cubic-bezier(0.45, 0, 0.55, 1) infinite;
}
.mg-loader__mark > i:nth-child(2) { rotate: 126.3deg; animation-delay: calc(var(--mg-loader-cycle) * -0.6667); }
.mg-loader__mark > i:nth-child(3) { rotate: 246.3deg; animation-delay: calc(var(--mg-loader-cycle) * -0.3333); }
.mg-loader__label { color: var(--muted, #5a6570); }
.mg-loader__label:empty { display: none; }
button .mg-loader, .btn .mg-loader { --mg-loader-color: currentColor; color: inherit; font: inherit; }
button .mg-loader__label, .btn .mg-loader__label { color: inherit; }

@keyframes mg-loader-turn {
  0% { transform: rotate(0deg); animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1); }
  33.333% { transform: rotate(120deg); animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1); }
  66.666% { transform: rotate(240deg); animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1); }
  100% { transform: rotate(360deg); }
}
@keyframes mg-loader-blade {
  0%, 100% { transform: translateY(0) scale(1); opacity: 1; }
  45% { transform: translateY(-7%) scale(0.86); opacity: 0.55; }
}

.mg-loader-cover {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(255, 255, 255, 0.82);
  border-radius: inherit;
  animation: mg-loader-fade 0.2s ease-out both;
}
.mg-loader-cover--page {
  position: fixed;
  z-index: 1000;
  background: rgba(246, 246, 246, 0.88);
  border-radius: 0;
}
.mg-loader-host { position: relative; }

@keyframes mg-loader-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .mg-loader__mark { animation: none; }
  .mg-loader__mark > i { animation: mg-loader-dim calc(var(--mg-loader-cycle) * 2) ease-in-out infinite; }
  .mg-loader-cover { animation: none; }
}
@keyframes mg-loader-dim {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.45; }
}
