/* PONSCRACK live layer styling — activity bar, clock, scan states, recompute pulse */
.livebar{
  position:sticky;top:74px;z-index:9;
  display:flex;align-items:center;gap:14px;
  height:34px;padding:0 4vw;
  border-bottom:1px solid var(--line);
  background:#0d0d0bf2;backdrop-filter:blur(10px);
  font-size:10px;overflow:hidden;
}
.live-tag{
  display:inline-flex;align-items:center;gap:6px;flex:none;
  color:var(--amber);letter-spacing:.14em;font-weight:bold;
}
.live-tag .dot{
  width:7px;height:7px;border-radius:50%;background:var(--green);
  box-shadow:0 0 8px var(--green);animation:livePulse 1.6s ease-in-out infinite;
}
@keyframes livePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
.live-track{flex:1;min-width:0;overflow:hidden;position:relative;height:100%;display:flex;align-items:center}
.live-track:before,.live-track:after{
  content:'';position:absolute;top:0;bottom:0;width:48px;z-index:2;pointer-events:none;
}
.live-track:before{left:0;background:linear-gradient(90deg,var(--ink),transparent)}
.live-track:after{right:0;background:linear-gradient(270deg,var(--ink),transparent)}
.live-stream{
  display:inline-flex;align-items:center;gap:16px;white-space:nowrap;
  will-change:transform;animation:liveScroll 60s linear infinite;
}
.live-track:hover .live-stream{animation-play-state:paused}
@keyframes liveScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.ev{color:var(--muted)}
.ev b{color:var(--bone);font-weight:normal}
.ev-sep{color:var(--line)}
.ev-tag{font-weight:bold;letter-spacing:.06em;margin-right:5px}
.ev-cracked{color:var(--amber)}
.ev-scanned{color:var(--green)}
.ev-vaulted{color:#7fa8d0}
.ev-listed{color:var(--bone)}
.ev-attested{color:var(--green)}
.ev-graded{color:var(--amber)}
.ev-grade{color:var(--bone)}
.ev-val{color:var(--amber)}
.ev-ago{color:var(--muted);opacity:.7}
.live-clock{flex:none;color:var(--muted);letter-spacing:.08em;font-variant-numeric:tabular-nums}

/* scan-state animation in the hero optical panel */
#scanState.scanning{animation:scanBlink 1s steps(2) infinite}
@keyframes scanBlink{0%,100%{color:var(--green)}50%{color:var(--amber)}}
.scan-slab:after{animation:scanSweep 2.6s ease-in-out infinite}
@keyframes scanSweep{0%{top:12%;opacity:.2}50%{opacity:1}100%{top:88%;opacity:.2}}

/* recompute pulse on registry stats */
#registryStats.recompute b{animation:recomputeFlash .9s ease-out}
@keyframes recomputeFlash{0%{color:var(--amber);text-shadow:0 0 12px #ffb00066}100%{color:var(--bone);text-shadow:none}}

@media(max-width:800px){
  .livebar{top:74px;padding:0 16px;gap:10px}
  .live-clock{display:none}
  .live-stream{animation-duration:42s}
}
@media(prefers-reduced-motion:reduce){
  .live-stream,.scan-slab:after,.live-tag .dot{animation:none}
  .live-stream{transform:none}
}
