#battleFxLayer{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}
.fx-target-flash{position:fixed;border:2px solid #ffe29a;border-radius:10px;box-shadow:0 0 20px #ffd36a, inset 0 0 14px #fff3;animation:fxTargetFlash .42s ease-out forwards;pointer-events:none}
@keyframes fxTargetFlash{0%{opacity:0;transform:scale(.92)}35%{opacity:1;transform:scale(1.05)}100%{opacity:0;transform:scale(1.1)}}

.fx-melee-clash{position:fixed;width:76px;height:76px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 0 8px #ffd16a)}
.fx-melee-clash .blade{position:absolute;left:30px;top:4px;width:13px;height:64px;border-radius:8px 8px 3px 3px;background:linear-gradient(90deg,#6e7682,#fff,#aeb7c5);border:1px solid #fff;transform-origin:50% 83%;box-shadow:0 0 7px #fff8}
.fx-melee-clash .blade::after{content:'';position:absolute;left:-8px;bottom:8px;width:27px;height:5px;border-radius:4px;background:#b88934;border:1px solid #f6d485}
.fx-melee-clash .blade.a{transform:rotate(-56deg);animation:bladeA .48s cubic-bezier(.2,.8,.2,1) forwards}
.fx-melee-clash .blade.b{transform:rotate(56deg);animation:bladeB .48s cubic-bezier(.2,.8,.2,1) forwards}
.fx-melee-clash .spark{position:absolute;left:34px;top:34px;width:8px;height:8px;border-radius:50%;background:#fff4bb;box-shadow:0 0 5px 2px #fff,0 0 18px 8px #f5b742;animation:sparkPop .42s ease-out forwards}
@keyframes bladeA{0%{opacity:0;transform:rotate(-105deg) scale(.75)}45%{opacity:1;transform:rotate(-38deg) scale(1.05)}100%{opacity:0;transform:rotate(-55deg) scale(.95)}}
@keyframes bladeB{0%{opacity:0;transform:rotate(105deg) scale(.75)}45%{opacity:1;transform:rotate(38deg) scale(1.05)}100%{opacity:0;transform:rotate(55deg) scale(.95)}}
@keyframes sparkPop{0%{opacity:0;transform:scale(.2)}42%{opacity:1;transform:scale(1.4)}100%{opacity:0;transform:scale(2.8)}}

.fx-arrow{position:fixed;left:0;top:0;width:38px;height:5px;border-radius:4px;background:linear-gradient(90deg,#5a3b1d,#e7c17d 70%,#f7e2a8);transform-origin:19px 2.5px;pointer-events:none;filter:drop-shadow(0 0 5px #ffc86a);will-change:transform,opacity}
.fx-arrow::before{content:'';position:absolute;right:-8px;top:-4px;border-left:10px solid #e7e3d4;border-top:6px solid transparent;border-bottom:6px solid transparent}
.fx-arrow::after{content:'';position:absolute;left:-8px;top:-4px;width:12px;height:13px;background:linear-gradient(135deg,transparent 45%,#c46a4d 46% 58%,transparent 59%),linear-gradient(45deg,transparent 45%,#c46a4d 46% 58%,transparent 59%)}
.fx-arrow.fly{animation:arrowFly var(--fx-duration,.42s) cubic-bezier(.12,.68,.2,1) forwards}
@keyframes arrowFly{0%{opacity:0;transform:translate(var(--sx),var(--sy)) rotate(var(--angle)) scale(.72)}12%{opacity:1}88%{opacity:1}100%{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(var(--angle)) scale(1.05)}}

body.no-anim #battleFxLayer{display:none!important}

.fx-equipment-burst{position:fixed;left:50%;top:18%;transform:translateX(-50%);min-width:210px;padding:16px 24px;border-radius:18px;border:2px solid #fff8;background:linear-gradient(135deg,#101826f2,#0a0f18f7);box-shadow:0 20px 44px #000b,0 0 24px #ffffff14;display:flex;align-items:center;justify-content:center;gap:12px;z-index:10000;animation:equipmentBurstIn 1.05s ease-out forwards}
.fx-equipment-burst .ring{position:absolute;inset:-6px;border-radius:22px;border:2px solid #ffffff40;animation:equipmentRing 1s ease-out forwards}
.fx-equipment-burst .glyph{position:relative;font-size:28px;filter:drop-shadow(0 0 8px #fff8)}
.fx-equipment-burst .label{position:relative;font-size:18px;font-weight:900;color:#fff;text-shadow:0 2px 8px #000}
.fx-equipment-burst.destroy{border-color:#ffaf86;background:linear-gradient(135deg,#512012f5,#261109f7 65%,#150c08f7)}
.fx-equipment-burst.steal{border-color:#83ddff;background:linear-gradient(135deg,#163f62f5,#0d223af7 65%,#0a1117f7)}
@keyframes equipmentBurstIn{0%{opacity:0;transform:translateX(-50%) translateY(-20px) scale(.8)}20%{opacity:1;transform:translateX(-50%) translateY(0) scale(1.05)}70%{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}100%{opacity:0;transform:translateX(-50%) translateY(-8px) scale(.98)}}
@keyframes equipmentRing{0%{opacity:.75;transform:scale(.85)}100%{opacity:0;transform:scale(1.16)}}


/* 스킬카드 및 아이템 장착 연출 */
.fx-tactic{
  position:fixed;
  width:78px;
  height:78px;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  border-radius:50%;
  pointer-events:none;
  z-index:10001;
  animation:fxTacticBurst 1s ease-out forwards;
}
.fx-tactic span{font-size:44px;filter:drop-shadow(0 0 10px #fff);}
.fx-tactic.lightning{background:radial-gradient(circle,#ecf7ffcc 0 12%,#8bd7ff77 30%,transparent 68%);box-shadow:0 0 26px #9fe4ff;}
.fx-tactic.firestorm{background:radial-gradient(circle,#fff0a8cc 0 10%,#ff782c88 34%,transparent 70%);box-shadow:0 0 30px #ff6a2f;}
.fx-tactic.hqdamage{background:radial-gradient(circle,#ffe7aacc,#e43b2d88 38%,transparent 72%);}
.fx-tactic.defdown{background:radial-gradient(circle,#c8d6e5aa,#55697c77 40%,transparent 72%);}
.fx-tactic.draw{background:radial-gradient(circle,#d9c2ffbb,#7454b877 40%,transparent 72%);}
.fx-tactic.clone{background:radial-gradient(circle,#e9f6ffbb,#78b9d477 40%,transparent 72%);}
.fx-tactic.supply,.fx-tactic.hqheal{background:radial-gradient(circle,#efffcbbb,#66cf7a77 40%,transparent 72%);}
@keyframes fxTacticBurst{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(-12deg)}
  22%{opacity:1;transform:translate(-50%,-50%) scale(1.18) rotate(4deg)}
  70%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(0)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.45)}
}
.fx-item-equip{
  position:fixed;
  width:92px;
  height:92px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:2px solid #ffe2a0;
  background:radial-gradient(circle,#fff4c9cc 0 12%,#d49b4077 36%,transparent 70%);
  box-shadow:0 0 28px #ffd36f;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  animation:fxItemEquip 1.15s ease-out forwards;
  z-index:10001;
}
.fx-item-equip.linked{border-color:#b9ecff;box-shadow:0 0 32px #82dbff;background:radial-gradient(circle,#f3fdffdd 0 12%,#62bddd77 38%,transparent 72%);}
.fx-item-equip .icon{font-size:34px;filter:drop-shadow(0 0 8px #fff);}
.fx-item-equip .label{padding:2px 5px;background:#090c10dc;border:1px solid #ffffff66;color:#fff4d6;font-size:9px;font-weight:900;white-space:nowrap;}
@keyframes fxItemEquip{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(-25deg)}
  25%{opacity:1;transform:translate(-50%,-50%) scale(1.15) rotate(5deg)}
  72%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.3)}
}


/* v66 스킬 애니메이션 */
.fx-lightning-field{
  position:fixed;pointer-events:none;border:1px solid #b9ebff99;
  background:linear-gradient(180deg,#d9f5ff3d,#77cfff17 45%,#ffffff16);
  box-shadow:inset 0 0 55px #bdefff66,0 0 42px #77d8ff55;
  animation:lightningFieldFlash .9s steps(2,end) forwards;
}
@keyframes lightningFieldFlash{0%{opacity:0}8%{opacity:1}18%{opacity:.12}28%{opacity:.95}42%{opacity:.18}58%{opacity:.75}100%{opacity:0}}
.fx-lightning-strike{
  position:fixed;width:90px;transform:translateX(-50%);pointer-events:none;z-index:10004;
  filter:drop-shadow(0 0 8px #d9f7ff) drop-shadow(0 0 20px #5cc8ff);
}
.fx-lightning-strike .bolt{position:absolute;display:block;background:linear-gradient(90deg,#ffffff,#aeeaff 45%,#fff);clip-path:polygon(45% 0,70% 0,56% 38%,83% 34%,35% 100%,45% 58%,18% 62%);}
.fx-lightning-strike .bolt.main{left:31px;top:0;width:28px;height:calc(100% - 10px);animation:lightningBolt .62s steps(2,end) forwards;}
.fx-lightning-strike .bolt.branch{width:16px;height:42%;bottom:12px;opacity:.8;}
.fx-lightning-strike .bolt.branch.a{left:20px;transform:rotate(-22deg);}
.fx-lightning-strike .bolt.branch.b{right:18px;transform:rotate(24deg);}
.fx-lightning-strike .impact{position:absolute;left:50%;bottom:-13px;width:86px;height:34px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,#fff 0 8%,#a9eaffaa 20%,#55bfff55 45%,transparent 72%);box-shadow:0 0 28px #9ee9ff;animation:lightningImpact .75s ease-out forwards;}
@keyframes lightningBolt{0%{opacity:0;transform:scaleY(.15)}18%{opacity:1;transform:scaleY(1)}28%{opacity:.12}42%{opacity:1}58%{opacity:.2}72%{opacity:.9}100%{opacity:0}}
@keyframes lightningImpact{0%{opacity:0;transform:translateX(-50%) scale(.2)}25%{opacity:1;transform:translateX(-50%) scale(1.2)}100%{opacity:0;transform:translateX(-50%) scale(1.7)}}
.fx-tactic.morale{width:120px;height:120px;border:2px solid #ffe296;background:radial-gradient(circle,#fff4bdcc 0 10%,#e2a83588 35%,transparent 72%);box-shadow:0 0 40px #ffd66f;}
.fx-tactic.morale::before,.fx-tactic.morale::after{content:'';position:absolute;inset:10px;border:2px solid #ffe8a5;border-radius:50%;animation:moraleWave .95s ease-out forwards;}
.fx-tactic.morale::after{animation-delay:.18s;}
@keyframes moraleWave{0%{opacity:1;transform:scale(.3)}100%{opacity:0;transform:scale(1.65)}}
.fx-tactic.discord{background:radial-gradient(circle,#ead7ffcc 0 12%,#7b3faf88 38%,transparent 72%);box-shadow:0 0 30px #b670ff;}


/* v68 카드별 본진 연출 이미지 관리자 */
.event-image-manager{margin-top:12px;padding:10px;border:1px solid #705739;background:#0a1019cc;display:grid;gap:9px}
.event-image-note{font-size:10px;line-height:1.45;color:#c9d4e2}
.event-image-setting{padding:8px;border:1px solid #4b6078;background:#101a27;transition:opacity .18s ease,filter .18s ease}
.event-image-setting.disabled{opacity:.42;filter:grayscale(.75)}
.event-image-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:11px;color:#f0d6a3}
.event-image-head span{font-size:9px;color:#9fb0c4}
.event-image-preview{position:relative;height:82px;overflow:hidden;border:1px solid #35475c;background:linear-gradient(135deg,#111b27,#05080d);display:flex;align-items:center;justify-content:center;color:#7f91a8;font-size:10px;margin-bottom:6px}
.event-image-preview img{width:100%;height:100%;object-fit:cover;object-position:center}
.event-image-preview .event-image-source{position:absolute;right:4px;bottom:4px;padding:2px 5px;background:#02050bd9;border:1px solid #ffffff2b;color:#dce8f5;font-size:8px}
.event-image-preview.dedicated{border-color:#c79a4f;box-shadow:inset 0 0 18px #eab75b17}

/* v68 본진 박스 카드 연출 */
.hq-card-scene{position:absolute;inset:0;z-index:80;overflow:hidden;pointer-events:none;background:#02050a;isolation:isolate}
.hq-card-scene img{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;object-position:center;filter:saturate(1.08) contrast(1.05);will-change:transform,opacity,filter}
.hq-card-scene .scene-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,#0000 35%,#02050ad9 100%);box-shadow:inset 0 0 30px #000}
.hq-card-scene .scene-energy{position:absolute;inset:0;z-index:3}
.hq-card-scene .scene-label{position:absolute;left:8px;right:8px;bottom:6px;z-index:5;padding:4px 7px;background:#05080dd9;border:1px solid #ffffff38;color:#f4ead7;font-size:10px;font-weight:900;letter-spacing:.04em;text-align:center;text-shadow:0 1px 4px #000}
.hq-card-scene.leaving{animation:hqSceneLeave .28s ease-in forwards}
@keyframes hqSceneLeave{to{opacity:0;filter:blur(2px)}}

.hq-card-scene.summon img{animation:hqSummonImage 1.05s cubic-bezier(.13,.78,.2,1) forwards}
.hq-card-scene.summon .scene-energy{background:linear-gradient(90deg,transparent 8%,#9ddcff00 28%,#dff8ffb8 49%,#fff 50%,#dff8ffb8 51%,#9ddcff00 72%,transparent 92%);mix-blend-mode:screen;animation:hqSummonBeam 1.05s ease-out forwards}
.hq-card-scene.summon::before,.hq-card-scene.summon::after{content:'';position:absolute;z-index:4;left:50%;top:50%;width:18px;height:18px;border:2px solid #d9f6ff;border-radius:50%;box-shadow:0 0 18px #8bdfff;transform:translate(-50%,-50%);animation:hqSummonRing 1s ease-out forwards}
.hq-card-scene.summon::after{animation-delay:.13s}
@keyframes hqSummonImage{0%{opacity:0;transform:translateY(18%) scale(calc(var(--scene-scale,1) * 1.18));filter:brightness(2.1) blur(7px)}38%{opacity:1;transform:translateY(5%) scale(calc(var(--scene-scale,1) * .96));filter:brightness(1.35) blur(0)}100%{opacity:1;transform:translateY(0) scale(var(--scene-scale,1));filter:brightness(1)}}
@keyframes hqSummonBeam{0%{opacity:0;transform:scaleX(.12)}28%{opacity:1;transform:scaleX(.65)}100%{opacity:0;transform:scaleX(1.4)}}
@keyframes hqSummonRing{0%{opacity:.95;transform:translate(-50%,-50%) scale(.25)}100%{opacity:0;transform:translate(-50%,-50%) scale(9)}}

.hq-card-scene.battle img{animation:hqBattleImage .82s cubic-bezier(.36,.07,.19,.97) forwards}
.hq-card-scene.battle .scene-energy{background:linear-gradient(118deg,transparent 42%,#fff8 48%,#ffb34d 50%,#ff3b20b8 52%,transparent 58%);mix-blend-mode:screen;animation:hqBattleSlash .76s ease-out forwards}
.hq-card-scene.battle::before,.hq-card-scene.battle::after{content:'';position:absolute;z-index:4;left:50%;top:48%;width:120%;height:3px;background:linear-gradient(90deg,transparent,#fff,#ff993b,transparent);box-shadow:0 0 14px #ff743b;transform:translate(-50%,-50%) rotate(24deg) scaleX(0);animation:hqBattleCut .72s ease-out forwards}
.hq-card-scene.battle::after{transform:translate(-50%,-50%) rotate(-20deg) scaleX(0);animation-delay:.08s}
@keyframes hqBattleImage{0%{opacity:0;transform:translate(0,0) scale(calc(var(--scene-scale,1) * 1.04))}12%{opacity:1}20%,40%,60%{transform:translate(-3px,0) rotate(-.7deg) scale(var(--scene-scale,1))}30%,50%,70%{transform:translate(4px,0) rotate(.7deg) scale(var(--scene-scale,1))}100%{transform:translate(0,0) rotate(0) scale(var(--scene-scale,1));filter:saturate(1.2) contrast(1.12)}}
@keyframes hqBattleSlash{0%{opacity:0;transform:translateX(-70%)}28%{opacity:1}100%{opacity:0;transform:translateX(70%)}}
@keyframes hqBattleCut{0%{opacity:0;transform:translate(-50%,-50%) rotate(24deg) scaleX(0)}35%{opacity:1;transform:translate(-50%,-50%) rotate(24deg) scaleX(1)}100%{opacity:0;transform:translate(-50%,-50%) rotate(24deg) scaleX(1.25)}}
.hq-card-scene.battle::after{animation-name:hqBattleCutReverse}
@keyframes hqBattleCutReverse{0%{opacity:0;transform:translate(-50%,-50%) rotate(-20deg) scaleX(0)}35%{opacity:1;transform:translate(-50%,-50%) rotate(-20deg) scaleX(1)}100%{opacity:0;transform:translate(-50%,-50%) rotate(-20deg) scaleX(1.25)}}

.hq-card-scene.tactic img{animation:hqTacticImage 1.25s ease-out forwards}
.hq-card-scene.tactic .scene-energy{background:radial-gradient(circle at center,#fff 0 2%,#b58cffb8 8%,#572fd78f 22%,transparent 52%);mix-blend-mode:screen;animation:hqTacticPulse 1.2s ease-out forwards}
.hq-card-scene.tactic::before,.hq-card-scene.tactic::after{content:'✦ ᚱ ✧ ᛟ ✦ ᚨ ✧';position:absolute;z-index:4;left:50%;top:48%;width:112px;height:112px;border:2px solid #d9c6ff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#f2eaff;font-size:13px;letter-spacing:5px;text-shadow:0 0 8px #b688ff;box-shadow:0 0 18px #8e5eff,inset 0 0 18px #6a3acf;transform:translate(-50%,-50%) scale(.2);animation:hqMagicCircle 1.2s ease-out forwards}
.hq-card-scene.tactic::after{width:74px;height:74px;animation-direction:reverse;animation-duration:1s}
@keyframes hqTacticImage{0%{opacity:0;transform:translateY(0) scale(calc(var(--scene-scale,1) * 1.10));filter:hue-rotate(35deg) brightness(1.8) blur(5px)}30%{opacity:1;filter:hue-rotate(15deg) brightness(1.3) blur(0)}100%{transform:translateY(0) scale(var(--scene-scale,1));filter:hue-rotate(0) brightness(1.05)}}
@keyframes hqTacticPulse{0%{opacity:0;transform:scale(.25)}35%{opacity:1}100%{opacity:0;transform:scale(1.8)}}
@keyframes hqMagicCircle{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-100deg)}28%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.45) rotate(130deg)}}

body.no-anim .hq-card-scene:not(.stage-preview){display:none!important}


/* v69 본진 연출: 선택 영역, 원본 크기 정지, 노출 시간 연장 */
.hq-card-scene img{inset:0!important;width:100%!important;height:100%!important;object-position:var(--scene-x,50%) var(--scene-y,50%)!important;transform-origin:var(--scene-x,50%) var(--scene-y,50%)!important;}
.hq-card-scene.summon img,.hq-card-scene.battle img,.hq-card-scene.tactic img{animation-duration:1.25s!important;animation-fill-mode:forwards!important;}
.hq-card-scene.holding img{animation:none!important;transform:scale(var(--scene-scale,1))!important;opacity:1!important;filter:saturate(1.05) contrast(1.03)!important;transition:transform .18s ease!important;}
.hq-card-scene.holding .scene-energy,.hq-card-scene.holding::before,.hq-card-scene.holding::after{animation-play-state:paused!important;opacity:.32!important;}
.hq-card-scene.leaving{animation:hqSceneLeave .32s ease-in forwards!important;}
@keyframes hqSceneLeave{to{opacity:0;filter:brightness(.72)}}

.battlefield-card-scene{position:fixed!important;inset:auto!important;z-index:140;border-radius:16px;box-shadow:0 18px 40px #000a,0 0 0 1px #ffffff22;backdrop-filter:blur(2px)}
.hq-card-scene .scene-effect-caption{position:absolute;left:10px;right:10px;top:10px;z-index:6;display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center}
.hq-card-scene .scene-effect-caption:empty{display:none}
.hq-card-scene .scene-title-big{padding:4px 10px;border-radius:999px;background:#09111ddb;border:1px solid #ffffff40;color:#fff6dd;font-size:18px;font-weight:900;letter-spacing:.06em;text-shadow:0 2px 6px #000}
.hq-card-scene .scene-title-small{padding:4px 10px;border-radius:999px;background:#03070cd4;border:1px solid #ffffff24;color:#eef6ff;font-size:11px;font-weight:700;line-height:1.3;text-shadow:0 1px 4px #000}
.hq-card-scene.death img{animation:hqDeathImage 1.06s ease-out forwards}
.hq-card-scene.death .scene-energy{background:radial-gradient(circle at center,#ffccd633 0 8%,#7d001199 28%,#15020ab8 62%,transparent 80%);mix-blend-mode:screen;animation:hqDeathPulse 1s ease-out forwards}
.hq-card-scene.death::before,.hq-card-scene.death::after{content:'';position:absolute;z-index:4;left:50%;top:50%;width:120%;height:120%;border:2px solid #ff9bb355;border-radius:50%;transform:translate(-50%,-50%) scale(.2);animation:hqDeathRing 1s ease-out forwards}
.hq-card-scene.death::after{animation-delay:.08s}
@keyframes hqDeathImage{0%{transform:scale(1.2);opacity:0;filter:brightness(1.8)}30%{opacity:1}100%{transform:scale(var(--scene-scale,1));opacity:1;filter:saturate(1.02) contrast(1.04)}}
@keyframes hqDeathPulse{0%{opacity:0;transform:scale(.5)}25%{opacity:1}100%{opacity:.2;transform:scale(1.08)}}
@keyframes hqDeathRing{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.18)}}
.hq-card-scene.fx-beam .scene-energy{background:linear-gradient(90deg,transparent 8%,#9ddcff00 28%,#dff8ffb8 49%,#fff 50%,#dff8ffb8 51%,#9ddcff00 72%,transparent 92%)!important}
.hq-card-scene.fx-flare .scene-energy{background:radial-gradient(circle at center,#fff6 0 8%,#ffe6a7d0 18%,#ff7a21a8 34%,transparent 62%)!important}
.hq-card-scene.fx-lightning .scene-energy{background:linear-gradient(120deg,transparent 34%,#d4ebff00 42%,#f9ffff 48%,#7fc6ff 50%,#f9ffff 52%,transparent 60%),radial-gradient(circle at center,#a9d7ff99 0 15%,transparent 55%)!important}
.hq-card-scene.fx-fire .scene-energy{background:radial-gradient(circle at center,#ffefbb77 0 10%,#ffb34dc9 20%,#ff4b2ba8 38%,transparent 68%)!important}
.hq-card-scene.fx-ice .scene-energy{background:radial-gradient(circle at center,#f8ffff77 0 12%,#b7f0ffd0 24%,#65bde9b0 38%,transparent 68%)!important}
.hq-card-scene.fx-smoke .scene-energy{background:radial-gradient(circle at center,#ffffff33 0 12%,#c9d1dc66 25%,#5a64757a 46%,transparent 72%)!important}
.hq-card-scene.fx-petals .scene-energy{background:radial-gradient(circle at center,#ffd5ef55 0 8%,#ff9ad2a8 22%,transparent 58%)!important}
.hq-card-scene.fx-shadow .scene-energy{background:radial-gradient(circle at center,#7b5cff66 0 12%,#2a154eaa 28%,#05030bbd 56%,transparent 78%)!important}
.hq-card-scene.fx-holy .scene-energy{background:radial-gradient(circle at center,#fffbe6aa 0 10%,#fff2b0d0 26%,#ffd56fb0 42%,transparent 72%)!important}
.hq-card-scene.fx-shock .scene-energy{background:linear-gradient(135deg,transparent 30%,#ffffff 50%,transparent 70%),radial-gradient(circle at center,#a7d8ff88 0 14%,transparent 50%)!important}
.hq-card-scene.fx-runes .scene-energy{background:radial-gradient(circle at center,#f1e6ff88 0 10%,#c69cffb8 20%,#5631c8a8 36%,transparent 66%)!important}
.hq-card-scene.fx-blood .scene-energy{background:radial-gradient(circle at center,#ff9bb355 0 12%,#c61134ba 30%,#3f000ab4 54%,transparent 76%)!important}

/* v92: SSS 중앙 연출 · 능력치 변화 */
.battlefield-center-scene{position:fixed!important;inset:auto!important;z-index:160!important;border-radius:22px!important;border:2px solid #ffffff55!important;box-shadow:0 28px 70px #000d,0 0 36px #9fdcff55!important}
.battlefield-center-scene .scene-title-big{font-size:26px!important;padding:7px 18px!important}
.battlefield-center-scene .scene-title-small{font-size:13px!important;max-width:92%;line-height:1.45!important}
.hq-card-scene .scene-particles{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}
.hq-card-scene .scene-particles i{position:absolute;display:block;opacity:0}

/* 12종 효과는 입자 모양·이동 방식·회전 방향을 각각 다르게 구성 */
.hq-card-scene.fx-beam .scene-particles i{left:calc(12% * var(--n,1));bottom:-15%;width:3px;height:70%;background:linear-gradient(transparent,#efffff,transparent);animation:sceneBeamRise 1.2s ease-out forwards}
.hq-card-scene.fx-beam .scene-particles i:nth-child(1){--n:1}.hq-card-scene.fx-beam .scene-particles i:nth-child(2){--n:2;animation-delay:.06s}.hq-card-scene.fx-beam .scene-particles i:nth-child(3){--n:3;animation-delay:.12s}.hq-card-scene.fx-beam .scene-particles i:nth-child(4){--n:4;animation-delay:.18s}.hq-card-scene.fx-beam .scene-particles i:nth-child(5){--n:5;animation-delay:.24s}.hq-card-scene.fx-beam .scene-particles i:nth-child(6){--n:6;animation-delay:.3s}.hq-card-scene.fx-beam .scene-particles i:nth-child(7){--n:7;animation-delay:.36s}.hq-card-scene.fx-beam .scene-particles i:nth-child(8){--n:8;animation-delay:.42s}
.hq-card-scene.fx-flare .scene-particles i{left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#fff4b4;box-shadow:0 0 10px #ffbf45;animation:sceneFlareBurst 1s ease-out forwards}.hq-card-scene.fx-flare .scene-particles i:nth-child(2){--a:45deg}.hq-card-scene.fx-flare .scene-particles i:nth-child(3){--a:90deg}.hq-card-scene.fx-flare .scene-particles i:nth-child(4){--a:135deg}.hq-card-scene.fx-flare .scene-particles i:nth-child(5){--a:180deg}.hq-card-scene.fx-flare .scene-particles i:nth-child(6){--a:225deg}.hq-card-scene.fx-flare .scene-particles i:nth-child(7){--a:270deg}.hq-card-scene.fx-flare .scene-particles i:nth-child(8){--a:315deg}
.hq-card-scene.fx-lightning .scene-particles i{top:-20%;width:5px;height:78%;background:linear-gradient(170deg,transparent 0 20%,#eaffff 21% 27%,transparent 28% 40%,#7ac8ff 41% 50%,transparent 51%);filter:drop-shadow(0 0 7px #6bc5ff);animation:sceneLightningDrop .8s steps(2) forwards}.hq-card-scene.fx-lightning .scene-particles i:nth-child(odd){left:24%;transform:rotate(8deg)}.hq-card-scene.fx-lightning .scene-particles i:nth-child(even){right:24%;transform:rotate(-9deg);animation-delay:.12s}
.hq-card-scene.fx-fire .scene-particles i{bottom:-18%;width:18px;height:28px;border-radius:60% 40% 70% 30%;background:radial-gradient(circle at 50% 70%,#fff2a3,#ff8a25 42%,#e32016 70%,transparent 72%);animation:sceneFireRise 1.25s ease-out forwards}.hq-card-scene.fx-fire .scene-particles i:nth-child(1){left:10%}.hq-card-scene.fx-fire .scene-particles i:nth-child(2){left:22%;animation-delay:.12s}.hq-card-scene.fx-fire .scene-particles i:nth-child(3){left:34%;animation-delay:.04s}.hq-card-scene.fx-fire .scene-particles i:nth-child(4){left:46%;animation-delay:.18s}.hq-card-scene.fx-fire .scene-particles i:nth-child(5){left:58%;animation-delay:.08s}.hq-card-scene.fx-fire .scene-particles i:nth-child(6){left:70%;animation-delay:.22s}.hq-card-scene.fx-fire .scene-particles i:nth-child(7){left:82%;animation-delay:.14s}.hq-card-scene.fx-fire .scene-particles i:nth-child(8){left:90%;animation-delay:.26s}
.hq-card-scene.fx-ice .scene-particles i{left:50%;top:50%;width:4px;height:48%;background:linear-gradient(#efffff,#72d9ff,transparent);transform-origin:50% 100%;animation:sceneIceGrow 1.1s ease-out forwards}.hq-card-scene.fx-ice .scene-particles i:nth-child(2){--r:45deg}.hq-card-scene.fx-ice .scene-particles i:nth-child(3){--r:90deg}.hq-card-scene.fx-ice .scene-particles i:nth-child(4){--r:135deg}.hq-card-scene.fx-ice .scene-particles i:nth-child(5){--r:180deg}.hq-card-scene.fx-ice .scene-particles i:nth-child(6){--r:225deg}.hq-card-scene.fx-ice .scene-particles i:nth-child(7){--r:270deg}.hq-card-scene.fx-ice .scene-particles i:nth-child(8){--r:315deg}
.hq-card-scene.fx-smoke .scene-particles i{bottom:-10%;width:55px;height:55px;border-radius:50%;background:radial-gradient(circle,#e7edf288,#6c748077 55%,transparent 72%);filter:blur(4px);animation:sceneSmokeDrift 1.55s ease-out forwards}.hq-card-scene.fx-smoke .scene-particles i:nth-child(odd){left:12%}.hq-card-scene.fx-smoke .scene-particles i:nth-child(even){right:12%;animation-delay:.18s}
.hq-card-scene.fx-petals .scene-particles i{top:-12%;width:10px;height:16px;border-radius:80% 20% 80% 20%;background:#ff9fd1;box-shadow:0 0 6px #ffd8ed;animation:scenePetalFall 1.5s ease-in forwards}.hq-card-scene.fx-petals .scene-particles i:nth-child(1){left:8%}.hq-card-scene.fx-petals .scene-particles i:nth-child(2){left:20%;animation-delay:.15s}.hq-card-scene.fx-petals .scene-particles i:nth-child(3){left:34%;animation-delay:.3s}.hq-card-scene.fx-petals .scene-particles i:nth-child(4){left:48%;animation-delay:.08s}.hq-card-scene.fx-petals .scene-particles i:nth-child(5){left:60%;animation-delay:.22s}.hq-card-scene.fx-petals .scene-particles i:nth-child(6){left:72%;animation-delay:.36s}.hq-card-scene.fx-petals .scene-particles i:nth-child(7){left:84%;animation-delay:.12s}.hq-card-scene.fx-petals .scene-particles i:nth-child(8){left:92%;animation-delay:.28s}
.hq-card-scene.fx-shadow .scene-particles i{left:50%;top:50%;width:74%;height:74%;border:3px solid #7d4cff77;border-radius:50%;box-shadow:inset 0 0 25px #19092f,0 0 18px #7d4cff;animation:sceneShadowVortex 1.3s ease-out forwards}.hq-card-scene.fx-shadow .scene-particles i:nth-child(n+3){width:48%;height:48%;animation-direction:reverse;animation-delay:.12s}
.hq-card-scene.fx-holy .scene-particles i{left:50%;top:-8%;width:5px;height:110%;background:linear-gradient(transparent,#fffbe8,#ffd775,transparent);transform-origin:50% 50%;animation:sceneHolyRay 1.25s ease-out forwards}.hq-card-scene.fx-holy .scene-particles i:nth-child(2){--r:22deg}.hq-card-scene.fx-holy .scene-particles i:nth-child(3){--r:-22deg}.hq-card-scene.fx-holy .scene-particles i:nth-child(4){--r:42deg}.hq-card-scene.fx-holy .scene-particles i:nth-child(5){--r:-42deg}.hq-card-scene.fx-holy .scene-particles i:nth-child(6){--r:62deg}.hq-card-scene.fx-holy .scene-particles i:nth-child(7){--r:-62deg}.hq-card-scene.fx-holy .scene-particles i:nth-child(8){--r:90deg}
.hq-card-scene.fx-shock .scene-particles i{left:50%;top:50%;width:22px;height:22px;border:3px solid #d8f4ff;border-radius:50%;transform:translate(-50%,-50%);animation:sceneShockWave 1.05s ease-out forwards}.hq-card-scene.fx-shock .scene-particles i:nth-child(2){animation-delay:.1s}.hq-card-scene.fx-shock .scene-particles i:nth-child(3){animation-delay:.2s}.hq-card-scene.fx-shock .scene-particles i:nth-child(4){animation-delay:.3s}
.hq-card-scene.fx-runes .scene-particles i{left:50%;top:50%;width:72%;height:72%;border:2px dashed #e8d6ff;border-radius:50%;box-shadow:0 0 18px #985fff,inset 0 0 18px #5c28a0;transform:translate(-50%,-50%);animation:sceneRuneSpin 1.5s linear forwards}.hq-card-scene.fx-runes .scene-particles i:nth-child(n+2){width:48%;height:48%;animation-direction:reverse}
.hq-card-scene.fx-blood .scene-particles i{top:-12%;width:9px;height:18px;border-radius:50% 50% 65% 65%;background:linear-gradient(#ff7b91,#a1001c);box-shadow:0 0 8px #e4002b;animation:sceneBloodDrop 1.1s ease-in forwards}.hq-card-scene.fx-blood .scene-particles i:nth-child(1){left:12%}.hq-card-scene.fx-blood .scene-particles i:nth-child(2){left:26%;animation-delay:.08s}.hq-card-scene.fx-blood .scene-particles i:nth-child(3){left:40%;animation-delay:.16s}.hq-card-scene.fx-blood .scene-particles i:nth-child(4){left:54%;animation-delay:.24s}.hq-card-scene.fx-blood .scene-particles i:nth-child(5){left:68%;animation-delay:.12s}.hq-card-scene.fx-blood .scene-particles i:nth-child(6){left:82%;animation-delay:.2s}.hq-card-scene.fx-blood .scene-particles i:nth-child(7){left:90%;animation-delay:.28s}.hq-card-scene.fx-blood .scene-particles i:nth-child(8){left:6%;animation-delay:.32s}

.fx-stat-change{position:fixed;z-index:190;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none;animation:statChangeFloat 1.2s ease-out forwards;text-align:center;text-shadow:0 2px 6px #000}
.fx-stat-change b{padding:5px 10px;border-radius:999px;font-size:16px;font-weight:950;white-space:nowrap;border:1px solid #ffffff66;box-shadow:0 5px 18px #0008}
.fx-stat-change small{padding:2px 7px;border-radius:999px;background:#05080dd9;color:#fff;font-size:10px;font-weight:800;white-space:nowrap}
.fx-stat-change.positive b{background:#0b8b4fe8;color:#eafff3}.fx-stat-change.negative b{background:#a51b35e8;color:#fff0f3}
.unit.stat-change-pulse{animation:unitStatPulse .9s ease-out!important;z-index:20!important}
@keyframes sceneBeamRise{0%{opacity:0;transform:translateY(25%)}35%{opacity:1}100%{opacity:0;transform:translateY(-25%)}}
@keyframes sceneFlareBurst{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--a,0deg)) translateX(0) scale(.2)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--a,0deg)) translateX(155px) scale(1.2)}}
@keyframes sceneLightningDrop{0%{opacity:0;transform:translateY(-30%) rotate(8deg)}35%{opacity:1}70%{opacity:.35}100%{opacity:0;transform:translateY(35%) rotate(-5deg)}}
@keyframes sceneFireRise{0%{opacity:0;transform:translateY(0) scale(.4)}35%{opacity:1}100%{opacity:0;transform:translateY(-210px) scale(1.6) rotate(18deg)}}
@keyframes sceneIceGrow{0%{opacity:0;transform:translate(-50%,-100%) rotate(var(--r,0deg)) scaleY(.05)}45%{opacity:1}100%{opacity:0;transform:translate(-50%,-100%) rotate(var(--r,0deg)) scaleY(1)}}
@keyframes sceneSmokeDrift{0%{opacity:0;transform:translateY(30px) scale(.5)}45%{opacity:.9}100%{opacity:0;transform:translate(70px,-130px) scale(1.8)}}
@keyframes scenePetalFall{0%{opacity:0;transform:translateY(-15px) rotate(0)}25%{opacity:1}100%{opacity:0;transform:translate(55px,260px) rotate(520deg)}}
@keyframes sceneShadowVortex{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.35) rotate(300deg)}}
@keyframes sceneHolyRay{0%{opacity:0;transform:rotate(var(--r,0deg)) scaleY(.1)}35%{opacity:1}100%{opacity:0;transform:rotate(var(--r,0deg)) scaleY(1)}}
@keyframes sceneShockWave{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(14)}}
@keyframes sceneRuneSpin{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(0)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.1) rotate(420deg)}}
@keyframes sceneBloodDrop{0%{opacity:0;transform:translateY(-15px) scale(.5)}30%{opacity:1}100%{opacity:0;transform:translateY(260px) scale(1.2)}}
@keyframes statChangeFloat{0%{opacity:0;transform:translate(-50%,-20%) scale(.65)}20%{opacity:1;transform:translate(-50%,-55%) scale(1.08)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-145%) scale(.96)}}
@keyframes unitStatPulse{0%{filter:brightness(1)}25%{filter:brightness(1.7) saturate(1.5);transform:scale(1.04)}100%{filter:brightness(1);transform:scale(1)}}


/* v93: 신규 장수 등장·사망 애니메이션 */
.hq-card-scene.fx-warcry .scene-energy{background:radial-gradient(ellipse at center,#fff4bd66 0 8%,#f1a532a8 22%,#8b3b12a0 42%,transparent 72%)!important}
.hq-card-scene.fx-warcry .scene-particles i{left:50%;top:50%;width:20px;height:20px;border:4px solid #ffe7a6;border-radius:50%;box-shadow:0 0 16px #ff9b35;transform:translate(-50%,-50%);animation:sceneWarcryRing 1.2s cubic-bezier(.15,.72,.25,1) forwards}
.hq-card-scene.fx-warcry .scene-particles i:nth-child(2){animation-delay:.09s}.hq-card-scene.fx-warcry .scene-particles i:nth-child(3){animation-delay:.18s}.hq-card-scene.fx-warcry .scene-particles i:nth-child(n+4){display:none}
.hq-card-scene.fx-dragon .scene-energy{background:conic-gradient(from 0deg at 50% 50%,transparent,#8fffd488,#36cfa1aa,#b9fff0aa,transparent 72%)!important;mix-blend-mode:screen}
.hq-card-scene.fx-dragon .scene-particles i{left:50%;top:50%;width:12px;height:12px;border-radius:55% 45% 70% 30%;background:#b9fff0;box-shadow:0 0 13px #35e1b0;animation:sceneDragonSpiral 1.45s ease-out forwards}
.hq-card-scene.fx-dragon .scene-particles i:nth-child(2){--a:45deg;animation-delay:.05s}.hq-card-scene.fx-dragon .scene-particles i:nth-child(3){--a:90deg;animation-delay:.1s}.hq-card-scene.fx-dragon .scene-particles i:nth-child(4){--a:135deg;animation-delay:.15s}.hq-card-scene.fx-dragon .scene-particles i:nth-child(5){--a:180deg;animation-delay:.2s}.hq-card-scene.fx-dragon .scene-particles i:nth-child(6){--a:225deg;animation-delay:.25s}.hq-card-scene.fx-dragon .scene-particles i:nth-child(7){--a:270deg;animation-delay:.3s}.hq-card-scene.fx-dragon .scene-particles i:nth-child(8){--a:315deg;animation-delay:.35s}
.hq-card-scene.fx-ascend .scene-energy{background:linear-gradient(180deg,transparent 12%,#d8e8ff33 40%,#f5fbff99 76%,transparent 100%)!important}
.hq-card-scene.fx-ascend .scene-particles i{bottom:-18%;width:18px;height:28px;border-radius:50%;background:radial-gradient(circle at 45% 38%,#fff,#bed6ff 42%,#6d87b8aa 68%,transparent 72%);filter:blur(.3px);animation:sceneSoulAscend 1.6s ease-out forwards}
.hq-card-scene.fx-ascend .scene-particles i:nth-child(1){left:10%}.hq-card-scene.fx-ascend .scene-particles i:nth-child(2){left:22%;animation-delay:.1s}.hq-card-scene.fx-ascend .scene-particles i:nth-child(3){left:35%;animation-delay:.2s}.hq-card-scene.fx-ascend .scene-particles i:nth-child(4){left:48%;animation-delay:.04s}.hq-card-scene.fx-ascend .scene-particles i:nth-child(5){left:60%;animation-delay:.14s}.hq-card-scene.fx-ascend .scene-particles i:nth-child(6){left:72%;animation-delay:.24s}.hq-card-scene.fx-ascend .scene-particles i:nth-child(7){left:84%;animation-delay:.08s}.hq-card-scene.fx-ascend .scene-particles i:nth-child(8){left:92%;animation-delay:.18s}
@keyframes sceneWarcryRing{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}28%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(18,9)}}
@keyframes sceneDragonSpiral{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--a,0deg)) translateX(18px) scale(.3)}28%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--a,0deg) + 620deg)) translateX(170px) scale(1.45)}}
@keyframes sceneSoulAscend{0%{opacity:0;transform:translateY(20px) scale(.55)}25%{opacity:1}70%{opacity:.8}100%{opacity:0;transform:translate(35px,-300px) scale(1.5)}}

/* v96: 16종 연출 강화 — 화면 전체 변화, 입자, 이미지 움직임을 각 효과별로 분리 */
.hq-card-scene{--fx-speed:1.35s}
.hq-card-scene .scene-energy{opacity:.96!important}
.hq-card-scene .scene-particles{filter:saturate(1.35) brightness(1.12)}

/* 1. 빛기둥 */
.hq-card-scene.fx-beam img{animation:fxBeamPortrait 1.35s cubic-bezier(.12,.75,.18,1) forwards!important}
.hq-card-scene.fx-beam::before{content:'';position:absolute;z-index:3;left:34%;right:34%;top:-20%;bottom:-20%;background:linear-gradient(90deg,transparent,#eaffff66,#fff,#eaffff66,transparent);filter:blur(5px);mix-blend-mode:screen;animation:fxBeamColumn 1.25s ease-out forwards}
@keyframes fxBeamPortrait{0%{opacity:0;transform:scale(.72) translateY(24%);filter:brightness(2.5) blur(7px)}42%{opacity:1;filter:brightness(1.65) blur(0)}100%{transform:scale(var(--scene-scale,1));filter:saturate(1.15) contrast(1.08)}}
@keyframes fxBeamColumn{0%{opacity:0;transform:scaleX(.15)}30%{opacity:1;transform:scaleX(1.25)}100%{opacity:0;transform:scaleX(2)}}

/* 2. 섬광 폭발 */
.hq-card-scene.fx-flare img{animation:fxFlarePortrait 1.2s ease-out forwards!important}
.hq-card-scene.fx-flare::before,.hq-card-scene.fx-flare::after{content:'';position:absolute;z-index:4;inset:-45%;background:conic-gradient(from 0deg,transparent 0 5%,#fff 6% 8%,transparent 9% 18%,#ffc76b 19% 22%,transparent 23% 34%,#fff 35% 37%,transparent 38% 100%);animation:fxFlareSpin 1.1s ease-out forwards}
.hq-card-scene.fx-flare::after{animation-direction:reverse;filter:blur(4px)}
@keyframes fxFlarePortrait{0%{opacity:0;transform:scale(1.65);filter:brightness(4)}28%{opacity:1;transform:scale(.92);filter:brightness(2.1)}100%{transform:scale(var(--scene-scale,1));filter:contrast(1.08)}}
@keyframes fxFlareSpin{0%{opacity:0;transform:rotate(0) scale(.1)}30%{opacity:1}100%{opacity:0;transform:rotate(230deg) scale(1.1)}}

/* 3. 낙뢰 */
.hq-card-scene.fx-lightning{animation:fxLightningScreen 1.25s steps(2) forwards}
.hq-card-scene.fx-lightning img{animation:fxLightningPortrait 1.2s steps(2) forwards!important}
.hq-card-scene.fx-lightning::before{content:'';position:absolute;z-index:5;left:46%;top:-20%;width:12%;height:130%;background:linear-gradient(165deg,transparent 0 18%,#fff 19% 27%,transparent 28% 38%,#80d8ff 39% 52%,transparent 53% 100%);filter:drop-shadow(0 0 14px #56bdff);animation:fxBoltStrike 1s steps(2) forwards}
@keyframes fxLightningScreen{0%,18%,42%,65%{filter:brightness(.55)}10%,28%,52%{filter:brightness(2.5)}100%{filter:none}}
@keyframes fxLightningPortrait{0%{opacity:0;transform:scale(1.12)}18%{opacity:1;filter:brightness(3) contrast(1.5)}100%{transform:scale(var(--scene-scale,1));filter:contrast(1.12)}}
@keyframes fxBoltStrike{0%,15%,36%{opacity:0}16%,37%,55%{opacity:1}100%{opacity:0}}

/* 4. 화염 지옥 — 사진 전체가 실제로 타오르는 느낌 */
.hq-card-scene.fx-fire{background:#260300!important;animation:fxFireScreen 1.65s ease-out forwards}
.hq-card-scene.fx-fire img{animation:fxBurnPortrait 1.6s ease-out forwards!important}
.hq-card-scene.fx-fire::before{content:'';position:absolute;z-index:4;inset:18% -5% -25%;background:repeating-radial-gradient(ellipse at 50% 100%,#fff2a7 0 4%,#ff9a22 5% 12%,#e32310 13% 21%,transparent 22% 31%);filter:blur(3px) saturate(1.8);mix-blend-mode:screen;animation:fxFireWall .72s ease-in-out infinite alternate}
.hq-card-scene.fx-fire::after{content:'';position:absolute;z-index:5;inset:0;background:linear-gradient(0deg,#ff2d00a8,transparent 55%),radial-gradient(circle at 50% 70%,transparent 10%,#ff6a0033 45%,#210000aa 100%);animation:fxHeatWave .22s linear infinite alternate}
@keyframes fxFireScreen{0%{box-shadow:inset 0 0 0 #000}45%{box-shadow:inset 0 -55px 80px #ff3100cc}100%{box-shadow:inset 0 -30px 50px #6c0800aa}}
@keyframes fxBurnPortrait{0%{opacity:0;transform:scale(.88) translateY(18%);filter:brightness(.25) sepia(1)}25%{opacity:1;filter:brightness(1.8) sepia(.6) saturate(2.5)}70%{transform:scale(calc(var(--scene-scale,1) * 1.05));filter:contrast(1.3) saturate(1.8)}100%{transform:scale(var(--scene-scale,1));filter:contrast(1.1) saturate(1.2)}}
@keyframes fxFireWall{from{transform:translateY(12%) scaleY(.82)}to{transform:translateY(-8%) scaleY(1.18)}}
@keyframes fxHeatWave{from{transform:translateX(-2px) skewX(-1deg)}to{transform:translateX(2px) skewX(1deg)}}

/* 5. 전면 빙결 — 화면 전체 결빙 */
.hq-card-scene.fx-ice{background:#031a2a!important;animation:fxFreezeScreen 1.55s ease-out forwards}
.hq-card-scene.fx-ice img{animation:fxFreezePortrait 1.5s ease-out forwards!important}
.hq-card-scene.fx-ice::before{content:'';position:absolute;inset:-2%;z-index:5;background:linear-gradient(135deg,#eaffff99 0 2%,transparent 3% 18%,#b8ecff88 19% 21%,transparent 22% 42%,#fff9 43% 45%,transparent 46%),radial-gradient(circle at 50% 50%,transparent 0 18%,#bceeff55 45%,#dff9ffcc 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);animation:fxIceSheet 1.35s ease-out forwards}
.hq-card-scene.fx-ice::after{content:'❄';position:absolute;z-index:6;inset:0;display:grid;place-items:center;color:#efffff;font-size:84px;text-shadow:0 0 25px #8be4ff;animation:fxIceBurst 1.4s ease-out forwards}
@keyframes fxFreezeScreen{0%{filter:brightness(.4) saturate(.3)}38%{filter:brightness(1.7) saturate(.65) hue-rotate(155deg)}100%{filter:brightness(1.05) saturate(.75) hue-rotate(165deg)}}
@keyframes fxFreezePortrait{0%{opacity:0;transform:scale(1.18);filter:blur(8px) brightness(2)}45%{opacity:1;filter:contrast(1.3) saturate(.2) hue-rotate(165deg)}100%{transform:scale(var(--scene-scale,1));filter:contrast(1.2) saturate(.45) hue-rotate(165deg)}}
@keyframes fxIceSheet{0%{opacity:0;transform:scale(.1)}45%{opacity:1}100%{opacity:.62;transform:scale(1.15)}}
@keyframes fxIceBurst{0%{opacity:0;transform:scale(.1) rotate(-40deg)}45%{opacity:1}100%{opacity:0;transform:scale(2.4) rotate(35deg)}}

/* 6. 연막 */
.hq-card-scene.fx-smoke img{animation:fxSmokePortrait 1.6s ease-out forwards!important}
.hq-card-scene.fx-smoke::before,.hq-card-scene.fx-smoke::after{content:'';position:absolute;z-index:5;width:95%;height:95%;border-radius:50%;background:radial-gradient(circle,#d9e0e5cc 0 12%,#737b8499 40%,transparent 72%);filter:blur(15px);animation:fxSmokeCloud 1.7s ease-out forwards}
.hq-card-scene.fx-smoke::before{left:-35%;bottom:-35%}.hq-card-scene.fx-smoke::after{right:-35%;top:-30%;animation-delay:.18s}
@keyframes fxSmokePortrait{0%{opacity:0;filter:blur(18px)}45%{opacity:.65;filter:blur(5px)}100%{opacity:1;transform:scale(var(--scene-scale,1));filter:contrast(1.02)}}
@keyframes fxSmokeCloud{0%{opacity:0;transform:scale(.4)}55%{opacity:.95}100%{opacity:0;transform:translate(45%, -35%) scale(1.75)}}

/* 7. 꽃잎 폭풍 */
.hq-card-scene.fx-petals img{animation:fxPetalPortrait 1.5s ease-out forwards!important}
.hq-card-scene.fx-petals::before{content:'✦  ❀  ✿  ❁  ✦  ❀  ✿';position:absolute;z-index:5;inset:-20%;color:#ffb2dc;font-size:28px;letter-spacing:22px;text-shadow:0 0 10px #ff78c0;animation:fxPetalStorm 1.6s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes fxPetalPortrait{0%{opacity:0;transform:translateX(-25%) rotate(-5deg) scale(.9)}45%{opacity:1;transform:translateX(3%) rotate(1deg) scale(1.05)}100%{transform:scale(var(--scene-scale,1))}}
@keyframes fxPetalStorm{0%{opacity:0;transform:translate(-20%,-30%) rotate(-30deg) scale(.5)}35%{opacity:1}100%{opacity:0;transform:translate(30%,55%) rotate(210deg) scale(1.25)}}

/* 8. 암흑 소용돌이 */
.hq-card-scene.fx-shadow{animation:fxShadowScreen 1.55s ease-out forwards}
.hq-card-scene.fx-shadow img{animation:fxShadowPortrait 1.5s ease-out forwards!important}
.hq-card-scene.fx-shadow::before{content:'';position:absolute;z-index:5;left:50%;top:50%;width:150%;height:150%;border-radius:50%;background:repeating-conic-gradient(#0000 0 14deg,#6d3ac988 15deg 24deg,#05010c 25deg 40deg);mix-blend-mode:screen;animation:fxShadowSpiral 1.5s ease-in forwards}
@keyframes fxShadowScreen{0%{background:#000}55%{background:#090217}100%{background:#02030a}}
@keyframes fxShadowPortrait{0%{opacity:0;transform:scale(.4) rotate(-14deg);filter:brightness(.1)}55%{opacity:1;transform:scale(1.12) rotate(2deg);filter:brightness(1.4) saturate(.7)}100%{transform:scale(var(--scene-scale,1));filter:contrast(1.1)}}
@keyframes fxShadowSpiral{0%{opacity:0;transform:translate(-50%,-50%) scale(.05) rotate(0)}55%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.1) rotate(520deg)}}

/* 9. 성광 강림 */
.hq-card-scene.fx-holy img{animation:fxHolyPortrait 1.5s ease-out forwards!important}
.hq-card-scene.fx-holy::before{content:'';position:absolute;z-index:5;inset:-25%;background:repeating-conic-gradient(from 0deg,#fff0 0 8deg,#fff8d5cc 9deg 13deg,#fff0 14deg 28deg);mix-blend-mode:screen;animation:fxHolyBurst 1.45s ease-out forwards}
.hq-card-scene.fx-holy::after{content:'✦';position:absolute;z-index:6;inset:0;display:grid;place-items:center;font-size:88px;color:#fff9cf;text-shadow:0 0 30px #ffd45c;animation:fxHolySymbol 1.4s ease-out forwards}
@keyframes fxHolyPortrait{0%{opacity:0;transform:translateY(30%) scale(.8);filter:brightness(3)}45%{opacity:1;transform:translateY(-4%) scale(1.08);filter:brightness(1.7)}100%{transform:scale(var(--scene-scale,1));filter:brightness(1.08)}}
@keyframes fxHolyBurst{0%{opacity:0;transform:rotate(-40deg) scale(.2)}40%{opacity:1}100%{opacity:0;transform:rotate(60deg) scale(1.1)}}
@keyframes fxHolySymbol{0%{opacity:0;transform:scale(.1)}45%{opacity:1}100%{opacity:0;transform:scale(2.2)}}

/* 10. 대지 충격파 */
.hq-card-scene.fx-shock{animation:fxImpactShake 1.1s ease-out forwards}
.hq-card-scene.fx-shock img{animation:fxImpactPortrait 1.2s ease-out forwards!important}
.hq-card-scene.fx-shock::before,.hq-card-scene.fx-shock::after{content:'';position:absolute;z-index:5;left:50%;top:58%;width:30px;height:14px;border:5px solid #d8f6ff;border-radius:50%;box-shadow:0 0 24px #71d6ff;animation:fxImpactRing 1.1s ease-out forwards}
.hq-card-scene.fx-shock::after{animation-delay:.16s}
@keyframes fxImpactShake{0%,100%{transform:translate(0)}18%{transform:translate(-9px,4px)}32%{transform:translate(8px,-3px)}46%{transform:translate(-5px,2px)}60%{transform:translate(3px,-1px)}}
@keyframes fxImpactPortrait{0%{opacity:0;transform:scale(1.5) translateY(-15%)}32%{opacity:1;transform:scale(.88) translateY(8%)}100%{transform:scale(var(--scene-scale,1))}}
@keyframes fxImpactRing{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(15,8)}}

/* 11. 룬 마법진 */
.hq-card-scene.fx-runes img{animation:fxRunePortrait 1.55s ease-out forwards!important}
.hq-card-scene.fx-runes::before,.hq-card-scene.fx-runes::after{content:'ᚱ ᛟ ᚨ ᚾ ᛇ ᛉ';position:absolute;z-index:5;left:50%;top:50%;width:74%;height:74%;border:3px solid #d8baff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#f0e4ff;font-size:20px;letter-spacing:14px;text-shadow:0 0 12px #a05cff;box-shadow:0 0 28px #8f51ff,inset 0 0 28px #54228d;animation:fxRuneCircle 1.6s linear forwards}
.hq-card-scene.fx-runes::after{width:48%;height:48%;animation-direction:reverse}
@keyframes fxRunePortrait{0%{opacity:0;transform:scale(.65);filter:hue-rotate(90deg) brightness(2)}50%{opacity:1;transform:scale(1.08)}100%{transform:scale(var(--scene-scale,1));filter:contrast(1.08)}}
@keyframes fxRuneCircle{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(0)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.15) rotate(540deg)}}

/* 12. 붉은 혈기 */
.hq-card-scene.fx-blood{background:#170005!important}
.hq-card-scene.fx-blood img{animation:fxBloodPortrait 1.5s ease-out forwards!important}
.hq-card-scene.fx-blood::before{content:'';position:absolute;z-index:5;inset:-10%;background:radial-gradient(circle at 20% 30%,#ff334499 0 3%,transparent 4%),radial-gradient(circle at 70% 22%,#a8001eaa 0 5%,transparent 6%),radial-gradient(circle at 85% 65%,#ff254099 0 4%,transparent 5%),radial-gradient(circle at 35% 78%,#8d001baa 0 6%,transparent 7%);animation:fxBloodSplash 1.3s ease-out forwards}
@keyframes fxBloodPortrait{0%{opacity:0;transform:scale(1.25);filter:grayscale(1) brightness(.25)}42%{opacity:1;filter:sepia(.8) saturate(3) hue-rotate(320deg)}100%{transform:scale(var(--scene-scale,1));filter:contrast(1.2) saturate(1.25)}}
@keyframes fxBloodSplash{0%{opacity:0;transform:scale(.2) rotate(-25deg)}40%{opacity:1}100%{opacity:0;transform:scale(1.6) rotate(20deg)}}

/* 13. 전장의 함성 */
.hq-card-scene.fx-warcry{animation:fxWarcryShake 1.4s ease-out forwards}
.hq-card-scene.fx-warcry img{animation:fxWarcryPortrait 1.35s ease-out forwards!important}
.hq-card-scene.fx-warcry::before{content:'喝!';position:absolute;z-index:6;right:8%;top:12%;color:#fff0b0;font-size:58px;font-weight:1000;text-shadow:0 0 20px #ff7b22;animation:fxWarcryText 1.2s ease-out forwards}
@keyframes fxWarcryShake{0%,100%{transform:translate(0)}25%{transform:translate(-6px)}38%{transform:translate(6px)}51%{transform:translate(-4px)}64%{transform:translate(3px)}}
@keyframes fxWarcryPortrait{0%{opacity:0;transform:translateX(-35%) scale(1.25)}38%{opacity:1;transform:translateX(4%) scale(1.1)}100%{transform:scale(var(--scene-scale,1))}}
@keyframes fxWarcryText{0%{opacity:0;transform:scale(.1) rotate(-15deg)}40%{opacity:1;transform:scale(1.25) rotate(5deg)}100%{opacity:0;transform:scale(1.8) rotate(8deg)}}

/* 14. 용혼 강림 */
.hq-card-scene.fx-dragon img{animation:fxDragonPortrait 1.7s ease-out forwards!important}
.hq-card-scene.fx-dragon::before{content:'龍';position:absolute;z-index:6;left:50%;top:50%;color:#d9fff2;font-size:108px;font-weight:1000;text-shadow:0 0 30px #1cffb2;animation:fxDragonGlyph 1.6s ease-out forwards}
.hq-card-scene.fx-dragon::after{content:'';position:absolute;z-index:5;left:50%;top:50%;width:140%;height:80%;border:10px solid #73ffd2;border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;filter:drop-shadow(0 0 15px #24d9a6);animation:fxDragonArc 1.55s ease-out forwards}
@keyframes fxDragonPortrait{0%{opacity:0;transform:scale(.4) rotate(-12deg);filter:hue-rotate(80deg) brightness(2)}55%{opacity:1;transform:scale(1.12) rotate(1deg)}100%{transform:scale(var(--scene-scale,1));filter:contrast(1.08)}}
@keyframes fxDragonGlyph{0%{opacity:0;transform:translate(-50%,-50%) scale(.1) rotate(-30deg)}45%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(2) rotate(25deg)}}
@keyframes fxDragonArc{0%{opacity:0;transform:translate(-50%,-50%) scale(.15) rotate(-80deg)}45%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.15) rotate(380deg)}}

/* 15. 영혼 승천 */
.hq-card-scene.fx-ascend img{animation:fxAscendPortrait 1.65s ease-out forwards!important}
.hq-card-scene.fx-ascend::before{content:'';position:absolute;z-index:5;left:15%;right:15%;bottom:-20%;height:120%;background:linear-gradient(0deg,#dcecffcc,transparent 72%);clip-path:polygon(0 100%,20% 0,38% 100%,50% 8%,65% 100%,82% 0,100% 100%);filter:blur(5px);animation:fxAscendRays 1.6s ease-out forwards}
@keyframes fxAscendPortrait{0%{opacity:0;transform:translateY(35%) scale(.85);filter:brightness(2)}40%{opacity:1}100%{transform:translateY(-8%) scale(var(--scene-scale,1));filter:brightness(1.2)}}
@keyframes fxAscendRays{0%{opacity:0;transform:translateY(30%)}40%{opacity:1}100%{opacity:0;transform:translateY(-20%) scaleY(1.35)}}

/* 16. 혼백 붕괴 — 사망 전용 신규 효과 */
.hq-card-scene.fx-requiem{background:#02030a!important;animation:fxRequiemScreen 1.7s ease-out forwards}
.hq-card-scene.fx-requiem img{animation:fxRequiemPortrait 1.65s cubic-bezier(.2,.62,.24,1) forwards!important}
.hq-card-scene.fx-requiem::before{content:'✧  ✦  ◇  ✧  ✦';position:absolute;z-index:6;inset:0;display:grid;place-items:center;color:#e9f1ff;font-size:30px;letter-spacing:20px;text-shadow:0 0 16px #8ba8ff;animation:fxSoulFragments 1.6s ease-out forwards}
.hq-card-scene.fx-requiem::after{content:'';position:absolute;z-index:5;left:50%;top:50%;width:8px;height:8px;border:3px solid #e4edff;border-radius:50%;box-shadow:0 0 24px #91aaff;animation:fxSoulCollapse 1.55s ease-in-out forwards}
@keyframes fxRequiemScreen{0%{filter:brightness(1)}55%{filter:grayscale(1) brightness(.5)}100%{filter:grayscale(.8) brightness(.8)}}
@keyframes fxRequiemPortrait{0%{opacity:1;transform:scale(var(--scene-scale,1));filter:grayscale(0)}35%{opacity:1;transform:scale(1.04);filter:grayscale(.6) brightness(1.4)}100%{opacity:0;transform:translateY(-28%) scale(.55);filter:grayscale(1) blur(9px)}}
@keyframes fxSoulFragments{0%{opacity:0;transform:translateY(25%) scale(.5)}40%{opacity:1}100%{opacity:0;transform:translateY(-80%) scale(1.8) rotate(35deg)}}
@keyframes fxSoulCollapse{0%{opacity:0;transform:translate(-50%,-50%) scale(18)}55%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(.05)}}
