/**
 * Icon Library - CSS-based icon system
 *
 * Uses mask-image for monochrome icons that inherit currentColor.
 * All icons use the same base class with size modifiers.
 *
 * Dependencies: design-system.css (CSS variables for sizing)
 *
 * Usage:
 *   <span class="icon icon-search"></span>
 *   <span class="icon icon-close icon-5"></span>
 *
 * Icons in this library are extracted from actual usage in templates.
 * To add new icons: find the SVG in templates, encode it, add here.
 */

/* ==========================================================================
   Base Icon Class
   ========================================================================== */

.icon {
  display: inline-block;
  width: var(--icon-4);
  height: var(--icon-4);
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  flex-shrink: 0;
  vertical-align: middle;
}

/* ==========================================================================
   Size Modifiers
   Maps to design-system.css --icon-* tokens
   ========================================================================== */

.icon-2\.5 {
  width: 0.625rem;
  height: 0.625rem;
}
.icon-3 {
  width: var(--icon-3);
  height: var(--icon-3);
}
.icon-3\.5 {
  width: 0.875rem;
  height: 0.875rem;
}
.icon-4 {
  width: var(--icon-4);
  height: var(--icon-4);
}
.icon-5 {
  width: var(--icon-5);
  height: var(--icon-5);
}
.icon-6 {
  width: var(--icon-6);
  height: var(--icon-6);
}

/* Custom sizes */
.icon-8 {
  width: 2rem;
  height: 2rem;
}
.icon-10 {
  width: 2.5rem;
  height: 2.5rem;
}
.icon-12 {
  width: 3rem;
  height: 3rem;
}

/* ==========================================================================
   UI Icons - Common interface elements
   Source: base.html, users.html, images.html, stats.html
   ========================================================================== */

/* Search - Magnifying glass
   Used in: users.html, images.html, pk_launcher_content.html, pk_eval_stats_overview.html */
.icon-search {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");
}

/* Close - X mark
   Used in: base.html, images.html */
.icon-close {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E");
}

/* Check - Checkmark
   Used in: base.html, viewer.html */
.icon-check {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
}

/* Refresh - Rotating arrows
   Used in: stats.html */
.icon-refresh {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15'/%3E%3C/svg%3E");
}

/* Bookmark
   Used in: users.html */
.icon-bookmark {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z'/%3E%3C/svg%3E");
}

/* Alert/Info circle
   Used in: login.html, viewer.html */
