*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Courier New',monospace;background:#09090f;color:var(--txt);overflow:hidden;height:100vh;height:100dvh;user-select:none}
:root{
  --k:#e8b840;--s:#3ad6f0;--r:#ff8c80;--y:#9ec0d8;--x:#b486f0;--neu:#a8a8b8;--neu2:#8888a0;--bg:#09090f;--bg2:#14142a;--bg3:#1f1f3a;--red:#ff6868;--txt:#f0e8d8;
  --cw:clamp(80px, 6.8vw, 156px);
  --cwField:clamp(58px, 4.4vw, 98px);
  --ch:clamp(94px, 12.8vh, 210px);
  --cheq:clamp(84px, 10.2vh, 186px);
  --chc:clamp(114px, 14.4vh, 228px);
  --hbarH:clamp(34px, 3.6vh, 52px);
  --centerH:clamp(42px, 4.8vh, 64px);
  --zonePad:clamp(2px, 0.4vh, 7px);
  --zonePadX:clamp(8px, 1vw, 24px);
  --fzBar:clamp(13px, 1.04vw, 21px);
  --fzText:clamp(12px, 0.96vw, 19px);
  --fzStat:clamp(11px, 0.88vw, 17px);
  --fzCard:clamp(12px, 0.96vw, 19px);
  --fzCardSub:clamp(10px, 0.84vw, 16px);
  --fzFx:clamp(11px, 0.92vw, 17px);
  --fzHonor:clamp(18px, 1.6vw, 32px);
  --fzMd:clamp(14px, 1.28vw, 25px);
  --fzXs:clamp(10px, 0.78vw, 15px);
}
@media (max-width:1023px),(max-height:820px){
  body{overflow-y:auto;overflow-x:hidden;height:auto;min-height:100vh;min-height:100dvh}
  .gameroot{height:auto!important;min-height:100vh;min-height:100dvh}
  .center{flex-wrap:wrap!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:8px clamp(8px,1.1vw,22px)!important;gap:8px!important}
  .cbtns{flex-wrap:wrap!important;width:100%;justify-content:flex-end}
}
@media (max-width:639px){
  :root{--zonePadX:8px}
  .cbtns{justify-content:flex-start}
  .hbar{flex-wrap:wrap;height:auto;min-height:var(--hbarH);padding-top:6px;padding-bottom:6px;overflow:visible}
  .lname,.linfo{display:none}
}
@media (max-width:1023px){
  .hbar{overflow-x:auto;overflow-y:visible}
  .deckinfo{font-size:var(--fzStat)}
}
.hbar{display:flex;align-items:center;gap:clamp(6px,0.6vw,12px);padding:clamp(2px,0.4vh,8px) clamp(8px,1.1vw,22px);background:var(--bg2);font-size:var(--fzBar);flex-shrink:0;height:var(--hbarH);min-height:var(--hbarH);overflow:visible;flex-wrap:nowrap;position:relative;z-index:5}
.hbar.top{border-bottom:1px solid #1e1e30}.hbar.bot{border-top:1px solid #1e1e30}
.honor{font-size:var(--fzHonor);font-weight:bold;letter-spacing:1px}.honor.K{color:var(--k)}.honor.S{color:var(--s)}.honor.R{color:var(--r)}.honor.Y{color:var(--y)}.honor.X{color:var(--x)}
.ki-badge{background:#1e2545;border:1px solid #3a3a6a;padding:3px 12px;border-radius:3px;font-size:var(--fzBar);color:#c8e8ff;font-weight:bold;letter-spacing:1px;white-space:nowrap}
.tag{padding:3px 9px;border-radius:2px;font-size:var(--fzStat);font-weight:bold;letter-spacing:1px;white-space:nowrap}
.tag.K{background:rgba(232,184,64,.2);color:var(--k);border:1px solid rgba(232,184,64,.45)}
.tag.S{background:rgba(58,214,240,.2);color:var(--s);border:1px solid rgba(58,214,240,.45)}
.tag.R{background:rgba(255,140,128,.2);color:var(--r);border:1px solid rgba(255,140,128,.45)}
.tag.Y{background:rgba(158,192,216,.18);color:var(--y);border:1px solid rgba(158,192,216,.5)}
.tag.X{background:rgba(180,134,240,.2);color:var(--x);border:1px solid rgba(180,134,240,.45)}
.sp{flex:1;min-width:8px}.hpbar{width:clamp(56px,6vw,140px);height:clamp(3px,0.45vh,6px);background:#1a1a2e;border-radius:2px;overflow:hidden;flex-shrink:0}.hpfill{height:100%;transition:.3s}
.lname{font-size:var(--fzBar);color:var(--neu);white-space:nowrap}
.linfo{font-size:var(--fzText);color:var(--neu2);margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.deckinfo{font-size:var(--fzText);color:var(--neu);white-space:nowrap;font-weight:bold}
@media (max-width:1023px){.linfo{display:none}}
.zone{display:flex;gap:clamp(3px,0.4vw,8px);padding:var(--zonePad) var(--zonePadX);align-items:center;justify-content:safe center;overflow-x:auto;position:relative;scrollbar-width:thin;scrollbar-color:#2a2a4e transparent}
.zone::-webkit-scrollbar{height:4px}.zone::-webkit-scrollbar-thumb{background:#2a2a4e;border-radius:2px}
.zlabel{position:absolute;left:6px;top:3px;font-size:var(--fzStat);color:#8a8aae;letter-spacing:2px;text-transform:uppercase;pointer-events:none;z-index:3;background:rgba(9,9,15,0.78);padding:1px 6px;border-radius:2px;font-weight:bold;max-width:calc(100% - 12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zone.dom{background:#0c0c1a;border-bottom:1px solid #141422;flex:1;min-height:calc(var(--cwField) * 0.5 + var(--zonePad)*2);overflow-x:hidden}
.zone.fl{background:#0d0d1c;border-bottom:1px solid #181828;flex:1.4;min-height:calc(var(--cwField) * 0.5 + var(--zonePad)*2);overflow-x:hidden}
.zone.hand{background:var(--bg2);flex:0 0 auto;min-height:calc(var(--chc) + var(--zonePad)*2);flex-wrap:nowrap;align-items:center}
.zone.hand.opp{min-height:calc(var(--cwField) + var(--zonePad)*2);overflow-x:hidden}
.zone.fl > .card:not(.hc):not(.fd), .zone.dom > .card:not(.hc):not(.fd){
  width:auto !important;
  flex:0 1 var(--cwField);
  min-width:clamp(52px, 4.4vw, 84px);
  max-width:var(--cwField);
}
.zone.hand.opp > .card.fd{
  flex:0 1 calc(var(--cwField) * 0.7);
  min-width:36px;
  max-width:calc(var(--cwField) * 0.7);
}
.center{display:flex;align-items:center;gap:clamp(6px,0.6vw,14px);padding:clamp(3px,0.5vh,10px) clamp(8px,1.1vw,22px);background:#0b0b1a;border-top:1px solid #1a1a2e;border-bottom:1px solid #1a1a2e;flex-shrink:0;height:var(--centerH);min-height:var(--centerH);flex-wrap:nowrap;overflow:hidden}
.pbadge{padding:5px 12px;border-radius:3px;font-size:var(--fzText);font-weight:bold;letter-spacing:2px;border:1px solid}
.pbadge.action{background:rgba(80,220,140,.18);color:#80e8a8;border-color:rgba(80,220,140,.5)}
.pbadge.battle{background:rgba(255,100,100,.18);color:#ff8888;border-color:rgba(255,100,100,.5)}
.log{flex:1;font-size:var(--fzText);color:#c0c0d0;line-height:1.4;height:calc(var(--fzText) * 1.5);overflow:hidden;min-width:0;flex-basis:140px;padding:0;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}
.log>div{padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:639px){.log{display:none}}
.log .l0{color:#e8e8f0;font-size:calc(var(--fzText) * 1.08);font-weight:bold}
.btn.hist{background:rgba(120,140,200,.12);color:#b8c8e0;border-color:rgba(120,140,200,.4)}
.btn.rule{background:rgba(140,200,140,.14);color:#90e0a8;border-color:rgba(140,200,140,.45);text-decoration:none;display:inline-flex;align-items:center}
.btn.rule:hover{opacity:.85;background:rgba(140,200,140,.22)}
.histlog{max-height:60vh;overflow-y:auto;padding:6px 0;font-size:var(--fzText);line-height:1.6}
.histlog>div{padding:3px 6px;border-bottom:1px dashed #2a2a4e;color:#b0b0c8}
.histlog>div:first-child{color:#f0f0f8}
.btn{padding:clamp(5px,0.6vh,10px) clamp(10px,1vw,20px);border-radius:3px;border:1px solid;cursor:pointer;font-size:var(--fzText);font-family:inherit;font-weight:bold;letter-spacing:1px;white-space:nowrap;transition:.12s}
.btn:hover{opacity:.82}
.btn.go{background:rgba(80,220,140,.18);color:#80e8a8;border-color:rgba(80,220,140,.5)}
.btn.end{background:rgba(232,184,64,.18);color:var(--k);border-color:rgba(232,184,64,.5)}
.btn.cx{background:rgba(255,100,100,.18);color:#ff9090;border-color:rgba(255,100,100,.5)}
.btn.ldr{background:rgba(140,140,240,.18);color:#a8a8f8;border-color:rgba(140,140,240,.5);font-size:var(--fzStat)}
.btn.latk{background:rgba(255,100,100,.18);color:#ff9090;border-color:rgba(255,100,100,.5)}
.hint{padding:4px 12px;background:rgba(255,120,120,.15);border:1px solid rgba(255,120,120,.45);border-radius:3px;font-size:var(--fzText);color:#ff9090;font-weight:bold;letter-spacing:1px}
.card{border-radius:5px;border:1px solid #353550;background:var(--bg3);cursor:pointer;position:relative;transition:transform .12s;flex-shrink:0;overflow:hidden;aspect-ratio:5/7}
.card:hover{transform:translateY(-3px);z-index:10;box-shadow:0 4px 14px rgba(0,0,0,.6)}
.card.K{border-color:rgba(232,184,64,.55)}.card.S{border-color:rgba(58,214,240,.55)}.card.R{border-color:rgba(255,140,128,.6)}.card.Y{border-color:rgba(158,192,216,.6)}.card.X{border-color:rgba(180,134,240,.65)}
.card.unit,.card.equip,.card.tech{width:var(--cw);height:auto}
.card.hc{width:calc(var(--cw) + 4px)}.card.hc.unit,.card.hc.equip,.card.hc.tech{width:calc(var(--cw) + 8px)}
.card.fd{width:calc(var(--cw) * .6);height:auto}
.card.atkS{border-color:var(--red)!important;box-shadow:0 0 10px rgba(220,80,80,.6)}
.card.atkT{border-color:#f8a!important;animation:tpulse .6s infinite alternate}
.card.exh{opacity:.4;filter:grayscale(.5)}
.card.hgl{box-shadow:0 0 8px rgba(80,200,120,.6)!important}
.card.dgl{box-shadow:0 0 8px rgba(255,200,50,.7)!important}
.card.fd{background:#10101c;cursor:default}.card.fd:hover{transform:none}
.card .cimg{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;position:absolute;inset:0}
.card .livepw{position:absolute;bottom:5%;right:5%;color:#fff;padding:3px 9px;border-radius:4px;font-weight:bold;font-size:clamp(11px,1.1vw,16px);text-shadow:0 1px 2px rgba(0,0,0,.7);box-shadow:0 1px 4px rgba(0,0,0,.6);z-index:2;border:1px solid;background:rgba(20,20,38,.92);border-color:rgba(255,255,255,.4)}
.card .livepw.buff{background:rgba(80,180,80,.95);border-color:#80e8a8}
.card .livepw.debuff{background:rgba(220,80,80,.95);border-color:#ff8080}
.card .ebadge2{position:absolute;top:5%;right:5%;background:rgba(40,40,80,.92);color:#f0c548;padding:2px 6px;border-radius:3px;font-size:clamp(9px,0.85vw,12px);font-weight:bold;border:1px solid #f0c548;z-index:2}
.card .cback{position:absolute;inset:0;display:none;flex-direction:column;justify-content:center;align-items:center;padding:6%;font-size:clamp(9px,0.95vw,13px);color:#aaa;text-align:center;background:linear-gradient(135deg,#1a1a2a 0%,#0a0a14 100%);gap:6px}
.card .cback .cn{font-weight:bold;color:#e8e8f0;font-size:1.2em}
.card.fd .cback{display:flex;font-size:clamp(20px,2.2vw,32px);color:#1e1e2e}
.card.fd .cimg{display:none}
.ct{padding:4px 6px 3px;border-bottom:1px solid #2a2a44}
.cn{font-size:var(--fzCard);font-weight:bold;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn.K{color:var(--k)}.cn.S{color:var(--s)}.cs{font-size:var(--fzCardSub);color:var(--neu)}
.cst{display:flex;gap:3px;padding:3px 4px;flex-wrap:wrap}
.st{padding:1px 4px;border-radius:2px;background:#0d0d20;border:1px solid #2a2a3e;font-size:var(--fzStat);font-weight:bold;white-space:nowrap}
.st.pw{color:#ffd680}.st.ins{color:#7fe89a}.st.pit{color:#a0c0ff}.st.cos{color:#e0e0f0}
.st.ht{color:#7fe89a;border-color:#7fe89a}.st.da{color:#ffe070;border-color:#ffe070}.st.rx{color:#d8a0ff;border-color:#d8a0ff}
.cfx{padding:3px 5px;font-size:var(--fzFx);color:#c0c0d0;line-height:1.45}
.ebadge{position:absolute;bottom:3px;right:3px;font-size:var(--fzXs);color:var(--k);background:#1a1200;border:1px solid var(--k);padding:1px 4px;border-radius:2px;font-weight:bold}
.ov{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:flex-start;justify-content:center;z-index:100;padding:clamp(8px,1.6vh,24px);overflow-y:auto}
.modal{background:#111120;border:1px solid #2a2a4a;border-radius:6px;padding:clamp(10px,1.4vw,22px);min-width:min(270px,100%);max-width:clamp(320px,42vw,520px);width:100%;max-height:calc(100vh - clamp(16px,3.2vh,48px));overflow-y:auto;margin:auto}
.bigcard-frame{display:flex;justify-content:center;margin-bottom:14px}
.card.big{width:clamp(240px,32vh,400px);cursor:default;flex-shrink:0;box-shadow:0 8px 28px rgba(0,0,0,.6)}
.card.big:hover{transform:none}
.card.big .livepw{font-size:clamp(14px,1.4vw,22px);padding:5px 12px}
.card.big .ebadge2{font-size:clamp(11px,0.95vw,15px);padding:3px 8px}
.card.big .cback{font-size:clamp(13px,1.05vw,17px);padding:8%}
.leader-thumb{width:clamp(40px,4.6vh,60px);aspect-ratio:5/7;border:2px solid;border-radius:4px;overflow:hidden;cursor:pointer;flex-shrink:0;position:relative;box-shadow:0 2px 6px rgba(0,0,0,.6);transition:transform .12s, box-shadow .12s;z-index:6}
.leader-thumb.K{border-color:rgba(232,184,64,.85)}
.leader-thumb.S{border-color:rgba(58,214,240,.85)}
.leader-thumb.R{border-color:rgba(255,140,128,.85)}
.leader-thumb.Y{border-color:rgba(158,192,216,.85)}
.leader-thumb.X{border-color:rgba(180,134,240,.85)}
.leader-thumb:hover{transform:translateY(-2px);box-shadow:0 5px 14px rgba(0,0,0,.7)}
.leader-thumb img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.ab.ldr{background:rgba(140,140,240,.16);color:#a8a8f8;border-color:rgba(140,140,240,.5)}
.modal h3{font-size:var(--fzBar);color:#e0e0e8;margin-bottom:10px;letter-spacing:2px;text-transform:uppercase;font-weight:bold}
.mprev{margin-bottom:12px;border:1px solid #2e2e4e;border-radius:4px;padding:10px;background:#11112a}
.mprev .mn{font-size:var(--fzMd);font-weight:bold;margin-bottom:4px}
.mprev .mfx{font-size:var(--fzText);color:#c8c8d8;line-height:1.5}
.mprev .mst{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap}
.abtns{display:flex;flex-direction:column;gap:5px}
.ab{padding:9px 12px;border-radius:4px;border:1px solid;cursor:pointer;font-family:inherit;font-size:var(--fzText);font-weight:bold;letter-spacing:1px;transition:.12s;text-align:left}
.ab:hover{opacity:.82;transform:translateX(3px)}
.ab.pi{background:rgba(128,168,248,.16);color:#a8c8ff;border-color:rgba(128,168,248,.5)}
.ab.in{background:rgba(80,220,140,.16);color:#80e8a8;border-color:rgba(80,220,140,.5)}
.ab.dp{background:rgba(232,160,60,.16);color:#f0b860;border-color:rgba(232,160,60,.5)}
.ab.sm{background:rgba(200,120,240,.16);color:#d8a0ff;border-color:rgba(200,120,240,.5)}
.ab.eq{background:rgba(232,184,64,.16);color:var(--k);border-color:rgba(232,184,64,.5)}
.ab.tc{background:rgba(255,100,100,.16);color:#ff9090;border-color:rgba(255,100,100,.5)}
.ab.dis{opacity:.35;cursor:not-allowed;transform:none!important}
.kc{float:right;opacity:.85;font-size:var(--fzStat);font-weight:bold}
.scr{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#09090f;z-index:200;gap:clamp(10px,1.6vh,22px);padding:clamp(16px,2.4vh,32px) clamp(12px,2vw,28px);overflow-y:auto}
.tit{font-size:clamp(32px,7.5vw,80px);font-weight:bold;letter-spacing:clamp(6px,1.6vw,18px);background:linear-gradient(135deg,var(--k),var(--s));-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-align:center}
.sub{font-size:clamp(13px,1.3vw,22px);color:#c8c8d8;letter-spacing:clamp(2px,.5vw,5px);text-align:center;line-height:1.6;max-width:100%}
.sbtn{padding:clamp(10px,1.4vh,18px) clamp(24px,4vw,56px);border-radius:4px;border:1px solid var(--k);background:rgba(200,152,42,.08);color:var(--k);cursor:pointer;font-size:clamp(12px,1.1vw,20px);font-family:inherit;font-weight:bold;letter-spacing:clamp(2px,0.4vw,6px);transition:.15s}
.sbtn:hover{background:rgba(200,152,42,.2)}
.vsbox{display:flex;gap:clamp(14px,2.5vw,52px);padding:clamp(12px,1.6vh,22px) clamp(18px,2.4vw,48px);border:1px solid #2e2e4e;border-radius:6px;background:#11112a;font-size:clamp(13px,1.15vw,22px);color:#c8c8d8;max-width:100%;flex-wrap:wrap;justify-content:center}
.scr .help{font-size:clamp(12px,1.05vw,18px);line-height:1.7;color:#a0a0b8}
@keyframes tpulse{from{box-shadow:0 0 4px rgba(255,80,128,.3)}to{box-shadow:0 0 14px rgba(255,80,128,.7)}}

/* ===== 戦闘結果 fx（軽微なヴィジュアル） ===== */
@keyframes fxPop {
  0%   { opacity: 0; transform: translate(-50%, -45%) scale(0.7); }
  18%  { opacity: 1; transform: translate(-50%, -50%) scale(1.08); }
  30%  { transform: translate(-50%, -50%) scale(0.98); }
  70%  { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -56%) scale(1); }
}
@keyframes fxFlashBg {
  0%   { opacity: 0; }
  20%  { opacity: 0.25; }
  100% { opacity: 0; }
}
@keyframes fxSlashKill {
  0%   { transform: translate(-50%, -50%) scaleX(0) skewX(-22deg); opacity: 0; }
  30%  { transform: translate(-50%, -50%) scaleX(1) skewX(-22deg); opacity: 1; }
  60%  { transform: translate(-50%, -50%) scaleX(1) skewX(-22deg); opacity: 1; }
  100% { transform: translate(-50%, -50%) scaleX(1.05) skewX(-22deg); opacity: 0; }
}
@keyframes fxSplitDraw {
  0%   { transform: translate(-50%, -50%) scaleY(0); opacity: 0; }
  35%  { transform: translate(-50%, -50%) scaleY(1); opacity: 1; }
  70%  { transform: translate(-50%, -50%) scaleY(1); opacity: 1; }
  100% { transform: translate(-50%, -50%) scaleY(1); opacity: 0; }
}
@keyframes fxDropLoss {
  0%   { transform: translate(-50%, -80%); opacity: 0; }
  35%  { transform: translate(-50%, -50%); opacity: 1; }
  70%  { transform: translate(-50%, -50%); opacity: 1; }
  100% { transform: translate(-50%, -42%); opacity: 0; }
}
@keyframes leaderShake {
  0%, 100% { transform: translateX(0); }
  15% { transform: translateX(-5px) translateY(-2px); }
  30% { transform: translateX(5px) translateY(2px); }
  45% { transform: translateX(-4px); }
  60% { transform: translateX(4px); }
  75% { transform: translateX(-2px); }
  90% { transform: translateX(2px); }
}
@keyframes leaderFlash {
  0%, 100% { box-shadow: 0 2px 6px rgba(0,0,0,.6); }
  30%      { box-shadow: 0 0 24px rgba(255,60,60,.9), inset 0 0 16px rgba(255,60,60,.6); }
}
@keyframes fxFloatNum {
  0%   { opacity: 0; transform: translateY(20px) scale(0.8); }
  20%  { opacity: 1; transform: translateY(0) scale(1.1); }
  100% { opacity: 0; transform: translateY(-50px) scale(1); }
}

.fx-root {
  position: fixed; inset: 0; pointer-events: none; z-index: 2500; overflow: hidden;
}
.fx-bg {
  position: absolute; inset: 0; opacity: 0;
  animation: fxFlashBg 0.9s ease-out forwards;
}
.fx-bg.kill { background: radial-gradient(circle at center, rgba(255,40,80,.55) 0%, transparent 60%); }
.fx-bg.draw { background: radial-gradient(circle at center, rgba(180,180,200,.4) 0%, transparent 70%); }
.fx-bg.loss { background: radial-gradient(circle at center, rgba(255,140,60,.45) 0%, transparent 65%); }
.fx-bg.leaderHit { background: radial-gradient(circle at center, rgba(255,30,30,.5) 0%, transparent 55%); }

.fx-label {
  position: absolute; top: 50%; left: 50%;
  font-family: 'Hiragino Mincho ProN', serif; font-weight: 900;
  font-size: clamp(46px, 6.5vw, 96px); letter-spacing: 12px;
  text-shadow: 0 0 18px currentColor, 0 4px 18px rgba(0,0,0,.7);
  white-space: nowrap;
}
.fx-label.kill { color: #ff4060; animation: fxPop 1s ease-out forwards; }
.fx-label.draw { color: #c8c8d0; animation: fxPop 1.1s ease-out forwards; }
.fx-label.loss { color: #ff9040; animation: fxDropLoss 1.1s ease-out forwards; }
.fx-label.leaderHit { color: #ff2040; font-size: clamp(36px, 5vw, 72px); animation: fxPop 0.9s ease-out forwards; }

/* 斬撃線（kill）*/
.fx-slash {
  position: absolute; top: 50%; left: 50%; width: 88vw; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #ff5070 20%, #ffffff 50%, #ff5070 80%, transparent 100%);
  box-shadow: 0 0 18px rgba(255,80,100,.8);
  transform-origin: center;
  animation: fxSlashKill 0.6s ease-out forwards;
}

/* 縦割れ（draw）*/
.fx-splitline {
  position: absolute; top: 50%; left: 50%; width: 3px; height: 60vh;
  background: linear-gradient(180deg, transparent 0%, #d8d8e0 50%, transparent 100%);
  box-shadow: 0 0 12px rgba(220,220,232,.6);
  transform-origin: center;
  animation: fxSplitDraw 0.7s ease-out forwards;
}

/* リーダーヒット時のダメージ数 */
.fx-leader-dmg {
  position: absolute;
  font-family: 'Optima', serif; font-weight: 900;
  font-size: clamp(34px, 4.4vw, 64px);
  color: #ff3040; text-shadow: 0 0 14px rgba(255,40,60,.95), 0 2px 6px #000;
  animation: fxFloatNum 1s ease-out forwards;
  pointer-events: none;
}

.leader-thumb.hit { animation: leaderShake 0.45s ease, leaderFlash 0.6s ease; }
