.campaign-egg{position:fixed;inset:0;z-index:58;pointer-events:none;overflow:hidden;contain:layout style paint}
.campaign-egg[hidden]{display:none!important}
.campaign-egg__runner{
  position:absolute;left:0;top:0;width:4.6rem;height:4.6rem;border:0;background:transparent;padding:0;
  pointer-events:auto;cursor:pointer;filter:drop-shadow(0 10px 14px rgba(0,0,0,.28));will-change:transform;
  transform:translate3d(var(--egg-start-x,-9rem),var(--egg-start-y,38vh),0) rotate(var(--egg-rot-a,-3deg));
}
.campaign-egg__runner--witch{width:6.4rem;height:5.7rem}
.campaign-egg__runner.is-active{animation:eggTraverse var(--egg-duration,10.5s) linear forwards}
/* P2.44.16: hidden siempre gana; nunca se pintan ambos personajes. */
.campaign-egg__runner>span{display:block;width:100%;height:100%;transform-origin:50% 50%}
.campaign-egg__runner>span[hidden]{display:none!important}
.campaign-egg__runner--ghost.is-active>[data-egg-ghost]{animation:eggBob 1.8s ease-in-out infinite}
.campaign-egg__runner--witch.is-active>[data-egg-witch]{animation:eggWitchBob 1.55s ease-in-out infinite}
.campaign-egg__runner svg,.campaign-egg__witch-art{display:block;width:100%;height:100%;object-fit:contain}
.campaign-egg__witch-art{filter:drop-shadow(0 8px 10px rgba(76,29,149,.25))}
.campaign-egg__runner[data-facing="left"] [data-egg-ghost]{transform:scaleX(-1)}
.campaign-egg__runner:focus-visible{outline:3px solid #d86b24;outline-offset:4px;border-radius:999px}
.campaign-egg__runner.is-caught{animation:eggRunnerCaught .14s ease-out both!important;transition:none!important}
@keyframes eggRunnerCaught{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.72)}}
@keyframes eggTraverse{
  from{transform:translate3d(var(--egg-start-x,-9rem),var(--egg-start-y,38vh),0) rotate(var(--egg-rot-a,-3deg))}
  to{transform:translate3d(var(--egg-end-x,calc(100vw + 11rem)),var(--egg-end-y,44vh),0) rotate(var(--egg-rot-b,3deg))}
}
@keyframes eggBob{0%,100%{margin-top:0}50%{margin-top:-8px}}
@keyframes eggWitchBob{0%,100%{margin-top:0}50%{margin-top:-11px}}

