/* ── Global halftone overlay — fixed, covers entire viewport ── */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: var(--z-halftone);
  background-image: radial-gradient(rgba(255, 46, 99, 0.18) 1.2px, transparent 1.6px);
  background-size: 8px 8px;
  opacity: 0.6;
}

/* ── Panel-level halftone (applied via .has-halftone modifier) ── */
.has-halftone {
  position: relative;
  overflow: hidden;
}

.has-halftone::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image: radial-gradient(rgba(0, 0, 0, 0.18) 2px, transparent 2.5px);
  background-size: 10px 10px;
  opacity: 0.5;
}

/* Ensure all children of halftone panels sit above the pattern */
.has-halftone > * {
  position: relative;
  z-index: 2;
}
