:root {
  --paper-fiber: radial-gradient(circle at 12% 30%, rgb(255 255 255 / 0.34) 0 0.7px, transparent 0.9px), radial-gradient(circle at 72% 68%, rgb(35 46 62 / 0.1) 0 0.55px, transparent 0.8px), repeating-linear-gradient(96deg, transparent 0 5px, rgb(80 67 55 / 0.025) 6px 7px);
  --paint-cloud: radial-gradient(ellipse at 22% 46%, rgb(255 255 255 / 0.2), transparent 38%), radial-gradient(ellipse at 78% 62%, rgb(18 49 84 / 0.18), transparent 45%), repeating-linear-gradient(102deg, transparent 0 18px, rgb(255 255 255 / 0.05) 19px 22px);
  --ink-dropout: radial-gradient(circle, transparent 0 0.55px, #000 0.8px 100%);
  --wash-cloud: radial-gradient(ellipse at 28% 34%, rgb(255 255 255 / 0.42), transparent 45%), radial-gradient(ellipse at 72% 62%, rgb(59 95 145 / 0.12), transparent 48%);
}

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

.material-paper::after,
.material-paint::after,
.material-ink::after,
.material-wash::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  pointer-events: none;
  content: "";
}

.material-paper::after {
  background-image: var(--paper-fiber);
  background-size: 43px 37px, 61px 53px, 100% 100%;
  mix-blend-mode: multiply;
  opacity: var(--material-opacity, 0.3);
}

.material-paint::after {
  background-image: var(--paint-cloud);
  background-size: 100% 100%;
  mix-blend-mode: var(--material-blend, soft-light);
  opacity: var(--material-opacity, 0.7);
}

.material-ink::after {
  background-image: var(--ink-dropout);
  background-size: var(--material-size, 6px) var(--material-size, 6px);
  mix-blend-mode: screen;
  opacity: var(--material-opacity, 0.12);
}

.material-wash::after {
  background-image: var(--wash-cloud);
  background-size: 100% 100%;
  mix-blend-mode: soft-light;
  opacity: var(--material-opacity, 0.75);
}

.analog-photo {
  filter: saturate(0.78) contrast(0.94) sepia(0.08);
}

.analog-frame {
  position: relative;
  overflow: hidden;
}

.analog-frame::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background: radial-gradient(circle at 20% 10%, rgb(255 236 204 / 0.12), transparent 34%), repeating-radial-gradient(circle at 50% 50%, transparent 0 1px, rgb(18 28 39 / 0.035) 1.4px 1.9px);
  background-size: 100% 100%, 5px 5px;
  mix-blend-mode: multiply;
  opacity: 0.42;
}

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