/* ============================================================================
   PREVIOUSLY · Evidence Board — evidence sync v2 styles (Phase 0, 2026-10-14)
   Now-showing stage, Who's-Who strip, Case Timeline scrubber, graphic veil.
   Desert theme tokens, 390px-first.
   ============================================================================ */

/* ---- Now-showing stage ---- */
.pvns{ margin-bottom:14px; border:1px solid var(--desert-accent,#c2410c);
  border-radius:14px; padding:14px; background:transparent; }
.pvns-kicker,.pvtl-kicker,.pvww-kicker{ font-size:11px; font-weight:800;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--desert-accent-deep,#8a2e0d); margin:0 0 10px; }
.pvns-card{ display:flex; gap:14px; width:100%; text-align:left; cursor:pointer;
  background:transparent; border:0; padding:0; font-family:inherit;
  align-items:flex-start; }
.pvns-media{ position:relative; width:132px; aspect-ratio:4/3; flex-shrink:0;
  border-radius:10px; overflow:hidden; background:var(--desert-pressed,#e9e0cd);
  display:block; }
.pvns-img{ width:100%; height:100%; object-fit:cover; display:block; }
.pvns-blur{ filter:blur(14px); transform:scale(1.12); }
.pvns-body{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.pvns-kind{ align-self:flex-start; font-size:9.5px; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase; color:var(--desert-accent-deep,#8a2e0d);
  border:1px solid var(--desert-accent,#c2410c); border-radius:4px; padding:2px 6px; }
.pvns-title{ font-family:Georgia,serif; font-size:19px; line-height:1.25;
  color:var(--desert-ink,#241a10); }
.pvns-note{ font-size:13px; line-height:1.5; color:var(--desert-ink-dim,#6b5d4a); }
.pvns-chip{ align-self:flex-start; margin-top:2px; font-size:12px; font-weight:800;
  letter-spacing:.04em; color:var(--desert-accent,#c2410c); }
.pvns-flip .pvns-card{ animation:pvns-in .45s ease; }
@keyframes pvns-in{ from{ opacity:.35; } to{ opacity:1; } }
@media (prefers-reduced-motion: reduce){ .pvns-flip .pvns-card{ animation:none; } }
@media (max-width:480px){
  .pvns{ padding:12px; }
  .pvns-media{ width:104px; }
  .pvns-title{ font-size:17px; }
  .pvns-note{ font-size:12.5px; }
}

/* ---- graphic veil (stage + exhibit grid) ---- */
.pvns-veil{ position:absolute; inset:0; display:flex; align-items:center;
  justify-content:center; text-align:center; padding:10px;
  background:rgba(24,16,8,.45); }
.pvns-veil[hidden]{ display:none; }
.pvns-veil-label{ font-size:12px; font-weight:800; letter-spacing:.03em;
  color:#faf6ee; background:rgba(24,16,8,.72); border-radius:8px; padding:8px 10px; }
.pvns-veil--grid{ position:absolute; }
.eb-photo.pvns-photo-rel{ position:relative; }

/* ---- Case timeline scrubber ---- */
.pvtl{ margin-bottom:14px; border:1px solid var(--desert-rule,#ddd3c0);
  border-radius:14px; padding:14px 14px 10px; }
.pvtl-bar{ position:relative; height:36px; cursor:pointer; touch-action:none;
  -webkit-tap-highlight-color:transparent; }
.pvtl-track{ position:absolute; left:0; right:0; top:50%; height:4px;
  transform:translateY(-50%); border-radius:2px;
  background:var(--desert-rule,#ddd3c0); }
.pvtl-head{ position:absolute; top:50%; width:2px; height:22px;
  transform:translate(-1px,-50%); background:var(--desert-accent,#c2410c);
  pointer-events:none; }
.pvtl-head::after{ content:""; position:absolute; top:-5px; left:50%;
  transform:translateX(-50%); width:10px; height:10px; border-radius:50%;
  background:var(--desert-accent,#c2410c); }
.pvtl-node{ position:absolute; top:50%; width:22px; height:22px; padding:0;
  transform:translate(-50%,-50%); border-radius:50%;
  background:transparent; border:0; cursor:pointer; }
.pvtl-node::after{ content:""; position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%); width:9px; height:9px; border-radius:50%;
  background:var(--desert-card,#fffdf7); border:2px solid var(--desert-ink-faint,#a08e6d); }
.pvtl-node--past::after{ border-color:var(--desert-accent,#c2410c); }
.pvtl-node--on::after{ background:var(--desert-accent,#c2410c);
  border-color:var(--desert-accent,#c2410c); width:12px; height:12px; }
.pvtl-current{ font-size:13px; color:var(--desert-ink-dim,#6b5d4a);
  min-height:20px; line-height:1.45; }
.pvtl-when{ font-weight:800; color:var(--desert-accent,#c2410c); white-space:nowrap; }
.pvtl-label{ font-weight:700; color:var(--desert-ink,#241a10); }
.pvtl-note{ display:block; font-size:12.5px; }

/* ---- Who's-who strip ---- */
.pvww{ margin-bottom:14px; border:1px solid var(--desert-rule,#ddd3c0);
  border-radius:14px; padding:14px; }
.pvww-strip{ display:flex; gap:10px; overflow-x:auto; padding-bottom:4px;
  -webkit-overflow-scrolling:touch; }
.pvww-person{ display:flex; flex-direction:column; align-items:center; gap:4px;
  width:96px; flex-shrink:0; padding:10px 6px 8px; cursor:pointer;
  background:transparent; border:1px solid var(--desert-rule,#ddd3c0);
  border-radius:12px; font-family:inherit; }
.pvww-person--on{ border-color:var(--desert-accent,#c2410c);
  box-shadow:0 0 0 2px var(--desert-accent-glow,rgba(194,65,12,.25)); }
.pvww-media{ width:54px; height:54px; border-radius:50%; overflow:hidden;
  background:var(--desert-pressed,#e9e0cd); display:flex; align-items:center;
  justify-content:center; }
.pvww-img{ width:100%; height:100%; object-fit:cover; display:block; }
.pvww-disc{ font-size:16px; font-weight:800; color:var(--desert-accent-deep,#8a2e0d); }
.pvww-name{ font-size:12.5px; font-weight:700; line-height:1.3; text-align:center;
  color:var(--desert-ink,#241a10); }
.pvww-role{ font-size:11px; line-height:1.3; text-align:center;
  color:var(--desert-ink-dim,#6b5d4a); }

/* ============================================================================
   WALL SKIN — Evidence sync v2 (Phase 2, 2026-10-14). The now-showing card,
   who's-who chain and case timeline become wall pieces; the string layer
   (board-string.js) is styled here. Append-only over the Phase 0 styles.
   ============================================================================ */
/* ---- now-showing: pinned cream card under the stage ---- */
.pvns{
  background:var(--eb-paper,#FAF6EE); border:1px solid rgba(27,23,18,.18);
  border-radius:6px; box-shadow:0 10px 24px rgba(27,23,18,.28);
  transform:rotate(.75deg); position:relative; padding-top:18px;
}
.pvns::before{
  content:""; position:absolute; top:-9px; left:26px; width:17px; height:17px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #E8CD8A, #B08A3E 58%, #7A5E26);
  box-shadow:0 3px 6px rgba(27,23,18,.4), inset 0 -2px 3px rgba(27,23,18,.35);
}
.pvns-kicker,.pvtl-kicker,.pvww-kicker{ color:var(--eb-red,#C0391B); }
.pvns-kicker::after{
  content:"EXHIBIT — FOLLOW ALONG"; font-size:9px; letter-spacing:.14em;
  color:var(--eb-faint,#6E5F4B); margin-left:8px; font-weight:700;
}
.pvns-title{ font-family:'Fraunces','Playfair Display',Georgia,serif; font-weight:700; color:var(--eb-ink,#1B1712); }
.pvns-kind{ color:var(--eb-red,#C0391B); border-color:var(--eb-red,#C0391B); border-radius:3px; }
.pvns-chip{ color:var(--eb-red,#C0391B); }
.pvns-media{ border-radius:4px; box-shadow:inset 0 0 0 1px rgba(27,23,18,.2); }
.pvns-veil{ background:var(--eb-veil,rgba(27,23,18,.55)); backdrop-filter:blur(3px); }
/* ---- case timeline: the string IS the scrubber ---- */
.pvtl{
  background:var(--eb-paper,#FAF6EE); border:1px solid rgba(27,23,18,.18);
  border-radius:6px; box-shadow:0 10px 24px rgba(27,23,18,.28); position:relative;
}
.pvtl-track{ height:3px; background:var(--eb-red,#C0391B); opacity:.85; border-radius:2px; }
.pvtl-head{ background:var(--eb-red,#C0391B); }
.pvtl-head::after{
  background:radial-gradient(circle at 35% 30%, #F0A08C, var(--eb-red,#C0391B) 60%, #7E2410);
  width:13px; height:13px; top:-8px;
  box-shadow:0 2px 5px rgba(27,23,18,.4);
}
.pvtl-node::after{
  background:var(--eb-manila,#EAD9AC); border:2px solid var(--eb-pin,#B08A3E);
  box-shadow:0 2px 4px rgba(27,23,18,.3);
}
.pvtl-node--past::after{ border-color:var(--eb-red,#C0391B); }
.pvtl-node--on::after{ background:var(--eb-red,#C0391B); border-color:#7E2410; width:13px; height:13px; }
.pvtl-current{
  background:var(--eb-manila,#EAD9AC); border:1px solid rgba(27,23,18,.16);
  border-radius:4px; padding:7px 10px; margin-top:4px; transform:rotate(-.3deg);
  box-shadow:0 3px 8px rgba(27,23,18,.18);
}
.pvtl-when{ color:var(--eb-red,#C0391B); }
/* ---- who's-who: portrait discs on the string ---- */
.pvww{
  background:var(--eb-paper,#FAF6EE); border:1px solid rgba(27,23,18,.18);
  border-radius:6px; box-shadow:0 10px 24px rgba(27,23,18,.28);
}
.pvww-person{
  background:transparent; border:0; border-radius:6px; position:relative; padding-top:16px;
}
.pvww-person::before{
  content:""; position:absolute; top:2px; left:50%; width:11px; height:11px;
  transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #E8CD8A, #B08A3E 58%, #7A5E26);
  box-shadow:0 2px 4px rgba(27,23,18,.4);
}
.pvww-media{
  border:2px solid var(--eb-paper,#FAF6EE); outline:1px solid rgba(27,23,18,.25);
  box-shadow:0 4px 10px rgba(27,23,18,.3); background:var(--eb-manila,#EAD9AC);
}
.pvww-person--on{ box-shadow:none; }
.pvww-person--on .pvww-media{ outline:2px solid var(--eb-red,#C0391B); }
.pvww-person--on .pvww-name{
  background:var(--eb-red,#C0391B); color:var(--eb-bone,#F5EFE3);
  border-radius:3px; padding:1px 7px;
}
.pvww-disc{ color:var(--eb-red,#C0391B); font-family:'Fraunces','Playfair Display',Georgia,serif; }
/* ---- THE STRING LAYER (board-string.js) ---- */
#ebStringSvg{
  position:absolute; left:0; top:0; z-index:5; pointer-events:none; overflow:visible;
}
#ebStringSvg path{ fill:none; stroke-linecap:round; }
#ebStringSvg .eb-string-who{
  stroke:var(--eb-red,#C0391B); stroke-width:2; opacity:.55;
}
#ebStringSvg .eb-string-sync{
  stroke:var(--eb-red,#C0391B); stroke-width:2; opacity:.45;
  transition:opacity .35s ease, stroke-width .35s ease;
}
#ebStringSvg.is-live .eb-string-sync{ opacity:1; stroke-width:2.5; }
#ebStringSvg .eb-string-pin{
  fill:var(--eb-pin,#B08A3E); stroke:rgba(27,23,18,.35); stroke-width:1;
}
#ebStringSvg.is-live .eb-string-pin--sync{ fill:var(--eb-red,#C0391B); }
@media (prefers-reduced-motion: reduce){
  .pvns{ transform:none; }
  #ebStringSvg .eb-string-sync{ transition:none; }
}
