.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-cd8b0747.svg");
  animation: var(--animate-spin);
  animation-duration: 1s;
}

/****************************************************************
* Lucide (https://lucide.dev)
* Open-source icon library with a consistent style
*****************************************************************/
.icon--camera { --svg: url("/assets/camera-99e8ec07.svg"); }
.icon--chevron-left { --svg: url("/assets/chevron-left-b1b68df3.svg"); }
.icon--chevron-right { --svg: url("/assets/chevron-right-b5eb0e42.svg"); }
.icon--chevrons-up-down { --svg: url("/assets/chevrons-up-down-28ec2300.svg"); }
.icon--circle-alert { --svg: url("/assets/circle-alert-0c59a24b.svg"); }
.icon--circle-check { --svg: url("/assets/circle-check-b8ff4071.svg"); }
.icon--copy { --svg: url("/assets/copy-afe5d320.svg"); }
.icon--download { --svg: url("/assets/download-ffd7bcb1.svg"); }
.icon--ellipsis { --svg: url("/assets/ellipsis-f259aaa4.svg"); }
.icon--minus { --svg: url("/assets/minus-f588da19.svg"); }
.icon--moon { --svg: url("/assets/moon-d7994e55.svg"); }
.icon--panel-left { --svg: url("/assets/panel-left-8282f1ce.svg"); }
.icon--search { --svg: url("/assets/search-2e6704d7.svg"); }
.icon--share { --svg: url("/assets/share-b21ef888.svg"); }
.icon--sun { --svg: url("/assets/sun-f1bb41e2.svg"); }
.icon--x { --svg: url("/assets/x-83054a5f.svg"); }
