/* Grid Pulse background (test). See grid-pulse.js. The grid is fixed to the window, under the content. */
.gpulse{
  position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  /* hairlines: faint on their own so the lit cells keep full ink. Change --gpulse-line to tune. */
  --gpulse-line:rgba(9,26,36,.10);
  background-image:linear-gradient(to right,var(--gpulse-line) 1px,transparent 1px),linear-gradient(to bottom,var(--gpulse-line) 1px,transparent 1px);
  background-size:var(--gpulse-cell,24px) var(--gpulse-cell,24px);
}
.gpulse canvas{position:absolute;inset:0;width:100%;height:100%;}

/* Content sits above the grid. */
.gpulse-page .food-shell{position:relative;z-index:1;}

/* A halo in the page colour so lit cells never crowd the letters. */
.gpulse-page .ap-title,
.gpulse-page .ap-subtitle,
.gpulse-page .ap-prose p,
.gpulse-page .ap-prose h3,
.gpulse-page .ap-prose blockquote{
  text-shadow:0 0 5px var(--paper),0 0 12px var(--paper),0 0 24px var(--paper);
}
