/* Live points-change animation (static/ptsfx.js). transform/opacity only; works over every theme. */
#ptsfx-layer{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}
.ptsfx-badge{position:absolute;left:0;top:0;padding:4px 9px 4px 8px;border-radius:999px;font:800 13px/1.1 var(--mono,ui-monospace,monospace);
  letter-spacing:-.2px;color:#fff;white-space:nowrap;will-change:transform,opacity;opacity:0;
  box-shadow:0 0 0 1.5px rgba(255,255,255,.75),0 6px 16px rgba(0,0,0,.28);text-shadow:0 1px 1px rgba(0,0,0,.25)}
.ptsfx-badge.up{background:linear-gradient(180deg,#3be38f,#0fa85a);box-shadow:0 0 0 1.5px rgba(255,255,255,.8),0 0 14px rgba(46,230,138,.75),0 6px 16px rgba(0,0,0,.25)}
.ptsfx-badge.down{background:linear-gradient(180deg,#ff6b6b,#d62d20);box-shadow:0 0 0 1.5px rgba(255,255,255,.8),0 0 14px rgba(255,77,79,.7),0 6px 16px rgba(0,0,0,.25)}
.ptsfx-spark{position:absolute;left:0;top:0;width:8px;height:8px;border-radius:50%;opacity:0;will-change:transform,opacity}
.ptsfx-spark.up{background:radial-gradient(circle,#eafff3 0,#3be38f 45%,rgba(59,227,143,0) 72%)}
.ptsfx-spark.down{background:radial-gradient(circle,#fff0f0 0,#ff6b6b 45%,rgba(255,107,107,0) 72%)}
/* the row's score: pop + a colour wash behind it */
.mpts b[data-fx-pid]{display:inline-block;position:relative;isolation:isolate}
.mpts b[data-fx-pid]::after{content:"";position:absolute;inset:-2px -5px;border-radius:7px;opacity:0;pointer-events:none;z-index:-1}
.mpts b.fx-up::after{background:rgba(46,204,113,.38);animation:fxwash 1.4s ease-out}
.mpts b.fx-down::after{background:rgba(255,77,79,.34);animation:fxwash 1.4s ease-out}
.mpts b.fx-up{animation:fxpop .55s cubic-bezier(.3,1.6,.5,1)}.mpts b.fx-down{animation:fxpop .55s cubic-bezier(.3,1.6,.5,1)}
@keyframes fxwash{0%{opacity:0}18%{opacity:1}100%{opacity:0}}
@keyframes fxpop{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}
/* the header total: pulse + glow (an overlay whose opacity animates) */
.mh2 .mh-score{position:relative;isolation:isolate}
.mh2 .mh-score::after{content:"";position:absolute;inset:-6px -10px;border-radius:14px;opacity:0;pointer-events:none;z-index:-1}
.mh2 .mh-team.fx-up .mh-score::after{background:radial-gradient(ellipse at center,rgba(70,255,160,.6),rgba(70,255,160,0) 70%);animation:fxglow 1.2s ease-out}
.mh2 .mh-team.fx-down .mh-score::after{background:radial-gradient(ellipse at center,rgba(255,90,90,.6),rgba(255,90,90,0) 70%);animation:fxglow 1.2s ease-out}
.mh2 .mh-team.fx-up .mh-score,.mh2 .mh-team.fx-down .mh-score{animation:fxbump .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes fxglow{0%{opacity:0}20%{opacity:1}100%{opacity:0}}
@keyframes fxbump{0%{transform:scale(1)}35%{transform:scale(1.14)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .mpts b.fx-up,.mpts b.fx-down,.mh2 .mh-team.fx-up .mh-score,.mh2 .mh-team.fx-down .mh-score{animation:none}
  .mpts b.fx-up{color:#13a85a}.mpts b.fx-down{color:#d62d20}
  .mh2 .mh-team.fx-up .mh-score{color:#b9ffd6}.mh2 .mh-team.fx-down .mh-score{color:#ffc4c4}
}
/* Round 79B: the global live score chip (static/ptschip.js), above the bottom nav on every page */
.ptschip{position:fixed;left:50%;bottom:calc(64px + env(safe-area-inset-bottom) + 10px);transform:translateX(-50%);z-index:55;
  display:flex;align-items:center;gap:6px;padding:6px 12px 6px 10px;border-radius:999px;text-decoration:none;white-space:nowrap;
  background:rgba(10,18,40,.92);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 6px 18px rgba(0,0,0,.3);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:700 12px/1.1 system-ui,-apple-system,sans-serif}
.ptschip[hidden]{display:none}
.ptschip .pc-dot{width:7px;height:7px;border-radius:50%;background:#ff4d4f;animation:msdot 1.4s ease-in-out infinite}
.ptschip .pc-t{font-size:10.5px;letter-spacing:.04em;opacity:.75}
.ptschip .pc-s{font:800 14px/1 var(--mono,ui-monospace,monospace);letter-spacing:-.3px;position:relative;display:inline-block;isolation:isolate}
.ptschip .pc-op{opacity:.8}.ptschip .pc-x{opacity:.5}
.ptschip .pc-s::after{content:"";position:absolute;inset:-6px -9px;border-radius:12px;opacity:0;pointer-events:none;z-index:-1}
.ptschip.fx-up .pc-me::after{background:radial-gradient(ellipse at center,rgba(70,255,160,.65),rgba(70,255,160,0) 70%);animation:fxglow 1.2s ease-out}
.ptschip.fx-down .pc-me::after{background:radial-gradient(ellipse at center,rgba(255,90,90,.65),rgba(255,90,90,0) 70%);animation:fxglow 1.2s ease-out}
.ptschip.fx-up .pc-me,.ptschip.fx-down .pc-me{animation:fxbump .5s cubic-bezier(.3,1.6,.5,1)}
.ptsfx-badge small{font:700 10px/1 system-ui,-apple-system,sans-serif;opacity:.9;margin-right:5px;letter-spacing:0}
body.has-ptschip main{padding-bottom:52px}
@media (min-width:900px){.ptschip{bottom:calc(64px + 14px)}}
@media (prefers-reduced-motion:reduce){
  .ptschip .pc-dot{animation:none}
  .ptschip.fx-up .pc-me{color:#7dffb8}.ptschip.fx-down .pc-me{color:#ffaaaa}
}
body.chat-thread .ptschip{display:none}
/* Round 88: play toast (static/playtoast.js) above the bottom nav, every page */
.ptoast{position:fixed;left:10px;right:10px;bottom:calc(64px + env(safe-area-inset-bottom) + 8px);z-index:56;display:flex;align-items:center;gap:10px;
  max-width:560px;margin:0 auto;padding:8px 12px 8px 8px;border-radius:16px;overflow:hidden;color:#fff;text-decoration:none;
  background:linear-gradient(100deg,var(--appbar,#101c3d),var(--brand-d,#2c4a70));box-shadow:0 6px 22px rgba(0,0,0,.28);
  transform:translateY(130%);opacity:0;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .25s}
.ptoast[hidden]{display:none}.ptoast.in{transform:none;opacity:1}.ptoast.out{transform:translateY(130%);opacity:0}
.ptoast.opp{background:linear-gradient(100deg,#2a2f38,#3d4552)}
.ptoast:hover{text-decoration:none}
.pt-wm{position:absolute;right:46px;top:50%;width:84px;height:84px;transform:translateY(-50%);background:center/contain no-repeat;opacity:.16;pointer-events:none}
.pt-shot{flex:none;width:44px;height:44px;border-radius:50%;overflow:hidden;background:rgba(255,255,255,.15);position:relative}
.pt-shot img{width:44px;height:44px;object-fit:cover;display:block}
.pt-tx{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2;position:relative}
.pt-n{font-size:14.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-p{font-size:12px;font-weight:700;letter-spacing:.03em;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-d{font:800 15px/1 var(--mono,ui-monospace,monospace);position:relative}.pt-d.up{color:#5dff9d}.pt-d.down{color:#ff6b6b}
.pt-ch{font-size:22px;opacity:.7;position:relative}
.pt-float{position:fixed;z-index:57;font:800 18px/1 var(--mono,ui-monospace,monospace);pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.35);animation:ptfloat 1.4s ease-out forwards}
.pt-float.up{color:#1fbf6b}.pt-float.down{color:#e5484d}
@keyframes ptfloat{0%{opacity:0;transform:translateY(6px)}15%{opacity:1}100%{opacity:0;transform:translateY(-46px)}}
@media (prefers-reduced-motion:reduce){.ptoast,.ptoast.in,.ptoast.out{transition:none}}
