/* Grain + vignette — studio material, ~7.5% */

.grain-root {
  position: relative;
}

.grain-root::after {
  content: "";
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: var(--grain-opacity, 0.075);
  background-image: url("../assets/grain.svg");
  background-repeat: repeat;
  background-size: 180px 180px;
  mix-blend-mode: overlay;
}

/* Soft vignette — warmth, not flat; soft-light keeps void readable */
.grain-root::before {
  content: "";
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 9998;
  background:
    radial-gradient(ellipse 95% 75% at 50% 40%, transparent 45%, rgba(7, 7, 8, 0.22) 100%);
  mix-blend-mode: soft-light;
  opacity: 0.85;
}

.grain-local {
  position: relative;
  isolation: isolate;
}

.grain-local::after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  opacity: var(--grain-opacity, 0.075);
  background-image: url("../assets/grain.svg");
  background-repeat: repeat;
  background-size: 160px 160px;
  mix-blend-mode: soft-light;
  border-radius: inherit;
  z-index: 3;
}
