/* pulse.css — Vault Pulse reactive overlays.
   Every effect is click-through (pointer-events:none), self-removing (animationend),
   and fully suppressed under prefers-reduced-motion. Colors ride the theme amber vars
   from terminal.css so each effect recolors with the active theme. DOM/CSS only —
   no canvas, no rAF loop. */

#pulse-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9400;            /* over page content, under nav-overlay (9450)/toasts (9999)/boot */
  overflow: hidden;
}
.pulse-fx { position: absolute; pointer-events: none; will-change: transform, opacity; }

@media (prefers-reduced-motion: reduce) {
  #pulse-layer { display: none; }
}

/* ── jackpot: a shower of falling gold caps ─────────────────────────────── */
.pulse-cap {
  top: -2.2rem;
  font-size: clamp(1.1rem, 1.6vw, 1.6rem);
  line-height: 1;
  color: var(--amber-glow, #ffcc44);
  text-shadow: 0 0 8px currentColor, 0 0 2px var(--amber, #ffb000);
  animation: pulse-fall 2.3s linear forwards;
}
@keyframes pulse-fall {
  0%   { opacity: 0; transform: translateY(0) rotate(0); }
  8%   { opacity: 1; }
  100% { opacity: 0; transform: translateY(112vh) rotate(220deg); }
}

/* ── newcomer / jackpot headline: a centered amber broadcast wipe ───────── */
.pulse-banner {
  left: 0; right: 0; top: 0;
  text-align: center;
  padding: .55rem 1rem;
  font-weight: 700;
  letter-spacing: .14em;
  font-size: clamp(.8rem, 1.4vw, 1.05rem);
  color: var(--amber-glow, #ffcc44);
  text-shadow: 0 0 10px var(--amber, #ffb000);
  background: linear-gradient(90deg, transparent, rgba(0,0,0,.78) 18%, rgba(0,0,0,.78) 82%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--amber, #ffb000) 55%, transparent);
  animation: pulse-wipe 1.9s ease-out forwards;
}
@keyframes pulse-wipe {
  0%   { clip-path: inset(0 100% 0 0); opacity: 1; }
  32%  { clip-path: inset(0 0 0 0);    opacity: 1; }
  80%  { opacity: 1; }
  100% { clip-path: inset(0 0 0 0);    opacity: 0; }
}

/* ── wasteland: a brief irradiated-green shimmer behind a banner ───────────
   green is semantic here (rads), kept across themes like the grow palette. */
.pulse-shimmer {
  inset: 0;
  background: radial-gradient(circle at 50% 38%, rgba(120,255,120,.16), transparent 62%);
  animation: pulse-fade 2.1s ease-out forwards;
}
.pulse-leaf {
  top: -2rem;
  font-size: clamp(1rem, 1.4vw, 1.35rem);
  color: #9fd17a;                              /* foliage green — semantic, like the grow room */
  text-shadow: 0 0 6px rgba(120,255,120,.6);
  animation: pulse-fall 2.1s linear forwards;
}
@keyframes pulse-fade {
  0%   { opacity: 0; }
  25%  { opacity: 1; }
  100% { opacity: 0; }
}

/* ── bigwin: a brief glow pulse on the live status ticker (personal) ─────── */
body.pulse-bigwin .vault-ticker {
  animation: pulse-ticker 1.4s ease-out;
}
@keyframes pulse-ticker {
  0%, 100% { box-shadow: none; }
  30%      { box-shadow: 0 0 14px color-mix(in srgb, var(--amber-glow, #ffcc44) 70%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
  body.pulse-bigwin .vault-ticker { animation: none; }
}