.icon-alert-circle {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Navigation Icons
   Source: pk_eval_stats_overview.html, viewer.html, images.html
   ========================================================================== */

/* Chevron Left
   Used in: viewer.html, pk_voting.html */
.icon-chevron-left {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 19l-7-7 7-7'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 19l-7-7 7-7'/%3E%3C/svg%3E");
}

/* Chevron Right
   Used in: pk_eval_stats_overview.html, viewer.html */
.icon-chevron-right {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
}

/* Chevron Down
   Used in: pk_compare.html */
.icon-chevron-down {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}

/* Menu - Horizontal lines
   Used in: images.html */
.icon-menu {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E");
}

/* ==========================================================================
   File & Folder Icons
   Source: pk_compare.html, viewer.html, viewer_compare.html
   ========================================================================== */

/* Folder (alternate - open style)
   Used in: viewer.html, viewer_compare.html */
.icon-folder-open {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z'/%3E%3C/svg%3E");
}

/* Cloud
   Used in: viewer.html, viewer_compare.html */
.icon-cloud {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   3D & Mesh Icons
   Source: pk_compare.html, stats.html, viewer.html
   ========================================================================== */

/* Cube/Box - 3D object
   Used in: pk_compare.html */
.icon-cube {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3C/svg%3E");
}

/* 3D Box with edges (isometric)
   Used in: viewer.html */
.icon-box-3d {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4'/%3E%3C/svg%3E");
}

/* Layers/Faces - stacked layers
   Used in: pk_compare.html */
.icon-layers {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 2 7 12 12 22 7 12 2'/%3E%3Cpolyline points='2 17 12 22 22 17'/%3E%3Cpolyline points='2 12 12 17 22 12'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 2 7 12 12 22 7 12 2'/%3E%3Cpolyline points='2 17 12 22 22 17'/%3E%3Cpolyline points='2 12 12 17 22 12'/%3E%3C/svg%3E");
}

/* Vertices - concentric circles
   Used in: pk_compare.html */
.icon-vertices {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Ccircle cx='12' cy='12' r='8' stroke-dasharray='2 4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Ccircle cx='12' cy='12' r='8' stroke-dasharray='2 4'/%3E%3C/svg%3E");
}

/* Mesh/Diamond - 3D mesh diamond
   Used in: stats.html */
.icon-mesh {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 10l-2 1m0 0l-2-1m2 1v2.5M20 7l-2 1m2-1l-2-1m2 1v2.5M14 4l-2-1-2 1M4 7l2-1M4 7l2 1M4 7v2.5M12 21l-2-1m2 1l2-1m-2 1v-2.5M6 18l-2-1v-2.5M18 18l2-1v-2.5'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 10l-2 1m0 0l-2-1m2 1v2.5M20 7l-2 1m2-1l-2-1m2 1v2.5M14 4l-2-1-2 1M4 7l2-1M4 7l2 1M4 7v2.5M12 21l-2-1m2 1l2-1m-2 1v-2.5M6 18l-2-1v-2.5M18 18l2-1v-2.5'/%3E%3C/svg%3E");
}

/* Database
   Used in: viewer.html */
.icon-database {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Material Channel Icons (for 3D viewer)
   Source: pk_compare.html, viewer_compare.html
   ========================================================================== */

/* Globe/World - Environment/World map
   Used in: pk_compare.html, viewer_compare.html */
.icon-globe {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z'/%3E%3C/svg%3E");
}

/* Image/Base Color - Photo with mountains
   Used in: pk_compare.html, viewer_compare.html */
.icon-image {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.49 10 10-4.49 10-10 10zm-1.3-6.4l1.3 1.6 2.5-3.2L18 19H6l4.7-3.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.49 10 10-4.49 10-10 10zm-1.3-6.4l1.3 1.6 2.5-3.2L18 19H6l4.7-3.4z'/%3E%3C/svg%3E");
}

/* Roughness - Texture/surface
   Used in: pk_compare.html, viewer_compare.html */
.icon-roughness {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM6 19v-2h8v2H6zm3.6-7.6l2.4 3 2.8-3.6 3.2 4.2h-12l3.6-3.6z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM6 19v-2h8v2H6zm3.6-7.6l2.4 3 2.8-3.6 3.2 4.2h-12l3.6-3.6z'/%3E%3C/svg%3E");
}

/* Metallic - Half-filled circle
   Used in: pk_compare.html, viewer_compare.html */
.icon-metallic {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='currentColor' stroke-width='2'/%3E%3Cpath d='M12 4a8 8 0 0 0-8 8h16a8 8 0 0 0-8-8z' fill='currentColor'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='currentColor' stroke-width='2'/%3E%3Cpath d='M12 4a8 8 0 0 0-8 8h16a8 8 0 0 0-8-8z' fill='currentColor'/%3E%3C/svg%3E");
}

/* Normal Map - Circle with minus
   Used in: pk_compare.html, viewer_compare.html */
.icon-normal {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5-9h10v2H7z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5-9h10v2H7z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Action Icons
   Source: pk_launcher_content.html, viewer.html, pk_eval_stats_overview.html
   ========================================================================== */

/* Download
   Used in: viewer.html, pk_eval_stats_overview.html */
.icon-download {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4'/%3E%3C/svg%3E");
}

/* Download (alternate - arrow style)
   Used in: pk_eval_stats_overview.html */
.icon-download-arrow {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}

/* Upload - Arrow pointing up into tray
   Used in: screenshot popup (Upload to Asset Library) */
.icon-upload {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12'/%3E%3C/svg%3E");
}

/* Face Orientation - Triangle with normal arrow for face direction check
   Used in: viewer controls (Face Orientation toggle) */
.icon-face-orient {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 20L12 4l7 16H5z'/%3E%3Cpath d='M12 12v-4'/%3E%3Cpath d='M12 8l-2 2'/%3E%3Cpath d='M12 8l2 2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 20L12 4l7 16H5z'/%3E%3Cpath d='M12 12v-4'/%3E%3Cpath d='M12 8l-2 2'/%3E%3Cpath d='M12 8l2 2'/%3E%3C/svg%3E");
}

/* Skeleton - Bone icon for skeleton/armature visualization
   Used in: viewer controls (Skeleton toggle) */
.icon-skeleton {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='4' r='2'/%3E%3Cline x1='12' y1='6' x2='12' y2='14'/%3E%3Cline x1='8' y1='10' x2='16' y2='10'/%3E%3Cline x1='12' y1='14' x2='8' y2='20'/%3E%3Cline x1='12' y1='14' x2='16' y2='20'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='4' r='2'/%3E%3Cline x1='12' y1='6' x2='12' y2='14'/%3E%3Cline x1='8' y1='10' x2='16' y2='10'/%3E%3Cline x1='12' y1='14' x2='8' y2='20'/%3E%3Cline x1='12' y1='14' x2='16' y2='20'/%3E%3C/svg%3E");
}

/* Weight - Gradient bar for skin weight heatmap visualization
   Used in: viewer controls (Weight visualization toggle) */
.icon-weight {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='8' rx='1'/%3E%3Cline x1='7' y1='8' x2='7' y2='16'/%3E%3Cline x1='11' y1='8' x2='11' y2='16'/%3E%3Cline x1='15' y1='8' x2='15' y2='16'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='8' rx='1'/%3E%3Cline x1='7' y1='8' x2='7' y2='16'/%3E%3Cline x1='11' y1='8' x2='11' y2='16'/%3E%3Cline x1='15' y1='8' x2='15' y2='16'/%3E%3C/svg%3E");
}

/* Bind Pose - T-pose/rest pose reset icon
   Used in: viewer controls (Reset to bind pose) */
.icon-bindpose {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='4' r='2'/%3E%3Cline x1='12' y1='6' x2='12' y2='16'/%3E%3Cline x1='4' y1='10' x2='20' y2='10'/%3E%3Cline x1='12' y1='16' x2='8' y2='22'/%3E%3Cline x1='12' y1='16' x2='16' y2='22'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='4' r='2'/%3E%3Cline x1='12' y1='6' x2='12' y2='16'/%3E%3Cline x1='4' y1='10' x2='20' y2='10'/%3E%3Cline x1='12' y1='16' x2='8' y2='22'/%3E%3Cline x1='12' y1='16' x2='16' y2='22'/%3E%3C/svg%3E");
}

/* Play - Triangle play button for animation playback
   Used in: viewer controls (Animation play/pause) */
.icon-play {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='6 3 20 12 6 21 6 3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='6 3 20 12 6 21 6 3'/%3E%3C/svg%3E");
}

/* Pause - Double bar for animation pause
   Used in: viewer controls (Animation play/pause) */
.icon-pause {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='4' width='4' height='16'/%3E%3Crect x='14' y='4' width='4' height='16'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='4' width='4' height='16'/%3E%3Crect x='14' y='4' width='4' height='16'/%3E%3C/svg%3E");
}

/* Plus - Add/create icon
   Used in: visual detection launcher, version library */
.icon-plus {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14m-7-7h14'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14m-7-7h14'/%3E%3C/svg%3E");
}

/* Segment - Pie/segmented shape for mesh part coloring
   Used in: viewer controls (Segment Colors toggle) */
.icon-segment {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3v9l6.36 3.68'/%3E%3Cpath d='M12 12L5.64 15.68'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3v9l6.36 3.68'/%3E%3Cpath d='M12 12L5.64 15.68'/%3E%3C/svg%3E");
}

/* Share - Network nodes
   Used in: viewer.html */
.icon-share {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z'/%3E%3C/svg%3E");
}

/* Clipboard Copy
   Used in: viewer.html */
.icon-clipboard-copy {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3'/%3E%3C/svg%3E");
}

/* Edit/Pencil
   Used in: pk_launcher_content.html */
.icon-edit {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/%3E%3C/svg%3E");
}

/* Settings/Gear
   Used in: pk_launcher_content.html */
.icon-settings {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'/%3E%3C/svg%3E");
}

/* User
   Used in: pk_launcher_content.html */
.icon-user {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}

/* Tag
   Used in: pk_eval_stats_overview.html */
.icon-tag {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z'/%3E%3Ccircle cx='7' cy='7' r='1'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z'/%3E%3Ccircle cx='7' cy='7' r='1'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Media Icons
   Source: viewer.html, stats.html
   ========================================================================== */

/* Eye - View/Visible
   Used in: viewer.html, viewer_compare.html */
.icon-eye {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 12a3 3 0 11-6 0 3 3 0 016 0z'/%3E%3Cpath d='M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 12a3 3 0 11-6 0 3 3 0 016 0z'/%3E%3Cpath d='M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z'/%3E%3C/svg%3E");
}

/* Photo/Image - Landscape with mountain
   Used in: stats.html, viewer.html */
.icon-photo {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Chart & Data Icons
   Source: pk_eval_stats_overview.html, pk_launcher_content.html, stats.html
   ========================================================================== */

/* Bar Chart
   Used in: pk_eval_stats_overview.html, pk_launcher_content.html */
.icon-bar-chart {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='M18 17V9'/%3E%3Cpath d='M13 17V5'/%3E%3Cpath d='M8 17v-3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='M18 17V9'/%3E%3Cpath d='M13 17V5'/%3E%3Cpath d='M8 17v-3'/%3E%3C/svg%3E");
}

/* Stats - Chart bars (vertical)
   Used in: stats.html */
.icon-stats {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Grid Icons
   Source: images.html
   ========================================================================== */

/* Grid - 4 squares (large)
   Used in: images.html */
.icon-grid-large {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z'/%3E%3C/svg%3E");
}

/* Grid - 4 squares (small)
   Used in: images.html */
.icon-grid-small {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM14 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1V5zM4 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1v-4zM14 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM14 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1V5zM4 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1v-4zM14 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z'/%3E%3C/svg%3E");
}

/* Grid - 3 squares (selection)
   Used in: pk_compare.html */
.icon-grid-select {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Tool Icons
   Source: pk_launcher_content.html
   ========================================================================== */

/* Compare/PK Tool - Crossed swords
   Used in: pk_launcher_content.html */
.icon-compare {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 17.5L3 6V3h3l11.5 11.5'/%3E%3Cpath d='M13 19l6-6'/%3E%3Cpath d='M16 16l4 4'/%3E%3Cpath d='M19 21l2-2'/%3E%3Cpath d='M14.5 6.5L18 3h3v3l-3.5 3.5'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 17.5L3 6V3h3l11.5 11.5'/%3E%3Cpath d='M13 19l6-6'/%3E%3Cpath d='M16 16l4 4'/%3E%3Cpath d='M19 21l2-2'/%3E%3Cpath d='M14.5 6.5L18 3h3v3l-3.5 3.5'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Loading Icons
   Source: shell.html, viewer.html
   ========================================================================== */

/* Spinner animation helper */
.icon-spinner.animate-spin,
.icon.animate-spin {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* ==========================================================================
   Loading Circle (progress style)
   Source: pk_voting.html
   ========================================================================== */

/* Loading circle - left half
   Used in: pk_voting.html */
.icon-loading-left {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9'/%3E%3C/svg%3E");
}

/* Loading circle - right half
   Used in: pk_voting.html */
.icon-loading-right {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M21 12a9 9 0 1 1-9-9'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M21 12a9 9 0 1 1-9-9'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Texture/Viewport Icons
   Source: viewer.html, viewer_compare.html
   ========================================================================== */

/* Viewport - Grid pattern
   Used in: viewer.html, viewer_compare.html */
.icon-viewport {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M4 4v16h2V4H4zm4 0v8h4V8h4v4h4V4H8zm4 4h4V4h-4v4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M4 4v16h2V4H4zm4 0v8h4V8h4v4h4V4H8zm4 4h4V4h-4v4z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Viewer Control Icons
   Source: meshy_viewer_controls.html, viewer_controls.html (components)
   ========================================================================== */

/* Sync Camera / Video camera
   Used in: meshy_viewer_controls.html */
.icon-camera-sync {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z'/%3E%3C/svg%3E");
}

/* Wireframe - 4 squares grid
   Used in: meshy_viewer_controls.html */
.icon-wireframe {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM14 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1V5zM4 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1v-4zM14 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM14 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1V5zM4 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1v-4zM14 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z'/%3E%3C/svg%3E");
}

/* Clay mode - filled circle
   Used in: meshy_viewer_controls.html */
.icon-clay {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='8' fill='currentColor' opacity='0.3'/%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='8' fill='currentColor' opacity='0.3'/%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3C/svg%3E");
}

/* Flat shading - hexagon with lines
   Used in: meshy_viewer_controls.html */
.icon-flat-shading {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1'%3E%3Cpolygon points='12,3 21,8 21,16 12,21 3,16 3,8' fill='currentColor' opacity='0.3' stroke='currentColor'/%3E%3Cline x1='12' y1='3' x2='12' y2='21'/%3E%3Cline x1='3' y1='8' x2='21' y2='8'/%3E%3Cline x1='3' y1='16' x2='21' y2='16'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1'%3E%3Cpolygon points='12,3 21,8 21,16 12,21 3,16 3,8' fill='currentColor' opacity='0.3' stroke='currentColor'/%3E%3Cline x1='12' y1='3' x2='12' y2='21'/%3E%3Cline x1='3' y1='8' x2='21' y2='8'/%3E%3Cline x1='3' y1='16' x2='21' y2='16'/%3E%3C/svg%3E");
}

/* Base Color - Checkered pattern
   Used in: meshy_viewer_controls.html */
.icon-checkerboard {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Crect x='0' y='0' width='8' height='8'/%3E%3Crect x='8' y='8' width='8' height='8'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Crect x='0' y='0' width='8' height='8'/%3E%3Crect x='8' y='8' width='8' height='8'/%3E%3C/svg%3E");
}

/* Roughness - Jagged line
   Used in: meshy_viewer_controls.html */
.icon-jagged {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Cpolyline points='1,12 3,8 5,11 7,6 9,10 11,5 13,9 15,4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Cpolyline points='1,12 3,8 5,11 7,6 9,10 11,5 13,9 15,4'/%3E%3C/svg%3E");
}

/* Metallic - Anvil shape
   Used in: meshy_viewer_controls.html */
.icon-anvil {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M2,4 L14,4 L14,6 L12,6 L12,8 L10,8 L10,12 L6,12 L6,8 L4,8 L4,6 L2,6 Z'/%3E%3Crect x='5' y='12' width='6' height='2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M2,4 L14,4 L14,6 L12,6 L12,8 L10,8 L10,12 L6,12 L6,8 L4,8 L4,6 L2,6 Z'/%3E%3Crect x='5' y='12' width='6' height='2'/%3E%3C/svg%3E");
}

/* Normal Map - Plane with arrow
   Used in: meshy_viewer_controls.html */
.icon-normal-arrow {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Cpolygon points='2,12 8,14 14,12 8,8' fill='currentColor' opacity='0.3'/%3E%3Cline x1='8' y1='11' x2='8' y2='3'/%3E%3Cpolyline points='5,6 8,3 11,6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Cpolygon points='2,12 8,14 14,12 8,8' fill='currentColor' opacity='0.3'/%3E%3Cline x1='8' y1='11' x2='8' y2='3'/%3E%3Cpolyline points='5,6 8,3 11,6'/%3E%3C/svg%3E");
}

/* Front View - Grid with center square and cross
   Used in: meshy_viewer_controls.html */
.icon-view-front {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M9 9h6v6H9z'/%3E%3Cpath d='M12 3v18'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M9 9h6v6H9z'/%3E%3Cpath d='M12 3v18'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
}

/* Side View - Grid with center square and horizontal line
   Used in: meshy_viewer_controls.html */
.icon-view-side {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M9 9h6v6H9z'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M9 9h6v6H9z'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
}

/* Top View - Grid with center circle and crosshairs
   Used in: meshy_viewer_controls.html */
.icon-view-top {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 3v6M12 15v6M3 12h6M15 12h6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 3v6M12 15v6M3 12h6M15 12h6'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Sidebar Navigation Icons
   Source: sidebar.html
   ========================================================================== */

/* Home - House with door
   Used in: sidebar.html */
.icon-home {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6'/%3E%3C/svg%3E");
}

/* Users Group - Multiple people
   Used in: sidebar.html */
.icon-users-group {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m9 5.197v-1'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m9 5.197v-1'/%3E%3C/svg%3E");
}

/* Clipboard List - Checklist
   Used in: sidebar.html */
.icon-clipboard-list {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01'/%3E%3C/svg%3E");
}

/* Scale/Balance - Justice scale
   Used in: sidebar.html (Art Results) */
.icon-scale {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3'/%3E%3C/svg%3E");
}

/* Book Open - Tutorial/Documentation
   Used in: sidebar.html */
.icon-book-open {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253'/%3E%3C/svg%3E");
}

/* User Add - Person with plus
   Used in: sidebar.html (External Access) */
.icon-user-add {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z'/%3E%3C/svg%3E");
}

/* Flask/Beaker - Experiments
   Used in: sidebar.html */
.icon-flask {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z'/%3E%3C/svg%3E");
}

/* Logout - Arrow exiting door
   Used in: sidebar.html */
.icon-logout {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1'/%3E%3C/svg%3E");
}

/* User Circle - Simple user icon
   Used in: sidebar.html */
.icon-user-circle {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Tutorial & Info Icons
   Source: tutorial.html
   ========================================================================== */

/* Lightning Bolt - Quick action
   Used in: tutorial.html, pk_launcher_content.html */
.icon-lightning {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 10V3L4 14h7v7l9-11h-7z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 10V3L4 14h7v7l9-11h-7z'/%3E%3C/svg%3E");
}

/* Map Pin - Location / pin comment
   Used in: viewer.html, comment_panel.html */
.icon-map-pin {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

/* Clipboard - Simple clipboard
   Used in: tutorial.html */
.icon-clipboard {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2'/%3E%3C/svg%3E");
}

/* Info Circle - Information
   Used in: tutorial.html, query.html */
.icon-info-circle {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
}

/* Link Chain - Connected links
   Used in: tutorial.html */
.icon-link-chain {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1'/%3E%3C/svg%3E");
}

/* Cursor Click - Mouse pointer with click
   Used in: tutorial.html */
.icon-cursor-click {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122'/%3E%3C/svg%3E");
}

/* Paint Bucket - Color fill
   Used in: tutorial.html */
.icon-paint-bucket {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343'/%3E%3C/svg%3E");
}

/* Columns - Side by side layout
   Used in: tutorial.html */
.icon-columns {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7'/%3E%3C/svg%3E");
}

/* Sun - Light/brightness
   Used in: tutorial.html */
.icon-sun {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Data & Query Icons
   Source: query.html
   ========================================================================== */

/* Table - Data table
   Used in: query.html */
.icon-table {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z'/%3E%3C/svg%3E");
}

/* Archive/Server - Storage
   Used in: query.html */
.icon-archive {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10'/%3E%3C/svg%3E");
}

/* Hash - Code/Number
   Used in: query.html */
.icon-hash {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 20l4-16m2 16l4-16M6 9h14M4 15h14'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 20l4-16m2 16l4-16M6 9h14M4 15h14'/%3E%3C/svg%3E");
}

/* Warning Triangle - Alert
   Used in: query.html */
.icon-warning-triangle {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z'/%3E%3C/svg%3E");
}

/* Error Circle - Error state
   Used in: query.html */
.icon-error-circle {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Rotation Icons
   Source: pk_voting.html
   ========================================================================== */

/* Rotate Counter-Clockwise
   Used in: pk_voting.html */
.icon-rotate-ccw {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9'/%3E%3Cpolyline points='3 3 3 9 9 9'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9'/%3E%3Cpolyline points='3 3 3 9 9 9'/%3E%3C/svg%3E");
}

/* Rotate Clockwise
   Used in: pk_voting.html */
.icon-rotate-cw {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-9-9'/%3E%3Cpolyline points='21 3 21 9 15 9'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-9-9'/%3E%3Cpolyline points='21 3 21 9 15 9'/%3E%3C/svg%3E");
}

/* Sidebar Toggle Chevron - For sidebar collapse/expand
   Used in: pk_voting.html */
.icon-sidebar-toggle {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.5 4.5L7 10l5.5 5.5'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.5 4.5L7 10l5.5 5.5'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Launcher Icons
   Source: pk_launcher_content.html
   ========================================================================== */

/* Swords Crossed - Voting/Battle mode
   Used in: pk_launcher_content.html */
.icon-swords {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 17.5L3 6V3h3l11.5 11.5'/%3E%3Cpath d='M13 19l6-6'/%3E%3Cpath d='M16 16l4 4'/%3E%3Cpath d='M19 21l2-2'/%3E%3Cpath d='M14.5 6.5L18 3h3v3l-3.5 3.5'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 17.5L3 6V3h3l11.5 11.5'/%3E%3Cpath d='M13 19l6-6'/%3E%3Cpath d='M16 16l4 4'/%3E%3Cpath d='M19 21l2-2'/%3E%3Cpath d='M14.5 6.5L18 3h3v3l-3.5 3.5'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Viewer Icons
   Source: viewer.html, viewer_compare.html, viewer_controls.html
   ========================================================================== */

/* Copy/Share - Two overlapping screens with arrow
   Used in: bookmarks_list.html (Copy Link) */
.icon-link,
.icon-copy {
  -webkit-mask-image: url('data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url%28%23clip0_2986_23205%29%22%3E%0A%3Cpath%20d%3D%22M13%2015V9C13%208.73478%2013.1054%208.48043%2013.2929%208.29289C13.4804%208.10536%2013.7348%208%2014%208H20C20.2652%208%2020.5196%208.10536%2020.7071%208.29289C20.8946%208.48043%2021%208.73478%2021%209V13%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M18%208V5C18%204.73478%2017.8946%204.48043%2017.7071%204.29289C17.5196%204.10536%2017.2652%204%2017%204H4C3.73478%204%203.48043%204.10536%203.29289%204.29289C3.10536%204.48043%203%204.73478%203%205V17C3%2017.2652%203.10536%2017.5196%203.29289%2017.7071C3.48043%2017.8946%203.73478%2018%204%2018H13%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M16%2022L21%2017%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M21%2021.5V17H16.5%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M16%209H18%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_2986_23205%22%3E%0A%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22white%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E');
  mask-image: url('data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url%28%23clip0_2986_23205%29%22%3E%0A%3Cpath%20d%3D%22M13%2015V9C13%208.73478%2013.1054%208.48043%2013.2929%208.29289C13.4804%208.10536%2013.7348%208%2014%208H20C20.2652%208%2020.5196%208.10536%2020.7071%208.29289C20.8946%208.48043%2021%208.73478%2021%209V13%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M18%208V5C18%204.73478%2017.8946%204.48043%2017.7071%204.29289C17.5196%204.10536%2017.2652%204%2017%204H4C3.73478%204%203.48043%204.10536%203.29289%204.29289C3.10536%204.48043%203%204.73478%203%205V17C3%2017.2652%203.10536%2017.5196%203.29289%2017.7071C3.48043%2017.8946%203.73478%2018%204%2018H13%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M16%2022L21%2017%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M21%2021.5V17H16.5%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3Cpath%20d%3D%22M16%209H18%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_2986_23205%22%3E%0A%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22white%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E');
}

/* Folder - Folder shape
   Used in: viewer.html, viewer_compare.html */
.icon-folder {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z'/%3E%3C/svg%3E");
}

/* Shopping Cart - Add to cart
   Used in: meshy_viewer_controls.html */
.icon-cart {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z'/%3E%3C/svg%3E");
}

/* Video Camera - Sync camera
   Used in: meshy_viewer_controls.html */
.icon-video-camera {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z'/%3E%3C/svg%3E");
}

/* Grid 4x4 - Wireframe mode
   Used in: meshy_viewer_controls.html */
.icon-grid-4 {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM14 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1V5zM4 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1v-4zM14 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM14 5a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1V5zM4 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1H5a1 1 0 01-1-1v-4zM14 15a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z'/%3E%3C/svg%3E");
}

/* Spinner - Loading animation
   Used in: viewer.html */
.icon-spinner {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='10' stroke='currentColor' stroke-width='4' opacity='0.25'/%3E%3Cpath fill='currentColor' opacity='0.75' d='M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='10' stroke='currentColor' stroke-width='4' opacity='0.25'/%3E%3Cpath fill='currentColor' opacity='0.75' d='M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Viewer Control Icons - Segmented Switch & Channel Icons
   Source: meshy_viewer_controls.html
   ========================================================================== */

/* Channel: Full Render - Globe/world
   Used in: meshy_viewer_controls.html */
.icon-channel-full {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z'/%3E%3C/svg%3E");
}

/* Channel: Base Color - Image/landscape
   Used in: meshy_viewer_controls.html */
.icon-channel-base {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.49 10 10-4.49 10-10 10zm-1.3-6.4l1.3 1.6 2.5-3.2L18 19H6l4.7-3.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.49 10 10-4.49 10-10 10zm-1.3-6.4l1.3 1.6 2.5-3.2L18 19H6l4.7-3.4z'/%3E%3C/svg%3E");
}

/* Channel: Roughness - Square with gradient
   Used in: meshy_viewer_controls.html */
.icon-channel-roughness {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM6 19v-2h8v2H6zm3.6-7.6l2.4 3 2.8-3.6 3.2 4.2h-12l3.6-3.6z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM6 19v-2h8v2H6zm3.6-7.6l2.4 3 2.8-3.6 3.2 4.2h-12l3.6-3.6z'/%3E%3C/svg%3E");
}

/* Channel: Metallic - Half sphere
   Used in: meshy_viewer_controls.html */
.icon-channel-metallic {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Ccircle cx='12' cy='12' r='8' fill='none' stroke='currentColor' stroke-width='2'/%3E%3Cpath d='M12 4a8 8 0 0 0-8 8h16a8 8 0 0 0-8-8z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Ccircle cx='12' cy='12' r='8' fill='none' stroke='currentColor' stroke-width='2'/%3E%3Cpath d='M12 4a8 8 0 0 0-8 8h16a8 8 0 0 0-8-8z'/%3E%3C/svg%3E");
}

/* Channel: Normal Map - Circle with minus
   Used in: meshy_viewer_controls.html */
.icon-channel-normal {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5-9h10v2H7z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5-9h10v2H7z'/%3E%3C/svg%3E");
}

/* PK: Wireframe overlay - 3D box wireframe (Lucide "box" style)
   Used in: viewer controls.html */
.icon-pk-wireframe {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.96C17.5009 21.96 21.9601 17.5008 21.9601 12C21.9601 6.49927 17.5009 2.04002 12.0001 2.04002C6.49934 2.04002 2.0401 6.49927 2.0401 12C2.0401 17.5008 6.49934 21.96 12.0001 21.96ZM12.0001 23.4C18.2961 23.4 23.4001 18.2961 23.4001 12C23.4001 5.70398 18.2961 0.600024 12.0001 0.600024C11.822 0.600026 11.6448 0.604111 11.4687 0.61219C5.41936 0.889758 0.600098 5.88209 0.600098 12C0.600098 18.1179 5.41922 23.1101 11.4684 23.3878C11.6446 23.3959 11.8219 23.4 12.0001 23.4Z' fill='black'/%3E%3Cpath d='M2 8.00005H22V9.50005H2V8.00005Z' fill='black'/%3E%3Cpath d='M2 14.5H22V16H2V14.5Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.87409 4.69663C9.189 6.52924 8.75 9.11123 8.75 12C8.75 14.8889 9.189 17.4709 9.87409 19.3035C10.2177 20.2226 10.6087 20.9142 11.005 21.3625C11.4021 21.8118 11.7402 21.95 12 21.95L12.0001 23.4C11.8219 23.4 11.6446 23.3959 11.4684 23.3878C10.8524 23.2419 10.3194 22.8519 9.88105 22.3559C9.32018 21.7213 8.84932 20.8459 8.46906 19.8287C7.70643 17.7887 7.25 15.0207 7.25 12C7.25 8.97943 7.70643 6.21141 8.46906 4.17138C8.84932 3.15417 9.32018 2.27881 9.88105 1.64422C10.3195 1.14815 10.8525 0.758117 11.4687 0.61219C11.6448 0.604111 11.822 0.600026 12.0001 0.600024L12 2.05005C11.7402 2.05005 11.4021 2.18826 11.005 2.63759C10.9959 2.64788 10.9868 2.6583 10.9777 2.66885C10.5908 3.11778 10.2098 3.79862 9.87409 4.69663Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.96C17.5009 21.96 21.9601 17.5008 21.9601 12C21.9601 6.49927 17.5009 2.04002 12.0001 2.04002C6.49934 2.04002 2.0401 6.49927 2.0401 12C2.0401 17.5008 6.49934 21.96 12.0001 21.96ZM12.0001 23.4C18.2961 23.4 23.4001 18.2961 23.4001 12C23.4001 5.70398 18.2961 0.600024 12.0001 0.600024C11.822 0.600026 11.6448 0.604111 11.4687 0.61219C5.41936 0.889758 0.600098 5.88209 0.600098 12C0.600098 18.1179 5.41922 23.1101 11.4684 23.3878C11.6446 23.3959 11.8219 23.4 12.0001 23.4Z' fill='black'/%3E%3Cpath d='M2 8.00005H22V9.50005H2V8.00005Z' fill='black'/%3E%3Cpath d='M2 14.5H22V16H2V14.5Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.87409 4.69663C9.189 6.52924 8.75 9.11123 8.75 12C8.75 14.8889 9.189 17.4709 9.87409 19.3035C10.2177 20.2226 10.6087 20.9142 11.005 21.3625C11.4021 21.8118 11.7402 21.95 12 21.95L12.0001 23.4C11.8219 23.4 11.6446 23.3959 11.4684 23.3878C10.8524 23.2419 10.3194 22.8519 9.88105 22.3559C9.32018 21.7213 8.84932 20.8459 8.46906 19.8287C7.70643 17.7887 7.25 15.0207 7.25 12C7.25 8.97943 7.70643 6.21141 8.46906 4.17138C8.84932 3.15417 9.32018 2.27881 9.88105 1.64422C10.3195 1.14815 10.8525 0.758117 11.4687 0.61219C11.6448 0.604111 11.822 0.600026 12.0001 0.600024L12 2.05005C11.7402 2.05005 11.4021 2.18826 11.005 2.63759C10.9959 2.64788 10.9868 2.6583 10.9777 2.66885C10.5908 3.11778 10.2098 3.79862 9.87409 4.69663Z' fill='black'/%3E%3C/svg%3E");
}

/* PK: Clay mode - Solid filled sphere
   Used in: viewer controls.html */
.icon-pk-clay {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='0.4' d='M23.4001 12.0001C23.4001 18.2961 18.2961 23.4001 12.0001 23.4001C5.70405 23.4001 0.600098 18.2961 0.600098 12.0001C0.600098 5.70405 5.70405 0.600098 12.0001 0.600098C18.2961 0.600098 23.4001 5.70405 23.4001 12.0001Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.9601C17.5009 21.9601 21.9601 17.5009 21.9601 12.0001C21.9601 6.49934 17.5009 2.0401 12.0001 2.0401C6.49934 2.0401 2.0401 6.49934 2.0401 12.0001C2.0401 17.5009 6.49934 21.9601 12.0001 21.9601ZM12.0001 23.4001C18.2961 23.4001 23.4001 18.2961 23.4001 12.0001C23.4001 5.70405 18.2961 0.600098 12.0001 0.600098C5.70405 0.600098 0.600098 5.70405 0.600098 12.0001C0.600098 18.2961 5.70405 23.4001 12.0001 23.4001Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='0.4' d='M23.4001 12.0001C23.4001 18.2961 18.2961 23.4001 12.0001 23.4001C5.70405 23.4001 0.600098 18.2961 0.600098 12.0001C0.600098 5.70405 5.70405 0.600098 12.0001 0.600098C18.2961 0.600098 23.4001 5.70405 23.4001 12.0001Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.9601C17.5009 21.9601 21.9601 17.5009 21.9601 12.0001C21.9601 6.49934 17.5009 2.0401 12.0001 2.0401C6.49934 2.0401 2.0401 6.49934 2.0401 12.0001C2.0401 17.5009 6.49934 21.9601 12.0001 21.9601ZM12.0001 23.4001C18.2961 23.4001 23.4001 18.2961 23.4001 12.0001C23.4001 5.70405 18.2961 0.600098 12.0001 0.600098C5.70405 0.600098 0.600098 5.70405 0.600098 12.0001C0.600098 18.2961 5.70405 23.4001 12.0001 23.4001Z' fill='black'/%3E%3C/svg%3E");
}

/* PK: Geometry normal - Sphere quadranted into three tones (MES-14444). Same ring
   geometry as .icon-pk-clay so the two read as siblings in the display bar; the
   stepped wedges say "orientation decides the shade", which is the mode.
   Used in: viewer controls.html */
.icon-pk-geonormal {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.9601C17.5009 21.9601 21.9601 17.5009 21.9601 12.0001C21.9601 6.49934 17.5009 2.0401 12.0001 2.0401C6.49934 2.0401 2.0401 6.49934 2.0401 12.0001C2.0401 17.5009 6.49934 21.9601 12.0001 21.9601ZM12.0001 23.4001C18.2961 23.4001 23.4001 18.2961 23.4001 12.0001C23.4001 5.70405 18.2961 0.600098 12.0001 0.600098C5.70405 0.600098 0.600098 5.70405 0.600098 12.0001C0.600098 18.2961 5.70405 23.4001 12.0001 23.4001Z' fill='black'/%3E%3Cpath d='M12 12L12 2.04A9.96 9.96 0 0 1 20.626 16.98Z' fill='black'/%3E%3Cpath opacity='0.7' d='M12 12L3.374 16.98A9.96 9.96 0 0 1 12 2.04Z' fill='black'/%3E%3Cpath opacity='0.4' d='M12 12L20.626 16.98A9.96 9.96 0 0 1 3.374 16.98Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.9601C17.5009 21.9601 21.9601 17.5009 21.9601 12.0001C21.9601 6.49934 17.5009 2.0401 12.0001 2.0401C6.49934 2.0401 2.0401 6.49934 2.0401 12.0001C2.0401 17.5009 6.49934 21.9601 12.0001 21.9601ZM12.0001 23.4001C18.2961 23.4001 23.4001 18.2961 23.4001 12.0001C23.4001 5.70405 18.2961 0.600098 12.0001 0.600098C5.70405 0.600098 0.600098 5.70405 0.600098 12.0001C0.600098 18.2961 5.70405 23.4001 12.0001 23.4001Z' fill='black'/%3E%3Cpath d='M12 12L12 2.04A9.96 9.96 0 0 1 20.626 16.98Z' fill='black'/%3E%3Cpath opacity='0.7' d='M12 12L3.374 16.98A9.96 9.96 0 0 1 12 2.04Z' fill='black'/%3E%3Cpath opacity='0.4' d='M12 12L20.626 16.98A9.96 9.96 0 0 1 3.374 16.98Z' fill='black'/%3E%3C/svg%3E");
}

/* PK: Flat shading - Bezier curve with control points (Frame.svg)
   Used in: viewer controls.html */
.icon-pk-flat {
  -webkit-mask-image: url('data:image/svg+xml,%3Csvg%20width%3D%2223%22%20height%3D%2220%22%20viewBox%3D%220%200%2023%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url%28%23clip0_1_15%29%22%3E%3Cg%20opacity%3D%220.4%22%3E%3Cpath%20d%3D%22M2.40808%200.827592C2.52374%200.815654%202.64358%200.853355%202.7323%200.94185L4.45497%202.66451C4.61085%202.82063%204.6108%203.07281%204.45497%203.22896C4.29884%203.38509%204.04577%203.38592%203.88954%203.22994L2.85047%202.19088V7.94869C2.85041%208.16954%202.67093%208.34906%202.45008%208.34909C2.22929%208.34898%202.04975%208.16949%202.04968%207.94869V2.11275L0.932489%203.22994C0.776279%203.38603%200.523232%203.38608%200.367056%203.22994C0.21088%203.07373%200.210865%202.81973%200.367056%202.66353L2.08875%200.94185C2.17613%200.854545%202.29397%200.817034%202.40808%200.827592Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M2.6005%201.58716L4.06632%203.05298L4.11515%203.08521C4.16914%203.10716%204.23378%203.09646%204.27824%203.052L4.31046%203.0022C4.32506%202.9661%204.32527%202.92589%204.31046%202.88989L4.27824%202.84107L2.55558%201.11841C2.5229%201.08595%202.47836%201.07179%202.43351%201.07642L2.4091%201.07837L2.38468%201.07642C2.3624%201.07441%202.34054%201.0771%202.32023%201.08423L2.26554%201.11841L0.543863%202.84009C0.485323%202.89864%200.485301%202.99438%200.543863%203.05298L0.593668%203.08618C0.647668%203.10794%200.711887%203.09678%200.755777%203.05298L2.29972%201.50903V7.94849L2.31144%208.00708C2.33438%208.0609%202.38808%208.0988%202.45011%208.09888L2.50871%208.08716C2.56256%208.06424%202.60046%208.01056%202.6005%207.94849V1.58716ZM3.08683%208.07935C3.03479%208.33327%202.83494%208.53318%202.58097%208.58521L2.45011%208.59888C2.09139%208.59871%201.79982%208.30735%201.79972%207.94849V2.71607L1.10929%203.4065C0.887118%203.6285%200.544199%203.65633%200.29191%203.4895L0.190348%203.4065C-0.0634186%203.15267%20-0.06348%202.74042%200.190348%202.48657L1.91203%200.764894L1.96769%200.715089C2.08939%200.618618%202.23724%200.576665%202.38273%200.579347C2.569%200.56021%202.76443%200.620605%202.9091%200.764894L4.63175%202.48755L4.71476%202.58911C4.85764%202.80531%204.85758%203.0878%204.71476%203.30396L4.63175%203.40552C4.41028%203.627%204.06801%203.65587%203.81535%203.4895L3.71281%203.4065L3.1005%202.79419V7.94849L3.08683%208.07935Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M9.95957%200.273835C10.0739%200.292633%2010.1798%200.359795%2010.2422%200.467857L11.4595%202.57646C11.5698%202.76775%2011.5032%203.01289%2011.312%203.12332C11.1208%203.23334%2010.8763%203.16799%2010.7659%202.97698L10.0319%201.7056L8.54214%207.26535C8.48498%207.47868%208.2651%207.60553%208.05178%207.54848C7.83841%207.4913%207.71151%207.27149%207.76868%207.0581L9.27914%201.421L7.90973%202.21168C7.71846%202.32195%207.47425%202.25563%207.36385%202.0644C7.25371%201.87321%207.31823%201.62844%207.50925%201.51798L9.61873%200.300796C9.72663%200.238499%209.85124%200.233132%209.95957%200.273835Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M9.94651%201.05786L10.9823%202.85192L11.0221%202.89594C11.0686%202.93092%2011.1332%202.93759%2011.187%202.90677L11.232%202.86726C11.2559%202.8357%2011.2664%202.79579%2011.2615%202.75689L11.243%202.70139L10.0256%200.592767C10.0031%200.553748%209.96392%200.528062%209.9186%200.520611L9.89451%200.516179L9.87143%200.507974C9.85015%200.499981%209.82811%200.496146%209.80646%200.497642L9.7436%200.517194L7.63403%201.73435C7.56363%201.77517%207.53841%201.86664%207.58013%201.9393L7.61964%201.98426C7.6664%202.01976%207.73135%202.02569%207.78457%201.99509L9.67671%200.902664L8.01005%207.1227C7.98861%207.20272%208.03637%207.28545%208.11639%207.30689L8.17602%207.31073C8.23407%207.30252%208.28455%207.26039%208.30058%207.20055L9.94651%201.05786ZM8.78355%207.32996C8.69062%207.67676%208.33349%207.88252%207.98698%207.78985C7.64023%207.69694%207.43418%207.34004%207.52709%206.99329L8.88134%201.93916L8.03454%202.42806C7.76182%202.58527%207.42385%202.52183%207.22378%202.29574L7.14716%202.18927C6.96878%201.87963%207.07259%201.48149%207.38406%201.30139L9.49362%200.0842274L9.56122%200.0507794C9.70491%20-0.0112637%209.85944%20-0.0134101%2010.0001%200.0278408C10.0081%200.0291577%2010.0157%200.0325463%2010.0237%200.0341596C10.0313%200.0367257%2010.0399%200.03669%2010.0475%200.0395352L10.0463%200.0402257C10.2118%200.080047%2010.3652%200.180954%2010.4586%200.342794L11.676%202.45141L11.7297%202.57194C11.8114%202.81832%2011.7373%203.09147%2011.5434%203.26312L11.437%203.33974C11.1652%203.49614%2010.8265%203.43464%2010.626%203.20836L10.5493%203.1019L10.1171%202.35317L8.78355%207.32996Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M17.8839%204.85091C17.8105%204.76138%2017.7005%204.70324%2017.5759%204.70313H15.1397C14.919%204.70341%2014.7406%204.8829%2014.7406%205.10364C14.7408%205.32432%2014.9197%205.50335%2015.1404%205.50346H16.6098L12.5385%209.57485C12.3823%209.73106%2012.3823%209.9849%2012.5385%2010.1411C12.6947%2010.297%2012.9486%2010.2971%2013.1047%2010.1411L17.2313%206.01446L17.2306%207.59509C17.2309%207.81574%2017.4104%207.99421%2017.6311%207.99422C17.8518%207.99417%2018.0313%207.81571%2018.0316%207.59509V5.15889C18.0316%205.03439%2017.9732%204.92432%2017.8839%204.85091Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M17.2136%205.2536H15.1406L15.0819%205.24186C15.0284%205.219%2014.9909%205.16565%2014.9907%205.10375L15.0025%205.04506C15.0177%205.00889%2015.0467%204.98011%2015.0826%204.96495L15.1399%204.95322H17.5761C17.6203%204.95332%2017.6612%204.97381%2017.6907%205.00984L17.7066%205.02848L17.7253%205.04437C17.7434%205.05923%2017.7578%205.07667%2017.7674%205.09616L17.7819%205.15899V7.5952C17.7816%207.67702%2017.7147%207.74431%2017.6313%207.74435L17.5727%207.73261C17.5187%207.70986%2017.481%207.65662%2017.4808%207.5952L17.4815%205.41104L12.9281%209.96442L12.8784%209.99757C12.8242%2010.0193%2012.7595%2010.0082%2012.7154%209.96442L12.6823%209.9147C12.6604%209.86042%2012.6715%209.79567%2012.7154%209.75174L17.2136%205.2536ZM12.279%209.50038C12.1362%209.71673%2012.1362%209.99939%2012.279%2010.2158L12.3619%2010.318C12.5839%2010.5395%2012.9271%2010.5674%2013.1795%2010.4008L13.2817%2010.318L16.9816%206.61809L16.9809%207.5952C16.9813%207.9096%2017.205%208.17092%2017.5008%208.23118L17.6313%208.2443C17.9892%208.24422%2018.2813%207.95445%2018.2818%207.5952V5.15899L18.2777%205.08304C18.2592%204.92731%2018.1821%204.7933%2018.0767%204.69288C18.0716%204.68663%2018.0648%204.6817%2018.0595%204.67562C18.0534%204.67025%2018.0492%204.6628%2018.0429%204.65767V4.65905C17.9263%204.5362%2017.7633%204.45343%2017.5761%204.45327H15.1399L15.0087%204.46708C14.7548%204.51944%2014.5556%204.71963%2014.5039%204.97324L14.4908%205.10375C14.4911%205.41761%2014.7138%205.67992%2015.0101%205.74042L15.1406%205.75354H16.0065L12.3619%209.39818L12.279%209.50038Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M21.7686%2011.4554C21.7208%2011.35%2021.6289%2011.2657%2021.5086%2011.2335L19.1562%2010.6024C18.9429%2010.5454%2018.7233%2010.6732%2018.6662%2010.8865C18.6094%2011.0995%2018.7356%2011.3179%2018.9484%2011.3753L20.3678%2011.7556L15.3822%2014.6341C15.191%2014.7445%2015.1254%2014.9897%2015.2357%2015.181C15.3461%2015.3723%2015.5913%2015.438%2015.7826%2015.3275L20.8375%2012.4091L20.4274%2013.937C20.3705%2014.1503%2020.4977%2014.3691%2020.711%2014.4262C20.9241%2014.4831%2021.1438%2014.3574%2021.2011%2014.1443L21.8308%2011.7916C21.8631%2011.6713%2021.836%2011.5495%2021.7686%2011.4554Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M21.0155%2011.6705L19.0132%2011.134L18.9609%2011.1078C18.9147%2011.0721%2018.8919%2011.0111%2018.9077%2010.9513L18.9343%2010.8977C18.9585%2010.8664%2018.9944%2010.8459%2019.0332%2010.8405L19.0916%2010.844L21.444%2011.475C21.4877%2011.4868%2021.5221%2011.5175%2021.5409%2011.5589L21.5514%2011.581L21.5653%2011.6012C21.5785%2011.6197%2021.5879%2011.64%2021.5921%2011.6613L21.5895%2011.7271L20.9598%2014.0798C20.9385%2014.1584%2020.8566%2014.2063%2020.7758%2014.1849L20.7221%2014.1584C20.6758%2014.1224%2020.6532%2014.0612%2020.669%2014.0019L21.2353%2011.891L15.6577%2015.1112L15.6011%2015.1303C15.543%2015.1374%2015.4833%2015.1099%2015.4523%2015.0561L15.4331%2014.9995C15.426%2014.9413%2015.4537%2014.8817%2015.5073%2014.8507L21.0155%2011.6705ZM15.1508%2014.495C14.9569%2014.667%2014.8838%2014.9401%2014.9657%2015.186L15.0193%2015.3061C15.1988%2015.617%2015.5968%2015.7237%2015.9077%2015.5442L20.44%2012.9275L20.186%2013.8725C20.1049%2014.1764%2020.2535%2014.4866%2020.5237%2014.6213L20.6464%2014.6678C20.9916%2014.7599%2021.3493%2014.5564%2021.4427%2014.2092L22.0724%2011.8565L22.0872%2011.7825C22.1099%2011.6277%2022.072%2011.4778%2021.9958%2011.3527C21.9924%2011.3453%2021.9872%2011.3388%2021.9835%2011.3315C21.9791%2011.3248%2021.9769%2011.3165%2021.9722%2011.3099L21.9718%2011.3112C21.8904%2011.1616%2021.7534%2011.0404%2021.5733%2010.9921L19.221%2010.3611L19.0907%2010.3405C18.8315%2010.3253%2018.5869%2010.4676%2018.4713%2010.6993L18.4248%2010.8219C18.344%2011.1249%2018.4912%2011.4344%2018.7606%2011.5696L18.8838%2011.6169L19.7202%2011.841L15.2573%2014.4177L15.1508%2014.495Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M1.65324%2012.2125C1.65324%2012.2125%204.31589%209.88198%208.35259%2012.2126C12.3893%2014.5432%2012.0505%2018.2947%2012.0505%2018.2947%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M1.8792%207.64422C1.65846%207.99472%201.76364%208.4578%202.11414%208.67854C2.46463%208.89928%202.92771%208.79409%203.14845%208.4436L2.51383%208.04391L1.8792%207.64422ZM7.78502%207.91849L7.05727%208.09982C7.11501%208.33157%207.27968%208.52196%207.50069%208.6125C7.7217%208.70304%207.97261%208.68291%208.17636%208.55829L7.78502%207.91849ZM12.4639%2010.6199L11.7142%2010.6008C11.7079%2010.8491%2011.8249%2011.0844%2012.0267%2011.2292C12.2285%2011.374%2012.4889%2011.4095%2012.722%2011.324L12.4639%2010.6199ZM14.3414%2014.8726C14.1343%2015.2313%2014.2572%2015.69%2014.6159%2015.8971C14.9746%2016.1042%2015.4333%2015.9813%2015.6404%2015.6226L14.9909%2015.2476L14.3414%2014.8726ZM2.51383%208.04391C3.14845%208.4436%203.14855%208.44344%203.14845%208.4436C3.1485%208.44352%203.14843%208.44364%203.14845%208.4436C3.14835%208.44376%203.14789%208.44448%203.14783%208.44458C3.1478%208.44463%203.1477%208.44478%203.14783%208.44458C3.14789%208.44447%203.14776%208.44468%203.14845%208.4436C3.14985%208.44142%203.15288%208.43674%203.15675%208.43084C3.1645%208.41902%203.17711%208.40003%203.19433%208.37488C3.22883%208.32451%203.28151%208.24991%203.35035%208.1591C3.48895%207.97628%203.68835%207.73401%203.93218%207.49317C4.44915%206.98252%205.03474%206.60787%205.58368%206.59479L5.56581%205.845L5.54794%205.09521C4.40436%205.12247%203.46396%205.84727%202.87807%206.426C2.57046%206.72984%202.32422%207.02973%202.15503%207.2529C2.06997%207.36509%202.00322%207.45945%201.95676%207.52728C1.93351%207.56124%201.91526%207.58866%201.90226%207.60848C1.89576%207.6184%201.89057%207.62642%201.88672%207.63242C1.88479%207.63542%201.8832%207.63791%201.88195%207.63989C1.88132%207.64087%201.88078%207.64173%201.88032%207.64245C1.88009%207.64281%201.87938%207.64392%201.8792%207.64422C1.87925%207.64414%201.8791%207.64437%201.8792%207.64422C1.87908%207.6444%201.8792%207.64422%202.51383%208.04391ZM5.56581%205.845L5.58368%206.59479C6.0606%206.58342%206.40841%206.85926%206.68293%207.2779C6.81699%207.48233%206.91322%207.6938%206.97609%207.85759C7.00704%207.93824%207.02871%208.00419%207.04206%208.0477C7.04871%208.06938%207.05322%208.08525%207.05573%208.09432C7.05698%208.09885%207.05772%208.10165%207.05797%208.10262C7.05809%208.10308%207.0581%208.1031%207.05797%208.10262C7.05792%208.10239%207.05784%208.10208%207.05772%208.1016C7.05779%208.1019%207.05766%208.10137%207.05772%208.1016C7.05768%208.10145%207.05729%208.0999%207.05727%208.09982C7.05721%208.09957%207.05727%208.09982%207.78502%207.91849C8.51277%207.73715%208.5127%207.73688%208.51263%207.73659C8.51269%207.7368%208.5126%207.73648%208.51263%207.73659C8.51253%207.73616%208.51225%207.73509%208.51213%207.7346C8.51188%207.73361%208.5116%207.7325%208.51128%207.73125C8.51064%207.72876%208.50986%207.72574%208.50894%207.72223C8.5071%207.71519%208.50467%207.70614%208.50165%207.69519C8.49562%207.67332%208.48716%207.64381%208.4761%207.60777C8.45403%207.53584%208.42134%207.43696%208.37647%207.32007C8.28769%207.08878%208.14646%206.77431%207.93728%206.45533C7.52533%205.82714%206.76353%205.06624%205.54794%205.09521L5.56581%205.845ZM7.78502%207.91849C8.17636%208.55829%208.17653%208.55818%208.17636%208.55829C8.17645%208.55823%208.17631%208.55831%208.17636%208.55829C8.17617%208.55841%208.17536%208.5589%208.17523%208.55898C8.17526%208.55896%208.17497%208.55914%208.17523%208.55898C8.17536%208.5589%208.17617%208.55841%208.17636%208.55829C8.17809%208.55726%208.18129%208.55536%208.18656%208.55228C8.19709%208.54612%208.21449%208.53609%208.23812%208.52294C8.28548%208.4966%208.35731%208.45809%208.44863%208.41337C8.63282%208.32315%208.88826%208.21163%209.17656%208.12277C9.79184%207.93313%2010.3728%207.90193%2010.7786%208.13623L11.1536%207.48671L11.5286%206.83719C10.5647%206.28068%209.46131%206.46537%208.73474%206.68932C8.35212%206.80725%208.02224%206.95195%207.78885%207.06626C7.67138%207.1238%207.57635%207.17462%207.50904%207.21205C7.47534%207.23079%207.44846%207.24625%207.42905%207.25761C7.41933%207.26329%207.41148%207.26796%207.40556%207.2715C7.4026%207.27327%207.40013%207.27476%207.39814%207.27596C7.39715%207.27656%207.39628%207.27709%207.39554%207.27754C7.39517%207.27777%207.39483%207.27798%207.39452%207.27817C7.3946%207.27812%207.39436%207.27826%207.39452%207.27817C7.39432%207.27829%207.39368%207.27868%207.78502%207.91849ZM11.1536%207.48671L10.7786%208.13623C11.1844%208.37053%2011.4478%208.88921%2011.5912%209.51688C11.6584%209.81099%2011.6896%2010.088%2011.7035%2010.2926C11.7105%2010.394%2011.713%2010.4755%2011.7139%2010.5297C11.7143%2010.5567%2011.7143%2010.5768%2011.7143%2010.589C11.7142%2010.5951%2011.7143%2010.5988%2011.7142%2010.6008C11.7142%2010.6018%2011.7141%2010.6027%2011.7141%2010.6027C11.7141%2010.603%2011.7141%2010.6026%2011.7141%2010.6027C11.7141%2010.6027%2011.7142%2010.6018%2011.7142%2010.6008C11.7141%2010.6008%2011.7142%2010.6007%2011.7142%2010.6008C11.7142%2010.6006%2011.7142%2010.6008%2012.4639%2010.6199C13.2137%2010.6389%2013.2137%2010.6386%2013.2137%2010.6384C13.2137%2010.6386%2013.2137%2010.6383%2013.2137%2010.6384C13.2137%2010.638%2013.2137%2010.6371%2013.2137%2010.6367C13.2138%2010.6358%2013.2138%2010.6348%2013.2138%2010.6336C13.2138%2010.6313%2013.2139%2010.6284%2013.214%2010.625C13.2141%2010.6181%2013.2142%2010.6089%2013.2142%2010.5977C13.2144%2010.5752%2013.2143%2010.5442%2013.2137%2010.5056C13.2125%2010.4286%2013.209%2010.3209%2013.2001%2010.1904C13.1824%209.93115%2013.1427%209.57311%2013.0536%209.18279C12.8842%208.44158%2012.4925%207.3937%2011.5286%206.83719L11.1536%207.48671ZM12.4639%2010.6199C12.722%2011.324%2012.7223%2011.3239%2012.722%2011.324C12.7219%2011.3241%2012.7212%2011.3244%2012.721%2011.3244C12.7213%2011.3243%2012.7207%2011.3245%2012.721%2011.3244C12.7205%2011.3246%2012.7192%2011.3251%2012.7189%2011.3252C12.7185%2011.3253%2012.7183%2011.3254%2012.7189%2011.3252C12.7196%2011.3249%2012.7218%2011.3242%2012.726%2011.3227C12.7345%2011.3199%2012.7497%2011.3149%2012.7709%2011.3085C12.8135%2011.2957%2012.8791%2011.2775%2012.9616%2011.2594C13.1297%2011.2225%2013.352%2011.1895%2013.5854%2011.1954C14.0427%2011.2069%2014.4515%2011.3529%2014.7001%2011.8438L15.3692%2011.505L16.0383%2011.1662C15.4541%2010.0123%2014.4103%209.71569%2013.6232%209.69585C13.2343%209.68605%2012.8864%209.74017%2012.6399%209.7943C12.5151%209.8217%2012.4123%209.85%2012.3383%209.87229C12.3012%209.88346%2012.2711%209.89321%2012.2488%209.90069C12.2376%209.90444%2012.2284%209.90763%2012.2212%209.91015C12.2176%209.91142%2012.2145%209.91252%2012.2119%209.91344C12.2107%209.9139%2012.2095%209.91432%2012.2085%209.91469C12.208%209.91488%2012.2075%209.91505%2012.207%209.91521C12.2071%209.91517%2012.2068%209.9153%2012.207%209.91521C12.2067%209.91532%2012.2058%209.91567%2012.4639%2010.6199ZM15.3692%2011.505L14.7001%2011.8438C14.9931%2012.4224%2014.9479%2013.1375%2014.7687%2013.7961C14.6823%2014.1137%2014.5723%2014.3892%2014.4837%2014.5851C14.4397%2014.6824%2014.4018%2014.7584%2014.3759%2014.8083C14.3629%2014.8331%2014.3531%2014.8513%2014.3471%2014.8623C14.3441%2014.8677%2014.3424%2014.8709%2014.3414%2014.8726C14.3413%2014.8727%2014.3414%2014.8725%2014.3414%2014.8726C14.3415%2014.8724%2014.3414%2014.8726%2014.9909%2015.2476C15.6404%2015.6226%2015.6402%2015.6228%2015.6404%2015.6226C15.6404%2015.6225%2015.6408%2015.6218%2015.6409%2015.6216C15.6411%2015.6213%2015.6413%2015.6209%2015.6416%2015.6205C15.642%2015.6197%2015.6426%2015.6188%2015.6432%2015.6177C15.6444%2015.6156%2015.6459%2015.613%2015.6477%2015.6098C15.6512%2015.6035%2015.6559%2015.5952%2015.6615%2015.5849C15.6728%2015.5643%2015.6882%2015.5359%2015.7068%2015.5002C15.7438%2015.4288%2015.794%2015.3281%2015.8505%2015.203C15.963%2014.9543%2016.1038%2014.6025%2016.216%2014.19C16.4341%2013.3886%2016.5782%2012.2324%2016.0383%2011.1662L15.3692%2011.505Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0_1_15%22%3E%3Crect%20width%3D%2223%22%20height%3D%2220%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E');
  mask-image: url('data:image/svg+xml,%3Csvg%20width%3D%2223%22%20height%3D%2220%22%20viewBox%3D%220%200%2023%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url%28%23clip0_1_15%29%22%3E%3Cg%20opacity%3D%220.4%22%3E%3Cpath%20d%3D%22M2.40808%200.827592C2.52374%200.815654%202.64358%200.853355%202.7323%200.94185L4.45497%202.66451C4.61085%202.82063%204.6108%203.07281%204.45497%203.22896C4.29884%203.38509%204.04577%203.38592%203.88954%203.22994L2.85047%202.19088V7.94869C2.85041%208.16954%202.67093%208.34906%202.45008%208.34909C2.22929%208.34898%202.04975%208.16949%202.04968%207.94869V2.11275L0.932489%203.22994C0.776279%203.38603%200.523232%203.38608%200.367056%203.22994C0.21088%203.07373%200.210865%202.81973%200.367056%202.66353L2.08875%200.94185C2.17613%200.854545%202.29397%200.817034%202.40808%200.827592Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M2.6005%201.58716L4.06632%203.05298L4.11515%203.08521C4.16914%203.10716%204.23378%203.09646%204.27824%203.052L4.31046%203.0022C4.32506%202.9661%204.32527%202.92589%204.31046%202.88989L4.27824%202.84107L2.55558%201.11841C2.5229%201.08595%202.47836%201.07179%202.43351%201.07642L2.4091%201.07837L2.38468%201.07642C2.3624%201.07441%202.34054%201.0771%202.32023%201.08423L2.26554%201.11841L0.543863%202.84009C0.485323%202.89864%200.485301%202.99438%200.543863%203.05298L0.593668%203.08618C0.647668%203.10794%200.711887%203.09678%200.755777%203.05298L2.29972%201.50903V7.94849L2.31144%208.00708C2.33438%208.0609%202.38808%208.0988%202.45011%208.09888L2.50871%208.08716C2.56256%208.06424%202.60046%208.01056%202.6005%207.94849V1.58716ZM3.08683%208.07935C3.03479%208.33327%202.83494%208.53318%202.58097%208.58521L2.45011%208.59888C2.09139%208.59871%201.79982%208.30735%201.79972%207.94849V2.71607L1.10929%203.4065C0.887118%203.6285%200.544199%203.65633%200.29191%203.4895L0.190348%203.4065C-0.0634186%203.15267%20-0.06348%202.74042%200.190348%202.48657L1.91203%200.764894L1.96769%200.715089C2.08939%200.618618%202.23724%200.576665%202.38273%200.579347C2.569%200.56021%202.76443%200.620605%202.9091%200.764894L4.63175%202.48755L4.71476%202.58911C4.85764%202.80531%204.85758%203.0878%204.71476%203.30396L4.63175%203.40552C4.41028%203.627%204.06801%203.65587%203.81535%203.4895L3.71281%203.4065L3.1005%202.79419V7.94849L3.08683%208.07935Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M9.95957%200.273835C10.0739%200.292633%2010.1798%200.359795%2010.2422%200.467857L11.4595%202.57646C11.5698%202.76775%2011.5032%203.01289%2011.312%203.12332C11.1208%203.23334%2010.8763%203.16799%2010.7659%202.97698L10.0319%201.7056L8.54214%207.26535C8.48498%207.47868%208.2651%207.60553%208.05178%207.54848C7.83841%207.4913%207.71151%207.27149%207.76868%207.0581L9.27914%201.421L7.90973%202.21168C7.71846%202.32195%207.47425%202.25563%207.36385%202.0644C7.25371%201.87321%207.31823%201.62844%207.50925%201.51798L9.61873%200.300796C9.72663%200.238499%209.85124%200.233132%209.95957%200.273835Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M9.94651%201.05786L10.9823%202.85192L11.0221%202.89594C11.0686%202.93092%2011.1332%202.93759%2011.187%202.90677L11.232%202.86726C11.2559%202.8357%2011.2664%202.79579%2011.2615%202.75689L11.243%202.70139L10.0256%200.592767C10.0031%200.553748%209.96392%200.528062%209.9186%200.520611L9.89451%200.516179L9.87143%200.507974C9.85015%200.499981%209.82811%200.496146%209.80646%200.497642L9.7436%200.517194L7.63403%201.73435C7.56363%201.77517%207.53841%201.86664%207.58013%201.9393L7.61964%201.98426C7.6664%202.01976%207.73135%202.02569%207.78457%201.99509L9.67671%200.902664L8.01005%207.1227C7.98861%207.20272%208.03637%207.28545%208.11639%207.30689L8.17602%207.31073C8.23407%207.30252%208.28455%207.26039%208.30058%207.20055L9.94651%201.05786ZM8.78355%207.32996C8.69062%207.67676%208.33349%207.88252%207.98698%207.78985C7.64023%207.69694%207.43418%207.34004%207.52709%206.99329L8.88134%201.93916L8.03454%202.42806C7.76182%202.58527%207.42385%202.52183%207.22378%202.29574L7.14716%202.18927C6.96878%201.87963%207.07259%201.48149%207.38406%201.30139L9.49362%200.0842274L9.56122%200.0507794C9.70491%20-0.0112637%209.85944%20-0.0134101%2010.0001%200.0278408C10.0081%200.0291577%2010.0157%200.0325463%2010.0237%200.0341596C10.0313%200.0367257%2010.0399%200.03669%2010.0475%200.0395352L10.0463%200.0402257C10.2118%200.080047%2010.3652%200.180954%2010.4586%200.342794L11.676%202.45141L11.7297%202.57194C11.8114%202.81832%2011.7373%203.09147%2011.5434%203.26312L11.437%203.33974C11.1652%203.49614%2010.8265%203.43464%2010.626%203.20836L10.5493%203.1019L10.1171%202.35317L8.78355%207.32996Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M17.8839%204.85091C17.8105%204.76138%2017.7005%204.70324%2017.5759%204.70313H15.1397C14.919%204.70341%2014.7406%204.8829%2014.7406%205.10364C14.7408%205.32432%2014.9197%205.50335%2015.1404%205.50346H16.6098L12.5385%209.57485C12.3823%209.73106%2012.3823%209.9849%2012.5385%2010.1411C12.6947%2010.297%2012.9486%2010.2971%2013.1047%2010.1411L17.2313%206.01446L17.2306%207.59509C17.2309%207.81574%2017.4104%207.99421%2017.6311%207.99422C17.8518%207.99417%2018.0313%207.81571%2018.0316%207.59509V5.15889C18.0316%205.03439%2017.9732%204.92432%2017.8839%204.85091Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M17.2136%205.2536H15.1406L15.0819%205.24186C15.0284%205.219%2014.9909%205.16565%2014.9907%205.10375L15.0025%205.04506C15.0177%205.00889%2015.0467%204.98011%2015.0826%204.96495L15.1399%204.95322H17.5761C17.6203%204.95332%2017.6612%204.97381%2017.6907%205.00984L17.7066%205.02848L17.7253%205.04437C17.7434%205.05923%2017.7578%205.07667%2017.7674%205.09616L17.7819%205.15899V7.5952C17.7816%207.67702%2017.7147%207.74431%2017.6313%207.74435L17.5727%207.73261C17.5187%207.70986%2017.481%207.65662%2017.4808%207.5952L17.4815%205.41104L12.9281%209.96442L12.8784%209.99757C12.8242%2010.0193%2012.7595%2010.0082%2012.7154%209.96442L12.6823%209.9147C12.6604%209.86042%2012.6715%209.79567%2012.7154%209.75174L17.2136%205.2536ZM12.279%209.50038C12.1362%209.71673%2012.1362%209.99939%2012.279%2010.2158L12.3619%2010.318C12.5839%2010.5395%2012.9271%2010.5674%2013.1795%2010.4008L13.2817%2010.318L16.9816%206.61809L16.9809%207.5952C16.9813%207.9096%2017.205%208.17092%2017.5008%208.23118L17.6313%208.2443C17.9892%208.24422%2018.2813%207.95445%2018.2818%207.5952V5.15899L18.2777%205.08304C18.2592%204.92731%2018.1821%204.7933%2018.0767%204.69288C18.0716%204.68663%2018.0648%204.6817%2018.0595%204.67562C18.0534%204.67025%2018.0492%204.6628%2018.0429%204.65767V4.65905C17.9263%204.5362%2017.7633%204.45343%2017.5761%204.45327H15.1399L15.0087%204.46708C14.7548%204.51944%2014.5556%204.71963%2014.5039%204.97324L14.4908%205.10375C14.4911%205.41761%2014.7138%205.67992%2015.0101%205.74042L15.1406%205.75354H16.0065L12.3619%209.39818L12.279%209.50038Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M21.7686%2011.4554C21.7208%2011.35%2021.6289%2011.2657%2021.5086%2011.2335L19.1562%2010.6024C18.9429%2010.5454%2018.7233%2010.6732%2018.6662%2010.8865C18.6094%2011.0995%2018.7356%2011.3179%2018.9484%2011.3753L20.3678%2011.7556L15.3822%2014.6341C15.191%2014.7445%2015.1254%2014.9897%2015.2357%2015.181C15.3461%2015.3723%2015.5913%2015.438%2015.7826%2015.3275L20.8375%2012.4091L20.4274%2013.937C20.3705%2014.1503%2020.4977%2014.3691%2020.711%2014.4262C20.9241%2014.4831%2021.1438%2014.3574%2021.2011%2014.1443L21.8308%2011.7916C21.8631%2011.6713%2021.836%2011.5495%2021.7686%2011.4554Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M21.0155%2011.6705L19.0132%2011.134L18.9609%2011.1078C18.9147%2011.0721%2018.8919%2011.0111%2018.9077%2010.9513L18.9343%2010.8977C18.9585%2010.8664%2018.9944%2010.8459%2019.0332%2010.8405L19.0916%2010.844L21.444%2011.475C21.4877%2011.4868%2021.5221%2011.5175%2021.5409%2011.5589L21.5514%2011.581L21.5653%2011.6012C21.5785%2011.6197%2021.5879%2011.64%2021.5921%2011.6613L21.5895%2011.7271L20.9598%2014.0798C20.9385%2014.1584%2020.8566%2014.2063%2020.7758%2014.1849L20.7221%2014.1584C20.6758%2014.1224%2020.6532%2014.0612%2020.669%2014.0019L21.2353%2011.891L15.6577%2015.1112L15.6011%2015.1303C15.543%2015.1374%2015.4833%2015.1099%2015.4523%2015.0561L15.4331%2014.9995C15.426%2014.9413%2015.4537%2014.8817%2015.5073%2014.8507L21.0155%2011.6705ZM15.1508%2014.495C14.9569%2014.667%2014.8838%2014.9401%2014.9657%2015.186L15.0193%2015.3061C15.1988%2015.617%2015.5968%2015.7237%2015.9077%2015.5442L20.44%2012.9275L20.186%2013.8725C20.1049%2014.1764%2020.2535%2014.4866%2020.5237%2014.6213L20.6464%2014.6678C20.9916%2014.7599%2021.3493%2014.5564%2021.4427%2014.2092L22.0724%2011.8565L22.0872%2011.7825C22.1099%2011.6277%2022.072%2011.4778%2021.9958%2011.3527C21.9924%2011.3453%2021.9872%2011.3388%2021.9835%2011.3315C21.9791%2011.3248%2021.9769%2011.3165%2021.9722%2011.3099L21.9718%2011.3112C21.8904%2011.1616%2021.7534%2011.0404%2021.5733%2010.9921L19.221%2010.3611L19.0907%2010.3405C18.8315%2010.3253%2018.5869%2010.4676%2018.4713%2010.6993L18.4248%2010.8219C18.344%2011.1249%2018.4912%2011.4344%2018.7606%2011.5696L18.8838%2011.6169L19.7202%2011.841L15.2573%2014.4177L15.1508%2014.495Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M1.65324%2012.2125C1.65324%2012.2125%204.31589%209.88198%208.35259%2012.2126C12.3893%2014.5432%2012.0505%2018.2947%2012.0505%2018.2947%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M1.8792%207.64422C1.65846%207.99472%201.76364%208.4578%202.11414%208.67854C2.46463%208.89928%202.92771%208.79409%203.14845%208.4436L2.51383%208.04391L1.8792%207.64422ZM7.78502%207.91849L7.05727%208.09982C7.11501%208.33157%207.27968%208.52196%207.50069%208.6125C7.7217%208.70304%207.97261%208.68291%208.17636%208.55829L7.78502%207.91849ZM12.4639%2010.6199L11.7142%2010.6008C11.7079%2010.8491%2011.8249%2011.0844%2012.0267%2011.2292C12.2285%2011.374%2012.4889%2011.4095%2012.722%2011.324L12.4639%2010.6199ZM14.3414%2014.8726C14.1343%2015.2313%2014.2572%2015.69%2014.6159%2015.8971C14.9746%2016.1042%2015.4333%2015.9813%2015.6404%2015.6226L14.9909%2015.2476L14.3414%2014.8726ZM2.51383%208.04391C3.14845%208.4436%203.14855%208.44344%203.14845%208.4436C3.1485%208.44352%203.14843%208.44364%203.14845%208.4436C3.14835%208.44376%203.14789%208.44448%203.14783%208.44458C3.1478%208.44463%203.1477%208.44478%203.14783%208.44458C3.14789%208.44447%203.14776%208.44468%203.14845%208.4436C3.14985%208.44142%203.15288%208.43674%203.15675%208.43084C3.1645%208.41902%203.17711%208.40003%203.19433%208.37488C3.22883%208.32451%203.28151%208.24991%203.35035%208.1591C3.48895%207.97628%203.68835%207.73401%203.93218%207.49317C4.44915%206.98252%205.03474%206.60787%205.58368%206.59479L5.56581%205.845L5.54794%205.09521C4.40436%205.12247%203.46396%205.84727%202.87807%206.426C2.57046%206.72984%202.32422%207.02973%202.15503%207.2529C2.06997%207.36509%202.00322%207.45945%201.95676%207.52728C1.93351%207.56124%201.91526%207.58866%201.90226%207.60848C1.89576%207.6184%201.89057%207.62642%201.88672%207.63242C1.88479%207.63542%201.8832%207.63791%201.88195%207.63989C1.88132%207.64087%201.88078%207.64173%201.88032%207.64245C1.88009%207.64281%201.87938%207.64392%201.8792%207.64422C1.87925%207.64414%201.8791%207.64437%201.8792%207.64422C1.87908%207.6444%201.8792%207.64422%202.51383%208.04391ZM5.56581%205.845L5.58368%206.59479C6.0606%206.58342%206.40841%206.85926%206.68293%207.2779C6.81699%207.48233%206.91322%207.6938%206.97609%207.85759C7.00704%207.93824%207.02871%208.00419%207.04206%208.0477C7.04871%208.06938%207.05322%208.08525%207.05573%208.09432C7.05698%208.09885%207.05772%208.10165%207.05797%208.10262C7.05809%208.10308%207.0581%208.1031%207.05797%208.10262C7.05792%208.10239%207.05784%208.10208%207.05772%208.1016C7.05779%208.1019%207.05766%208.10137%207.05772%208.1016C7.05768%208.10145%207.05729%208.0999%207.05727%208.09982C7.05721%208.09957%207.05727%208.09982%207.78502%207.91849C8.51277%207.73715%208.5127%207.73688%208.51263%207.73659C8.51269%207.7368%208.5126%207.73648%208.51263%207.73659C8.51253%207.73616%208.51225%207.73509%208.51213%207.7346C8.51188%207.73361%208.5116%207.7325%208.51128%207.73125C8.51064%207.72876%208.50986%207.72574%208.50894%207.72223C8.5071%207.71519%208.50467%207.70614%208.50165%207.69519C8.49562%207.67332%208.48716%207.64381%208.4761%207.60777C8.45403%207.53584%208.42134%207.43696%208.37647%207.32007C8.28769%207.08878%208.14646%206.77431%207.93728%206.45533C7.52533%205.82714%206.76353%205.06624%205.54794%205.09521L5.56581%205.845ZM7.78502%207.91849C8.17636%208.55829%208.17653%208.55818%208.17636%208.55829C8.17645%208.55823%208.17631%208.55831%208.17636%208.55829C8.17617%208.55841%208.17536%208.5589%208.17523%208.55898C8.17526%208.55896%208.17497%208.55914%208.17523%208.55898C8.17536%208.5589%208.17617%208.55841%208.17636%208.55829C8.17809%208.55726%208.18129%208.55536%208.18656%208.55228C8.19709%208.54612%208.21449%208.53609%208.23812%208.52294C8.28548%208.4966%208.35731%208.45809%208.44863%208.41337C8.63282%208.32315%208.88826%208.21163%209.17656%208.12277C9.79184%207.93313%2010.3728%207.90193%2010.7786%208.13623L11.1536%207.48671L11.5286%206.83719C10.5647%206.28068%209.46131%206.46537%208.73474%206.68932C8.35212%206.80725%208.02224%206.95195%207.78885%207.06626C7.67138%207.1238%207.57635%207.17462%207.50904%207.21205C7.47534%207.23079%207.44846%207.24625%207.42905%207.25761C7.41933%207.26329%207.41148%207.26796%207.40556%207.2715C7.4026%207.27327%207.40013%207.27476%207.39814%207.27596C7.39715%207.27656%207.39628%207.27709%207.39554%207.27754C7.39517%207.27777%207.39483%207.27798%207.39452%207.27817C7.3946%207.27812%207.39436%207.27826%207.39452%207.27817C7.39432%207.27829%207.39368%207.27868%207.78502%207.91849ZM11.1536%207.48671L10.7786%208.13623C11.1844%208.37053%2011.4478%208.88921%2011.5912%209.51688C11.6584%209.81099%2011.6896%2010.088%2011.7035%2010.2926C11.7105%2010.394%2011.713%2010.4755%2011.7139%2010.5297C11.7143%2010.5567%2011.7143%2010.5768%2011.7143%2010.589C11.7142%2010.5951%2011.7143%2010.5988%2011.7142%2010.6008C11.7142%2010.6018%2011.7141%2010.6027%2011.7141%2010.6027C11.7141%2010.603%2011.7141%2010.6026%2011.7141%2010.6027C11.7141%2010.6027%2011.7142%2010.6018%2011.7142%2010.6008C11.7141%2010.6008%2011.7142%2010.6007%2011.7142%2010.6008C11.7142%2010.6006%2011.7142%2010.6008%2012.4639%2010.6199C13.2137%2010.6389%2013.2137%2010.6386%2013.2137%2010.6384C13.2137%2010.6386%2013.2137%2010.6383%2013.2137%2010.6384C13.2137%2010.638%2013.2137%2010.6371%2013.2137%2010.6367C13.2138%2010.6358%2013.2138%2010.6348%2013.2138%2010.6336C13.2138%2010.6313%2013.2139%2010.6284%2013.214%2010.625C13.2141%2010.6181%2013.2142%2010.6089%2013.2142%2010.5977C13.2144%2010.5752%2013.2143%2010.5442%2013.2137%2010.5056C13.2125%2010.4286%2013.209%2010.3209%2013.2001%2010.1904C13.1824%209.93115%2013.1427%209.57311%2013.0536%209.18279C12.8842%208.44158%2012.4925%207.3937%2011.5286%206.83719L11.1536%207.48671ZM12.4639%2010.6199C12.722%2011.324%2012.7223%2011.3239%2012.722%2011.324C12.7219%2011.3241%2012.7212%2011.3244%2012.721%2011.3244C12.7213%2011.3243%2012.7207%2011.3245%2012.721%2011.3244C12.7205%2011.3246%2012.7192%2011.3251%2012.7189%2011.3252C12.7185%2011.3253%2012.7183%2011.3254%2012.7189%2011.3252C12.7196%2011.3249%2012.7218%2011.3242%2012.726%2011.3227C12.7345%2011.3199%2012.7497%2011.3149%2012.7709%2011.3085C12.8135%2011.2957%2012.8791%2011.2775%2012.9616%2011.2594C13.1297%2011.2225%2013.352%2011.1895%2013.5854%2011.1954C14.0427%2011.2069%2014.4515%2011.3529%2014.7001%2011.8438L15.3692%2011.505L16.0383%2011.1662C15.4541%2010.0123%2014.4103%209.71569%2013.6232%209.69585C13.2343%209.68605%2012.8864%209.74017%2012.6399%209.7943C12.5151%209.8217%2012.4123%209.85%2012.3383%209.87229C12.3012%209.88346%2012.2711%209.89321%2012.2488%209.90069C12.2376%209.90444%2012.2284%209.90763%2012.2212%209.91015C12.2176%209.91142%2012.2145%209.91252%2012.2119%209.91344C12.2107%209.9139%2012.2095%209.91432%2012.2085%209.91469C12.208%209.91488%2012.2075%209.91505%2012.207%209.91521C12.2071%209.91517%2012.2068%209.9153%2012.207%209.91521C12.2067%209.91532%2012.2058%209.91567%2012.4639%2010.6199ZM15.3692%2011.505L14.7001%2011.8438C14.9931%2012.4224%2014.9479%2013.1375%2014.7687%2013.7961C14.6823%2014.1137%2014.5723%2014.3892%2014.4837%2014.5851C14.4397%2014.6824%2014.4018%2014.7584%2014.3759%2014.8083C14.3629%2014.8331%2014.3531%2014.8513%2014.3471%2014.8623C14.3441%2014.8677%2014.3424%2014.8709%2014.3414%2014.8726C14.3413%2014.8727%2014.3414%2014.8725%2014.3414%2014.8726C14.3415%2014.8724%2014.3414%2014.8726%2014.9909%2015.2476C15.6404%2015.6226%2015.6402%2015.6228%2015.6404%2015.6226C15.6404%2015.6225%2015.6408%2015.6218%2015.6409%2015.6216C15.6411%2015.6213%2015.6413%2015.6209%2015.6416%2015.6205C15.642%2015.6197%2015.6426%2015.6188%2015.6432%2015.6177C15.6444%2015.6156%2015.6459%2015.613%2015.6477%2015.6098C15.6512%2015.6035%2015.6559%2015.5952%2015.6615%2015.5849C15.6728%2015.5643%2015.6882%2015.5359%2015.7068%2015.5002C15.7438%2015.4288%2015.794%2015.3281%2015.8505%2015.203C15.963%2014.9543%2016.1038%2014.6025%2016.216%2014.19C16.4341%2013.3886%2016.5782%2012.2324%2016.0383%2011.1662L15.3692%2011.505Z%22%20fill%3D%22black%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22clip0_1_15%22%3E%3Crect%20width%3D%2223%22%20height%3D%2220%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E');
}

/* PK Channel: Base color - Sphere with specular highlight (material.svg)
   Used in: viewer controls.html */
.icon-pk-checkerboard {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_2475_5423)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.6901C17.3517 21.6901 21.6901 17.3517 21.6901 12.0001C21.6901 6.64846 17.3517 2.3101 12.0001 2.3101C6.64846 2.3101 2.3101 6.64846 2.3101 12.0001C2.3101 17.3517 6.64846 21.6901 12.0001 21.6901ZM12.0001 23.4001C18.2961 23.4001 23.4001 18.2961 23.4001 12.0001C23.4001 5.70405 18.2961 0.600098 12.0001 0.600098C5.70405 0.600098 0.600098 5.70405 0.600098 12.0001C0.600098 18.2961 5.70405 23.4001 12.0001 23.4001Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.2902 5.34432C12.3626 5.83607 12.0226 6.29341 11.5309 6.36581C10.2735 6.55095 9.06371 7.1267 8.09507 8.09534C7.39844 8.79198 6.90579 9.61239 6.61486 10.4848C6.45762 10.9563 5.9479 11.2111 5.47637 11.0538C5.00484 10.8966 4.75006 10.3869 4.90731 9.91535C5.28461 8.78392 5.92369 7.72113 6.82228 6.82255C8.07366 5.57117 9.64167 4.82456 11.2687 4.58501C11.7605 4.51261 12.2178 4.85256 12.2902 5.34432Z' fill='black'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2475_5423'%3E%3Crect width='24' height='24' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_2475_5423)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.6901C17.3517 21.6901 21.6901 17.3517 21.6901 12.0001C21.6901 6.64846 17.3517 2.3101 12.0001 2.3101C6.64846 2.3101 2.3101 6.64846 2.3101 12.0001C2.3101 17.3517 6.64846 21.6901 12.0001 21.6901ZM12.0001 23.4001C18.2961 23.4001 23.4001 18.2961 23.4001 12.0001C23.4001 5.70405 18.2961 0.600098 12.0001 0.600098C5.70405 0.600098 0.600098 5.70405 0.600098 12.0001C0.600098 18.2961 5.70405 23.4001 12.0001 23.4001Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.2902 5.34432C12.3626 5.83607 12.0226 6.29341 11.5309 6.36581C10.2735 6.55095 9.06371 7.1267 8.09507 8.09534C7.39844 8.79198 6.90579 9.61239 6.61486 10.4848C6.45762 10.9563 5.9479 11.2111 5.47637 11.0538C5.00484 10.8966 4.75006 10.3869 4.90731 9.91535C5.28461 8.78392 5.92369 7.72113 6.82228 6.82255C8.07366 5.57117 9.64167 4.82456 11.2687 4.58501C11.7605 4.51261 12.2178 4.85256 12.2902 5.34432Z' fill='black'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2475_5423'%3E%3Crect width='24' height='24' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}

/* PK: Normal map influence - Rotation arrows with curve
   Used in: viewer controls.html */
.icon-pk-layers {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7453 19.2199L20.2718 17.2032L19.3903 16.6943C19.0316 16.4871 18.9087 16.0286 19.1159 15.6698C19.323 15.3111 19.7815 15.1882 20.1403 15.3954L22.5898 16.8096L22.6544 16.8509C22.9628 17.0732 23.0584 17.4977 22.8642 17.834L21.45 20.2835C21.2429 20.6422 20.7843 20.7651 20.4256 20.558C20.0669 20.3509 19.944 19.8923 20.1511 19.5335L20.6601 18.6521L13.1336 20.6688C12.7335 20.776 12.3222 20.5386 12.215 20.1385C12.1078 19.7384 12.3452 19.3271 12.7453 19.2199Z' fill='black'/%3E%3Cpath d='M5.74501 12.2196L7.76173 4.6931L8.27065 5.57458C8.47776 5.9333 8.93634 6.05618 9.29506 5.84907C9.65378 5.64196 9.77666 5.18338 9.56955 4.82466L8.15534 2.37517L8.11402 2.31052C7.89168 2.00215 7.46725 1.90651 7.13093 2.10068L4.68144 3.51489C4.32272 3.722 4.19984 4.18058 4.40695 4.5393C4.61406 4.89802 5.07264 5.0209 5.43136 4.81379L6.31284 4.30487L4.29612 11.8314C4.18892 12.2315 4.42635 12.6427 4.82645 12.7499C5.22655 12.8571 5.63781 12.6197 5.74501 12.2196Z' fill='black'/%3E%3Cpath d='M11.5723 14.6649L17.7985 11.0702L16.8154 10.8068C16.4154 10.6995 16.1779 10.2883 16.2851 9.8883C16.3923 9.48825 16.8035 9.25091 17.2036 9.35802L19.9356 10.0901C20.3357 10.1973 20.5731 10.6084 20.4659 11.0085L19.7338 13.7406C19.6266 14.1407 19.2155 14.3781 18.8154 14.2709C18.4154 14.1636 18.1779 13.7524 18.2851 13.3524L18.5485 12.3692L12.3223 15.964C11.9636 16.171 11.5049 16.0481 11.2978 15.6894C11.0908 15.3308 11.2137 14.872 11.5723 14.6649Z' fill='black'/%3E%3Cpath d='M10.1843 13.3267L13.779 7.10049L14.0424 8.08366C14.1497 8.48374 14.5608 8.72114 14.9609 8.61393C15.361 8.50671 15.5984 8.09554 15.4912 7.69547L14.7591 4.96342C14.7076 4.77131 14.582 4.60746 14.4098 4.508C14.2375 4.40855 14.0328 4.38169 13.8407 4.43315L11.1086 5.1652C10.7085 5.27241 10.4711 5.68356 10.5783 6.08366C10.6856 6.48374 11.0967 6.72114 11.4968 6.61393L12.48 6.35049L8.88523 12.5767C8.67813 12.9355 8.80103 13.3942 9.15975 13.6013C9.51846 13.8083 9.97718 13.6854 10.1843 13.3267Z' fill='black'/%3E%3Cpath d='M10.9617 13.6308C12.9914 15.6607 13.5608 18.9286 12.5147 22.788C12.4064 23.1878 11.9947 23.4239 11.595 23.3156C11.1952 23.2072 10.959 22.7955 11.0674 22.3958C12.0317 18.838 11.4147 16.2054 9.90107 14.6915C8.3872 13.1776 5.75408 12.5601 2.1961 13.5245C1.79632 13.6328 1.38466 13.3967 1.27631 12.9969C1.16797 12.5971 1.4041 12.1855 1.80387 12.0771C5.6635 11.031 8.93183 11.6009 10.9617 13.6308Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7453 19.2199L20.2718 17.2032L19.3903 16.6943C19.0316 16.4871 18.9087 16.0286 19.1159 15.6698C19.323 15.3111 19.7815 15.1882 20.1403 15.3954L22.5898 16.8096L22.6544 16.8509C22.9628 17.0732 23.0584 17.4977 22.8642 17.834L21.45 20.2835C21.2429 20.6422 20.7843 20.7651 20.4256 20.558C20.0669 20.3509 19.944 19.8923 20.1511 19.5335L20.6601 18.6521L13.1336 20.6688C12.7335 20.776 12.3222 20.5386 12.215 20.1385C12.1078 19.7384 12.3452 19.3271 12.7453 19.2199Z' fill='black'/%3E%3Cpath d='M5.74501 12.2196L7.76173 4.6931L8.27065 5.57458C8.47776 5.9333 8.93634 6.05618 9.29506 5.84907C9.65378 5.64196 9.77666 5.18338 9.56955 4.82466L8.15534 2.37517L8.11402 2.31052C7.89168 2.00215 7.46725 1.90651 7.13093 2.10068L4.68144 3.51489C4.32272 3.722 4.19984 4.18058 4.40695 4.5393C4.61406 4.89802 5.07264 5.0209 5.43136 4.81379L6.31284 4.30487L4.29612 11.8314C4.18892 12.2315 4.42635 12.6427 4.82645 12.7499C5.22655 12.8571 5.63781 12.6197 5.74501 12.2196Z' fill='black'/%3E%3Cpath d='M11.5723 14.6649L17.7985 11.0702L16.8154 10.8068C16.4154 10.6995 16.1779 10.2883 16.2851 9.8883C16.3923 9.48825 16.8035 9.25091 17.2036 9.35802L19.9356 10.0901C20.3357 10.1973 20.5731 10.6084 20.4659 11.0085L19.7338 13.7406C19.6266 14.1407 19.2155 14.3781 18.8154 14.2709C18.4154 14.1636 18.1779 13.7524 18.2851 13.3524L18.5485 12.3692L12.3223 15.964C11.9636 16.171 11.5049 16.0481 11.2978 15.6894C11.0908 15.3308 11.2137 14.872 11.5723 14.6649Z' fill='black'/%3E%3Cpath d='M10.1843 13.3267L13.779 7.10049L14.0424 8.08366C14.1497 8.48374 14.5608 8.72114 14.9609 8.61393C15.361 8.50671 15.5984 8.09554 15.4912 7.69547L14.7591 4.96342C14.7076 4.77131 14.582 4.60746 14.4098 4.508C14.2375 4.40855 14.0328 4.38169 13.8407 4.43315L11.1086 5.1652C10.7085 5.27241 10.4711 5.68356 10.5783 6.08366C10.6856 6.48374 11.0967 6.72114 11.4968 6.61393L12.48 6.35049L8.88523 12.5767C8.67813 12.9355 8.80103 13.3942 9.15975 13.6013C9.51846 13.8083 9.97718 13.6854 10.1843 13.3267Z' fill='black'/%3E%3Cpath d='M10.9617 13.6308C12.9914 15.6607 13.5608 18.9286 12.5147 22.788C12.4064 23.1878 11.9947 23.4239 11.595 23.3156C11.1952 23.2072 10.959 22.7955 11.0674 22.3958C12.0317 18.838 11.4147 16.2054 9.90107 14.6915C8.3872 13.1776 5.75408 12.5601 2.1961 13.5245C1.79632 13.6328 1.38466 13.3967 1.27631 12.9969C1.16797 12.5971 1.4041 12.1855 1.80387 12.0771C5.6635 11.031 8.93183 11.6009 10.9617 13.6308Z' fill='black'/%3E%3C/svg%3E");
}

/* PK Channel: Full PBR - Sphere with dual highlights
   Used in: viewer controls.html */
.icon-pk-pbr {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_2561_4593)'%3E%3Cpath opacity='0.4' d='M18.7161 11.716C19.94 12.9399 19.3651 15.4991 17.4321 17.4321C15.4991 19.3651 12.9399 19.9399 11.7161 18.7161C10.4922 17.4922 11.067 14.933 13 13C14.933 11.067 17.4922 10.4921 18.7161 11.716Z' fill='black'/%3E%3Cpath opacity='0.8' d='M10.5828 5.58293C11.457 6.45712 11.0464 8.28507 9.6657 9.66576C8.28501 11.0465 6.45706 11.4571 5.58287 10.5829C4.70867 9.70867 5.11927 7.88073 6.49997 6.50003C7.88067 5.11933 9.70861 4.70873 10.5828 5.58293Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.9601C17.5009 21.9601 21.9601 17.5009 21.9601 12.0001C21.9601 6.49934 17.5009 2.0401 12.0001 2.0401C6.49934 2.0401 2.0401 6.49934 2.0401 12.0001C2.0401 17.5009 6.49934 21.9601 12.0001 21.9601ZM12.0001 23.4001C18.2961 23.4001 23.4001 18.2961 23.4001 12.0001C23.4001 5.70405 18.2961 0.600098 12.0001 0.600098C5.70405 0.600098 0.600098 5.70405 0.600098 12.0001C0.600098 18.2961 5.70405 23.4001 12.0001 23.4001Z' fill='black'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2561_4593'%3E%3Crect width='24' height='24' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_2561_4593)'%3E%3Cpath opacity='0.4' d='M18.7161 11.716C19.94 12.9399 19.3651 15.4991 17.4321 17.4321C15.4991 19.3651 12.9399 19.9399 11.7161 18.7161C10.4922 17.4922 11.067 14.933 13 13C14.933 11.067 17.4922 10.4921 18.7161 11.716Z' fill='black'/%3E%3Cpath opacity='0.8' d='M10.5828 5.58293C11.457 6.45712 11.0464 8.28507 9.6657 9.66576C8.28501 11.0465 6.45706 11.4571 5.58287 10.5829C4.70867 9.70867 5.11927 7.88073 6.49997 6.50003C7.88067 5.11933 9.70861 4.70873 10.5828 5.58293Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.0001 21.9601C17.5009 21.9601 21.9601 17.5009 21.9601 12.0001C21.9601 6.49934 17.5009 2.0401 12.0001 2.0401C6.49934 2.0401 2.0401 6.49934 2.0401 12.0001C2.0401 17.5009 6.49934 21.9601 12.0001 21.9601ZM12.0001 23.4001C18.2961 23.4001 23.4001 18.2961 23.4001 12.0001C23.4001 5.70405 18.2961 0.600098 12.0001 0.600098C5.70405 0.600098 0.600098 5.70405 0.600098 12.0001C0.600098 18.2961 5.70405 23.4001 12.0001 23.4001Z' fill='black'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2561_4593'%3E%3Crect width='24' height='24' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}

/* PK Channel: Metallic - Square letter M
   Used in: viewer controls.html */
.icon-pk-anvil {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 2C19.7956 2 20.5587 2.31607 21.1213 2.87868C21.6839 3.44129 22 4.20435 22 5V19C22 19.7956 21.6839 20.5587 21.1213 21.1213C20.5587 21.6839 19.7956 22 19 22H5C4.20435 22 3.44129 21.6839 2.87868 21.1213C2.31607 20.5587 2 19.7956 2 19V5C2 4.20435 2.31607 3.44129 2.87868 2.87868C3.44129 2.31607 4.20435 2 5 2H19ZM16 8C16 6.986 14.664 6.616 14.143 7.486L12 11.056L9.857 7.486C9.336 6.616 8 6.986 8 8V16C8 16.2652 8.10536 16.5196 8.29289 16.7071C8.48043 16.8946 8.73478 17 9 17L9.117 16.993C9.36025 16.9643 9.58453 16.8474 9.74728 16.6644C9.91004 16.4813 9.99997 16.2449 10 16V11.61L11.143 13.514L11.217 13.622C11.3176 13.7484 11.4473 13.8486 11.595 13.9139C11.7427 13.9793 11.9041 14.0079 12.0653 13.9973C12.2265 13.9866 12.3827 13.9371 12.5206 13.853C12.6584 13.7688 12.7739 13.6525 12.857 13.514L14 11.61V16C14 16.2652 14.1054 16.5196 14.2929 16.7071C14.4804 16.8946 14.7348 17 15 17C15.2652 17 15.5196 16.8946 15.7071 16.7071C15.8946 16.5196 16 16.2652 16 16V8Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 2C19.7956 2 20.5587 2.31607 21.1213 2.87868C21.6839 3.44129 22 4.20435 22 5V19C22 19.7956 21.6839 20.5587 21.1213 21.1213C20.5587 21.6839 19.7956 22 19 22H5C4.20435 22 3.44129 21.6839 2.87868 21.1213C2.31607 20.5587 2 19.7956 2 19V5C2 4.20435 2.31607 3.44129 2.87868 2.87868C3.44129 2.31607 4.20435 2 5 2H19ZM16 8C16 6.986 14.664 6.616 14.143 7.486L12 11.056L9.857 7.486C9.336 6.616 8 6.986 8 8V16C8 16.2652 8.10536 16.5196 8.29289 16.7071C8.48043 16.8946 8.73478 17 9 17L9.117 16.993C9.36025 16.9643 9.58453 16.8474 9.74728 16.6644C9.91004 16.4813 9.99997 16.2449 10 16V11.61L11.143 13.514L11.217 13.622C11.3176 13.7484 11.4473 13.8486 11.595 13.9139C11.7427 13.9793 11.9041 14.0079 12.0653 13.9973C12.2265 13.9866 12.3827 13.9371 12.5206 13.853C12.6584 13.7688 12.7739 13.6525 12.857 13.514L14 11.61V16C14 16.2652 14.1054 16.5196 14.2929 16.7071C14.4804 16.8946 14.7348 17 15 17C15.2652 17 15.5196 16.8946 15.7071 16.7071C15.8946 16.5196 16 16.2652 16 16V8Z' fill='black'/%3E%3C/svg%3E");
}

/* PK Channel: Roughness - Square letter R
   Used in: viewer controls.html */
.icon-pk-jagged {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 2C19.7956 2 20.5587 2.31607 21.1213 2.87868C21.6839 3.44129 22 4.20435 22 5V19C22 19.7956 21.6839 20.5587 21.1213 21.1213C20.5587 21.6839 19.7956 22 19 22H5C4.20435 22 3.44129 21.6839 2.87868 21.1213C2.31607 20.5587 2 19.7956 2 19V5C2 4.20435 2.31607 3.44129 2.87868 2.87868C3.44129 2.31607 4.20435 2 5 2H19ZM12 7H10C9.73478 7 9.48043 7.10536 9.29289 7.29289C9.10536 7.48043 9 7.73478 9 8V16C9 16.2652 9.10536 16.5196 9.29289 16.7071C9.48043 16.8946 9.73478 17 10 17L10.117 16.993C10.3603 16.9643 10.5845 16.8474 10.7473 16.6644C10.91 16.4813 11 16.2449 11 16V13.668L13.2 16.6C13.3591 16.8122 13.596 16.9524 13.8586 16.99C14.1211 17.0275 14.3878 16.9591 14.6 16.8L14.696 16.719C14.871 16.5495 14.9782 16.322 14.9973 16.0792C15.0165 15.8363 14.9463 15.5948 14.8 15.4L12.897 12.862L13.012 12.825C13.6766 12.586 14.2356 12.1203 14.5907 11.5098C14.9458 10.8993 15.0742 10.1832 14.9533 9.48732C14.8324 8.79148 14.47 8.16058 13.9298 7.70562C13.3896 7.25066 12.7063 7.0008 12 7ZM12 9C12.2652 9 12.5196 9.10536 12.7071 9.29289C12.8946 9.48043 13 9.73478 13 10C13 10.2652 12.8946 10.5196 12.7071 10.7071C12.5196 10.8946 12.2652 11 12 11H11V9H12Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 2C19.7956 2 20.5587 2.31607 21.1213 2.87868C21.6839 3.44129 22 4.20435 22 5V19C22 19.7956 21.6839 20.5587 21.1213 21.1213C20.5587 21.6839 19.7956 22 19 22H5C4.20435 22 3.44129 21.6839 2.87868 21.1213C2.31607 20.5587 2 19.7956 2 19V5C2 4.20435 2.31607 3.44129 2.87868 2.87868C3.44129 2.31607 4.20435 2 5 2H19ZM12 7H10C9.73478 7 9.48043 7.10536 9.29289 7.29289C9.10536 7.48043 9 7.73478 9 8V16C9 16.2652 9.10536 16.5196 9.29289 16.7071C9.48043 16.8946 9.73478 17 10 17L10.117 16.993C10.3603 16.9643 10.5845 16.8474 10.7473 16.6644C10.91 16.4813 11 16.2449 11 16V13.668L13.2 16.6C13.3591 16.8122 13.596 16.9524 13.8586 16.99C14.1211 17.0275 14.3878 16.9591 14.6 16.8L14.696 16.719C14.871 16.5495 14.9782 16.322 14.9973 16.0792C15.0165 15.8363 14.9463 15.5948 14.8 15.4L12.897 12.862L13.012 12.825C13.6766 12.586 14.2356 12.1203 14.5907 11.5098C14.9458 10.8993 15.0742 10.1832 14.9533 9.48732C14.8324 8.79148 14.47 8.16058 13.9298 7.70562C13.3896 7.25066 12.7063 7.0008 12 7ZM12 9C12.2652 9 12.5196 9.10536 12.7071 9.29289C12.8946 9.48043 13 9.73478 13 10C13 10.2652 12.8946 10.5196 12.7071 10.7071C12.5196 10.8946 12.2652 11 12 11H11V9H12Z' fill='black'/%3E%3C/svg%3E");
}

/* PK Channel: Normal map - Square letter N
   Used in: viewer controls.html */
.icon-pk-normal {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 2C19.7956 2 20.5587 2.31607 21.1213 2.87868C21.6839 3.44129 22 4.20435 22 5V19C22 19.7956 21.6839 20.5587 21.1213 21.1213C20.5587 21.6839 19.7956 22 19 22H5C4.20435 22 3.44129 21.6839 2.87868 21.1213C2.31607 20.5587 2 19.7956 2 19V5C2 4.20435 2.31607 3.44129 2.87868 2.87868C3.44129 2.31607 4.20435 2 5 2H19ZM10.894 7.553C10.423 6.609 9 6.945 9 8V16C9 16.2652 9.10536 16.5196 9.29289 16.7071C9.48043 16.8946 9.73478 17 10 17L10.117 16.993C10.3603 16.9643 10.5845 16.8474 10.7473 16.6644C10.91 16.4813 11 16.2449 11 16V12.236L13.106 16.447C13.577 17.391 15 17.055 15 16V8C15 7.73478 14.8946 7.48043 14.7071 7.29289C14.5196 7.10536 14.2652 7 14 7L13.883 7.007C13.6397 7.03566 13.4155 7.15259 13.2527 7.33563C13.09 7.51866 13 7.75507 13 8V11.764L10.894 7.553Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 2C19.7956 2 20.5587 2.31607 21.1213 2.87868C21.6839 3.44129 22 4.20435 22 5V19C22 19.7956 21.6839 20.5587 21.1213 21.1213C20.5587 21.6839 19.7956 22 19 22H5C4.20435 22 3.44129 21.6839 2.87868 21.1213C2.31607 20.5587 2 19.7956 2 19V5C2 4.20435 2.31607 3.44129 2.87868 2.87868C3.44129 2.31607 4.20435 2 5 2H19ZM10.894 7.553C10.423 6.609 9 6.945 9 8V16C9 16.2652 9.10536 16.5196 9.29289 16.7071C9.48043 16.8946 9.73478 17 10 17L10.117 16.993C10.3603 16.9643 10.5845 16.8474 10.7473 16.6644C10.91 16.4813 11 16.2449 11 16V12.236L13.106 16.447C13.577 17.391 15 17.055 15 16V8C15 7.73478 14.8946 7.48043 14.7071 7.29289C14.5196 7.10536 14.2652 7 14 7L13.883 7.007C13.6397 7.03566 13.4155 7.15259 13.2527 7.33563C13.09 7.51866 13 7.75507 13 8V11.764L10.894 7.553Z' fill='black'/%3E%3C/svg%3E");
}

/* Trash - Delete/remove
   Used in: visual_detection/launcher.html */
.icon-trash {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6'/%3E%3Cpath d='M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6'/%3E%3Cpath d='M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2'/%3E%3C/svg%3E");
}

/* Clock - Time/duration
   Used in: visual_detection/dashboard.html */
.icon-clock {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");
}

/* PK Channel: Emissive - Square letter E
   Used in: viewer controls.html */
.icon-pk-emissive {
  -webkit-mask-image: url('data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url%28%23clip0_2986_5144%29%22%3E%0A%3Cpath%20d%3D%22M19%202C19.7956%202%2020.5587%202.31607%2021.1213%202.87868C21.6839%203.44129%2022%204.20435%2022%205V19C22%2019.7956%2021.6839%2020.5587%2021.1213%2021.1213C20.5587%2021.6839%2019.7956%2022%2019%2022H5C4.20435%2022%203.44129%2021.6839%202.87868%2021.1213C2.31607%2020.5587%202%2019.7956%202%2019V5C2%204.20435%202.31607%203.44129%202.87868%202.87868C3.44129%202.31607%204.20435%202%205%202H19ZM14%207H10C9.73478%207%209.48043%207.10536%209.29289%207.29289C9.10536%207.48043%209%207.73478%209%208V16C9%2016.2652%209.10536%2016.5196%209.29289%2016.7071C9.48043%2016.8946%209.73478%2017%2010%2017H14C14.2652%2017%2014.5196%2016.8946%2014.7071%2016.7071C14.8946%2016.5196%2015%2016.2652%2015%2016L14.993%2015.883C14.9643%2015.6397%2014.8474%2015.4155%2014.6644%2015.2527C14.4813%2015.09%2014.2449%2015%2014%2015H11V13H12.5C12.7449%2013%2012.9813%2012.91%2013.1644%2012.7473C13.3474%2012.5845%2013.4643%2012.3603%2013.493%2012.117L13.5%2012C13.5%2011.7348%2013.3946%2011.4804%2013.2071%2011.2929C13.0196%2011.1054%2012.7652%2011%2012.5%2011H11V9H14C14.2652%209%2014.5196%208.89464%2014.7071%208.70711C14.8946%208.51957%2015%208.26522%2015%208C15%207.73478%2014.8946%207.48043%2014.7071%207.29289C14.5196%207.10536%2014.2652%207%2014%207Z%22%20fill%3D%22black%22%2F%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_2986_5144%22%3E%0A%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22white%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E');
  mask-image: url('data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url%28%23clip0_2986_5144%29%22%3E%0A%3Cpath%20d%3D%22M19%202C19.7956%202%2020.5587%202.31607%2021.1213%202.87868C21.6839%203.44129%2022%204.20435%2022%205V19C22%2019.7956%2021.6839%2020.5587%2021.1213%2021.1213C20.5587%2021.6839%2019.7956%2022%2019%2022H5C4.20435%2022%203.44129%2021.6839%202.87868%2021.1213C2.31607%2020.5587%202%2019.7956%202%2019V5C2%204.20435%202.31607%203.44129%202.87868%202.87868C3.44129%202.31607%204.20435%202%205%202H19ZM14%207H10C9.73478%207%209.48043%207.10536%209.29289%207.29289C9.10536%207.48043%209%207.73478%209%208V16C9%2016.2652%209.10536%2016.5196%209.29289%2016.7071C9.48043%2016.8946%209.73478%2017%2010%2017H14C14.2652%2017%2014.5196%2016.8946%2014.7071%2016.7071C14.8946%2016.5196%2015%2016.2652%2015%2016L14.993%2015.883C14.9643%2015.6397%2014.8474%2015.4155%2014.6644%2015.2527C14.4813%2015.09%2014.2449%2015%2014%2015H11V13H12.5C12.7449%2013%2012.9813%2012.91%2013.1644%2012.7473C13.3474%2012.5845%2013.4643%2012.3603%2013.493%2012.117L13.5%2012C13.5%2011.7348%2013.3946%2011.4804%2013.2071%2011.2929C13.0196%2011.1054%2012.7652%2011%2012.5%2011H11V9H14C14.2652%209%2014.5196%208.89464%2014.7071%208.70711C14.8946%208.51957%2015%208.26522%2015%208C15%207.73478%2014.8946%207.48043%2014.7071%207.29289C14.5196%207.10536%2014.2652%207%2014%207Z%22%20fill%3D%22black%22%2F%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_2986_5144%22%3E%0A%3Crect%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22white%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E');
}

/* Settings Gear - Color adjust
   Used in: meshy_viewer_controls.html */
.icon-gear {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}
