/* MPI REAL 4.3.10.0 — Adaptive Replay Camera Engine */
.mpi-poster-bracket-inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.mpi-replay-launch{border:1px solid rgba(251,191,36,.85);background:linear-gradient(180deg,#fff3b0,#d99b12);color:#111827;border-radius:12px;padding:10px 14px;font-weight:950;cursor:pointer;white-space:nowrap;margin-left:8px}
.mpi-replay-launch[disabled]{opacity:.55;cursor:not-allowed}
.mpi-replay-modal{position:fixed;inset:0;z-index:1000000;display:none;background:#020611;color:#fff}
.mpi-replay-modal.open{display:block}
.mpi-replay-dialog{position:absolute;inset:8px;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(251,191,36,.58);border-radius:18px;background:radial-gradient(circle at 50% 25%,rgba(30,64,175,.28),rgba(2,6,23,.99) 58%)}
.mpi-replay-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid rgba(251,191,36,.32);background:rgba(15,23,42,.94)}
.mpi-replay-title{font-size:18px;font-weight:950;color:#fbbf24;text-transform:uppercase}.mpi-replay-subtitle{font-size:12px;color:rgba(255,255,255,.75);font-weight:750}
.mpi-replay-actions{display:flex;gap:7px;align-items:center}.mpi-replay-actions button{border:1px solid rgba(251,191,36,.55);background:rgba(15,23,42,.9);color:#fff;border-radius:10px;padding:8px 11px;font-weight:900;cursor:pointer}.mpi-replay-actions .mpi-replay-close{font-size:22px;padding:3px 11px}
.mpi-replay-progress{height:4px;background:rgba(255,255,255,.1)}.mpi-replay-progress>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#b7791f,#fde68a);transition:width .45s ease}
.mpi-replay-body{position:relative;flex:1;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:8px}
.mpi-replay-scene-shell{position:relative;width:100%;height:100%;min-width:0;min-height:0;opacity:0;transition:opacity .65s ease;overflow:hidden}
.mpi-replay-scene-shell.active{opacity:1}
.mpi-replay-stage{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.mpi-replay-scene-label{position:absolute;left:50%;top:var(--mpi-replay-visible-top,18px);z-index:40;transform:translateX(-50%);padding:8px 20px;border:1px solid rgba(251,191,36,.65);border-radius:999px;background:rgba(2,6,23,.9);box-shadow:0 8px 28px rgba(0,0,0,.35);font-size:18px;font-weight:950;color:#fde68a;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.mpi-replay-scene-note{position:absolute;left:50%;bottom:var(--mpi-replay-visible-bottom,26px);z-index:40;transform:translateX(-50%);font-size:13px;font-weight:850;color:rgba(255,255,255,.82);background:rgba(2,6,23,.82);padding:7px 14px;border-radius:999px;white-space:nowrap}
.mpi-replay-scene-shell .mpi-template-poster{position:absolute;left:0;top:0;transform-origin:0 0;transition:transform 1.05s cubic-bezier(.2,.75,.2,1),opacity .7s ease;will-change:transform}
/* Scene framing is calculated at runtime from the visible round or match bounds. */
/* Hide completed rounds without removing their grid tracks. This keeps every shot centered and balanced. */
.mpi-replay-scene-2 .leftR32,.mpi-replay-scene-2 .rightR32{visibility:hidden}
.mpi-replay-scene-3 .leftR32,.mpi-replay-scene-3 .rightR32,.mpi-replay-scene-3 .leftR16,.mpi-replay-scene-3 .rightR16{visibility:hidden}
.mpi-replay-scene-4 .leftR32,.mpi-replay-scene-4 .rightR32,.mpi-replay-scene-4 .leftR16,.mpi-replay-scene-4 .rightR16,.mpi-replay-scene-4 .leftQF,.mpi-replay-scene-4 .rightQF{visibility:hidden}
.mpi-replay-scene-5 .mpi-template-column:not(.mpi-template-column-center),.mpi-replay-scene-6 .mpi-template-column:not(.mpi-template-column-center){visibility:hidden}
/* Focus scenes use clean cards; connector construction geometry is intentionally suppressed. */
.mpi-replay-scene-2 .mpi-template-connectors,.mpi-replay-scene-3 .mpi-template-connectors,.mpi-replay-scene-4 .mpi-template-connectors,.mpi-replay-scene-5 .mpi-template-connectors,.mpi-replay-scene-6 .mpi-template-connectors{display:none!important}
/* Simplify duplicated source headings inside focused camera shots. */
.mpi-replay-scene-4 .leftSF .mpi-template-round-title,.mpi-replay-scene-4 .rightSF .mpi-template-round-title{visibility:hidden}
.mpi-replay-scene-5 .center .mpi-template-round-title,.mpi-replay-scene-6 .center .mpi-template-round-title{visibility:hidden}
.mpi-replay-scene-4 .mpi-template-match{transform:scale(1.08)}
.mpi-replay-scene-5 .mpi-replay-final-card{transform:scale(1.28);z-index:8;box-shadow:0 0 28px rgba(251,191,36,.34)}
.mpi-replay-scene-5 .mpi-replay-third-card{visibility:hidden}
.mpi-replay-scene-6 .mpi-template-match-stack{gap:52px!important}
.mpi-replay-scene-6 .mpi-replay-final-card,.mpi-replay-scene-6 .mpi-replay-third-card{transform:scale(1.16);z-index:8}
.mpi-replay-match-banner{margin:-5px -5px 6px;padding:5px 8px;border-radius:7px 7px 3px 3px;background:linear-gradient(90deg,#a96f08,#fbbf24,#a96f08);color:#07101f;font-size:11px;line-height:1;font-weight:1000;letter-spacing:.08em;text-align:center;text-transform:uppercase}
.mpi-replay-third-banner{background:linear-gradient(90deg,#8b5e34,#d6a46f,#8b5e34)}
/* Final commemorative butterfly: retain the full bracket and elevate the podium. */
.mpi-replay-scene-7 .mpi-template-match{opacity:.42;filter:saturate(.5)}
.mpi-replay-scene-7 .mpi-reel-champion-path{opacity:1;filter:none;box-shadow:0 0 0 2px rgba(253,230,138,.82),0 0 28px rgba(251,191,36,.8)!important;transform:scale(1.04);z-index:5}
.mpi-replay-scene-7 .mpi-template-connector{opacity:.12}
.mpi-replay-scene-7 .mpi-template-connector.mpi-reel-winning-edge{opacity:1;stroke:#fde68a!important;stroke-width:5!important;filter:drop-shadow(0 0 8px #fbbf24);stroke-dasharray:12 8;animation:mpiReplayFlow 1.3s linear infinite}
@keyframes mpiReplayFlow{to{stroke-dashoffset:-40}}
.mpi-replay-podium{position:absolute;z-index:30;left:50%;top:48%;transform:translate(-50%,-50%);width:390px;text-align:center;padding:24px 20px;border:2px solid rgba(253,230,138,.88);border-radius:22px;background:radial-gradient(circle at 50% 15%,rgba(251,191,36,.25),rgba(2,6,23,.96) 65%);box-shadow:0 0 65px rgba(251,191,36,.35),0 24px 70px rgba(0,0,0,.7)}
.mpi-replay-podium-trace{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);overflow:visible;pointer-events:none;filter:drop-shadow(0 0 7px #fbbf24)}
.mpi-replay-podium-trace rect{fill:none;stroke:#fde68a;stroke-width:3;stroke-dasharray:18 10;stroke-linecap:round;animation:mpiReplayPodiumDash 1.5s linear infinite}
@keyframes mpiReplayPodiumDash{to{stroke-dashoffset:-56}}
.mpi-replay-podium img{width:112px;height:140px;object-fit:contain;filter:drop-shadow(0 0 18px rgba(251,191,36,.8))}.mpi-replay-world-champion{font-size:25px;line-height:1;font-weight:1000;color:#fde68a;letter-spacing:.09em;text-transform:uppercase}.mpi-replay-champion-name{font-size:48px;line-height:1.05;font-weight:1000;color:#fff;margin:8px 0}.mpi-replay-final-score{font-size:18px;color:#fde68a;font-weight:950}.mpi-replay-places{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.mpi-replay-place{padding:8px;border-radius:10px;background:rgba(255,255,255,.07);font-size:12px}.mpi-replay-place strong{display:block;color:#fbbf24;font-size:11px;text-transform:uppercase}.mpi-replay-place span{font-size:16px;font-weight:950}
.mpi-replay-lock{overflow:hidden}
@media(max-width:800px){.mpi-replay-head{align-items:flex-start}.mpi-replay-actions{flex-wrap:wrap;justify-content:flex-end}.mpi-replay-title{font-size:15px}.mpi-replay-subtitle{display:none}.mpi-replay-scene-label{font-size:14px;top:10px}.mpi-replay-scene-note{font-size:11px;bottom:12px}.mpi-replay-podium{width:320px}.mpi-replay-champion-name{font-size:38px}}
@media(max-width:720px){.mpi-poster-bracket-inline-actions{width:100%;justify-content:flex-start}.mpi-replay-launch,.mpi-poster-bracket-open{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){.mpi-replay-scene-shell .mpi-template-poster,.mpi-replay-progress>span{transition:none}.mpi-replay-scene-7 .mpi-template-connector.mpi-reel-winning-edge,.mpi-replay-podium-trace rect{animation:none}}


/* 4.3.9.0 immersive cinema mode */
.mpi-replay-dialog:fullscreen,.mpi-replay-dialog:-webkit-full-screen{inset:0;width:100vw;height:100vh;border:0;border-radius:0;background:#020611}
.mpi-replay-modal.mpi-replay-cinema{background:#000}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-dialog{inset:0;border:0;border-radius:0;width:100%;height:100%;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);box-sizing:border-box}
.mpi-replay-modal.mpi-replay-cinema-fallback{position:fixed;inset:0;width:100dvw;height:100dvh;z-index:2147483647}
.mpi-replay-modal.mpi-replay-cinema-fallback .mpi-replay-dialog{position:fixed;inset:0;width:100dvw;height:100dvh}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-head{transition:opacity .25s ease,transform .25s ease;z-index:80}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-progress{transition:opacity .25s ease;z-index:80}
.mpi-replay-modal.mpi-replay-cinema.mpi-replay-controls-hidden .mpi-replay-head{opacity:0;pointer-events:none;transform:translateY(-110%)}
.mpi-replay-modal.mpi-replay-cinema.mpi-replay-controls-hidden .mpi-replay-progress{opacity:0}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-body{padding:0}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-scene-label{top:max(10px,env(safe-area-inset-top));transition:opacity .25s ease}
.mpi-replay-modal.mpi-replay-cinema.mpi-replay-controls-hidden .mpi-replay-scene-label{opacity:.28}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-scene-note{bottom:max(10px,env(safe-area-inset-bottom))}
@media(max-height:540px) and (orientation:landscape){
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-head{padding:5px 9px}
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-title{font-size:13px}
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-subtitle{display:none}
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-actions button{padding:6px 8px;font-size:11px}
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-actions .mpi-replay-restart,.mpi-replay-modal.mpi-replay-cinema .mpi-replay-actions .mpi-replay-skip{display:none}
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-scene-note{display:none}
}


/* 4.3.9.1 landscape width optimization */
@media (orientation:landscape){
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-body{width:100%;max-width:none;margin:0;overflow:hidden}
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-scene-shell{max-width:none;flex:0 0 auto}
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-dialog{max-width:none}
}


/* 4.3.9.2 adaptive cinema layout engine */
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-head{
  position:absolute;top:0;left:0;right:0;
  background:linear-gradient(180deg,rgba(2,6,23,.96),rgba(2,6,23,.76));
}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-progress{position:absolute;top:0;left:0;right:0}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-body{position:absolute;inset:0;width:auto;height:auto}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-scene-shell{margin:0}
@media (orientation:landscape){
  .mpi-replay-modal.mpi-replay-cinema .mpi-replay-dialog{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}
}


/* 4.3.10.0 adaptive replay camera engine */
.mpi-replay-modal .mpi-replay-body{isolation:isolate}
.mpi-replay-modal .mpi-replay-scene-shell,.mpi-replay-modal .mpi-replay-stage{max-width:none;max-height:none}
.mpi-replay-modal.mpi-replay-cinema .mpi-replay-scene-shell{width:100%;height:100%;flex:1 1 auto}
