.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("/assets/camera-565766fd.svg"); }
.icon--chevron-left { --svg: url("/assets/chevron-left-6b8bb318.svg"); }
.icon--chevron-right { --svg: url("/assets/chevron-right-bdf2c814.svg"); }
.icon--chevrons-up-down { --svg: url("/assets/chevrons-up-down-3d711775.svg"); }
.icon--circle-alert { --svg: url("/assets/circle-alert-cdf1458e.svg"); }
.icon--circle-check { --svg: url("/assets/circle-check-c55aa669.svg"); }
.icon--copy { --svg: url("/assets/copy-6d535013.svg"); }
.icon--download { --svg: url("/assets/download-44e20fba.svg"); }
.icon--ellipsis { --svg: url("/assets/ellipsis-3cd06ce9.svg"); }
.icon--minus { --svg: url("/assets/minus-fdb1465b.svg"); }
.icon--moon { --svg: url("/assets/moon-1e18742c.svg"); }
.icon--panel-left { --svg: url("/assets/panel-left-ee2a7be5.svg"); }
.icon--search { --svg: url("/assets/search-be311004.svg"); }
.icon--share { --svg: url("/assets/share-9574f93f.svg"); }
.icon--sun { --svg: url("/assets/sun-e2461663.svg"); }
.icon--x { --svg: url("/assets/x-200d0231.svg"); }
