/* WORLD ORDER v030 — fourth leader (Benjamin Netanyahu / Israel) and the Shield field.
   Loaded after duel-v024.css; presentation only. */

/* ---------------------------------------------------------------- main menu: four leaders */
/* The bust height is tuned so four portraits share the stage with the same overlap three had. */
dialog.main-menu{--bust-h:clamp(160px,min(38vh,calc((100vw - var(--side-w) - 140px) * .25)),360px)}
/* brand.css forces three columns on .leader-choice with !important */
.mm-leaders.leader-choice{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0 clamp(6px,1vw,18px)}
.mm-bust{width:120%}
.mm-plate strong{font-size:clamp(17px,1.32vw,25px)}
html:not(.wo-reduced-motion) .main-menu[open] .mm-leader:nth-child(5){animation-delay:.24s}

/* ---------------------------------------------------------------- Iron Wall reveal: a cool blue dome over the target */
.combat-special[data-profile="IL"]{--special-color:#8ec5f0}
.combat-special[data-profile="IL"] .combat-special-grid{border-radius:50% 50% 6px 6px / 70% 70% 6px 6px;border:2px solid #8ec5f0;border-bottom-width:5px;background:radial-gradient(ellipse at 50% 100%,#8ec5f033,transparent 70%)}
.combat-special[data-profile="IL"] .combat-special-target>i{border-color:#8ec5f0}
.combat-special.is-animated[data-profile="IL"] .combat-special-grid{animation:wo-iron-wall .7s cubic-bezier(.2,.7,.2,1) both}
@keyframes wo-iron-wall{from{transform:translateY(18%) scaleY(.2);opacity:0}60%{transform:translateY(-2%) scaleY(1.04);opacity:1}to{transform:none}}

/* ---------------------------------------------------------------- Strategic Ambiguity on the leader HUD */
.resource-effect.lockout{color:#9fd3f5;border-color:#6fb6e888;background:#0f2a3ad9;letter-spacing:.05em}

/* ---------------------------------------------------------------- Shield field (v030)
   An Asset with Shield wears a blue translucent field; a neon trail runs round its border. ui/app.js starts every trail
   on the document clock, so re-rendering the table never restarts it. More Shield, brighter field. */
@property --shield-angle{syntax:'<angle>';inherits:false;initial-value:0deg}
.shield-aura{--sh:1;position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:5.5%/4.2%;
  background:radial-gradient(120% 85% at 50% 38%,rgba(120,200,255,calc(.06 + var(--sh) * .03)),rgba(50,140,255,calc(.15 + var(--sh) * .045)) 70%,rgba(70,165,255,calc(.22 + var(--sh) * .05)));
  box-shadow:inset 0 0 calc(4px + var(--sh) * 3px) rgba(110,195,255,.45);
  outline:1px solid rgba(140,210,255,calc(.22 + var(--sh) * .06));outline-offset:-1px}
/* the trail: a white-hot head with a long cyan tail, masked to a ring on the border, plus a blurred copy as its glow */
.shield-trail{position:absolute;inset:-3px;border-radius:inherit;padding:4px;pointer-events:none;
  background:conic-gradient(from var(--shield-angle),transparent 0 28%,rgba(0,150,255,.12) 42%,rgba(0,185,255,.6) 72%,rgba(110,225,255,1) 88%,#ffffff 93%,transparent 94%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:shield-orbit 2.8s linear infinite}
.shield-trail.glow{inset:-12px;padding:16px;filter:blur(7px);opacity:calc(.75 + var(--sh) * .07)}
.shield-aura[data-shield="3"] .shield-trail,.shield-aura[data-shield="4"] .shield-trail{background:conic-gradient(from var(--shield-angle),transparent 0 2%,rgba(0,150,255,.12) 10%,rgba(0,185,255,.6) 28%,rgba(110,225,255,1) 38%,#ffffff 43%,transparent 44% 52%,rgba(0,150,255,.12) 60%,rgba(0,185,255,.6) 78%,rgba(110,225,255,1) 88%,#ffffff 93%,transparent 94%)}
@keyframes shield-orbit{to{--shield-angle:360deg}}
html.wo-reduced-motion .shield-trail{animation:none}

/* crack and shatter (ui/duel-fx.js shieldBreak) */
#duel-fx .fx-shield-break{position:absolute;border-radius:6%/4.5%;pointer-events:none;overflow:hidden}
#duel-fx .fx-shield-break .sb-tint{position:absolute;inset:0;background:radial-gradient(110% 80% at 50% 40%,rgba(130,205,255,.18),rgba(70,150,255,.32));box-shadow:inset 0 0 14px rgba(150,215,255,.75)}
#duel-fx .fx-shield-break svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 1px #02122a) drop-shadow(0 0 2px #bfe8ff) drop-shadow(0 0 6px #4aa8ff)}
#duel-fx .fx-shield-break polyline{fill:none;stroke:#f2fbff;stroke-width:2.2px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
#duel-fx .fx-shield-break circle{fill:#f2fbff;opacity:.85}
#duel-fx .fx-shield-shard{position:absolute;pointer-events:none;border-radius:6%/4.5%;
  background:linear-gradient(135deg,rgba(200,238,255,.55),rgba(80,165,255,.22) 50%,rgba(160,220,255,.42));box-shadow:inset 0 0 0 1.5px rgba(240,250,255,.85),inset 0 0 12px rgba(220,245,255,.7);will-change:transform,opacity}

/* Mossad: the response window says the declared Event can't be canceled */
.declaration-facts .uncancelable{color:#9fd3f5;border:1px solid #6fb6e888;padding:0 .35rem;border-radius:3px;letter-spacing:.05em}
.inline-response .ir-lock{display:block;margin-top:2px;color:#9fd3f5;letter-spacing:.05em;font-weight:600}

/* ---------------------------------------------------------------- v030.1 motion: Shield field and Clash (ui/duel-fx.js) */
#duel-fx .fx-shield-raise{position:absolute;border-radius:6%/4.5%;overflow:hidden;pointer-events:none}
#duel-fx .fx-shield-raise .sr-plane{position:absolute;inset:0;transform-origin:50% 100%;background:linear-gradient(0deg,rgba(60,150,255,.5),rgba(120,205,255,.22) 60%,rgba(170,230,255,.05))}
#duel-fx .fx-shield-raise .sr-edge{position:absolute;left:-4%;right:-4%;height:3px;background:#f2fbff;box-shadow:0 0 6px #bfe8ff,0 0 16px #4aa8ff,0 0 30px #2a8aff}
#duel-fx .fx-shield-flash{position:absolute;border-radius:6%/4.5%;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%,rgba(235,250,255,.85),rgba(130,205,255,.45) 55%,rgba(60,150,255,.15));box-shadow:0 0 22px 6px rgba(120,200,255,.55)}
#duel-fx .fx-shield-flash.is-break{background:radial-gradient(90% 70% at 50% 50%,rgba(255,255,255,.95),rgba(170,225,255,.5) 50%,transparent);box-shadow:0 0 30px 10px rgba(160,220,255,.6)}
#duel-fx .fx-ring.fx-shield-ring{width:120px;height:120px;border-width:3px;border-radius:14%;box-shadow:0 0 24px #8fd6ff,inset 0 0 14px #8fd6ff88}
#duel-fx .fx-shield-mote{position:absolute;width:5px;height:5px;border-radius:50%;background:#dff6ff;box-shadow:0 0 8px #8fd6ff,0 0 14px #4aa8ff}
#duel-fx .fx-shield-ripple{position:absolute;width:60px;height:60px;border:2px solid #e6f7ff;border-radius:50%;box-shadow:0 0 12px #8fd6ff,inset 0 0 10px #8fd6ff66;pointer-events:none}
/* Clash: beams get a hot core, the band flashes and bursts, hit cards flash red, numbers slam in */
.fx-column{background-clip:padding-box;outline:1px solid #ffffff22;filter:drop-shadow(0 0 8px #fff5) drop-shadow(0 0 16px color-mix(in srgb,currentColor 50%,transparent))}
#duel-fx .fx-clash-flash{position:absolute;z-index:4;pointer-events:none;border-radius:6px;transform-origin:50% 50%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tone) 70%,#fff) 20%,#fffdf5 50%,color-mix(in srgb,var(--tone) 70%,#fff) 80%,transparent);box-shadow:0 0 22px 6px color-mix(in srgb,var(--tone) 70%,transparent),0 0 60px 14px color-mix(in srgb,var(--tone) 35%,transparent);mix-blend-mode:screen}
#duel-fx .fx-clash-burst{position:absolute;z-index:4;width:260px;height:260px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fffdf5 0 6%,color-mix(in srgb,var(--tone) 85%,#fff) 14%,color-mix(in srgb,var(--tone) 45%,transparent) 32%,transparent 60%);mix-blend-mode:screen}
#duel-fx .fx-hit-flash{position:absolute;z-index:4;border-radius:6%/4.5%;pointer-events:none;background:radial-gradient(110% 80% at 50% 45%,rgba(255,120,90,.12),rgba(200,50,30,.22) 70%,rgba(150,20,5,.38));box-shadow:inset 0 0 0 2px #ff9a80,inset 0 0 34px 6px #ff4a2e99,0 0 22px 5px #ff5a3c88}
#duel-fx .fx-sov-streak{position:absolute;z-index:5;width:140px;height:140px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fff0e8 0 8%,#ff7b62 22%,rgba(255,80,50,.35) 45%,transparent 65%);mix-blend-mode:screen}
#duel-fx .fx-number.fx-hit{letter-spacing:.02em}
#duel-fx .fx-number.fx-hit{color:#fff3ec!important;-webkit-text-stroke:1.2px #5a0d05;text-shadow:0 3px 8px #000,0 0 14px #ff5a3c,0 0 30px #ff3a1c99}
#duel-fx .fx-number.fx-heavy{font-size:46px;text-shadow:0 3px 8px #000,0 0 26px #ff5a3c,0 0 48px #ff5a3c77}
#duel-fx .fx-number.fx-sov{color:#ffd9d0!important;font-size:44px}
