
*{box-sizing:border-box}
:root{--bg:#ececec;--panel:#fff;--text:#202020;--muted:#666;--line:#858585;--light:#f0d9b5;--dark:#b58863;--accent:#ffd400;--legal:#62b26f;--attack:#d9534f;--info:#dcecff}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
body.matchSetupOpen{overflow:hidden}
#matchSetupModal{
  position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.46);
  display:none;align-items:center;justify-content:center;padding:18px
}
#matchSetupModal.open{display:flex}
#matchSetupCard{
  width:min(520px,100%);background:#fff;border-radius:14px;padding:18px;
  box-shadow:0 12px 40px #0006;border:1px solid #aaa
}
#matchSetupCard h2{font-size:19px;margin:0 0 12px}
.matchSetupField{display:grid;gap:6px;margin:10px 0}
.matchSetupField label{font-weight:800;font-size:13px}
#playerNameInput{
  width:100%;padding:10px 11px;border:1px solid #aaa;border-radius:8px;
  font-size:16px
}
.consentBox{
  display:flex;gap:9px;align-items:flex-start;padding:10px;border:1px solid #c8c8c8;
  border-radius:9px;background:#fafafa;font-size:13px;line-height:1.45
}
.consentBox input{margin-top:3px;transform:scale(1.15)}
#matchSetupError{min-height:18px;color:#b3261e;font-size:12px;font-weight:700;margin-top:5px}
.serverStatus{
  margin-top:7px;padding:7px 8px;border-radius:7px;background:#f4f4f4;
  border:1px solid #ddd;font-size:11px;line-height:1.45
}
#app{display:grid;grid-template-columns:minmax(640px,1fr);gap:14px;padding:14px;align-items:start;max-width:1500px;margin:0 auto}
.panel{background:var(--panel);border-radius:12px;padding:13px;box-shadow:0 2px 9px #0002;min-width:0}
h1{font-size:21px;margin:0 0 7px}h2{font-size:17px;margin:0 0 9px}h3{font-size:14px;margin:12px 0 6px}
#topbar{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}
#turnInfo{font-weight:800}
#actionsInfo{font-size:13px;color:var(--muted)}
.boardArea{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
	.boardShell{overflow:auto;flex:0 0 auto;padding-bottom:3px}
	#stageSlot{flex:1 1 260px;min-width:245px;max-width:380px}
	#sidebarSlot{min-width:0}
	.swapBlock{min-width:0}
	#stageSlot .swapBlock{border:1px solid #b9c0c6;border-radius:10px;padding:10px;background:#fafafa}
	#stageSlot .swapBlock>h2,#stageSlot .swapBlock>h3{margin-top:0}
	#stageSlot #unitPanel{border:0;padding:0;background:transparent}
	#stageSlot #replayPanel{margin-top:0}
	.previewTitle{font-weight:900;margin-bottom:5px}
	.previewHint{font-size:11px;color:#666;margin-bottom:5px}
#coordsTop{display:grid;width:628px;min-width:628px;font-size:11px;color:var(--muted);text-align:center}
#boardLine{display:grid;grid-template-columns:28px 600px;width:628px}
#coordsLeft{display:grid;font-size:11px;color:var(--muted)}
#coordsLeft span{display:flex;align-items:center;justify-content:center}
#board{display:grid;border:2px solid #333;width:600px;min-width:600px;overflow:hidden}
.cell{position:relative;min-width:0;min-height:0;overflow:hidden;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--light)}
.cell.dark{background:var(--dark)}
.cell.legal{box-shadow:inset 0 0 0 4px rgba(76,175,80,.9)}
.cell.attackable{box-shadow:inset 0 0 0 4px rgba(217,83,79,.95)}
.cell.selectedCell{box-shadow:inset 0 0 0 4px var(--accent)}
.unit{position:absolute;inset:3%;border:1.5px solid #222;border-radius:12%;display:grid;grid-template-rows:11px 1fr 10px;align-items:center;justify-items:center;line-height:1;font-weight:800;overflow:hidden;box-shadow:0 1px 2px #0005;cursor:pointer;user-select:none;padding:1px 2px}
.unit.selected{outline:3px solid var(--accent);outline-offset:-1px}
.unit.acted{opacity:.58}
.unit.actionPending{animation:actionPendingPulse .72s ease-in-out infinite alternate}
@keyframes actionPendingPulse{from{box-shadow:0 1px 2px #0005,0 0 0 0 rgba(255,212,0,.15)}to{box-shadow:0 1px 2px #0005,0 0 0 5px rgba(255,212,0,.42)}}
.unit.motionActive{z-index:8;will-change:transform}
.u-dir{transform-origin:center center;will-change:transform}
#actionCancelRow{display:none;margin-top:8px}
#cancelActionBtn{border-color:#c66;background:#fff7f7}
#cancelActionBtn:hover{background:#ffeaea}
@media(prefers-reduced-motion:reduce){.unit.actionPending{animation:none}}
.u-main{font-size:9px;white-space:nowrap;max-width:calc(100% - 2px);overflow:hidden;text-overflow:clip;letter-spacing:-.25px}
.u-dir{font-size:16px;line-height:.9;font-weight:900}
.u-bottom{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px;align-items:center;min-width:0}
.u-form{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:clip;text-align:center;min-width:0;letter-spacing:-.35px}
.hp{font-size:8px;line-height:1;background:#fff;border:1px solid #222;border-radius:5px;padding:1px 2px;white-space:nowrap;font-weight:900}
.skipBadge{position:absolute;right:1px;top:1px;font-size:9px;line-height:1;background:#fff7c7;border:1px solid #8d7a00;border-radius:4px;padding:1px;z-index:2}
#message{margin:9px 0;padding:9px;border-radius:8px;background:#f5f5f5;min-height:42px;font-size:13px;line-height:1.45}
.controls{display:flex;gap:7px;flex-wrap:wrap}
a.linkButton{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;padding:8px 11px;border:1px solid #999;border-radius:8px;background:#f8f8f8;color:inherit;text-decoration:none;font-weight:800;font-size:13px;line-height:1.2}
a.linkButton:hover{background:#eee}
.combatContinueWrap{display:flex;justify-content:center;margin-top:10px}
.combatContinueHint{margin-top:7px;text-align:center;font-size:12px;color:#666}
button,select,input[type=file]{font:inherit}
button{border:1px solid #aaa;background:#fff;border-radius:8px;padding:8px 11px;cursor:pointer;min-height:40px}
button:hover{background:#f3f3f3}
button:disabled{opacity:.45;cursor:not-allowed}
.primary{font-weight:800}
.danger{border-color:#c66}
.small{font-size:12px;color:var(--muted);line-height:1.45}
#unitPanel{border:1px solid #ccc;border-radius:9px;padding:9px;background:#fafafa}
.field{display:grid;grid-template-columns:90px 1fr;gap:7px;align-items:center;margin:6px 0}
#decision{display:none;margin-top:9px;padding:10px;background:#fff6cc;border:1px solid #e6cc63;border-radius:9px}
#combatBox{display:none;margin-top:9px;padding:10px;background:#eee;border-radius:9px;font-size:13px;line-height:1.5}

.combatBreakdown{width:100%;border-collapse:collapse;margin-top:8px;background:#fff;font-size:13px;table-layout:fixed}
.combatBreakdown th,.combatBreakdown td{border-bottom:1px solid #d5d5d5;padding:7px 8px;text-align:right;vertical-align:middle}
.combatBreakdown th:first-child,.combatBreakdown td:first-child{text-align:left;width:42%}
.combatBreakdown thead th{background:#e5e8eb;font-weight:900}
.combatBreakdown .totalRow th,.combatBreakdown .totalRow td{border-top:2px solid #555;border-bottom:0;font-size:17px;font-weight:950;background:#f5f5f5}
.combatBreakdown .pendingDie{color:#777;font-style:italic}
.combatParticipants{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.combatParticipant{padding:7px 9px;border:1px solid #bbb;border-radius:8px;background:#fff;font-weight:800;text-align:center}
.combatResultText{margin-top:9px;padding:8px;border-radius:8px;background:#fff;font-weight:800;line-height:1.5}
@media(max-width:580px){
  .combatBreakdown{font-size:12px}
  .combatBreakdown th,.combatBreakdown td{padding:6px 5px}
  .combatParticipants{grid-template-columns:1fr}
}

#log{height:285px;overflow:auto;border:1px solid #ccc;border-radius:8px;background:#fafafa}
.logEntry{padding:7px 8px;border-bottom:1px solid #ddd;font-size:12px;line-height:1.4}
.logEntry b{font-size:12px}
.fileRow{display:grid;grid-template-columns:100px 1fr;gap:7px;align-items:center;margin:7px 0}
.fileRow input{min-width:0;width:100%}
#fileStatus{font-size:12px;color:var(--muted);min-height:18px}
.legend{font-size:11px;color:var(--muted);margin-top:7px}



.relayMarker{position:absolute;left:2px;top:2px;z-index:1;max-width:calc(100% - 4px);text-align:left;font-size:7px;font-weight:900;line-height:1.05;border:1px solid #333;border-radius:4px;padding:0 2px;background:rgba(255,255,255,.92);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell.relayCell{outline:3px solid #666;outline-offset:-3px}
.cell.relayOwned{outline:4px solid #222;outline-offset:-4px}
.cell.relayChallenged{box-shadow:inset 0 0 0 4px #999}

.diceArena{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:stretch;margin-top:8px}
.combatCard{border:1px solid #bbb;border-radius:10px;background:#fff;padding:10px;min-width:0}
.combatCard.aiSide{background:#f4f4f4}
.combatCard.playerSide{background:#fff8d8;border-color:#d5b84b}
.combatWho{font-weight:900;margin-bottom:6px}
.subtotal{font-size:12px;line-height:1.55;color:#444}
.finalTotal{font-size:22px;font-weight:950;margin-top:7px}
.vsMark{display:flex;align-items:center;justify-content:center;font-weight:950;font-size:18px}
.fateWrap{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:9px}
.fateBtn{font-weight:950;font-size:16px;padding:11px 14px;border:2px solid #8b6b00;background:#fff1a6}
.fateBtn:hover{background:#ffe66f}
.dieFace{width:64px;height:64px;border:3px solid #222;border-radius:13px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:950;box-shadow:inset 0 0 0 2px #ddd,0 3px 7px #0002}
.dieFace.rolling{animation:diceShake .12s linear infinite}
@keyframes diceShake{0%{transform:rotate(-7deg) translateY(0)}50%{transform:rotate(7deg) translateY(-2px)}100%{transform:rotate(-7deg) translateY(0)}}
.rollCaption{font-size:12px;color:#666;text-align:center}
@media(prefers-reduced-motion:reduce){.dieFace.rolling{animation:none}}
@media(max-width:580px){.diceArena{grid-template-columns:1fr}.vsMark{min-height:20px}}


#replayPanel{border:1px solid #9aa7b2;border-radius:10px;padding:10px;background:#f6f9fb;margin-top:10px}
#replayControls{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
#replayInfo{margin-top:8px;padding:8px;background:#fff;border:1px solid #ccd5dc;border-radius:8px;font-size:12px;line-height:1.5;min-height:180px;max-height:420px;overflow:auto}
body.replayMode #actionButtons,
body.replayMode #configPanel,
body.replayMode #postMovePanel,
body.replayMode #decision{display:none!important}
body.replayMode #undoBtn{display:none}

@media(max-width:1050px){#app{grid-template-columns:1fr}.boardArea{flex-direction:column}.boardShell{max-width:100%}#stageSlot{max-width:none;width:100%}}
@media(max-width:520px){#app{padding:7px;gap:8px}.panel{padding:9px}.fileRow{grid-template-columns:1fr}.field{grid-template-columns:1fr}}


/* ===== v15 branding / admin / transition ===== */
#matchSetupModal.cyberModal{background:radial-gradient(circle at 50% 18%,rgba(32,215,229,.13),transparent 34%),repeating-linear-gradient(0deg,#020607 0 3px,#03090a 4px);padding:18px}
#matchSetupCard.cyberCard{width:min(760px,100%);background:radial-gradient(circle at 50% 0,rgba(32,215,229,.08),transparent 45%),#020708;border-radius:0;border:1px solid #0b7881;padding:28px;box-shadow:0 0 65px rgba(32,215,229,.18)}
#playerNameInput.cyberInput{width:100%;padding:12px;border:1px solid #176b73;border-radius:0;background:#030b0d;color:#fff;font:17px Consolas,monospace}
@keyframes blink{50%{opacity:0}}
#devSidebar{display:none}
body.adminOpen{overflow:hidden}
body.adminOpen #devSidebar{
  display:block;position:fixed;z-index:8700;inset:18px 18px 18px auto;width:min(520px,calc(100vw - 36px));
  overflow:auto;border:1px solid #87959a;box-shadow:0 18px 70px #0008
}
.adminPanelHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid #ddd}
.adminPanelHeader b{font-family:Consolas,monospace;letter-spacing:.05em}
.brandMark{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.brandBadge{background:#111;color:#fff;border:1px solid #333;border-radius:8px;padding:8px 10px;font:800 11px Consolas,monospace;letter-spacing:.06em}
.brandBadge .cy{color:#20d7e5}
.brandTitle{font:900 22px Consolas,monospace;letter-spacing:.035em;margin:0}
.brandTitle .cy{color:#149ea8}.brandTitle small{font-size:11px;color:#777;font-weight:700}
#adminOpenBtn{font-family:Consolas,monospace;font-size:11px}
.publicUtility{font-size:12px}

.cyberModal{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.72)}
.cyberModal.open{display:flex}
.cyberCard{
  width:min(760px,100%);max-height:calc(100vh - 36px);overflow:auto;position:relative;padding:28px;
  color:#eaffff;background:radial-gradient(circle at 50% 0,rgba(32,215,229,.08),transparent 45%),#020708;
  border:1px solid #0b7881;box-shadow:0 0 65px rgba(32,215,229,.18);font-family:Consolas,"Noto Sans Mono CJK JP",monospace
}
.cyberCard:before,.cyberCard:after{content:"";position:absolute;width:75px;height:18px;pointer-events:none}
.cyberCard:before{left:-1px;top:-1px;border-left:3px solid #20d7e5;border-top:3px solid #20d7e5}
.cyberCard:after{right:-1px;bottom:-1px;border-right:3px solid #20d7e5;border-bottom:3px solid #20d7e5}
.cyberEyebrow{color:#66868a;font-size:11px;letter-spacing:.22em;margin-bottom:10px}
.cyberLogo{font-size:clamp(28px,6vw,52px);font-weight:950;letter-spacing:.035em;line-height:1}.cyberLogo .cy{color:#20d7e5}
.cyberStatus{margin:20px 0;color:#86a5a9;font-size:12px;line-height:1.8}.cyberStatus b{color:#20d7e5}
.cyberField{display:grid;gap:6px;margin:11px 0}.cyberField label{font-size:11px;letter-spacing:.12em;color:#77979b}
.cyberInput{width:100%;padding:12px;border:1px solid #176b73;background:#030b0d;color:#fff;border-radius:0;font:17px Consolas,monospace;outline:none}.cyberInput:focus{border-color:#20d7e5}
.cyberButton{border:1px solid #20d7e5!important;border-radius:0!important;background:#061416!important;color:#20d7e5!important;font:800 13px Consolas,monospace!important;letter-spacing:.08em}
.cyberButton:hover{background:#092327!important}.cyberButton:before{content:"> "}
.cyberConsent{margin-top:15px;border:1px solid #24545a;background:#041114;padding:13px;color:#c4d9dc;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:13px;line-height:1.6}
.cyberConsent label{display:flex;gap:9px;align-items:flex-start;color:#fff;font-weight:800}.cyberConsent input{margin-top:4px;transform:scale(1.12)}
.cyberConsentText{margin:9px 0 0 27px;color:#9eb6ba}.cyberConsentText b{color:#eaffff}.cyberConsentNote{margin-top:7px;font-size:12px;color:#709297}
#matchSetupError,#adminLoginError,#reportError{min-height:18px;color:#ff718f;font-size:12px;font-weight:800;margin-top:6px}

.adminTabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.adminTabs button{min-height:34px;padding:6px 9px;font-size:12px}
.serverAiBox{margin-top:12px;padding:10px;border:1px solid #aab4b8;border-radius:9px;background:#f7fafb}.serverAiBox h4{margin:0 0 8px;font-size:13px}
#serverAiStatus{font-size:11px;line-height:1.5;color:#555;margin-top:7px;white-space:pre-wrap}
.reportTypeBadge{font:800 11px Consolas,monospace;color:#20d7e5;letter-spacing:.1em}
#reportText{width:100%;min-height:150px;resize:vertical;padding:10px;border:1px solid #176b73;background:#030b0d;color:#fff;font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;outline:none}
#reportText:focus{border-color:#20d7e5}

/* Extreme transition layers. Intentionally excessive. */
.v15fx{position:fixed;inset:0;z-index:9800;pointer-events:none;opacity:0}
#fxScan{background:repeating-linear-gradient(0deg,rgba(255,255,255,.13) 0 1px,transparent 1px 4px)}
#fxNoise{mix-blend-mode:difference;background:repeating-linear-gradient(0deg,rgba(255,255,255,.3) 0 1px,rgba(0,0,0,.22) 1px 3px),repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 1px,transparent 1px 4px)}
#fxRgb{mix-blend-mode:screen;background:linear-gradient(90deg,transparent 0 8%,rgba(255,0,65,.5) 8% 11%,transparent 11% 34%,rgba(0,235,255,.52) 34% 38%,transparent 38% 72%,rgba(120,255,80,.25) 72% 75%,transparent 75%),linear-gradient(0deg,transparent 0 63%,rgba(255,0,80,.24) 63% 67%,transparent 67%)}
#fxBlocks{background:linear-gradient(90deg,transparent 0 3%,#fff9 3% 18%,transparent 18% 41%,rgba(32,215,229,.85) 41% 67%,transparent 67%),linear-gradient(90deg,transparent 0 25%,rgba(255,53,109,.7) 25% 51%,transparent 51% 76%,rgba(255,255,255,.6) 76% 97%,transparent 97%);clip-path:polygon(0 4%,100% 4%,100% 13%,0 13%,0 22%,100% 22%,100% 31%,0 31%,0 43%,100% 43%,100% 55%,0 55%,0 66%,100% 66%,100% 76%,0 76%,0 86%,100% 86%,100% 98%,0 98%)}
#fxTear{background:linear-gradient(180deg,transparent 0 13%,#fff 13% 14%,transparent 14% 39%,rgba(32,215,229,.9) 39% 41%,transparent 41% 69%,rgba(255,53,109,.9) 69% 71%,transparent 71%)}
#fxBlack{background:#000}#fxWhite{background:#eaffff}
#fxTerminal{background:#020607;color:#73eff7;padding:7vh 6vw;white-space:pre-wrap;overflow:hidden;font:800 clamp(11px,2vw,19px)/1.25 Consolas,monospace;text-shadow:0 0 9px rgba(32,215,229,.35)}
#fxTerminal .err{color:#ff356d}#fxTerminal .ok{color:#95ff7f}
body.fxrun #fxNoise{animation:v15Noise 1.9s steps(2,end) forwards}body.fxrun #fxRgb{animation:v15Rgb 1.9s steps(2,end) forwards}body.fxrun #fxBlocks{animation:v15Blocks 1.9s steps(2,end) forwards}body.fxrun #fxScan{animation:v15Scan 1.9s linear forwards}body.fxrun #fxBlack{animation:v15Black 1.9s steps(1,end) forwards}body.fxrun #fxWhite{animation:v15White 1.9s steps(1,end) forwards}body.fxrun #fxTerminal{animation:v15Term 1.9s steps(1,end) forwards}body.fxrun #fxTear{animation:v15Tear 1.9s steps(2,end) forwards}body.fxrun #app{animation:v15Screen 1.9s steps(2,end) forwards}
@keyframes v15Noise{0%{opacity:0}4%{opacity:1}10%{opacity:.25;transform:translateX(28px)}15%{opacity:1;transform:translateX(-36px)}23%{opacity:.55;transform:translate(16px,9px)}31%{opacity:1;transform:translate(-23px,-8px)}39%{opacity:.2}46%{opacity:1;transform:translateX(22px)}54%{opacity:.9;transform:translateX(-27px)}62%{opacity:1;transform:translateY(12px)}71%{opacity:.35}79%{opacity:1}89%{opacity:.75;transform:translate(-13px,6px)}100%{opacity:0;transform:none}}
@keyframes v15Rgb{0%,3%{opacity:0}6%{opacity:1;transform:translateX(-22px) scaleX(1.06)}13%{opacity:.45;transform:translateX(23px) scaleX(.96)}21%{opacity:1;transform:translateX(-31px)}34%{opacity:.12}45%{opacity:1;transform:translateX(26px)}60%{opacity:.5;transform:translateX(-18px)}72%{opacity:1}86%{opacity:.3}100%{opacity:0}}
@keyframes v15Blocks{0%,6%{opacity:0}8%{opacity:1;transform:translateX(48px)}14%{opacity:.1}21%{opacity:1;transform:translateX(-58px)}30%{opacity:.2}41%{opacity:1;transform:translateX(35px)}55%{opacity:.15}65%{opacity:1;transform:translateX(-47px)}81%{opacity:.6}100%{opacity:0}}
@keyframes v15Scan{0%{opacity:0;background-position:0 0}5%{opacity:.95}94%{opacity:.65;background-position:0 390px}100%{opacity:0;background-position:0 470px}}
@keyframes v15Black{0%,9%{opacity:0}10%,12%{opacity:1}13%,33%{opacity:0}34%,36%{opacity:1}37%,61%{opacity:0}62%,64%{opacity:1}65%,83%{opacity:0}84%,85%{opacity:1}86%,100%{opacity:0}}
@keyframes v15White{0%,16%{opacity:0}17%,19%{opacity:.95}20%,48%{opacity:0}49%,51%{opacity:.55}52%,76%{opacity:0}77%,78%{opacity:.75}79%,100%{opacity:0}}
@keyframes v15Term{0%,22%{opacity:0}23%,30%{opacity:1}31%,55%{opacity:0}56%,64%{opacity:1}65%,100%{opacity:0}}
@keyframes v15Tear{0%,7%{opacity:0}8%{opacity:1;transform:translateY(-18px)}15%{opacity:.2}27%{opacity:1;transform:translateY(24px)}36%{opacity:.1}49%{opacity:1;transform:translateY(-13px)}67%{opacity:.3}78%{opacity:1;transform:translateY(18px)}100%{opacity:0}}
@keyframes v15Screen{0%{transform:none;filter:none}6%{transform:translateX(16px) scaleX(1.04);filter:contrast(1.8) saturate(1.6)}11%{transform:translateX(-22px) scaleY(.94);filter:contrast(2.3)}17%{transform:skewX(3deg) scaleX(1.1);filter:hue-rotate(80deg)}24%{transform:none;filter:none}37%{transform:translateY(12px) scaleY(1.07);filter:contrast(2.4)}45%{transform:translateX(-18px) skewX(-3deg)}53%{transform:none}66%{transform:scaleX(1.13) scaleY(.91);filter:hue-rotate(-65deg) contrast(2)}74%{transform:translateX(20px)}82%{transform:none;filter:none}91%{transform:scale(1.025);filter:contrast(2.2)}100%{transform:none;filter:none}}

#victoryModal .cyberCard{width:min(800px,100%)}
.victoryLine{color:#89a6aa;font-size:clamp(13px,2vw,17px);margin:8px 0}.victoryLine b{color:#fff}.victoryLine .winner{color:#20d7e5;font-weight:950}
#victoryPax{font-size:clamp(23px,4vw,39px);font-weight:950;color:#20d7e5;margin:24px 0 8px}
#officialLineWrap{margin-top:10px;font-size:13px;color:#20d7e5}#officialLineWrap a{color:#20d7e5}
@media(max-width:580px){body.adminOpen #devSidebar{inset:7px;width:calc(100vw - 14px)}.cyberCard{padding:21px 17px}.brandTitle{font-size:18px}.brandBadge{font-size:9px}}

.cell.abilityTarget{box-shadow:inset 0 0 0 4px rgba(0,188,212,.95)}
