/* ═══ MERGED: THE ROOM + FREQUENCY ═════════════════════════════ */
body { background: #0b1030; }

.heart-host { position: fixed; inset: 0; z-index: 45; pointer-events: none; }
.heart { position: fixed; z-index: 45; pointer-events: none; color: #ff7eb6; font-size: 20px; animation: heart 1.1s ease-out forwards; }
@keyframes heart { to { transform: translate(var(--dx), -60px) scale(1.4); opacity: 0; } }

/* a light whole-scene color wash over the 3D canvas, tinted per station
   (the stations themselves swap the room's props; see room.js) */
.room-tint {
  position: fixed; inset: 0; z-index: 2; pointer-events: none;
  background: var(--tint-color, transparent); opacity: 0; mix-blend-mode: soft-light;
  transition: opacity .15s linear;
}

/* static/noise overlay, borrowed from prototype B */
.noise {
  position: fixed; inset: 0; z-index: 3; pointer-events: none;
  opacity: calc(var(--static, 0) * .5); mix-blend-mode: screen;
  background-image: var(--noise-img); background-size: 256px 256px;
  animation: noiseShift .12s steps(1) infinite;
}
@keyframes noiseShift { 25% { background-position: 37px 91px; } 50% { background-position: -120px 40px; } 75% { background-position: 60px -77px; } }

/* the intro gate's styles live in /assets/gate.css (shared with the lite version) */
