.material-paper,
.material-paint,
.material-ink,
.material-wash {
  isolation: isolate;
}

:where(.material-paper, .material-paint, .material-ink, .material-wash):not(.absolute):not(.fixed):not(.sticky) {
  position: relative;
}

.material-paper::before,
.material-paint::before,
.material-ink::before,
.material-wash::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  pointer-events: none;
  background-image: var(--material-texture);
  background-size: var(--material-size, 256px);
  background-repeat: repeat;
  opacity: var(--material-opacity, .14);
  mix-blend-mode: var(--material-blend, multiply);
}

.material-paper {
  --material-texture: url("/vi/services/website-development/styles/item/defense-systems-tactical-signal/preview/assets/paper-grain.webp");
  --material-size: 256px;
  --material-opacity: .045;
  --material-blend: soft-light;
}

.material-paint {
  --material-texture: url("/vi/services/website-development/styles/item/defense-systems-tactical-signal/preview/assets/paint-grain.webp");
  --material-size: 256px;
  --material-opacity: .12;
  --material-blend: screen;
}

.material-ink {
  --material-texture: url("/vi/services/website-development/styles/item/defense-systems-tactical-signal/preview/assets/ink-dropout.webp");
  --material-size: 192px;
  --material-opacity: .07;
  --material-blend: screen;
}

.material-wash {
  --material-texture: url("/vi/services/website-development/styles/item/defense-systems-tactical-signal/preview/assets/paint-grain.webp");
  --material-size: 320px;
  --material-opacity: .075;
  --material-blend: soft-light;
}

.halftone-photo {
  isolation: isolate;
  overflow: hidden;
  background: #19252e;
}

.halftone-photo:not(.absolute):not(.fixed):not(.sticky) {
  position: relative;
}

.halftone-photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.18) brightness(.9);
}

.halftone-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    radial-gradient(circle at center, rgba(25, 37, 46, .5) 0 .7px, transparent .85px),
    linear-gradient(135deg, rgba(237, 240, 242, .08), rgba(25, 37, 46, .08));
  background-size: 3px 3px, 100% 100%;
  mix-blend-mode: multiply;
  opacity: .28;
}

.duotone-oxide::after {
  background-color: rgba(182, 61, 43, .25);
  background-blend-mode: multiply;
}

.duotone-sepia::after {
  background-color: rgba(186, 125, 79, .38);
  background-blend-mode: color;
}

.duotone-sepia > img {
  filter: grayscale(1) sepia(.82) saturate(1.15) brightness(.74) contrast(1.14);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
