.icon {
  background-color: var(--icon-color, currentColor);
  block-size: var(--icon-size, 1rem);
  display: inline-block;
  flex-shrink: 0;
  inline-size: var(--icon-size, 1rem);
  mask-image: var(--svg);
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: var(--icon-size, 1rem);
  pointer-events: none;
  user-select: none;
}

img.icon {
  background: none;
}

.icon--loading {
  --svg: url("/assets/loading-b8fb367c.svg");
  animation: var(--animate-spin);
  animation-duration: 1s;
}

/****************************************************************
* Lucide (https://lucide.dev)
* Open-source icon library with a consistent style
*****************************************************************/
.icon--camera { --svg: url("camera.svg"); }
.icon--chevron-left { --svg: url("/assets/chevron-left-c0e2dc09.svg"); }
.icon--chevron-right { --svg: url("/assets/chevron-right-cefe893c.svg"); }
.icon--chevrons-up-down { --svg: url("/assets/chevrons-up-down-f4f3a04e.svg"); }
.icon--circle-alert { --svg: url("/assets/circle-alert-c59e0a27.svg"); }
.icon--circle-check { --svg: url("/assets/circle-check-eb15357f.svg"); }
.icon--copy { --svg: url("copy.svg"); }
.icon--download { --svg: url("download.svg"); }
.icon--fish { --svg: url("/assets/fish-cadd8f28.svg"); }
.icon--ellipsis { --svg: url("/assets/ellipsis-ced9163f.svg"); }
.icon--minus { --svg: url("minus.svg"); }
.icon--moon { --svg: url("moon.svg"); }
.icon--log-out { --svg: url("/assets/log-out-2cd4a4ff.svg"); }
.icon--panel-left { --svg: url("/assets/panel-left-58d5a2c2.svg"); }
.icon--search { --svg: url("search.svg"); }
.icon--share { --svg: url("share.svg"); }
.icon--sun { --svg: url("sun.svg"); }
.icon--x { --svg: url("x.svg"); }
.icon--zap { --svg: url("x.svg"); }
