/* ==========================================================================
   Analogue signal
   ==========================================================================
   The static is footage: assets/vhs-static.webm, played through
   js/static-clip.js. Two consumers, the television's screen and the surface
   that grows out of it, and both point at the same recording so the expansion
   reads as one continuous signal.

   This file used to synthesise the effect - a generated noise tile, three
   tearing bands on separate stepped cycles, a flicker layer, a scanline
   overlay. All of it is gone. The clip already contains tearing, dropouts and
   level instability, recorded rather than approximated, and layering
   synthetic copies of those same artefacts on top of real footage read as two
   competing effects instead of one signal.

   What remains is placement.
   ========================================================================== */

/* The clip, wherever it appears. object-fit: cover because the source is 4:3
   and it has to fill boxes of any ratio - a 768x576 frame letterboxed inside
   a widescreen viewport would show the seams of the illusion immediately. */
.tv__noise,
.signal-surface__clip {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  pointer-events: none;
  display: block;
}

/* The television's copy. Screened so it reads as light emitted by the tube
   rather than as a rectangle pasted over the glass. */
.tv__noise { mix-blend-mode: screen; }

/* --- Scanlines -----------------------------------------------------------
   Kept, and only here: this is the television's own glass, not the signal.
   The clip carries the artefacts of the recording; the set contributes the
   structure of its own screen.
   -------------------------------------------------------------------------- */
.scanlines {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(180deg, rgba(0,0,0,0.22) 0 1px, transparent 1px 3px);
  opacity: 0.18;
  pointer-events: none;
}
