/* All moving props are independent from the immutable generated body frames. */
[data-edition="election"] .election-props{position:absolute;z-index:8;width:clamp(210px,36vw,510px);height:clamp(150px,26vw,350px);bottom:27%;left:42%;color:var(--prop-color,#85bbff);pointer-events:none;opacity:var(--prop-opacity);transform-origin:20% 90%;filter:drop-shadow(0 8px 4px #0008)}
[data-edition="election"] .election-props[hidden]{display:none}
.election-prop-scene{position:absolute;inset:0;transform:translateY(var(--prop-rise)) scale(var(--prop-scale)) rotate(var(--prop-rotation));transform-origin:35% 85%}
.election-prop-scene svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--prop-color) 45%,transparent))}
.election-prop-aura{position:absolute;inset:13% 7%;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--prop-color) 27%,transparent),transparent 70%);transform:scale(var(--prop-pulse))}
.election-prop-wave{position:absolute;left:51%;top:25%;width:38%;height:55%;border:4px solid var(--prop-color);border-radius:50%;opacity:calc(1 - var(--prop-impact));transform:translateX(calc(var(--prop-impact)*150px*var(--facing,1))) scale(calc(.35 + var(--prop-impact)*1.5));box-shadow:0 0 18px var(--prop-color),inset 0 0 14px var(--prop-color)}
.election-props[data-kind="celebration"]{left:30%;bottom:18%;z-index:2}
.election-props[data-kind="celebration"] .election-prop-wave{display:none}
.election-prop-sparks{position:absolute;inset:0;overflow:visible}
.election-prop-sparks i{position:absolute;width:6px;height:12px;left:50%;top:50%;background:var(--prop-color);transform:rotate(calc(var(--particle)*45deg)) translateY(calc(-20px - var(--prop-impact)*120px)) rotate(30deg);opacity:calc(1 - var(--prop-impact))}
.election-props .fx-detail{opacity:var(--prop-pulse)}
.election-props[data-effect="firewall"] .election-prop-scene{transform:scaleX(calc(1.2 - var(--prop-impact)*.45)) scaleY(var(--prop-scale))}
.election-props[data-effect="camera"] .election-prop-aura,.election-props[data-effect="studio"] .election-prop-aura{background:conic-gradient(from 80deg at 25% 65%,transparent,#fff8 15deg,transparent 40deg);border-radius:0}
.election-props[data-effect="siren"] .election-prop-aura{background:linear-gradient(100deg,#ff254c88,transparent 50%,#347eff99)}
.election-props[data-effect="blueprint"] .election-prop-scene{transform:translateY(calc(45px - var(--prop-impact)*65px)) scale(var(--prop-scale))}
.election-props[data-effect="veto"] .election-prop-scene{transform:translateY(calc(-65px + var(--prop-impact)*75px)) rotate(var(--prop-rotation))}
.election-props[data-effect="phone"] .election-prop-wave{border-radius:15%;border-style:dashed}
.election-props[data-effect="shield"] .election-prop-wave{border-radius:20% 20% 50% 50%;background:#c7e7ff33}
.election-props[data-effect="boxing"] .election-prop-scene{transform:translateX(calc(var(--prop-pulse)*12px)) rotate(var(--prop-rotation))}
@media(max-width:600px){[data-edition="election"] .election-props{width:230px;height:170px;left:28%;bottom:25%}.election-prop-sparks i{width:4px;height:8px}}
@media(prefers-reduced-motion:reduce){.election-prop-wave,.election-prop-sparks,.election-prop-aura{display:none}.election-prop-scene{transform:none!important}.election-props .fx-detail{opacity:1}}

[data-edition="election"] .fighter-election[data-facing="left"]>.election-props:not([data-kind="celebration"]){left:auto;right:42%}
[data-edition="election"] .fighter-election[data-facing="left"] .election-prop-wave{left:auto;right:51%}
@media(max-width:600px){[data-edition="election"] .fighter-election[data-facing="left"]>.election-props:not([data-kind="celebration"]){right:28%}}

/* Netanyahu's victory props reuse the physical special-move artwork. The
   generated victory body remains untouched and always renders above them. */
[data-edition="election"] .election-props.is-netanyahu-physical-victory{
  z-index:1;left:50%;bottom:-8%;width:clamp(520px,72vw,900px);height:clamp(390px,55vw,680px);
  translate:-50% 0;opacity:var(--nv-opacity,0);transform:none;filter:none;overflow:visible;
}
.is-netanyahu-physical-victory .netanyahu-victory-spotlight{
  position:absolute;inset:9% 7% 10%;border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,218,142,calc(.18 + var(--nv-hold,0)*.1)),rgba(226,54,62,.07) 42%,transparent 72%);
  scale:calc(.92 + var(--nv-camera,0)*.08);filter:blur(2px);
}
.netanyahu-red-line-board{position:absolute;inset:0;transform-origin:68% 80%;
  transform:translateX(calc((1 - var(--nv-red-enter,0))*62px)) scale(calc(.9 + var(--nv-red-enter,0)*.1));
}
.netanyahu-red-line-board::before,.netanyahu-red-line-board::after{content:"";position:absolute;z-index:-1;top:58%;width:1.9%;height:24%;
  border:1px solid #8291a5;border-radius:2px;background:linear-gradient(90deg,#354254,#aab5c2 48%,#394657);box-shadow:0 8px 7px #0008;transform-origin:50% 0}
.netanyahu-red-line-board::before,.netanyahu-red-line-board::after{display:none}
.netanyahu-red-line-board::before{left:79.5%;transform:rotate(7deg)}
.netanyahu-red-line-board::after{left:94%;transform:rotate(-3deg)}
.netanyahu-red-line-board img{position:absolute;inset:0 auto 0 50%;width:auto;max-width:none;height:100%;object-fit:contain;transform:translateX(-50%);
  clip-path:polygon(79% 23%,100% 23%,100% 88%,75% 88%,75% 36%,79% 36%);
  filter:drop-shadow(0 13px 10px rgba(0,0,0,.68)) drop-shadow(0 0 calc(4px + var(--nv-red-glow,0)*9px) rgba(238,43,61,.72));
}
.netanyahu-red-line-glow{position:absolute;left:67%;top:46%;width:25%;height:3%;border-radius:999px;
  opacity:calc(var(--nv-red-glow,0)*.82);background:linear-gradient(90deg,transparent,#ff3149 18%,#fff 50%,#ff3149 82%,transparent);
  box-shadow:0 0 10px #fff,0 0 24px #ef263e;transform:scaleX(calc(.84 + var(--nv-red-glow,0)*.16));
}
.netanyahu-victory-board-stack{position:absolute;inset:0;perspective:900px}
.netanyahu-victory-board-stack img{position:absolute;inset:10%;width:80%;height:80%;object-fit:contain;
  filter:drop-shadow(0 14px 10px rgba(0,0,0,.62)) drop-shadow(0 0 8px rgba(226,66,60,.28));
}
.netanyahu-victory-board-stack .board-one{transform:translate(calc(-32% + (1 - var(--nv-board-one,0))*-95px),12%) scale(.56) rotate(-7deg);opacity:var(--nv-board-one,0)}
.netanyahu-victory-board-stack .board-two{transform:translate(calc(34% + (1 - var(--nv-board-two,0))*95px),14%) scale(.54) rotate(7deg);opacity:var(--nv-board-two,0)}
.netanyahu-victory-board-stack .board-final{transform:translate(17%,calc(10% + (1 - var(--nv-board-final,0))*70px)) scale(calc(.58 + var(--nv-board-final,0)*.12));opacity:var(--nv-board-final,0)}
.netanyahu-victory-particles{position:absolute;inset:12% 15%;opacity:calc(.18 + var(--nv-hold,0)*.45)}
.netanyahu-victory-particles i{position:absolute;left:calc(8% + var(--particle)*10.5%);top:34%;width:4px;height:4px;border-radius:50%;background:#ffe3a0;box-shadow:0 0 9px #e53242}
.netanyahu-victory-particles i:nth-child(3n+1){top:20%}.netanyahu-victory-particles i:nth-child(3n+2){top:48%}.netanyahu-victory-particles i:nth-child(3n){top:68%}

@media(max-width:600px){
  [data-edition="election"] .election-props.is-netanyahu-physical-victory{width:590px;height:440px;left:48%;bottom:-4%}
  .netanyahu-red-line-board img{clip-path:polygon(79% 23%,100% 23%,100% 88%,75% 88%,75% 36%,79% 36%)}
}
@media(prefers-reduced-motion:reduce){
  .is-netanyahu-physical-victory .netanyahu-victory-particles{display:none}
  .netanyahu-red-line-board,.netanyahu-victory-board-stack img{transition:none!important}
}

/* Bennett — The Algorithm: code-native presentation, no extra sprite frames. */
[data-edition="election"] .election-props[data-effect="code"][data-kind="special"]{left:42%;bottom:42%;width:24%;height:22%;z-index:9;filter:drop-shadow(0 0 9px #5dffc188) drop-shadow(0 8px 4px #0009)}
[data-edition="election"] .fighter-election[data-facing="left"]>.election-props[data-effect="code"][data-kind="special"]{left:auto;right:42%}
.election-props[data-effect="code"] .election-prop-wave{display:none}

.algorithm-sequence{position:absolute;z-index:17;inset:0;overflow:hidden;pointer-events:none;color:#5dffc1;background:radial-gradient(ellipse at var(--target-x) 48%,#5dffc113 0 9%,transparent 38%)}
.algorithm-grid{position:absolute;left:8%;right:8%;bottom:-18%;height:58%;border:1px solid #5dffc166;background:repeating-linear-gradient(90deg,transparent 0 7.8%,#5dffc12b 8% 8.35%),repeating-linear-gradient(0deg,transparent 0 18%,#5dffc124 18.5% 19%);box-shadow:0 0 28px #5dffc12e;transform-origin:50% 100%}
.algorithm-beam{position:absolute;left:var(--beam-left);bottom:47%;width:var(--beam-width);height:3px;background:linear-gradient(90deg,transparent,#8affd8,#fff,#5dffc1);box-shadow:0 0 8px #5dffc1,0 0 20px #5dffc1;transform-origin:calc((var(--attack-direction) + 1)*25%) 50%}
.algorithm-flash{position:absolute;z-index:6;inset:0;background:radial-gradient(circle at var(--target-x) 48%,#fff 0 1%,#dffff5e8 3%,#5dffc188 9%,#5dffc12b 19%,transparent 38%);mix-blend-mode:screen}
.algorithm-target{position:absolute;left:var(--target-x);bottom:18%;width:clamp(130px,20vw,250px);height:clamp(180px,52vh,350px);translate:-50% 0;filter:drop-shadow(0 0 8px #5dffc1)}
.algorithm-scan{position:absolute;z-index:5;left:-10%;top:28%;width:120%;height:5px;background:#e8fff8;box-shadow:0 0 8px #fff,0 0 22px #5dffc1,0 18px 35px #5dffc177}
.algorithm-brackets{position:absolute;z-index:3;inset:2%;background:linear-gradient(#5dffc1,#5dffc1) left top/26% 4px no-repeat,linear-gradient(#5dffc1,#5dffc1) left top/4px 19% no-repeat,linear-gradient(#5dffc1,#5dffc1) right top/26% 4px no-repeat,linear-gradient(#5dffc1,#5dffc1) right top/4px 19% no-repeat,linear-gradient(#5dffc1,#5dffc1) left bottom/26% 4px no-repeat,linear-gradient(#5dffc1,#5dffc1) left bottom/4px 19% no-repeat,linear-gradient(#5dffc1,#5dffc1) right bottom/26% 4px no-repeat,linear-gradient(#5dffc1,#5dffc1) right bottom/4px 19% no-repeat}
.algorithm-box{position:absolute;z-index:2;border:2px solid #5dffc1aa;box-shadow:inset 0 0 16px #5dffc12b,0 0 10px #5dffc155;transform-origin:50% 50%}
.algorithm-box-a{inset:9% 2% 10% 7%}.algorithm-box-b{inset:17% 13% 4% 0;border-style:dashed}.algorithm-box-c{inset:3% 17% 20% 15%;border-color:#e8fff8}
.algorithm-nodes{position:absolute;z-index:4;left:50%;top:48%;width:1px;height:1px}
.algorithm-nodes b{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border:2px solid #effff9;background:#0e6b58;box-shadow:0 0 8px #fff,0 0 16px #5dffc1;transform-origin:50% 88px}
.algorithm-core{position:absolute;z-index:6;left:35%;right:35%;top:36%;bottom:34%;border:3px solid #eafff8;border-radius:50%;background:radial-gradient(circle,#fff 0 8%,#5dffc188 22%,transparent 68%);box-shadow:0 0 20px #fff,0 0 45px #5dffc1}
.algorithm-burst{position:absolute;z-index:7;left:20%;right:20%;top:30%;bottom:28%;border:6px solid #fff;border-radius:50%;box-shadow:0 0 18px #fff,0 0 55px #5dffc1,inset 0 0 35px #5dffc1}
.arena.is-algorithm-camera{transform:scale(1.035);transition:transform 120ms cubic-bezier(.2,.75,.2,1)}
.arena.is-algorithm-compress{transform:scale(1.055);filter:saturate(1.16) contrast(1.04)}
.arena.is-algorithm-freeze .scanlines{opacity:.2}
@media(max-width:600px){[data-edition="election"] .election-props[data-effect="code"][data-kind="special"]{left:42%;width:24%;height:22%}.algorithm-target{width:125px;height:185px;bottom:20%}}
@media(prefers-reduced-motion:reduce){.arena.is-algorithm-camera,.arena.is-algorithm-compress{transform:none;filter:none}.algorithm-grid,.algorithm-beam,.algorithm-nodes{display:none}}
