@property --haze-reached {
  syntax: "<number>";
  inherits: true;
  initial-value: 1;
}

.haze-ground {
  --haze-reached: var(--haze-level, 1);
  display: inline-flex;
  align-items: center;
  gap: 0px;
  vertical-align: middle;
}
.haze-ground.haze-pending { --haze-reached: 0; }
.haze-ground.haze-pending.haze-landed {
  --haze-reached: var(--haze-level, 1);
  transition: --haze-reached 1298ms cubic-bezier(0.33, 1, 0.68, 1) var(--haze-hold, 0ms);
}

.haze-tally {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 18px;
  color: #fefeff;
  line-height: 1;
}

.haze-ground {
  position: relative;
  display: inline-block;
  width: 75px;
  height: 75px;
}
.haze-tick {
  display: block;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  background: conic-gradient(from -90deg,
    rgba(247, 248, 252, 0.95) 0turn, rgba(247, 248, 252, 0.95) calc(var(--haze-reached, 1) * 1turn),
    rgba(247, 248, 252, 0.2312) calc(var(--haze-reached, 1) * 1turn), rgba(247, 248, 252, 0.2312) 1turn);
  -webkit-mask: radial-gradient(closest-side, transparent calc(100% - 8px), #000 calc(100% - 8px));
  mask: radial-gradient(closest-side, transparent calc(100% - 8px), #000 calc(100% - 8px));
}
.haze-tally {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media print {
  .haze-ground.haze-pending { --haze-reached: var(--haze-level, 1); }
}
@media (prefers-reduced-motion: reduce) {
  .haze-ground.haze-pending { --haze-reached: var(--haze-level, 1); transition: none; }
}