/* Modal instantáneo, sin blur ni transición del backdrop. */
.campaign-egg__modal{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:1rem;background:rgba(7,4,11,.78);pointer-events:auto;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;animation:none!important;transition:none!important}
.campaign-egg__modal[hidden]{display:none!important}
.campaign-egg__card{position:relative;width:min(92vw,27rem);border:1px solid rgba(185,86,24,.34);border-radius:1.25rem;padding:1.55rem;text-align:center;background:#171019;color:#fbf8f2;box-shadow:0 26px 70px rgba(0,0,0,.48);animation:none!important;transition:none!important}
.campaign-egg__icon{position:relative;overflow:visible;width:7rem;height:7rem;margin:0 auto .65rem;display:grid;place-items:center;filter:drop-shadow(0 12px 24px rgba(0,0,0,.28))}
.campaign-egg__icon svg,.campaign-egg__icon .campaign-egg__witch-art{width:100%;height:100%}
.campaign-egg__icon::before,.campaign-egg__icon::after{pointer-events:none}
.campaign-egg__eyebrow{margin:0 0 .25rem;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#efb166}
.campaign-egg__title{margin:0;font-size:1.55rem;line-height:1.1;font-weight:900}
.campaign-egg__message{margin:.7rem auto 0;max-width:22rem;font-size:.92rem;line-height:1.45;color:#ddd1df}
.campaign-egg__reward{margin:.9rem 0 0;padding:.75rem .9rem;border-radius:.9rem;background:rgba(185,86,24,.12);border:1px solid rgba(185,86,24,.26);font-weight:800;color:#f8dfc7}
.campaign-egg__close{margin-top:1rem;min-height:2.65rem;padding:.65rem 1.05rem;border:1px solid #ca6a2b;border-radius:.75rem;background:#b95618;color:#fff;font-weight:900;cursor:pointer;box-shadow:none}
.campaign-egg__close:hover{background:#a44810}

/* P2.44.18 · Fantasma: BUH más visible y con una salida menos brusca (~1.7 s). */
.campaign-egg__modal--ghost .campaign-egg__icon svg{animation:eggGhostCaughtFx 1.45s cubic-bezier(.2,.75,.3,1) both}
.campaign-egg__modal--ghost .campaign-egg__icon::after{
  content:"¡BUH!";position:absolute;left:50%;top:1%;transform:translate(-50%,-40%) scale(.72);color:#ee8a41;
  font-size:1.14rem;line-height:1;font-weight:950;letter-spacing:.08em;text-shadow:0 2px 14px rgba(185,86,24,.42);opacity:0;
  animation:eggGhostBuhFx 1.72s ease-out both;
}
.campaign-egg__modal--ghost .campaign-egg__icon::before{
  content:"";position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.34) 0 14%,rgba(196,181,253,.18) 32%,rgba(139,92,246,.08) 48%,transparent 70%);opacity:0;
  animation:eggGhostMistFx 1.58s ease-out both;
}
@keyframes eggGhostCaughtFx{0%{transform:scale(.88) translateY(2px);opacity:.72}22%{transform:scale(1.12) translateY(-3px);opacity:1}48%{transform:scale(1.01) translateY(1px);opacity:1}76%{transform:scale(1.05) translateY(-2px);opacity:.98}100%{transform:scale(.97) translateY(-3px);opacity:.92}}
@keyframes eggGhostBuhFx{0%{opacity:0;transform:translate(-50%,-20%) scale(.64)}12%{opacity:1;transform:translate(-50%,-68%) scale(1.09)}66%{opacity:1;transform:translate(-50%,-78%) scale(1.05)}84%{opacity:.88;transform:translate(-50%,-88%) scale(1.08)}100%{opacity:0;transform:translate(-50%,-122%) scale(1.18)}}
@keyframes eggGhostMistFx{0%{opacity:0;transform:scale(.48)}24%{opacity:.82;transform:scale(.78)}58%{opacity:.55;transform:scale(1.08)}100%{opacity:0;transform:scale(1.55)}}

/* P2.44.18 · Bruja: giro + anillo mágico más largo (~1.7 s), sin bloquear el modal. */
.campaign-egg__modal--witch .campaign-egg__icon .campaign-egg__witch-art{transform-origin:50% 58%;animation:eggWitchCaughtFx 1.52s cubic-bezier(.18,.78,.2,1) both}
.campaign-egg__modal--witch .campaign-egg__icon::before{
  content:"";position:absolute;inset:-2%;border-radius:50%;
  background:radial-gradient(circle at 50% 8%,rgba(240,196,106,.98) 0 2px,transparent 3px),radial-gradient(circle at 85% 42%,rgba(216,180,254,.96) 0 2px,transparent 3px),radial-gradient(circle at 18% 55%,rgba(224,111,43,.96) 0 2px,transparent 3px),radial-gradient(circle at 65% 90%,rgba(167,139,250,.9) 0 2px,transparent 3px),radial-gradient(circle at 28% 18%,rgba(251,146,60,.78) 0 1.5px,transparent 2.5px),radial-gradient(circle,rgba(107,58,131,.30),transparent 64%);
  opacity:0;animation:eggWitchMagicFx 1.78s ease-out both;
}
.campaign-egg__modal--witch .campaign-egg__icon::after{
  content:"";position:absolute;left:50%;top:50%;width:80%;height:80%;border:2px solid rgba(167,139,250,.62);border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.40) rotate(-16deg);box-shadow:0 0 0 6px rgba(234,88,12,.06),0 0 22px rgba(139,92,246,.18);animation:eggWitchRingFx 1.68s ease-out both;
}
@keyframes eggWitchCaughtFx{0%{transform:rotate(-12deg) scale(.84);opacity:.72}22%{transform:rotate(14deg) scale(1.09);opacity:1}48%{transform:rotate(-7deg) scale(1.02);opacity:1}72%{transform:rotate(5deg) scale(1.04);opacity:.98}100%{transform:rotate(-2deg) scale(.97);opacity:.92}}
@keyframes eggWitchMagicFx{0%{opacity:0;transform:rotate(-22deg) scale(.46)}18%{opacity:1;transform:rotate(-8deg) scale(.82)}58%{opacity:.94;transform:rotate(10deg) scale(1.08)}82%{opacity:.68;transform:rotate(20deg) scale(1.24)}100%{opacity:0;transform:rotate(32deg) scale(1.46)}}
@keyframes eggWitchRingFx{0%{opacity:0;transform:translate(-50%,-50%) scale(.40) rotate(-18deg)}20%{opacity:.96;transform:translate(-50%,-50%) scale(.72) rotate(-4deg)}62%{opacity:.74;transform:translate(-50%,-50%) scale(1.08) rotate(16deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.48) rotate(34deg)}}

.campaign-preview-pill{position:fixed;left:50%;bottom:1rem;z-index:10030;transform:translateX(-50%);display:flex;align-items:center;gap:.65rem;max-width:calc(100vw - 2rem);padding:.55rem .75rem;border-radius:999px;background:#171019;color:#fff;border:1px solid rgba(185,86,24,.35);box-shadow:0 14px 34px rgba(0,0,0,.30);font-size:.78rem;font-weight:800;white-space:nowrap}
.campaign-preview-pill a{color:#efb166;text-decoration:underline;text-underline-offset:2px}


@media(max-width:640px){
  .campaign-egg__runner{width:3.9rem;height:3.9rem}
  .campaign-egg__runner--witch{width:5.45rem;height:4.8rem}
  .campaign-preview-pill{font-size:.7rem;white-space:normal;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  .campaign-egg__runner,.campaign-egg__runner.is-active{
    animation:none!important;
    transform:translate3d(var(--egg-static-x,1rem),var(--egg-static-y,5.5rem),0)!important;
  }
  .campaign-egg__runner>span{animation:none!important}
  .campaign-egg__modal--ghost .campaign-egg__icon svg,
  .campaign-egg__modal--ghost .campaign-egg__icon::before,
  .campaign-egg__modal--ghost .campaign-egg__icon::after,
  .campaign-egg__modal--witch .campaign-egg__icon .campaign-egg__witch-art,
  .campaign-egg__modal--witch .campaign-egg__icon::before,
  .campaign-egg__modal--witch .campaign-egg__icon::after{animation:none!important}
}
