/* ═══════════════════════════════════════════════════════════════════════
   "THE PROPERTY, AT WORK" · CINEMA BOOST — styles
   Camera moves, caption choreography, act-number pop, scoreboard glow.
   Keys off the director's own classes; additive and removable.
   ═══════════════════════════════════════════════════════════════════════ */

/* burst canvas sits over the scrim, under the act content */
.bt-wcg-boost-canvas {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 3;
}
.bt-wcg-act { z-index: 4; }

/* ---------- THE CAMERA: the stage re-frames on every act ---------- */
@media (prefers-reduced-motion: no-preference) {
  #bt-wcg-stage > .bt-wcg-canvas,
  #bt-wcg-stage > .bt-wcg-aurora {
    transition: transform 2.6s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform;
  }
  .bt-wcg.is-act-1 #bt-wcg-stage > .bt-wcg-canvas { transform: scale(1.05); }
  .bt-wcg.is-act-2 #bt-wcg-stage > .bt-wcg-canvas { transform: scale(1.10) translate(-1.4%, 0.8%); }
  .bt-wcg.is-act-3 #bt-wcg-stage > .bt-wcg-canvas { transform: scale(1.07) translate(1.2%, -0.6%); }
  .bt-wcg.is-act-4 #bt-wcg-stage > .bt-wcg-canvas { transform: scale(1.12) translate(-0.8%, -1%); }
  .bt-wcg.is-act-5 #bt-wcg-stage > .bt-wcg-canvas { transform: scale(1.04); }
  .bt-wcg.is-act-6 #bt-wcg-stage > .bt-wcg-canvas { transform: scale(1.0); }

  /* ---------- CAPTION CHOREOGRAPHY: label → head → sub, rise + focus ---------- */
  .bt-wcg-caption .label,
  .bt-wcg-caption .head,
  .bt-wcg-caption .sub {
    opacity: 0;
    transform: translateY(22px);
    filter: blur(6px);
  }
  .bt-wcg-act.is-active .bt-wcg-caption .label { animation: bt-wcg-rise 0.6s cubic-bezier(0.16,1,0.3,1) 0.08s forwards; }
  .bt-wcg-act.is-active .bt-wcg-caption .head  { animation: bt-wcg-rise 0.72s cubic-bezier(0.16,1,0.3,1) 0.22s forwards; }
  .bt-wcg-act.is-active .bt-wcg-caption .sub   { animation: bt-wcg-rise 0.7s cubic-bezier(0.16,1,0.3,1) 0.42s forwards; }
}
@keyframes bt-wcg-rise {
  60% { filter: blur(0); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
@media (prefers-reduced-motion: reduce) {
  .bt-wcg-caption .label, .bt-wcg-caption .head, .bt-wcg-caption .sub { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* ---------- act number pop on every cut ---------- */
.bt-wcg-actno.is-pop strong { display: inline-block; animation: bt-wcg-nopop 0.5s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes bt-wcg-nopop {
  0% { transform: scale(1.7); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

/* ---------- Act 5: the scoreboard lands like a result, not a slide ---------- */
.bt-wcg.is-act-5 .bt-wcg-endpoint.right {
  box-shadow: 0 0 0 1px rgba(232,201,122,0.35), 0 24px 70px -24px rgba(232,201,122,0.35);
  border-radius: 10px;
}
.bt-wcg.is-act-5 .bt-wcg-endpoint.right .bt-wcg-endpoint-delta {
  text-shadow: 0 0 26px rgba(91,197,138,0.65);
}

/* ---------- Act 4 tickets: harder win hit ---------- */
@media (prefers-reduced-motion: no-preference) {
  .bt-wcg-big-ticket.is-firing { animation: bt-wcg-tickethit 0.5s cubic-bezier(0.34,1.56,0.64,1); }
}
@keyframes bt-wcg-tickethit {
  0% { transform: scale(1); }
  35% { transform: scale(1.035); }
  100% { transform: scale(1); }
}

/* ---------- bugfix: progress strip was swallowing Replay clicks ----------
   (ID-scoped: the section's own styles are inline and load later) */
#where-capital-goes .bt-wcg-progress { pointer-events: none; }
#where-capital-goes .bt-wcg-progress .bt-wcg-chapter { pointer-events: auto; }
#where-capital-goes .bt-wcg-replay { z-index: 11; }
