/* TsecretS Chess v3.49.96 */
/* TsecretS Chess UI — v3.49.96 */
.bca-app{--ink:#19120e;--muted:#8e7967;--gold:#d7ad5a;--gold2:#f0d58c;--cream:#f3e5c9;--dark:#261812;--panel:rgba(27,18,14,.86);--light:#e7c994;--darkSquare:#754a31;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f7eddc;box-sizing:border-box;max-width:1500px;margin:0 auto;padding:24px;background:radial-gradient(circle at 50% 20%,#4b3021 0,#21140e 48%,#120c08 100%);border-radius:26px;box-shadow:0 30px 80px rgba(0,0,0,.32);overflow:hidden}.bca-app *{box-sizing:border-box}.bca-shell{position:relative}.bca-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:4px 4px 22px}.bca-brand{display:flex;align-items:center;gap:12px;min-width:190px}.bca-brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(215,173,90,.5);border-radius:12px;background:linear-gradient(145deg,#3a2419,#17100c);font-size:22px;color:var(--gold2);box-shadow:inset 0 0 20px rgba(215,173,90,.08)}.bca-brand strong{display:block;font-size:18px;letter-spacing:.04em}.bca-brand small{display:block;font-size:9px;letter-spacing:.38em;color:var(--gold);margin-top:2px}.bca-status{font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--gold2);font-weight:800}.bca-status-wrap{display:flex;align-items:center;justify-content:center;gap:10px;min-width:210px}.myrqel-connection{display:flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:rgba(10,7,5,.34);font-size:9px;letter-spacing:.08em;color:#a99a8b;white-space:nowrap}.myrqel-connection-dot{width:7px;height:7px;border-radius:50%;background:#75d39a;box-shadow:0 0 9px rgba(117,211,154,.65)}.myrqel-connection b{font-size:9px;color:#d8c9b7}.myrqel-connection small{font-size:8px;color:#8d7e70;margin-left:2px}.myrqel-connection[data-state="reconnecting"]{border-color:rgba(239,197,91,.28);color:#e8c76f}.myrqel-connection[data-state="reconnecting"] .myrqel-connection-dot{background:#e7c76a;box-shadow:0 0 9px rgba(231,199,106,.6);animation:myrqelPulse 1s ease-in-out infinite}.myrqel-connection[data-state="offline"]{border-color:rgba(226,95,78,.3);color:#e89a8f}.myrqel-connection[data-state="offline"] .myrqel-connection-dot{background:#df6656;box-shadow:0 0 9px rgba(223,102,86,.55)}@keyframes myrqelPulse{50%{opacity:.35;transform:scale(.72)}}.bca-actions{display:flex;gap:8px;justify-content:flex-end;min-width:310px}.bca-btn{border:1px solid rgba(239,213,140,.24);background:#21140f;color:#f5e7cf;border-radius:9px;padding:9px 12px;font-size:11px;font-weight:800;cursor:pointer;transition:.2s transform,.2s border-color,.2s background}.bca-btn:hover{transform:translateY(-1px);border-color:rgba(239,213,140,.65);background:#332016}.bca-btn:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}.bca-layout{display:grid;grid-template-columns:240px minmax(480px,1fr) 240px;gap:24px;align-items:center}.bca-panel{display:flex;flex-direction:column;gap:18px}.bca-player-card,.bca-battle-card,.bca-log-card,.bca-captured{background:linear-gradient(145deg,rgba(57,37,26,.88),rgba(23,15,11,.9));border:1px solid rgba(239,213,140,.12);border-radius:15px;padding:14px;box-shadow:0 14px 30px rgba(0,0,0,.2)}.bca-player-card{display:flex;align-items:center;gap:10px}.bca-player-card .bca-avatar{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.06);font-size:22px}.bca-player-card div:nth-child(2){flex:1}.bca-player-card span,.bca-player-card strong{display:block}.bca-player-card span{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}.bca-player-card strong{font-size:13px;margin-top:3px}.bca-player-card em{font-style:normal;color:var(--gold2);font-weight:900}.bca-card-kicker{font-size:9px;letter-spacing:.22em;color:var(--gold);font-weight:900}.bca-battle-card h2{font-size:17px;line-height:1.15;margin:8px 0}.bca-battle-card p{font-size:11px;line-height:1.55;color:#c4b09b;margin:0}.bca-mini-stats{display:flex;gap:12px;margin-top:14px;font-size:10px;color:#a9937e}.bca-mini-stats b{color:#f1dbad}.bca-captured-row{min-height:32px;display:flex;flex-wrap:wrap;gap:3px;margin-top:8px}.bca-mini-piece{font-size:20px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}.bca-log{height:215px;overflow:auto;margin-top:8px;padding-right:3px}.bca-log-item{font-size:10px;line-height:1.45;color:#cdbba5;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06)}.bca-log-item b{color:#f0d58c}.bca-board-stage{position:relative;min-width:0;display:grid;place-items:center;padding:18px}.bca-board-glow{position:absolute;inset:8% 6%;background:radial-gradient(circle,rgba(214,173,90,.22),transparent 62%);filter:blur(22px);pointer-events:none}.bca-board-wrap{position:relative;width:min(100%,720px);padding:18px 18px 38px;background:linear-gradient(145deg,#573b28,#21140f);border:1px solid rgba(245,219,157,.25);box-shadow:0 30px 60px rgba(0,0,0,.45),inset 0 0 0 2px rgba(0,0,0,.18);border-radius:9px;transform:perspective(1200px) rotateX(1deg)}.bca-board-wrap:before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,220,151,.13);border-radius:5px;pointer-events:none}.bca-board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1/1;overflow:hidden;border:4px solid #2a1a12;box-shadow:0 12px 25px rgba(0,0,0,.45)}.bca-square{position:relative;display:grid;place-items:center;cursor:pointer;user-select:none;transition:filter .15s}.bca-square.light{background:linear-gradient(135deg,#f0d6a1,#d7b47b)}.bca-square.dark{background:linear-gradient(135deg,#86573a,#5e3926)}.bca-square:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 45%,rgba(0,0,0,.08));pointer-events:none}.bca-square:hover{filter:brightness(1.08)}.bca-square.selected{box-shadow:inset 0 0 0 4px rgba(247,219,128,.9)}.bca-square.legal:before{content:"";width:18%;aspect-ratio:1;border-radius:50%;background:rgba(43,22,12,.36);position:absolute;z-index:1}.bca-square.capture-target{box-shadow:inset 0 0 0 4px rgba(238,174,77,.78)}.bca-square.last-move{background-image:linear-gradient(rgba(232,193,91,.2),rgba(232,193,91,.2))}.bca-piece{position:relative;z-index:2;width:82%;height:82%;display:grid;place-items:center;filter:drop-shadow(0 8px 4px rgba(0,0,0,.35));transition:transform .18s ease;transform-origin:center bottom}.bca-piece svg{width:100%;height:100%;overflow:visible}.bca-piece.white svg{filter:drop-shadow(0 0 1px rgba(255,247,222,.7))}.bca-piece.black svg{filter:drop-shadow(0 0 1px rgba(0,0,0,.9))}.bca-piece.moving{animation:bcaMovePiece .62s cubic-bezier(.2,.8,.2,1)}.bca-piece.attacking{animation:bcaAttack .56s ease}.bca-piece.hit{animation:bcaHit .52s ease}.bca-piece.victory{animation:bcaVictory .72s ease}.bca-piece.defeated{animation:bcaDefeat .55s ease forwards}.bca-rank-labels,.bca-file-labels{position:absolute;color:#e7c67f;font-family:Georgia,serif;font-weight:700;font-size:15px;text-shadow:0 1px 2px #160d08;pointer-events:none}.bca-rank-labels{left:0;top:18px;bottom:38px;width:17px;display:flex;flex-direction:column;justify-content:space-around;align-items:center}.bca-file-labels{left:18px;right:18px;bottom:7px;height:24px;display:grid;grid-template-columns:repeat(8,1fr);align-items:center;text-align:center}.bca-turn-ribbon{margin-top:12px;padding:8px 18px;border:1px solid rgba(240,213,140,.22);border-radius:999px;background:rgba(18,11,8,.72);font-size:9px;font-weight:900;letter-spacing:.3em;color:#f0d58c}.bca-footer{display:flex;justify-content:space-between;gap:20px;color:#786657;font-size:9px;letter-spacing:.08em;padding:18px 4px 2px}.bca-footer b{color:#a88c70}.bca-modal{position:fixed;z-index:99999;inset:0;display:grid;place-items:center;padding:20px}.bca-modal[hidden]{display:none}.bca-modal-backdrop{position:absolute;inset:0;background:rgba(7,4,2,.82);backdrop-filter:blur(8px)}.bca-battle-modal{position:relative;width:min(620px,96vw);background:linear-gradient(145deg,#382217,#130b07);border:1px solid rgba(240,213,140,.3);border-radius:18px;box-shadow:0 40px 100px rgba(0,0,0,.6);padding:22px;overflow:hidden}.bca-battle-modal:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0,rgba(219,175,83,.16),transparent 48%);pointer-events:none}.bca-battle-head{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px}.bca-battle-head h2{font-size:24px;margin:5px 0 0;color:#f6e5c4}.bca-versus{display:flex;align-items:center;gap:9px;font-family:Georgia,serif}.bca-versus span{font-size:38px}.bca-versus b{font-size:10px;color:var(--gold);letter-spacing:.12em}.bca-minigame{position:relative;min-height:260px;margin:18px 0;border:1px solid rgba(240,213,140,.12);border-radius:13px;background:rgba(8,5,3,.45);display:grid;place-items:center;overflow:hidden}.bca-battle-foot{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#a9947f}.bca-mini-wrap{width:min(470px,88%);text-align:center}.bca-mini-wrap h3{font-size:16px;margin:0 0 8px}.bca-mini-wrap p{font-size:11px;color:#ad9b89;margin:0 0 15px}.bca-timing-track{position:relative;height:30px;border-radius:999px;background:#241811;border:1px solid #5b3b27;overflow:hidden}.bca-timing-target{position:absolute;left:39%;width:22%;top:0;bottom:0;background:rgba(226,188,93,.45);border-left:2px solid #f2d98e;border-right:2px solid #f2d98e}.bca-timing-cursor{position:absolute;top:2px;bottom:2px;width:4px;background:#fff3c9;border-radius:5px;box-shadow:0 0 12px #fff0ba;left:0}.bca-mini-btn{margin-top:16px;border:1px solid rgba(240,213,140,.45);background:#3a2417;color:#f8e8c4;padding:10px 22px;border-radius:9px;font-weight:900;cursor:pointer}.bca-mini-btn:hover{background:#53341f}.bca-memory-grid{display:grid;grid-template-columns:repeat(4,48px);gap:8px;justify-content:center;margin:12px auto}.bca-memory-tile{width:48px;height:48px;border-radius:9px;border:1px solid #62442e;background:#2a1a12;color:transparent;font-size:22px;cursor:pointer}.bca-memory-tile.show{background:#6d492e;color:#ffe8ae}.bca-memory-tile.done{background:#4c3526;color:#f2d58f}.bca-reflex-target{width:130px;height:130px;border-radius:50%;border:3px solid rgba(245,219,155,.5);background:radial-gradient(circle,#f0c965 0 15%,#9a6335 16% 32%,#4b2b1c 33% 100%);cursor:pointer;box-shadow:0 0 45px rgba(236,190,88,.18)}.bca-reflex-target:active{transform:scale(.95)}.bca-toast{position:fixed;z-index:100000;left:50%;bottom:28px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#23150e;border:1px solid rgba(240,213,140,.28);padding:10px 16px;border-radius:999px;color:#f6e6c8;font-size:11px;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:.25s}.bca-toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes bcaMovePiece{0%{transform:scale(.92) translateY(-4px)}45%{transform:scale(1.08) translateY(-8px)}100%{transform:scale(1) translateY(0)}}@keyframes bcaAttack{0%{transform:scale(1)}35%{transform:translateY(-12px) scale(1.16)}100%{transform:scale(1)}}@keyframes bcaHit{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px) rotate(-3deg)}50%{transform:translateX(7px) rotate(3deg)}75%{transform:translateX(-4px)}}@keyframes bcaVictory{0%{transform:scale(1)}40%{transform:scale(1.2) translateY(-12px)}70%{transform:scale(.98) translateY(0)}100%{transform:scale(1)}}@keyframes bcaDefeat{0%{transform:rotate(0) scale(1);opacity:1}55%{transform:rotate(12deg) scale(.8);opacity:.7}100%{transform:rotate(22deg) scale(.35) translateY(18px);opacity:0}}
/* MYRQEL CHARACTER MOTION SYSTEM — v0.3 */
.bca-piece{isolation:isolate;transform-origin:50% 86%;}
.bca-piece svg{overflow:visible;transform-origin:50% 86%;}
.bca-piece .mx-body{transform-box:fill-box;transform-origin:50% 86%;}
.bca-piece .mx-shadow{transform-box:fill-box;transform-origin:50% 50%;}
.bca-piece .mx-energy{animation:mxEnergy 2.8s ease-in-out infinite;}
.bca-piece.white .mx-body{color:#ead9b5}.bca-piece.black .mx-body{color:#2a1a15}
.bca-piece.white{filter:drop-shadow(0 9px 5px rgba(31,17,8,.32)) drop-shadow(0 0 2px rgba(255,235,178,.55));}
.bca-piece.black{filter:drop-shadow(0 9px 5px rgba(0,0,0,.55)) drop-shadow(0 0 2px rgba(88,30,16,.65));}
.bca-piece:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-body{animation:mxIdle 3.8s ease-in-out infinite;}
.bca-piece.p-k .mx-body{animation-duration:4.6s}.bca-piece.p-q .mx-body{animation-duration:3.2s}.bca-piece.p-n .mx-body{animation-duration:2.4s}.bca-piece.p-r .mx-body{animation-duration:5.2s}.bca-piece.p-b .mx-body{animation-duration:3.5s}.bca-piece.p-p .mx-body{animation-duration:3.0s}
.bca-piece:hover{z-index:8}.bca-piece:hover .mx-body{animation:mxFocus .65s ease-out forwards!important}.bca-piece:hover .mx-energy{opacity:.9;animation:mxEnergyFast .7s ease-in-out infinite;}
.bca-piece.moving{animation:mxTravel .72s cubic-bezier(.16,.86,.24,1) both}.bca-piece.moving .mx-body{animation:mxLand .72s cubic-bezier(.16,.86,.24,1) both!important}.bca-piece.attacking{animation:mxAttack .64s cubic-bezier(.2,.9,.25,1) both}.bca-piece.attacking .mx-body{animation:mxStrike .64s cubic-bezier(.2,.9,.25,1) both!important}.bca-piece.hit{animation:mxImpact .55s ease-out both}.bca-piece.hit .mx-body{animation:mxStagger .55s ease-out both!important}.bca-piece.victory{animation:mxVictory .9s cubic-bezier(.18,.9,.25,1) both}.bca-piece.victory .mx-body{animation:mxHero .9s cubic-bezier(.18,.9,.25,1) both!important}.bca-piece.defeated{animation:mxDefeat .8s cubic-bezier(.55,.1,.75,.2) forwards}.bca-piece.defeated .mx-body{animation:mxFall .8s cubic-bezier(.55,.1,.75,.2) forwards!important}
.bca-piece.sq-capture-target{animation:mxThreat 1s ease-in-out infinite}.bca-piece.sq-capture-target .mx-energy{opacity:1}
.bca-piece.sq-legal{animation:mxReady 1.3s ease-in-out infinite}
@keyframes mxIdle{0%,100%{transform:translateY(0) rotate(0) scale(1)}45%{transform:translateY(-1.8px) rotate(-.35deg) scale(1.008)}70%{transform:translateY(-.7px) rotate(.3deg) scale(1.004)}}
@keyframes mxFocus{0%{transform:scale(1)}100%{transform:scale(1.055) translateY(-2px)}}
@keyframes mxReady{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px) scale(1.025)}}
@keyframes mxThreat{0%,100%{transform:scale(1)}50%{transform:scale(1.07) translateY(-3px)}}
@keyframes mxTravel{0%{transform:translateY(5px) scale(.88)}40%{transform:translateY(-10px) scale(1.08)}72%{transform:translateY(1px) scale(.98)}100%{transform:translateY(0) scale(1)}}
@keyframes mxLand{0%{transform:rotate(-4deg) scale(.88)}48%{transform:rotate(2deg) scale(1.08)}75%{transform:rotate(-1deg) scale(.98)}100%{transform:rotate(0) scale(1)}}
@keyframes mxAttack{0%{transform:translateX(0) scale(1)}35%{transform:translateX(6px) translateY(-8px) scale(1.12)}60%{transform:translateX(-5px) translateY(0) scale(.96)}100%{transform:translateX(0) scale(1)}}
@keyframes mxStrike{0%{transform:rotate(0)}28%{transform:rotate(-6deg) translateX(-3px)}48%{transform:rotate(7deg) translateX(6px) scale(1.08)}100%{transform:rotate(0)}}
@keyframes mxImpact{0%{transform:translateX(0) scale(1)}18%{transform:translateX(-8px) rotate(-4deg)}38%{transform:translateX(8px) rotate(4deg)}58%{transform:translateX(-4px)}100%{transform:translateX(0)}}
@keyframes mxStagger{0%,100%{transform:rotate(0)}30%{transform:rotate(-4deg)}60%{transform:rotate(3deg)}}
@keyframes mxVictory{0%{transform:scale(1)}35%{transform:translateY(-13px) scale(1.17)}60%{transform:translateY(0) scale(.98)}78%{transform:translateY(-5px) scale(1.05)}100%{transform:scale(1)}}
@keyframes mxHero{0%{transform:scale(1)}32%{transform:scale(1.16) rotate(-2deg)}58%{transform:scale(1.03) rotate(2deg)}100%{transform:scale(1)}}
@keyframes mxDefeat{0%{transform:scale(1);opacity:1}55%{transform:rotate(10deg) translateY(6px) scale(.84);opacity:.72}100%{transform:rotate(28deg) translateY(24px) scale(.35);opacity:0}}
@keyframes mxFall{0%{transform:rotate(0)}45%{transform:rotate(9deg) translateX(3px)}100%{transform:rotate(28deg) translateX(8px)}}
@keyframes mxEnergy{0%,100%{opacity:.1;stroke-dasharray:3 13;stroke-dashoffset:0}50%{opacity:.45;stroke-dasharray:9 7;stroke-dashoffset:-18}}
@keyframes mxEnergyFast{0%,100%{stroke-dashoffset:0;opacity:.35}50%{stroke-dashoffset:-22;opacity:1}}
@media (prefers-reduced-motion:reduce){.bca-piece,.bca-piece *{animation:none!important;transition:none!important}}

@media(max-width:1100px){.bca-layout{grid-template-columns:1fr;}.bca-panel{display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch}.bca-panel-right{display:grid}.bca-log{height:120px}.bca-board-stage{order:-1}.bca-actions{min-width:0}.bca-status{display:none}}@media(max-width:700px){.bca-app{padding:10px;border-radius:0}.bca-topbar{flex-wrap:wrap;padding-bottom:12px}.bca-actions{width:100%;overflow:auto;justify-content:flex-start}.bca-layout{gap:10px}.bca-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bca-panel .bca-battle-card,.bca-panel .bca-log-card{grid-column:1/-1}.bca-board-wrap{padding:12px 12px 31px}.bca-rank-labels{top:12px;bottom:31px}.bca-file-labels{left:12px;right:12px}.bca-battle-modal{padding:16px}.bca-battle-head h2{font-size:19px}.bca-versus span{font-size:30px}.bca-footer{display:none}}

.bca-piece{will-change:transform,filter}.bca-square.capture-target:after{box-shadow:inset 0 0 28px rgba(240,188,82,.25)}.bca-battle-modal{background:radial-gradient(circle at 50% 0,#422617,#120a07 62%)}

.myrqel-promotion{position:fixed;z-index:100001;inset:0;display:grid;place-items:center;padding:20px}.myrqel-promotion-backdrop{position:absolute;inset:0;background:rgba(5,3,2,.82);backdrop-filter:blur(8px)}.myrqel-promotion-box{position:relative;width:min(430px,92vw);padding:24px;border:1px solid rgba(239,213,140,.3);border-radius:18px;background:linear-gradient(145deg,#3b2416,#120a07);text-align:center;box-shadow:0 45px 100px rgba(0,0,0,.6)}.myrqel-promotion-box h2{font:700 24px Georgia,serif;margin:6px 0}.myrqel-promotion-box p{font-size:10px;color:#b29e8a}.myrqel-promotion-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.myrqel-promotion-grid button{border:1px solid rgba(239,213,140,.22);border-radius:10px;background:#1e120c;color:#f7e7c4;padding:10px 5px;font-size:28px;cursor:pointer}.myrqel-promotion-grid small{display:block;font-size:8px;color:#a9947e;margin-top:4px}

/* Physical board travel layer */
.bca-board{position:relative;overflow:hidden}
.bca-flight-piece{position:absolute;z-index:20;width:12.5%;height:12.5%;display:grid;place-items:center;pointer-events:none;transform:translate(-50%,-50%) scale(.9);filter:drop-shadow(0 10px 5px rgba(0,0,0,.45));opacity:0}
.bca-flight-piece svg{width:100%;height:100%;overflow:visible}
.bca-flight-piece.fly{animation:mxFlight .72s cubic-bezier(.16,.84,.24,1) forwards}
@keyframes mxFlight{0%{opacity:1;transform:translate(-50%,-50%) translate(0,0) scale(.88) rotate(-2deg)}38%{opacity:1;transform:translate(-50%,-50%) translate(var(--flight-x),var(--flight-y)) translateY(-14px) scale(1.08) rotate(1deg)}75%{opacity:1;transform:translate(-50%,-50%) translate(var(--flight-x),var(--flight-y)) translateY(1px) scale(.98)}100%{opacity:0;transform:translate(-50%,-50%) translate(var(--flight-x),var(--flight-y)) translateY(0) scale(1)}}

/* MYRQEL v0.4 — CINEMATIC DUEL ARENA */
.myrqel-battle-stage{position:relative;height:210px;margin:14px 0 0;border-radius:14px;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(221,175,79,.16),transparent 38%),linear-gradient(180deg,#160d09,#080504);border:1px solid rgba(240,213,140,.14);perspective:700px;isolation:isolate}
.myrqel-arena-floor{position:absolute;left:12%;right:12%;bottom:18px;height:68px;border-radius:50%;background:radial-gradient(ellipse,rgba(239,198,102,.26),rgba(99,54,27,.14) 42%,transparent 72%);box-shadow:0 0 50px rgba(221,170,69,.16);transform:rotateX(62deg);}
.myrqel-arena-floor:before,.myrqel-arena-floor:after{content:"";position:absolute;inset:18px 15%;border:1px solid rgba(239,205,125,.22);border-radius:50%;box-shadow:0 0 20px rgba(239,205,125,.08)}
.myrqel-arena-floor:after{inset:30px 29%;border-color:rgba(239,205,125,.12)}
.myrqel-combatant{position:absolute;bottom:40px;width:125px;height:125px;display:grid;place-items:center;z-index:3;transition:filter .25s}
.myrqel-combatant svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 14px 8px rgba(0,0,0,.58))}
.myrqel-attacker{left:16%;transform:translateX(-50%) rotateY(12deg)}
.myrqel-defender{right:16%;transform:translateX(50%) rotateY(-12deg)}
.myrqel-battle-stage.show .myrqel-attacker{animation:myrqelCombatEnterL .65s cubic-bezier(.16,.86,.24,1) both}
.myrqel-battle-stage.show .myrqel-defender{animation:myrqelCombatEnterR .65s cubic-bezier(.16,.86,.24,1) both}
.myrqel-battle-stage.strike .myrqel-attacker{animation:myrqelCombatStrike .48s cubic-bezier(.12,.9,.2,1) both}
.myrqel-battle-stage.strike .myrqel-defender{animation:myrqelCombatHit .48s ease-out both}
.myrqel-impact-ring{position:absolute;left:50%;top:54%;width:18px;height:18px;border:2px solid rgba(247,214,119,0);border-radius:50%;transform:translate(-50%,-50%);z-index:4}
.myrqel-battle-stage.strike .myrqel-impact-ring{animation:myrqelImpact .55s ease-out both}
.myrqel-particles{position:absolute;inset:0;z-index:5;pointer-events:none}
.myrqel-particles i{position:absolute;left:50%;top:54%;width:5px;height:5px;border-radius:50%;background:#f1cd73;box-shadow:0 0 8px #f1cd73;transform:translate(-50%,-50%);animation:myrqelParticle .62s cubic-bezier(.1,.75,.2,1) calc(var(--i)*18ms) both}
.myrqel-battle-stage.type-n.strike .myrqel-attacker{animation:myrqelKnightStrike .58s cubic-bezier(.1,.9,.2,1) both}
.myrqel-battle-stage.type-b.strike .myrqel-attacker{animation:myrqelMagicStrike .62s cubic-bezier(.1,.8,.2,1) both}
.myrqel-battle-stage.type-r.strike .myrqel-attacker{animation:myrqelHeavyStrike .6s cubic-bezier(.1,.85,.2,1) both}
.myrqel-battle-stage.type-q.strike .myrqel-attacker{animation:myrqelQueenStrike .65s cubic-bezier(.1,.85,.2,1) both}
.myrqel-battle-stage.type-k.strike .myrqel-attacker{animation:myrqelKingStrike .62s cubic-bezier(.1,.85,.2,1) both}
.myrqel-battle-stage.type-p.strike .myrqel-attacker{animation:myrqelPawnStrike .5s cubic-bezier(.1,.9,.2,1) both}
@keyframes myrqelCombatEnterL{0%{opacity:0;transform:translateX(-85%) translateY(18px) rotateY(18deg) scale(.72)}100%{opacity:1;transform:translateX(-50%) rotateY(12deg) scale(1)}}
@keyframes myrqelCombatEnterR{0%{opacity:0;transform:translateX(85%) translateY(18px) rotateY(-18deg) scale(.72)}100%{opacity:1;transform:translateX(50%) rotateY(-12deg) scale(1)}}
@keyframes myrqelCombatStrike{0%{transform:translateX(-50%) rotateY(12deg)}40%{transform:translateX(-18%) translateY(-18px) rotateY(8deg) scale(1.12)}100%{transform:translateX(-50%) rotateY(12deg)}}
@keyframes myrqelCombatHit{0%{transform:translateX(50%) rotateY(-12deg)}35%{transform:translateX(65%) rotateY(-18deg) rotateZ(-5deg);filter:brightness(1.8)}100%{transform:translateX(50%) rotateY(-12deg)}}
@keyframes myrqelKnightStrike{0%{transform:translateX(-50%) translateY(0) rotateY(12deg)}38%{transform:translateX(8%) translateY(-34px) rotateY(0) rotateZ(-7deg) scale(1.08)}100%{transform:translateX(-50%) rotateY(12deg)}}
@keyframes myrqelMagicStrike{0%{transform:translateX(-50%) rotateY(12deg)}45%{transform:translateX(-10%) translateY(-9px) rotateY(5deg) scale(1.12);filter:drop-shadow(0 0 18px rgba(115,188,255,.8))}100%{transform:translateX(-50%) rotateY(12deg)}}
@keyframes myrqelHeavyStrike{0%{transform:translateX(-50%) rotateY(12deg)}42%{transform:translateX(-5%) translateY(3px) rotateY(3deg) scale(1.15)}100%{transform:translateX(-50%) rotateY(12deg)}}
@keyframes myrqelQueenStrike{0%{transform:translateX(-50%) rotateY(12deg)}25%{transform:translateX(-35%) translateY(-20px) rotateZ(-8deg) scale(1.1)}50%{transform:translateX(-8%) translateY(-5px) rotateZ(8deg) scale(1.16)}100%{transform:translateX(-50%) rotateY(12deg)}}
@keyframes myrqelKingStrike{0%{transform:translateX(-50%) rotateY(12deg)}38%{transform:translateX(-2%) translateY(-12px) rotateZ(-4deg) scale(1.12)}100%{transform:translateX(-50%) rotateY(12deg)}}
@keyframes myrqelPawnStrike{0%{transform:translateX(-50%) rotateY(12deg)}45%{transform:translateX(-4%) translateY(-13px) scale(1.08)}100%{transform:translateX(-50%) rotateY(12deg)}}
@keyframes myrqelImpact{0%{opacity:1;width:18px;height:18px;border-color:rgba(247,214,119,.9);box-shadow:0 0 8px rgba(247,214,119,.7)}100%{opacity:0;width:190px;height:190px;border-color:rgba(247,214,119,0);box-shadow:0 0 55px rgba(247,214,119,0)}}
@keyframes myrqelParticle{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}15%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.2)}}
#bca-attacker-icon,#bca-defender-icon{display:grid;place-items:center;width:50px;height:50px}
#bca-attacker-icon svg,#bca-defender-icon svg{width:50px;height:50px}
@media(max-width:700px){.myrqel-battle-stage{height:180px}.myrqel-combatant{width:105px;height:105px;bottom:35px}.myrqel-attacker{left:13%}.myrqel-defender{right:13%}}

/* MYRQEL v0.5 — CHARACTER SIGNATURES / ARCANA VFX */
.bca-piece{animation:bcaIdleBreath 3.8s ease-in-out infinite}.bca-piece.moving,.bca-piece.attacking,.bca-piece.hit,.bca-piece.victory,.bca-piece.defeated{animation-duration:.6s;animation-iteration-count:1}
.bca-piece.piece-k{filter:drop-shadow(0 8px 5px rgba(0,0,0,.4)) drop-shadow(0 0 7px rgba(255,211,104,.12))}.bca-piece.piece-q{filter:drop-shadow(0 8px 5px rgba(0,0,0,.4)) drop-shadow(0 0 8px rgba(217,111,255,.12))}.bca-piece.piece-b{filter:drop-shadow(0 8px 5px rgba(0,0,0,.4)) drop-shadow(0 0 8px rgba(94,184,255,.12))}.bca-piece.piece-r{filter:drop-shadow(0 8px 5px rgba(0,0,0,.4)) drop-shadow(0 0 8px rgba(255,129,71,.12))}.bca-piece.piece-n{filter:drop-shadow(0 8px 5px rgba(0,0,0,.4)) drop-shadow(0 0 8px rgba(119,255,181,.12))}.bca-piece.piece-p{filter:drop-shadow(0 8px 5px rgba(0,0,0,.4)) drop-shadow(0 0 6px rgba(255,255,255,.08))}
@keyframes bcaIdleBreath{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-1.5px) rotate(.15deg)}}
.myrqel-battle-stage{height:250px;background:radial-gradient(circle at 50% 43%,rgba(255,207,103,.18),transparent 35%),radial-gradient(circle at 50% 100%,rgba(120,53,28,.25),transparent 55%),linear-gradient(180deg,#170d09,#060403)}
.myrqel-arena-vignette{position:absolute;inset:0;z-index:8;pointer-events:none;background:radial-gradient(circle,transparent 42%,rgba(0,0,0,.55) 100%);mix-blend-mode:multiply}
.myrqel-sigil{position:absolute;left:50%;top:54%;width:105px;height:105px;border:1px solid rgba(240,207,126,.18);border-radius:50%;transform:translate(-50%,-50%) rotateX(66deg);opacity:0;z-index:1}.myrqel-sigil:before,.myrqel-sigil:after{content:"";position:absolute;inset:14px;border:1px dashed rgba(240,207,126,.15);border-radius:50%}.myrqel-sigil:after{inset:34px;transform:rotate(45deg);border-radius:4px}.myrqel-battle-stage.show .myrqel-sigil{animation:myrqelSigilIn .7s ease .15s both}.myrqel-sigil i{position:absolute;inset:48%;border-radius:50%;background:#f4cf72;box-shadow:0 0 25px #f4cf72;transform:scale(.4)}
.myrqel-weapon{position:absolute;left:50%;top:54%;z-index:6;width:130px;height:6px;opacity:0;transform:translate(-50%,-50%);pointer-events:none}.myrqel-weapon:before,.myrqel-weapon:after{content:"";position:absolute;inset:0;border-radius:999px}.weapon-p:before{background:linear-gradient(90deg,transparent,#f1c66b,transparent);box-shadow:0 0 18px #f1c66b}.weapon-n:before{height:4px;background:linear-gradient(90deg,transparent,#a9ffd1,transparent);box-shadow:0 0 22px #74ffc0;transform:rotate(-32deg)}.weapon-b:before{height:5px;background:linear-gradient(90deg,transparent,#7ccaff,transparent);box-shadow:0 0 26px #65bfff;transform:rotate(-18deg)}.weapon-r:before{height:10px;background:linear-gradient(90deg,transparent,#ff9a55,transparent);box-shadow:0 0 30px #ff8a42}.weapon-q:before{height:4px;background:linear-gradient(90deg,transparent,#d88aff,#fff1c0,transparent);box-shadow:0 0 32px #d88aff;transform:rotate(22deg)}.weapon-k:before{height:8px;background:linear-gradient(90deg,transparent,#ffe5a1,#f5b83d,transparent);box-shadow:0 0 34px #ffd36b;transform:rotate(-10deg)}.myrqel-battle-stage.charge .myrqel-weapon{animation:myrqelWeaponCharge .4s ease both}.myrqel-battle-stage.strike .myrqel-weapon{animation:myrqelWeaponStrike .45s cubic-bezier(.1,.8,.2,1) both}
.myrqel-slash{position:absolute;left:50%;top:52%;width:190px;height:90px;z-index:7;opacity:0;transform:translate(-50%,-50%) rotate(-12deg);border-top:3px solid rgba(255,232,166,.9);border-radius:50%;filter:blur(.2px) drop-shadow(0 0 12px rgba(255,203,90,.8));pointer-events:none}.myrqel-battle-stage.strike .myrqel-slash{animation:myrqelSlash .38s ease-out both}
@keyframes myrqelSigilIn{0%{opacity:0;transform:translate(-50%,-50%) rotateX(66deg) scale(.35)}100%{opacity:1;transform:translate(-50%,-50%) rotateX(66deg) scale(1)}}
@keyframes myrqelWeaponCharge{0%{opacity:0;transform:translate(-50%,-50%) scaleX(.2)}100%{opacity:.9;transform:translate(-50%,-50%) scaleX(1)}}
@keyframes myrqelWeaponStrike{0%{opacity:.9;transform:translate(-50%,-50%) scaleX(1)}100%{opacity:0;transform:translate(-50%,-50%) translateX(120px) scaleX(1.7)}}
@keyframes myrqelSlash{0%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scaleX(.25)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scaleX(1.15)}}
@media(max-width:700px){.myrqel-battle-stage{height:205px}.myrqel-sigil{width:85px;height:85px}.myrqel-weapon{width:105px}.myrqel-slash{width:150px}}

/* TsecretS Chess v0.5 — CLICK CLASH */
.bca-brand-mark{font-size:25px!important;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(239,213,140,.28);border-radius:10px;background:linear-gradient(145deg,#3d2618,#160d08);box-shadow:inset 0 0 18px rgba(235,189,86,.08)}
.bca-brand strong{letter-spacing:.14em}.bca-brand small{color:#b99562!important}
.tclash-wrap{width:min(590px,94%);padding:2px 0 8px}
.tclash-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:10px}
.tclash-top>div:first-child{display:flex;flex-direction:column;gap:4px}
.tclash-kicker{font-size:8px;letter-spacing:.24em;color:#d7af62;font-weight:900}
.tclash-top strong{font:700 18px Georgia,serif;color:#f5e5c7}
.tclash-top small{font-size:10px;color:#aa9784;line-height:1.35}
.tclash-round{font:900 11px/1 monospace;color:#f0d58c;border:1px solid rgba(240,213,140,.22);background:#21130d;border-radius:999px;padding:8px 10px;white-space:nowrap}
.tclash-arena{position:relative;height:245px;border:1px solid rgba(240,213,140,.13);border-radius:14px;overflow:hidden;background:radial-gradient(circle at 50% 48%,rgba(222,174,78,.13),transparent 33%),linear-gradient(135deg,#0e0907,#1b0f0a 50%,#090605);box-shadow:inset 0 0 50px rgba(0,0,0,.45)}
.tclash-grid{position:absolute;inset:0;opacity:.28;background-image:linear-gradient(rgba(239,211,141,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(239,211,141,.08) 1px,transparent 1px);background-size:32px 32px;transform:perspective(500px) rotateX(55deg) scale(1.5);transform-origin:center bottom}
.tclash-enemy-ring{position:absolute;left:50%;top:50%;width:160px;height:160px;border-radius:50%;border:1px solid rgba(237,192,87,.14);transform:translate(-50%,-50%);box-shadow:0 0 50px rgba(237,192,87,.08)}
.tclash-enemy-ring:before,.tclash-enemy-ring:after{content:"";position:absolute;inset:18px;border:1px dashed rgba(237,192,87,.12);border-radius:50%}.tclash-enemy-ring:after{inset:44px;border-color:rgba(237,192,87,.2)}
.tclash-target{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.8);border-radius:50%;border:2px solid rgba(255,234,174,.2);background:radial-gradient(circle,#fff2bf 0 7%,#e6b94f 8% 20%,#8a4d28 21% 42%,#29150d 43% 100%);box-shadow:0 0 0 1px rgba(247,210,117,.08),0 0 22px rgba(240,191,80,.08);cursor:pointer;opacity:.28;transition:left .12s,top .12s,transform .14s,opacity .14s,filter .14s;z-index:5}
.tclash-target.tclash-hot{opacity:1;transform:translate(-50%,-50%) scale(1);filter:brightness(1.22);box-shadow:0 0 0 5px rgba(239,198,92,.08),0 0 34px rgba(239,198,92,.32)}
.tclash-target.tclash-block{background:radial-gradient(circle,#fff6d3 0 7%,#e15b45 8% 22%,#76251d 23% 43%,#24100d 44% 100%);border-color:rgba(246,131,103,.48)}
.tclash-target:disabled{cursor:default}
.tclash-flash{position:absolute;left:50%;top:50%;width:20px;height:20px;border-radius:50%;transform:translate(-50%,-50%) scale(.2);opacity:0;pointer-events:none;z-index:7}
.tclash-flash.good{animation:tclashFlashGood .42s ease-out}.tclash-flash.bad{animation:tclashFlashBad .48s ease-out}
.tclash-flash.good.perfect{animation:tclashFlashPerfect .5s ease-out}
.tclash-word{position:absolute;left:50%;top:17%;transform:translateX(-50%);font:900 13px/1 Georgia,serif;letter-spacing:.25em;color:#e9cb82;text-shadow:0 0 16px rgba(238,191,82,.3);pointer-events:none}
/* Announces the opponent's own landed hit/parry (mirrored live via battle-progress polling) — a
   distinct red flash so it reads unmistakably as THEIR strike, not the player's own next prompt. */
.tclash-word.tclash-opp-hit{animation:tclashOppHit .5s ease-out}
@keyframes tclashOppHit{0%{color:#ff6b5c;text-shadow:0 0 22px rgba(255,107,92,.65);transform:translateX(-50%) scale(1.18)}100%{color:#e9cb82;text-shadow:0 0 16px rgba(238,191,82,.3);transform:translateX(-50%) scale(1)}}
.tclash-combo{position:absolute;left:50%;bottom:8%;transform:translateX(-50%) scale(.6);font:900 12px/1 Georgia,serif;letter-spacing:.14em;color:#ffd98a;text-shadow:0 0 14px rgba(255,201,90,.55);opacity:0;pointer-events:none}
.tclash-combo.pop{animation:tclashCombo .6s cubic-bezier(.2,.9,.3,1.2)}
.tclash-bottom{display:flex;justify-content:space-between;gap:16px;padding:8px 2px 0;font-size:10px;color:#a99683}.tclash-bottom b{font:900 12px monospace;color:#f0d58c}
.tclash-meter{height:6px;margin-top:10px;background:#1e120c;border:1px solid #4d3021;border-radius:999px;overflow:hidden}.tclash-meter span{display:block;width:0;height:100%;background:linear-gradient(90deg,#8e5c2f,#f0d47f);box-shadow:0 0 12px rgba(239,200,99,.28);transition:width .22s ease}
/* Live mirror of the OTHER multiplayer side's own hit/parry progress in the same clash — a second,
   thinner bar under the player's own meter so both sides' minigame progress reads at a glance instead
   of either player only finding out how the other did once the whole battle is already over. Its own
   small label needs room, so it's a flex row rather than reusing .tclash-meter's plain block layout. */
.tclash-meter-opp{display:flex;align-items:center;gap:8px;height:auto;margin-top:6px;background:none;border:none}
.tclash-meter-opp label{font:800 8px/1 monospace;letter-spacing:.12em;color:#8a7161;flex:0 0 auto}
.tclash-meter-opp i{flex:1 1 auto;display:block;height:4px;border-radius:999px;background:#1e120c;border:1px solid #4d3021;overflow:hidden}
.tclash-meter-opp span{display:block;width:0;height:100%;background:linear-gradient(90deg,#7a2c2c,#e0685f);box-shadow:0 0 10px rgba(224,104,95,.28);transition:width .22s ease}
/* A ring that visibly shrinks from wide to the target's own size, timed to arrive exactly at the block
   window — a continuous, readable countdown instead of a single text flip the player either catches or
   doesn't. It sits just under the target (z-index 4 < target's 5) so the target circle stays the clear
   focal point as the ring closes in around it. */
.tclash-timing-ring{position:absolute;left:50%;top:50%;border-radius:50%;border:2px solid rgba(240,213,140,.85);transform:translate(-50%,-50%);opacity:0;pointer-events:none;box-shadow:0 0 16px rgba(240,213,140,.3);z-index:4}
.tclash-timing-ring.run{opacity:.85}
.tclash-timing-ring.hit{opacity:0;transition:opacity .22s ease}
@keyframes tclashFlashGood{0%{opacity:1;transform:translate(-50%,-50%) scale(.2);box-shadow:0 0 0 0 rgba(255,224,130,.6)}100%{opacity:0;transform:translate(-50%,-50%) scale(8);box-shadow:0 0 0 15px rgba(255,224,130,0)}}
@keyframes tclashFlashPerfect{0%{opacity:1;transform:translate(-50%,-50%) scale(.2);box-shadow:0 0 0 0 rgba(255,246,200,.8)}60%{opacity:1;box-shadow:0 0 0 10px rgba(255,246,200,.15)}100%{opacity:0;transform:translate(-50%,-50%) scale(11);box-shadow:0 0 0 20px rgba(255,246,200,0)}}
@keyframes tclashFlashBad{0%{opacity:1;transform:translate(-50%,-50%) scale(.2);background:#d14e3d}100%{opacity:0;transform:translate(-50%,-50%) scale(7);background:#d14e3d}}
@keyframes tclashCombo{0%{opacity:0;transform:translateX(-50%) scale(.5) translateY(6px)}30%{opacity:1;transform:translateX(-50%) scale(1.08) translateY(0)}75%{opacity:1;transform:translateX(-50%) scale(1) translateY(0)}100%{opacity:0;transform:translateX(-50%) scale(.92) translateY(-10px)}}
@media(max-width:700px){.tclash-arena{height:215px}.tclash-top strong{font-size:15px}.tclash-top small{max-width:260px}.tclash-enemy-ring{width:130px;height:130px}}

/* TsecretS Chess v0.6 — SIGNATURE MOTION PASS
   Each chess class now has a distinct physical language: weight, rhythm and attack anticipation. */
.bca-piece{perspective:260px;transform-style:preserve-3d}
.bca-piece .mx-body{backface-visibility:hidden;will-change:transform,filter}
.bca-piece .mx-shadow{transition:opacity .2s ease,transform .2s ease}
.bca-piece:hover .mx-shadow{opacity:.22;transform:scale(.88)}
.bca-piece.sq-selected{filter:drop-shadow(0 12px 7px rgba(30,14,6,.42)) drop-shadow(0 0 13px rgba(247,215,119,.28))}
.bca-piece.sq-selected .mx-energy{opacity:1;animation:mxEnergyFast .55s ease-in-out infinite}

/* Pawn: compact, eager, forward pressure */
.bca-piece.piece-p .mx-body{transform-origin:50% 88%}
.bca-piece.piece-p:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-body{animation:mxPawnIdle 2.7s ease-in-out infinite}
/* Knight: restless, slightly airborne */
.bca-piece.piece-n .mx-body{transform-origin:54% 86%}
.bca-piece.piece-n:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-body{animation:mxKnightIdle 2.25s ease-in-out infinite}
/* Bishop: elegant side-to-side sway */
.bca-piece.piece-b .mx-body{transform-origin:50% 86%}
.bca-piece.piece-b:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-body{animation:mxBishopIdle 3.6s ease-in-out infinite}
/* Rook: heavy and grounded */
.bca-piece.piece-r .mx-body{transform-origin:50% 91%}
.bca-piece.piece-r:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-body{animation:mxRookIdle 4.8s ease-in-out infinite}
/* Queen: confident, fluid pulse */
.bca-piece.piece-q .mx-body{transform-origin:50% 86%}
.bca-piece.piece-q:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-body{animation:mxQueenIdle 3.05s ease-in-out infinite}
/* King: slow, authoritative breathing */
.bca-piece.piece-k .mx-body{transform-origin:50% 89%}
.bca-piece.piece-k:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-body{animation:mxKingIdle 4.5s ease-in-out infinite}

@keyframes mxPawnIdle{0%,100%{transform:translateY(0) scale(1)}42%{transform:translateY(-2.5px) scale(1.012,.995)}58%{transform:translateY(-1px) scale(1.004,1)}}
@keyframes mxKnightIdle{0%,100%{transform:translateY(0) rotate(0) scale(1)}32%{transform:translateY(-2px) rotate(-.7deg) scale(1.01)}52%{transform:translateY(-4px) rotate(.8deg) scale(1.018)}72%{transform:translateY(-1px) rotate(-.2deg)}}
@keyframes mxBishopIdle{0%,100%{transform:translateY(0) rotate(0)}28%{transform:translateY(-1px) rotate(-.65deg)}58%{transform:translateY(-2px) rotate(.7deg)}80%{transform:translateY(-.5px) rotate(-.2deg)}}
@keyframes mxRookIdle{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-.8px) scale(1.006,1)}52%{transform:translateY(1px) scale(.995,1.008)}58%{transform:translateY(0) scale(1)}}
@keyframes mxQueenIdle{0%,100%{transform:translateY(0) rotate(0) scale(1)}35%{transform:translateY(-2px) rotate(-.45deg) scale(1.012)}62%{transform:translateY(-1px) rotate(.5deg) scale(1.006)}82%{transform:rotate(0)}}
@keyframes mxKingIdle{0%,100%{transform:translateY(0) scale(1)}38%{transform:translateY(-1px) scale(1.009)}55%{transform:translateY(-2px) scale(1.014)}70%{transform:translateY(-.5px) scale(1.004)}}

/* More readable anticipation on actual board actions */
.bca-piece.attacking{z-index:12;filter:drop-shadow(0 15px 7px rgba(0,0,0,.4)) drop-shadow(0 0 16px rgba(242,191,81,.3))}
.bca-piece.hit{z-index:11;filter:brightness(1.28) saturate(1.12) drop-shadow(0 0 12px rgba(255,116,77,.38))}
.bca-piece.victory{z-index:13;filter:drop-shadow(0 16px 8px rgba(0,0,0,.4)) drop-shadow(0 0 22px rgba(255,218,120,.42))}
.bca-square.capture-target{animation:targetThreat 1.15s ease-in-out infinite}
@keyframes targetThreat{0%,100%{box-shadow:inset 0 0 0 2px rgba(238,174,77,.62),inset 0 0 0 rgba(240,188,82,0)}50%{box-shadow:inset 0 0 0 4px rgba(255,218,123,.92),inset 0 0 34px rgba(240,188,82,.28)}}

/* Battle arena: breathing before impact, stronger squash/stretch at contact. */
.myrqel-combatant svg{transform-origin:50% 88%;will-change:transform,filter}
.myrqel-battle-stage.show .myrqel-combatant svg{animation:combatBreath 1.8s ease-in-out infinite}
.myrqel-battle-stage.charge .myrqel-combatant svg{animation:none}
.myrqel-battle-stage.strike .myrqel-combatant svg{animation:none}
.myrqel-battle-stage.type-n.strike .myrqel-attacker svg{animation:knightBodyImpact .58s cubic-bezier(.1,.9,.2,1) both}
.myrqel-battle-stage.type-r.strike .myrqel-attacker svg{animation:heavyBodyImpact .6s cubic-bezier(.1,.85,.2,1) both}
.myrqel-battle-stage.type-q.strike .myrqel-attacker svg{animation:queenBodyImpact .64s cubic-bezier(.1,.9,.2,1) both}
.myrqel-battle-stage.type-k.strike .myrqel-attacker svg{animation:kingBodyImpact .62s cubic-bezier(.1,.85,.2,1) both}
.myrqel-battle-stage.type-p.strike .myrqel-attacker svg{animation:pawnBodyImpact .5s cubic-bezier(.1,.9,.2,1) both}
.myrqel-battle-stage.type-b.strike .myrqel-attacker svg{animation:magicBodyImpact .62s cubic-bezier(.1,.8,.2,1) both}
.myrqel-battle-stage.strike .myrqel-defender svg{animation:defenderRecoil .48s ease-out both}
.myrqel-battle-stage.strike .myrqel-combatant .mx-energy{opacity:1;animation:impactEnergy .4s ease-out both}
@keyframes combatBreath{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-1.5px) scale(1.012)}}
@keyframes knightBodyImpact{0%{transform:rotate(0) scale(1)}35%{transform:translateX(10px) translateY(-5px) rotate(-7deg) scale(1.08)}58%{transform:translateX(-3px) translateY(2px) rotate(3deg) scale(.96)}100%{transform:none}}
@keyframes heavyBodyImpact{0%{transform:scale(1)}40%{transform:translateX(7px) translateY(3px) scale(1.14,.94)}62%{transform:translateX(-2px) scale(.97,1.03)}100%{transform:none}}
@keyframes queenBodyImpact{0%{transform:rotate(0) scale(1)}28%{transform:translateX(7px) translateY(-7px) rotate(-5deg) scale(1.1)}52%{transform:translateX(4px) rotate(6deg) scale(1.14)}100%{transform:none}}
@keyframes kingBodyImpact{0%{transform:scale(1)}38%{transform:translateX(5px) translateY(-4px) rotate(-3deg) scale(1.1)}60%{transform:translateX(-1px) scale(.98)}100%{transform:none}}
@keyframes pawnBodyImpact{0%{transform:scale(1)}42%{transform:translateX(7px) translateY(-3px) scale(1.08,.95)}65%{transform:translateX(-2px) scale(.98,1.02)}100%{transform:none}}
@keyframes magicBodyImpact{0%{transform:scale(1)}45%{transform:translateX(5px) translateY(-3px) rotate(-3deg) scale(1.1)}100%{transform:none}}
@keyframes defenderRecoil{0%{transform:translateX(0) rotateY(-12deg) scale(1)}28%{transform:translateX(12px) rotateY(-18deg) rotateZ(4deg) scale(.96,1.04)}58%{transform:translateX(-4px) rotateY(-10deg) scale(1.02,.98)}100%{transform:translateX(0) rotateY(-12deg) scale(1)}}
@keyframes impactEnergy{0%{opacity:.2;stroke-width:1}45%{opacity:1;stroke-width:3}100%{opacity:0;stroke-width:1}}

@media (prefers-reduced-motion:reduce){
  .bca-square.capture-target{animation:none!important}
  .bca-piece .mx-body,.myrqel-battle-stage .myrqel-combatant svg{animation:none!important}
}


/* TsecretS Chess v0.7 — LIVING PIECES
   Motion pass: anticipation, travel personality, landing, impact and hover presence. */
.bca-piece{transform-origin:50% 92%;transition:filter .16s ease,transform .16s ease}
.bca-piece .mx-body{transform-box:fill-box}
.bca-piece:hover{transform:translateY(-2px) scale(1.025);filter:drop-shadow(0 13px 7px rgba(0,0,0,.42)) drop-shadow(0 0 13px rgba(245,205,113,.18))}
.bca-piece.sq-selected{animation:mxSelectedPulse .8s ease-in-out infinite alternate}
.bca-piece.sq-selected .mx-shadow{transform:scale(.82);opacity:.2}

/* Distinct travel language on the actual board. */
.bca-piece.moving .mx-body{animation-duration:.78s;animation-iteration-count:1;animation-fill-mode:both}
.bca-piece.piece-p.moving .mx-body{animation:mxMovePawn .72s cubic-bezier(.18,.86,.25,1) both}
.bca-piece.piece-n.moving .mx-body{animation:mxMoveKnight .82s cubic-bezier(.12,.92,.2,1) both}
.bca-piece.piece-b.moving .mx-body{animation:mxMoveBishop .76s cubic-bezier(.2,.82,.25,1) both}
.bca-piece.piece-r.moving .mx-body{animation:mxMoveRook .86s cubic-bezier(.16,.9,.22,1) both}
.bca-piece.piece-q.moving .mx-body{animation:mxMoveQueen .78s cubic-bezier(.12,.9,.22,1) both}
.bca-piece.piece-k.moving .mx-body{animation:mxMoveKing .9s cubic-bezier(.18,.88,.22,1) both}

/* The destination reacts like a real impact instead of simply swapping sprites. */
.bca-piece.impact-target{animation:mxTargetImpact .5s cubic-bezier(.15,.9,.2,1) both!important;z-index:14}
.bca-piece.victory .mx-body{animation:mxVictory .62s cubic-bezier(.16,.9,.2,1) both!important}

@keyframes mxSelectedPulse{from{transform:translateY(-1px) scale(1.015)}to{transform:translateY(-3px) scale(1.035)}}
@keyframes mxMovePawn{0%{transform:translateY(0) scale(1)}18%{transform:translateY(-3px) scale(.96,1.06)}52%{transform:translateY(-6px) scale(1.03,.98)}78%{transform:translateY(-1px) scale(.99,1.015)}100%{transform:translateY(0) scale(1)}}
@keyframes mxMoveKnight{0%{transform:translateY(0) rotate(0) scale(1)}22%{transform:translateY(-7px) rotate(-4deg) scale(1.03)}48%{transform:translateY(-13px) rotate(5deg) scale(1.07)}70%{transform:translateY(-4px) rotate(-2deg) scale(.98,1.03)}100%{transform:none}}
@keyframes mxMoveBishop{0%{transform:translateX(0) rotate(0) scale(1)}24%{transform:translateX(-3px) translateY(-3px) rotate(-2deg) scale(1.02)}58%{transform:translateX(3px) translateY(-5px) rotate(2deg) scale(1.04)}82%{transform:translateY(-1px) rotate(-.5deg)}100%{transform:none}}
@keyframes mxMoveRook{0%{transform:translateY(0) scale(1)}20%{transform:translateY(2px) scale(1.05,.94)}48%{transform:translateY(-3px) scale(1.02,1)}72%{transform:translateY(1px) scale(.99,1.02)}100%{transform:none}}
@keyframes mxMoveQueen{0%{transform:translateY(0) rotate(0) scale(1)}20%{transform:translateY(-4px) rotate(-2deg) scale(1.04)}52%{transform:translateY(-8px) rotate(2deg) scale(1.06)}78%{transform:translateY(-2px) rotate(-.5deg) scale(1.01)}100%{transform:none}}
@keyframes mxMoveKing{0%{transform:translateY(0) scale(1)}18%{transform:translateY(-2px) scale(1.04)}45%{transform:translateY(-5px) scale(1.06)}68%{transform:translateY(-1px) scale(.99,1.02)}100%{transform:none}}
@keyframes mxTargetImpact{0%{transform:scale(1);filter:brightness(1)}22%{transform:translateX(5px) rotate(2deg) scale(.96,1.04);filter:brightness(1.45)}48%{transform:translateX(-4px) rotate(-2deg) scale(1.03,.97)}72%{transform:translateX(2px) scale(.99,1.01)}100%{transform:none;filter:none}}
@keyframes mxVictory{0%{transform:scale(1)}25%{transform:translateY(-5px) scale(1.08,.94)}55%{transform:translateY(-2px) scale(.97,1.05)}100%{transform:none}}

/* A tiny idle detail makes the board feel inhabited without becoming distracting. */
.bca-piece.piece-k .mx-energy,.bca-piece.piece-q .mx-energy{animation:mxCorePulse 2.8s ease-in-out infinite}
.bca-piece.piece-r .mx-energy{animation:mxCorePulse 4.2s ease-in-out infinite}
@keyframes mxCorePulse{0%,100%{opacity:.08}50%{opacity:.28}}

@media (prefers-reduced-motion:reduce){
 .bca-piece,.bca-piece.sq-selected,.bca-piece.moving .mx-body,.bca-piece.impact-target,.bca-piece.victory .mx-body{animation:none!important;transition:none!important}
}

/* TsecretS Chess v0.8 — HERO CHARACTER MOTION */
.bca-piece{perspective:500px;will-change:transform,filter}
.bca-piece .mx-character{transform-origin:50% 88%;transform-box:fill-box;will-change:transform}
.bca-piece .mx-cape{transform-origin:50% 30%;transform-box:fill-box}
.bca-piece .mx-weapon{transform-origin:72px 42px;transform-box:fill-box}
.bca-piece.white .mx-character{filter:drop-shadow(0 0 5px rgba(120,210,255,.10))}
.bca-piece.black .mx-character{filter:drop-shadow(0 0 6px rgba(255,70,50,.12))}
.bca-piece:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-cape{animation:heroCapeIdle 2.7s ease-in-out infinite}
.bca-piece.piece-p:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-character{animation:heroPawnIdle 2.1s ease-in-out infinite}
.bca-piece.piece-n:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-character{animation:heroKnightIdle 1.8s ease-in-out infinite}
.bca-piece.piece-b:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-character{animation:heroBishopIdle 3s ease-in-out infinite}
.bca-piece.piece-r:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-character{animation:heroRookIdle 4s ease-in-out infinite}
.bca-piece.piece-q:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-character{animation:heroQueenIdle 2.5s ease-in-out infinite}
.bca-piece.piece-k:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-character{animation:heroKingIdle 3.8s ease-in-out infinite}
@keyframes heroCapeIdle{0%,100%{transform:skewX(0) translateX(0)}50%{transform:skewX(-3deg) translateX(-1px)}}
@keyframes heroPawnIdle{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-2px) scale(1.015,.99)}55%{transform:translateY(-1px) scale(.99,1.01)}}
@keyframes heroKnightIdle{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-2px) rotate(-1deg)}55%{transform:translateY(-5px) rotate(1.2deg)}72%{transform:translateY(-1px) rotate(-.3deg)}}
@keyframes heroBishopIdle{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-2px) rotate(-1deg)}65%{transform:translateY(-1px) rotate(1deg)}}
@keyframes heroRookIdle{0%,100%{transform:translateY(0) scale(1)}48%{transform:translateY(1px) scale(1.015,.99)}55%{transform:translateY(0) scale(.99,1.01)}}
@keyframes heroQueenIdle{0%,100%{transform:translateY(0) rotate(0)}32%{transform:translateY(-3px) rotate(-.8deg)}62%{transform:translateY(-1px) rotate(.8deg)}}
@keyframes heroKingIdle{0%,100%{transform:translateY(0) scale(1)}42%{transform:translateY(-1px) scale(1.01)}58%{transform:translateY(-2px) scale(1.018)}}
.bca-piece.moving .mx-character{animation:heroMove .68s cubic-bezier(.18,.86,.22,1) both}
.bca-piece.moving .mx-cape{animation:heroCapeRun .68s ease both}
.bca-piece.piece-n.moving .mx-character{animation:heroKnightMove .72s cubic-bezier(.15,.9,.2,1) both}
.bca-piece.piece-r.moving .mx-character{animation:heroHeavyMove .76s cubic-bezier(.12,.8,.18,1) both}
.bca-piece.piece-q.moving .mx-character{animation:heroQueenMove .7s cubic-bezier(.16,.9,.2,1) both}
.bca-piece.piece-k.moving .mx-character{animation:heroKingMove .78s cubic-bezier(.12,.82,.2,1) both}
@keyframes heroMove{0%{transform:translateY(10px) scale(.9)}35%{transform:translateY(-8px) scale(1.06)}70%{transform:translateY(-3px) scale(.99)}100%{transform:translateY(0) scale(1)}}
@keyframes heroKnightMove{0%{transform:translate(0,10px) rotate(0) scale(.9)}35%{transform:translate(0,-17px) rotate(-7deg) scale(1.06)}58%{transform:translate(0,-5px) rotate(5deg) scale(1.02)}100%{transform:translate(0,0) rotate(0) scale(1)}}
@keyframes heroHeavyMove{0%{transform:translateY(7px) scale(.93)}25%{transform:translateY(-3px) scale(1.02)}55%{transform:translateY(-2px) scale(1.04)}100%{transform:translateY(0) scale(1)}}
@keyframes heroQueenMove{0%{transform:translateY(7px) rotate(0) scale(.92)}28%{transform:translateY(-8px) rotate(-3deg) scale(1.05)}58%{transform:translateY(-3px) rotate(3deg) scale(1.02)}100%{transform:translateY(0) rotate(0) scale(1)}}
@keyframes heroKingMove{0%{transform:translateY(6px) scale(.94)}35%{transform:translateY(-5px) scale(1.045)}65%{transform:translateY(-2px) scale(1.02)}100%{transform:translateY(0) scale(1)}}
@keyframes heroCapeRun{0%,100%{transform:skewX(0) scaleX(1)}45%{transform:skewX(-8deg) translateX(-3px) scaleX(1.08)}75%{transform:skewX(5deg) translateX(2px)}}
.bca-piece.attacking .mx-character{animation:heroAttack .58s cubic-bezier(.1,.9,.2,1) both!important}
.bca-piece.piece-n.attacking .mx-character{animation:heroKnightAttack .65s cubic-bezier(.08,.92,.18,1) both!important}
.bca-piece.piece-b.attacking .mx-character{animation:heroMagicAttack .68s cubic-bezier(.08,.9,.2,1) both!important}
.bca-piece.piece-r.attacking .mx-character{animation:heroRookAttack .7s cubic-bezier(.08,.86,.18,1) both!important}
.bca-piece.piece-q.attacking .mx-character{animation:heroQueenAttack .7s cubic-bezier(.08,.94,.16,1) both!important}
.bca-piece.piece-k.attacking .mx-character{animation:heroKingAttack .68s cubic-bezier(.08,.9,.18,1) both!important}
@keyframes heroAttack{0%{transform:translateX(0) translateY(0) scale(1)}22%{transform:translateX(-5px) translateY(3px) scale(.94)}52%{transform:translateX(9px) translateY(-12px) scale(1.12)}100%{transform:translateX(0) translateY(0) scale(1)}}
@keyframes heroKnightAttack{0%{transform:translate(0,0) rotate(0)}25%{transform:translate(-4px,5px) rotate(-6deg) scale(.94)}52%{transform:translate(11px,-24px) rotate(9deg) scale(1.14)}100%{transform:translate(0,0) rotate(0)}}
@keyframes heroMagicAttack{0%{transform:translate(0,0) rotate(0)}35%{transform:translate(-5px,-3px) rotate(-4deg) scale(1.04)}65%{transform:translate(5px,-8px) rotate(5deg) scale(1.12)}100%{transform:translate(0,0) rotate(0)}}
@keyframes heroRookAttack{0%{transform:translate(0,0) scale(1)}28%{transform:translate(-4px,4px) scale(.94,1.03)}55%{transform:translate(13px,1px) scale(1.16,.96)}100%{transform:translate(0,0) scale(1)}}
@keyframes heroQueenAttack{0%{transform:translate(0,0) rotate(0)}22%{transform:translate(-6px,-4px) rotate(-6deg) scale(.95)}48%{transform:translate(8px,-16px) rotate(7deg) scale(1.15)}70%{transform:translate(3px,-5px) rotate(-3deg) scale(1.06)}100%{transform:translate(0,0) rotate(0) scale(1)}}
@keyframes heroKingAttack{0%{transform:translate(0,0) rotate(0)}30%{transform:translate(-4px,2px) rotate(-4deg) scale(.95)}58%{transform:translate(10px,-10px) rotate(4deg) scale(1.14)}100%{transform:translate(0,0) rotate(0) scale(1)}}
.bca-piece.hit .mx-character{animation:heroHit .55s cubic-bezier(.1,.7,.2,1) both!important}
@keyframes heroHit{0%{transform:translateX(0) rotate(0)}18%{transform:translateX(-8px) rotate(-5deg) scale(1.04)}42%{transform:translateX(5px) rotate(4deg) scale(.96)}70%{transform:translateX(-2px) rotate(-1deg)}100%{transform:translateX(0) rotate(0)}}
.bca-piece.victory .mx-character{animation:heroVictory .8s cubic-bezier(.1,.9,.2,1) both!important}
@keyframes heroVictory{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-12px) scale(1.1) rotate(-2deg)}60%{transform:translateY(-5px) scale(1.04) rotate(2deg)}100%{transform:translateY(0) scale(1)}}
.bca-piece.defeated .mx-character{animation:heroDefeat .55s ease-in both!important}
@keyframes heroDefeat{0%{transform:translate(0,0) rotate(0);filter:brightness(1)}55%{transform:translateX(8px) rotate(8deg) scale(.94,.9);filter:brightness(.7)}100%{transform:translateY(12px) rotate(14deg) scale(.8,.72);filter:brightness(.35)}}
.bca-piece.attacking .mx-energy,.bca-piece.victory .mx-energy{animation:heroEnergy .6s ease both}
@keyframes heroEnergy{0%{opacity:.1;stroke-width:1}45%{opacity:1;stroke-width:4}100%{opacity:0;stroke-width:8}}
.myrqel-combatant .mx-character{transform-origin:50% 88%;transform-box:fill-box}
.myrqel-battle-stage.show .myrqel-combatant .mx-character{animation:combatHeroIdle 1.5s ease-in-out infinite}
.myrqel-battle-stage.charge .myrqel-attacker .mx-character{animation:combatHeroCharge .42s ease both}
.myrqel-battle-stage.strike .myrqel-attacker .mx-character{animation:combatHeroStrike .5s cubic-bezier(.06,.9,.14,1) both}
.myrqel-battle-stage.strike .myrqel-defender .mx-character{animation:combatHeroRecoil .52s cubic-bezier(.1,.7,.2,1) both}
@keyframes combatHeroIdle{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes combatHeroCharge{0%{transform:translateX(0) scale(1)}100%{transform:translateX(-10px) scale(.95,1.04)}}
@keyframes combatHeroStrike{0%{transform:translateX(0) scale(.95)}28%{transform:translateX(8px) translateY(-4px) scale(1.04)}55%{transform:translateX(42px) translateY(-15px) scale(1.13)}100%{transform:translateX(0) translateY(0) scale(1)}}
@keyframes combatHeroRecoil{0%{transform:translateX(0)}25%{transform:translateX(22px) rotate(5deg) scale(.96)}55%{transform:translateX(-6px) rotate(-2deg)}100%{transform:translateX(0) rotate(0)}}
@media(max-width:700px){.bca-piece{width:88%;height:88%}.myrqel-combatant .mx-character{transform-origin:50% 88%}}
@media(prefers-reduced-motion:reduce){.bca-piece .mx-character,.bca-piece .mx-cape,.myrqel-combatant .mx-character{animation:none!important}}


/* TsecretS Chess v0.9 — COMBAT MOVES */
.myrqel-battle-stage{--combat-accent:rgba(240,213,140,.78);position:relative}
.myrqel-battle-stage .myrqel-move-label{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;padding:6px 11px;border:1px solid rgba(240,213,140,.16);border-radius:999px;background:rgba(10,6,4,.62);pointer-events:none;min-width:160px}
.myrqel-battle-stage .myrqel-move-label b{font-size:10px;letter-spacing:.14em;color:#f4dc9a}
.myrqel-battle-stage .myrqel-move-label span{font-size:8px;color:#9f8c79;max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.myrqel-combat-fx{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}
.myrqel-combat-fx .fx-core,.myrqel-combat-fx .fx-shock,.myrqel-combat-fx .fx-line{position:absolute;display:block}
.myrqel-combat-fx .fx-core{left:50%;top:55%;width:8px;height:8px;border-radius:50%;background:#fff4c6;box-shadow:0 0 12px #fff0b0,0 0 34px rgba(240,190,89,.45);transform:translate(-50%,-50%) scale(0);opacity:0}
.myrqel-combat-fx .fx-shock{left:50%;top:55%;width:26px;height:26px;border:2px solid rgba(243,214,127,.8);border-radius:50%;transform:translate(-50%,-50%) scale(.25);opacity:0}
.myrqel-combat-fx .fx-line{left:50%;top:53%;width:115px;height:2px;background:linear-gradient(90deg,transparent,#fff7d9,transparent);box-shadow:0 0 14px rgba(247,214,118,.55);transform-origin:left center;opacity:0}
.myrqel-battle-stage.type-n{--combat-accent:rgba(141,221,255,.92)}
.myrqel-battle-stage.type-b{--combat-accent:rgba(126,235,255,.95)}
.myrqel-battle-stage.type-r{--combat-accent:rgba(255,110,88,.95)}
.myrqel-battle-stage.type-q{--combat-accent:rgba(245,217,123,.98)}
.myrqel-battle-stage.type-k{--combat-accent:rgba(255,219,144,1)}
.myrqel-battle-stage.combat-run.type-p .myrqel-attacker{animation:combatPawnRush .62s cubic-bezier(.08,.9,.18,1) both}
.myrqel-battle-stage.combat-run.type-n .myrqel-attacker{animation:combatKnightLeap .72s cubic-bezier(.12,.92,.16,1) both}
.myrqel-battle-stage.combat-run.type-b .myrqel-attacker{animation:combatBishopFocus .72s cubic-bezier(.12,.9,.2,1) both}
.myrqel-battle-stage.combat-run.type-r .myrqel-attacker{animation:combatRookRam .78s cubic-bezier(.05,.96,.12,1) both}
.myrqel-battle-stage.combat-run.type-q .myrqel-attacker{animation:combatQueenCombo .72s cubic-bezier(.08,.96,.14,1) both}
.myrqel-battle-stage.combat-run.type-k .myrqel-attacker{animation:combatKingCounter .76s cubic-bezier(.08,.92,.12,1) both}
.myrqel-battle-stage.combat-impact .myrqel-defender{animation:combatImpactHit .42s cubic-bezier(.1,.7,.2,1) both}
.myrqel-battle-stage.combat-run.type-n .fx-line-a,.myrqel-battle-stage.combat-run.type-n .fx-line-b{animation:combatTrail .72s ease both}
.myrqel-battle-stage.combat-impact.type-b .fx-line{animation:combatEnergySlash .42s ease both}
.myrqel-battle-stage.combat-impact.type-r .fx-shock{animation:combatShockwave .55s cubic-bezier(.14,.8,.2,1) both}
.myrqel-battle-stage.combat-impact.type-k .fx-core{animation:combatHeavyCore .56s cubic-bezier(.14,.9,.18,1) both}
.myrqel-battle-stage.combat-impact.type-q .fx-line-a{animation:combatComboArc1 .24s ease both}
.myrqel-battle-stage.combat-impact.type-q .fx-line-b{animation:combatComboArc2 .26s .08s ease both}
.myrqel-battle-stage.combat-impact.type-q .fx-shock{animation:combatComboShock .38s .14s ease both}
.myrqel-battle-stage.combat-impact .fx-core{opacity:1}
@keyframes combatPawnRush{0%{transform:translateX(-50%) rotateY(12deg) scale(1)}35%{transform:translateX(calc(-50% + 8px)) translateY(-7px) rotateY(12deg) scale(1.02)}62%{transform:translateX(calc(-50% + 28px)) translateY(-3px) rotateY(12deg) scale(1.1,.94)}100%{transform:translateX(-50%) rotateY(12deg) scale(1)}}
@keyframes combatKnightLeap{0%{transform:translateX(-50%) rotateY(12deg) translateY(0) rotateZ(0) scale(.96)}25%{transform:translateX(calc(-50% + 18px)) rotateY(12deg) translateY(-18px) rotateZ(-7deg) scale(1.02)}52%{transform:translateX(calc(-50% + 44px)) rotateY(12deg) translateY(-42px) rotateZ(8deg) scale(1.14)}78%{transform:translateX(calc(-50% + 62px)) rotateY(12deg) translateY(-10px) rotateZ(2deg) scale(1.04)}100%{transform:translateX(-50%) rotateY(12deg) rotateZ(0) scale(1)}}
@keyframes combatBishopFocus{0%{transform:translateX(-50%) rotateY(12deg) scale(1)}35%{transform:translateX(-50%) rotateY(12deg) translateY(-4px) scale(1.05)}58%{transform:translateX(calc(-50% + 8px)) rotateY(12deg) translateY(-6px) scale(1.08)}100%{transform:translateX(-50%) rotateY(12deg) scale(1)}}
@keyframes combatRookRam{0%{transform:translateX(-50%) rotateY(12deg) scaleX(1)}28%{transform:translateX(calc(-50% - 7px)) rotateY(12deg) scaleX(.94)}48%{transform:translateX(calc(-50% + 10px)) rotateY(12deg) scaleX(1.03)}67%{transform:translateX(calc(-50% + 58px)) rotateY(12deg) scaleX(1.14)}100%{transform:translateX(-50%) rotateY(12deg) scaleX(1)}}
@keyframes combatQueenCombo{0%{transform:translateX(-50%) rotateY(12deg)}22%{transform:translateX(calc(-50% + 18px)) rotateY(12deg) translateY(-8px) rotateZ(-4deg) scale(1.04)}34%{transform:translateX(calc(-50% + 34px)) rotateY(12deg) translateY(-2px) rotateZ(4deg) scale(1.08)}52%{transform:translateX(calc(-50% + 52px)) rotateY(12deg) translateY(-15px) rotateZ(-3deg) scale(1.14)}69%{transform:translateX(calc(-50% + 26px)) rotateY(12deg) translateY(-6px) rotateZ(4deg) scale(1.06)}84%{transform:translateX(calc(-50% + 64px)) rotateY(12deg) translateY(-8px) rotateZ(-5deg) scale(1.12)}100%{transform:translateX(-50%) rotateY(12deg)}}
@keyframes combatKingCounter{0%{transform:translateX(-50%) rotateY(12deg) translateY(0) scale(.96)}34%{transform:translateX(calc(-50% - 12px)) rotateY(12deg) translateY(4px) scale(.94,1.05)}62%{transform:translateX(calc(-50% + 46px)) rotateY(12deg) translateY(-13px) scale(1.16)}100%{transform:translateX(-50%) rotateY(12deg) translateY(0) scale(1)}}
@keyframes combatImpactHit{0%{transform:translateX(50%) rotateY(-12deg) rotate(0) scale(1)}18%{transform:translateX(calc(50% + 10px)) rotateY(-12deg) rotate(5deg) scale(.94,1.06)}44%{transform:translateX(calc(50% - 12px)) rotateY(-12deg) rotate(-6deg) scale(1.06,.96)}72%{transform:translateX(calc(50% + 5px)) rotateY(-12deg) rotate(2deg)}100%{transform:translateX(50%) rotateY(-12deg) rotate(0) scale(1)}}
@keyframes combatTrail{0%{opacity:0;transform:translate(0,0) rotate(20deg) scaleX(.2)}35%{opacity:.9}100%{opacity:0;transform:translate(45px,-35px) rotate(-22deg) scaleX(1.4)}}
@keyframes combatEnergySlash{0%{opacity:0;transform:translate(-24px,-6px) scaleX(.2) rotate(-22deg)}35%{opacity:1}100%{opacity:0;transform:translate(26px,2px) scaleX(1.7) rotate(-10deg)}}
@keyframes combatShockwave{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(4.8)}}
@keyframes combatHeavyCore{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}34%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(4.2)}}
@keyframes combatComboArc1{0%{opacity:0;transform:translateX(-55px) rotate(-28deg) scaleX(.1)}45%{opacity:1}100%{opacity:0;transform:translateX(50px) rotate(10deg) scaleX(1.2)}}
@keyframes combatComboArc2{0%{opacity:0;transform:translateX(45px) rotate(22deg) scaleX(.1)}45%{opacity:1}100%{opacity:0;transform:translateX(-10px) rotate(-8deg) scaleX(1.25)}}
@keyframes combatComboShock{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}40%{opacity:.9}100%{opacity:0;transform:translate(-50%,-50%) scale(3.2)}}
.myrqel-battle-stage.type-n .fx-line-a{top:42%;left:28%;width:120px;background:linear-gradient(90deg,transparent,var(--combat-accent),transparent);transform:rotate(-18deg)}
.myrqel-battle-stage.type-n .fx-line-b{top:67%;left:37%;width:95px;background:linear-gradient(90deg,transparent,var(--combat-accent),transparent);transform:rotate(17deg)}
.myrqel-battle-stage.type-b .fx-line{width:170px;background:linear-gradient(90deg,transparent,var(--combat-accent),#fff8df,transparent)}
.myrqel-battle-stage.type-r .fx-shock{border-color:var(--combat-accent);box-shadow:0 0 20px rgba(255,105,84,.18)}
.myrqel-battle-stage.type-k .fx-core{background:#fff7d6;box-shadow:0 0 20px var(--combat-accent),0 0 55px rgba(240,190,91,.42)}
.myrqel-battle-stage.type-q .fx-line-a,.myrqel-battle-stage.type-q .fx-line-b{width:145px;background:linear-gradient(90deg,transparent,var(--combat-accent),transparent)}
.myrqel-particles .slash-particle{background:#9eeeff;box-shadow:0 0 8px rgba(126,235,255,.75)}
.myrqel-particles .impact-particle{background:#ff9a7f;box-shadow:0 0 8px rgba(255,110,88,.65)}
.myrqel-battle-stage.combat-impact.type-q .myrqel-combat-fx{filter:drop-shadow(0 0 4px rgba(245,217,123,.34))}
.myrqel-battle-stage.type-q .myrqel-combatant.myrqel-attacker svg{filter:drop-shadow(0 14px 8px rgba(0,0,0,.58)) drop-shadow(0 0 8px rgba(245,217,123,.12))}
.myrqel-battle-stage.type-k .myrqel-combatant.myrqel-attacker svg{filter:drop-shadow(0 14px 8px rgba(0,0,0,.58)) drop-shadow(0 0 10px rgba(255,219,144,.18))}
@media(max-width:700px){
  .myrqel-battle-stage .myrqel-move-label{bottom:5px;min-width:130px}.myrqel-battle-stage .myrqel-move-label b{font-size:8px}.myrqel-battle-stage .myrqel-move-label span{max-width:170px;font-size:7px}
}
@media(prefers-reduced-motion:reduce){
  .myrqel-battle-stage .myrqel-move-label{opacity:.9}
  .myrqel-battle-stage .myrqel-combat-fx{display:none}
}


/* TsecretS Chess v1.0 — COMBAT FINISHERS */
.myrqel-battle-stage.finisher::after{content:'FINISHER';position:absolute;left:50%;top:18px;transform:translateX(-50%) scale(.7);z-index:12;padding:5px 12px;border:1px solid rgba(247,224,153,.45);border-radius:999px;background:rgba(9,5,3,.78);color:#f9e4a9;font-size:9px;font-weight:800;letter-spacing:.24em;box-shadow:0 0 24px rgba(239,198,102,.22);animation:tsecretsFinisherTag .72s cubic-bezier(.12,.92,.18,1) both;pointer-events:none}
.myrqel-battle-stage.finisher .myrqel-sigil{animation:tsecretsFinisherSigil .76s ease both!important}
.myrqel-battle-stage.finisher .myrqel-attacker{animation:tsecretsFinisherAttack .66s cubic-bezier(.06,.9,.12,1) both!important}
.myrqel-battle-stage.finisher .myrqel-defender{animation:tsecretsFinisherDefender .58s cubic-bezier(.1,.7,.2,1) .08s both!important}
.myrqel-battle-stage.finisher .myrqel-impact-ring{animation:tsecretsFinisherImpact .62s ease both!important}
.myrqel-battle-stage.finisher .myrqel-combat-fx{animation:tsecretsFinisherFX .62s ease both}
.myrqel-battle-stage.finisher.type-b .myrqel-combat-fx .fx-line{animation:combatEnergySlash .42s ease both}
.myrqel-battle-stage.finisher.type-q .myrqel-combat-fx .fx-line-a{animation:combatComboArc1 .22s ease both}
.myrqel-battle-stage.finisher.type-q .myrqel-combat-fx .fx-line-b{animation:combatComboArc2 .25s .07s ease both}
/* v3.42.7: the finisher no longer ends in a burst/explosion flash (rook shock / king core) — only the bazooka explodes. */
.myrqel-battle-stage.finisher .myrqel-combat-fx .fx-shock,.myrqel-battle-stage.finisher .myrqel-combat-fx .fx-core{animation:none;opacity:0}
@keyframes tsecretsFinisherTag{0%{opacity:0;transform:translateX(-50%) translateY(-6px) scale(.7);filter:blur(4px)}35%{opacity:1;transform:translateX(-50%) translateY(0) scale(1.03);filter:blur(0)}100%{opacity:.96;transform:translateX(-50%) scale(1)}}
@keyframes tsecretsFinisherSigil{0%{opacity:.1;transform:translate(-50%,-50%) rotateX(66deg) scale(.6)}55%{opacity:1;transform:translate(-50%,-50%) rotateX(66deg) scale(1.18)}100%{opacity:.82;transform:translate(-50%,-50%) rotateX(66deg) scale(1)}}
@keyframes tsecretsFinisherAttack{0%{transform:translateX(-50%) rotateY(12deg) scale(.96)}38%{transform:translateX(-4%) translateY(-8px) rotateY(0) scale(1.18)}68%{transform:translateX(6%) translateY(-4px) rotateY(0) scale(1.06)}100%{transform:translateX(-50%) rotateY(12deg) scale(1)}}
@keyframes tsecretsFinisherDefender{0%{transform:translateX(50%) rotateY(-12deg);filter:brightness(1)}38%{transform:translateX(66%) rotateY(-20deg) rotateZ(-7deg) scale(.98);filter:brightness(2)}100%{transform:translateX(50%) rotateY(-12deg);filter:brightness(1)}}
@keyframes tsecretsFinisherImpact{0%{opacity:1;width:22px;height:22px;border-color:rgba(247,214,119,.95)}100%{opacity:0;width:220px;height:220px;border-color:rgba(247,214,119,0);box-shadow:0 0 65px rgba(247,214,119,0)}}
@keyframes tsecretsFinisherFX{0%{opacity:.2;transform:scale(.65)}55%{opacity:1;transform:scale(1.12)}100%{opacity:0;transform:scale(1.28)}}
@keyframes tsecretsFinisherBurst{0%{opacity:.35;transform:translate(-50%,-50%) scale(.4)}55%{opacity:1;transform:translate(-50%,-50%) scale(1.6)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.5)}}
@media(prefers-reduced-motion:reduce){.myrqel-battle-stage.finisher::after,.myrqel-battle-stage.finisher .myrqel-attacker,.myrqel-battle-stage.finisher .myrqel-defender,.myrqel-battle-stage.finisher .myrqel-impact-ring,.myrqel-battle-stage.finisher .myrqel-combat-fx{animation:none!important}}

/* -------------------------------------------------------------------------
   TsecretS Chess v1.1 — page-level fullscreen shell
   The game owns the viewport on pages containing the shortcode, matching the
   immersive presentation used by TsecretS Games.
--------------------------------------------------------------------------- */
html.tsecrets-chess-fullscreen-page,
body.tsecrets-chess-fullscreen-page{
  width:100%;
  min-height:100%;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#120c08!important;
}
/* Some cookie-consent plugins (observed: Real Cookie Banner's "consent-skip-blocker") inject an
   invisible, full-viewport, position:fixed div with pointer-events:all to gate a specific embed
   pending consent. On this fullscreen page that div can end up sitting over the entire game and
   silently swallow every click/hover across the whole app, even though nothing in the game itself
   needs that consent gate. Neutralize it here rather than relying on z-index alone, since z-index
   was not sufficient to stop it from intercepting pointer events in testing. */
body.tsecrets-chess-fullscreen-page [consent-skip-blocker]{
  display:none!important;
  pointer-events:none!important;
}
body.tsecrets-chess-fullscreen-page *{
  visibility:hidden;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app *{
  visibility:visible;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  min-height:100vh!important;
  margin:0!important;
  padding:clamp(10px,1.25vw,24px)!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:auto!important;
  overscroll-behavior:none;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-shell{
  width:min(1680px,100%);
  min-height:100%;
  margin:0 auto;
  display:flex;
  flex-direction:column;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-layout{
  flex:1;
  min-height:0;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-board-stage{
  min-height:0;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-footer{
  margin-top:auto;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-modal,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-toast{
  visibility:visible;
}
@supports (height:100svh){
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app{height:100svh!important;}
}
@media (max-width:1100px){
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app{padding:10px!important;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-layout{grid-template-columns:190px minmax(360px,1fr) 190px;gap:14px;}
}
@media (max-width:820px){
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app{padding:8px!important;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-topbar{padding-bottom:12px;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-layout{grid-template-columns:1fr;display:flex;flex-direction:column;align-items:stretch;overflow:visible;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-panel-left,
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-panel-right{display:none;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-board-stage{width:100%;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-board-wrap{width:min(94vw,720px);}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-footer{padding-top:8px;}
}
@media (max-width:560px){
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-topbar{gap:8px;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-brand{min-width:0;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-brand small{display:none;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-status{font-size:9px;letter-spacing:.14em;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-actions{min-width:0;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-actions .bca-btn{padding:8px 9px;font-size:9px;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-actions .bca-btn:first-child{display:none;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-footer{font-size:8px;}
  body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-footer span:first-child{display:none;}
}


/* -------------------------------------------------------------------------
   TsecretS Chess v1.2 — REAL WOOD BOARD
   Uses the supplied board photograph as the visual playing surface. The
   existing chess/capture logic remains the same; only the presentation layer
   is changed so pieces and hit targets sit directly on the photographed board.
--------------------------------------------------------------------------- */
.tsecrets-chess-app .bca-board-wrap{
  width:min(100%,1100px);
  aspect-ratio:1376/768;
  padding:0;
  border:1px solid rgba(245,219,157,.3);
  border-radius:8px;
  background:#2a180f;   /* v3.42.5: the 2D photo board is never shown (3D is mandatory) but was still downloaded (748 KB) */
  box-shadow:0 28px 70px rgba(0,0,0,.48),inset 0 0 0 2px rgba(0,0,0,.13);
  overflow:hidden;
  transform:none;
}
.tsecrets-chess-app .bca-board-wrap:before{inset:0;border:0;border-radius:8px;background:linear-gradient(180deg,rgba(255,226,163,.05),transparent 36%,rgba(0,0,0,.1));}
.tsecrets-chess-app .bca-rank-labels,
.tsecrets-chess-app .bca-file-labels{display:none}
.tsecrets-chess-app .bca-board{
  position:absolute;
  left:10.25%;
  top:6.9%;
  width:80.25%;
  height:77.45%;
  aspect-ratio:auto;
  display:grid;
  grid-template-columns:repeat(8,1fr);
  grid-template-rows:repeat(8,1fr);
  overflow:visible;
  border:0;
  box-shadow:none;
  transform-origin:50% 100%;
  transform:perspective(1500px) rotateX(7deg);
}
.tsecrets-chess-app .bca-square{
  background:transparent!important;
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:visible;
}
.tsecrets-chess-app .bca-square:after{display:none}
.tsecrets-chess-app .bca-square:hover{filter:none}
.tsecrets-chess-app .bca-square.selected{box-shadow:inset 0 0 0 3px rgba(247,219,128,.92),inset 0 0 26px rgba(247,219,128,.16)}
.tsecrets-chess-app .bca-square.legal:before{
  width:28%;
  height:auto;
  aspect-ratio:1;
  border-radius:50%;
  background:rgba(16,10,7,.9);
  box-shadow:0 0 0 2.5px rgba(250,242,222,.95),0 2px 7px rgba(0,0,0,.28);
}
/* Two-tone capture ring (dark outer + bright inner) so the boundary reads clearly against BOTH
   the light and dark square colors — a single amber ring only hit ~1.0-1.3:1 contrast against
   light squares (WCAG 1.4.11 non-text contrast needs 3:1); this combination clears 3:1 on every
   square shade since whichever ring has weaker contrast on a given square, the other compensates. */
.tsecrets-chess-app .bca-square.capture-target{
  box-shadow:inset 0 0 0 5px rgba(18,11,7,.88),inset 0 0 0 2px rgba(250,244,224,.95),inset 0 0 26px rgba(239,177,63,.13);
}
.tsecrets-chess-app .bca-square.last-move{background-image:linear-gradient(rgba(232,193,91,.18),rgba(232,193,91,.18))!important}
.tsecrets-chess-app .bca-piece{
  width:auto;
  height:78%;
  aspect-ratio:1;
  max-width:94%;
  display:grid;
  place-items:center;
  filter:drop-shadow(0 9px 5px rgba(0,0,0,.48));
  transform-origin:center bottom;
}
.tsecrets-chess-app .bca-piece svg{width:100%;height:100%;overflow:visible}
.tsecrets-chess-app .bca-board-stage{padding:10px}
.tsecrets-chess-app .bca-board-glow{inset:4% 7%;filter:blur(25px);opacity:.7}

/* The photo already contains the engraved a–h / 1–8 coordinates. */
.tsecrets-chess-app .bca-turn-ribbon{position:relative;z-index:3}

/* Keep the page-level fullscreen behavior even when WordPress inserts its
   admin bar spacing for logged-in users. */
html.tsecrets-chess-fullscreen-page,
body.tsecrets-chess-fullscreen-page,
body.tsecrets-chess-fullscreen-page.admin-bar{margin-top:0!important;padding-top:0!important}
body.tsecrets-chess-fullscreen-page #wpadminbar{display:none!important}

@media(max-width:820px){
  .tsecrets-chess-app .bca-board-stage{padding:4px 0}
  .tsecrets-chess-app .bca-board-wrap{
    width:min(98vw,760px);
    aspect-ratio:1376/768;
  }
  .tsecrets-chess-app .bca-piece{height:82%}
}

/* TsecretS Chess v1.3 — FIGURE OPTIMIZATION PASS
   Cleaner silhouettes, stronger material separation, larger board presence and
   higher contrast against the supplied wood-board photograph. */
.tsecrets-chess-app .bca-piece{
  height:86%;
  max-width:96%;
  z-index:4;
  transform-origin:50% 92%;
}
.tsecrets-chess-app .bca-piece svg{width:100%;height:100%;overflow:visible;display:block}
.tsecrets-chess-app .bca-piece .mx-character{transform-box:fill-box}
.tsecrets-chess-app .bca-piece .mx-shadow{opacity:.48;transition:opacity .18s ease,transform .18s ease}
.tsecrets-chess-app .bca-piece:hover .mx-shadow{opacity:.28;transform:scale(.84)}
.tsecrets-chess-app .bca-piece .mx-energy{transition:opacity .15s ease}
.tsecrets-chess-app .bca-piece.white .mx-piece-art{filter:saturate(1.04) brightness(1.02)}
.tsecrets-chess-app .bca-piece.black .mx-piece-art{filter:saturate(1.10) contrast(1.03)}
.tsecrets-chess-app .bca-piece.piece-p{height:82%}
.tsecrets-chess-app .bca-piece.piece-n{height:89%}
.tsecrets-chess-app .bca-piece.piece-b{height:90%}
.tsecrets-chess-app .bca-piece.piece-r{height:88%}
.tsecrets-chess-app .bca-piece.piece-q{height:92%}
.tsecrets-chess-app .bca-piece.piece-k{height:93%}
.tsecrets-chess-app .bca-piece.sq-selected{filter:drop-shadow(0 12px 8px rgba(0,0,0,.42)) drop-shadow(0 0 17px rgba(247,215,119,.35))}
.tsecrets-chess-app .bca-piece.sq-capture-target{filter:drop-shadow(0 10px 7px rgba(0,0,0,.44)) drop-shadow(0 0 15px rgba(255,90,65,.22))}
.tsecrets-chess-app .bca-piece.attacking .mx-piece-art,
.tsecrets-chess-app .bca-piece.victory .mx-piece-art{filter:drop-shadow(0 14px 8px rgba(0,0,0,.44))}
@media(max-width:820px){
  .tsecrets-chess-app .bca-piece{height:88%}
  .tsecrets-chess-app .bca-piece.piece-p{height:85%}
  .tsecrets-chess-app .bca-piece.piece-q,
  .tsecrets-chess-app .bca-piece.piece-k{height:92%}
}
@media(max-width:560px){
  .tsecrets-chess-app .bca-piece{height:82%}
  .tsecrets-chess-app .bca-piece.piece-n,
  .tsecrets-chess-app .bca-piece.piece-b,
  .tsecrets-chess-app .bca-piece.piece-q,
  .tsecrets-chess-app .bca-piece.piece-k{height:87%}
}


/* TsecretS Chess v1.4 — PERSPECTIVE-ACCURATE BOARD
   The photographed board is a perspective shot, so a rectangular CSS grid can
   never line up with it. js/myrqel.js now projects every square (hit area +
   highlight) and every figure through a homography fitted to the photo. The
   board element is a transparent overlay covering the whole photo; squares are
   quads (clip-path), figures stand upright in their own "slots" so they are
   never squashed by the perspective. */
.tsecrets-chess-app .bca-board-wrap{overflow:visible!important;border:0;background-size:100% 100%!important;background-position:0 0!important}
.tsecrets-chess-app .bca-board{position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;display:block!important;transform:none!important;overflow:visible}
.tsecrets-chess-app .bca-square{position:absolute;display:grid;place-items:center;z-index:1;background:transparent!important;box-shadow:none!important;animation:none}
.tsecrets-chess-app .bca-square:hover{background:rgba(255,246,214,.16)!important}
.tsecrets-chess-app .bca-square.last-move{background:rgba(232,193,91,.24)!important}
.tsecrets-chess-app .bca-square.selected{background:rgba(247,219,128,.42)!important}
.tsecrets-chess-app .bca-square.capture-target{background:rgba(238,92,52,.34)!important;animation:tcCaptureGlow 1.1s ease-in-out infinite}
/* Two-tone legal-move dot (near-opaque dark core + bright opaque rim) so it stays visible on both
   light and dark squares (WCAG 1.4.11 non-text contrast: 3:1). The old translucent dot measured as
   low as ~1.35:1 on dark squares — effectively invisible there. The dark core alone clears ~8-10.5:1
   on light squares; the bright rim alone clears ~5-8.4:1 on dark squares, so the marker as a whole
   is always clearly perceivable regardless of square color. */
.tsecrets-chess-app .bca-square.legal:before{width:28%;height:28%;aspect-ratio:auto;border-radius:50%;background:rgba(16,10,7,.9);box-shadow:0 0 0 2.5px rgba(250,242,222,.95),0 2px 5px rgba(0,0,0,.35)}
@keyframes tcCaptureGlow{0%,100%{background-color:rgba(238,92,52,.26)}50%{background-color:rgba(255,120,70,.5)}}
.tsecrets-chess-app .bca-slot{position:absolute;aspect-ratio:1;pointer-events:none;transition:opacity .12s}
.tsecrets-chess-app .bca-slot:hover,
.tsecrets-chess-app .bca-slot:has(.attacking,.impact-target,.victory,.hit,.moving){z-index:900!important}
.tsecrets-chess-app .bca-slot .bca-piece{width:100%!important;height:100%!important;max-width:none!important;aspect-ratio:auto;pointer-events:none}
.tsecrets-chess-app .bca-slot .bca-piece svg *{pointer-events:auto;cursor:pointer}
.tsecrets-chess-app .bca-slot .bca-piece .mx-shadow{pointer-events:none}
.tsecrets-chess-app .bca-flight-piece{position:absolute;aspect-ratio:1;height:auto;transform:none;opacity:0;pointer-events:none}
.tsecrets-chess-app .bca-flight-piece.fly{animation:tcFlight .7s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes tcFlight{0%{opacity:1;transform:translate(0,0) scale(.96)}45%{opacity:1;transform:translate(calc(var(--flight-x)*.6),calc(var(--flight-y)*.6 - 22px)) scale(1.08)}100%{opacity:1;transform:translate(var(--flight-x),var(--flight-y)) scale(1)}}
@media(prefers-reduced-motion:reduce){.tsecrets-chess-app .bca-square.capture-target{animation:none}}


/* TsecretS Chess v1.5 — CHARACTER SPRITES (artwork figures) */
.mx-sprite{display:block;width:100%;height:100%;object-fit:contain;object-position:50% 100%;user-select:none;-webkit-user-drag:none;transform-origin:50% 100%;pointer-events:none}
.tsecrets-chess-app .bca-slot .bca-piece .mx-sprite{pointer-events:auto;cursor:pointer}
.bca-piece.white,.bca-piece.black{filter:drop-shadow(0 6px 4px rgba(0,0,0,.45))}
.bca-piece.white.piece-k,.bca-piece.white.piece-q,.bca-piece.white.piece-b,.bca-piece.white.piece-n,.bca-piece.white.piece-r,.bca-piece.white.piece-p{filter:drop-shadow(0 6px 4px rgba(0,0,0,.45)) drop-shadow(0 0 5px rgba(120,190,255,.28))}
.bca-piece.black.piece-k,.bca-piece.black.piece-q,.bca-piece.black.piece-b,.bca-piece.black.piece-n,.bca-piece.black.piece-r,.bca-piece.black.piece-p{filter:drop-shadow(0 6px 4px rgba(0,0,0,.5)) drop-shadow(0 0 6px rgba(255,50,40,.3))}
.bca-piece:not(.moving):not(.attacking):not(.hit):not(.victory):not(.defeated) .mx-sprite{animation:spIdle 3.6s ease-in-out infinite}
.bca-piece.piece-p .mx-sprite{animation-duration:2.6s!important}.bca-piece.piece-n .mx-sprite{animation-duration:2.2s!important}.bca-piece.piece-b .mx-sprite{animation-duration:3.4s!important}.bca-piece.piece-r .mx-sprite{animation-duration:4.8s!important}.bca-piece.piece-q .mx-sprite{animation-duration:3s!important}.bca-piece.piece-k .mx-sprite{animation-duration:4.2s!important}
@keyframes spIdle{0%,100%{transform:scale(1,1)}50%{transform:scale(1.012,1.026)}}
.bca-piece.attacking .mx-sprite{animation:spLunge .6s cubic-bezier(.1,.9,.2,1) both}
.bca-piece.hit .mx-sprite{animation:spHit .55s ease-out both}
.bca-piece.victory .mx-sprite,.bca-piece.moving .mx-sprite{animation:spHop .7s cubic-bezier(.16,.86,.24,1) both}
@keyframes spLunge{0%{transform:none}30%{transform:translateY(3%) scale(.96,.94)}55%{transform:translate(8%,-8%) scale(1.1)}100%{transform:none}}
@keyframes spHit{0%,100%{transform:none}25%{transform:translateX(-7%) rotate(-3deg);filter:brightness(1.6)}55%{transform:translateX(5%) rotate(2deg)}}
@keyframes spHop{0%{transform:translateY(0)}35%{transform:translateY(-9%) scale(1.04)}70%{transform:translateY(0) scale(.98,1.03)}100%{transform:none}}
.myrqel-combatant img.mx-sprite{filter:drop-shadow(0 12px 8px rgba(0,0,0,.6))}
.myrqel-battle-stage.strike .myrqel-attacker .mx-sprite{animation:spLunge .5s cubic-bezier(.06,.9,.14,1) both}
.myrqel-battle-stage.strike .myrqel-defender .mx-sprite{animation:spHit .5s ease-out both}
#bca-attacker-icon img,#bca-defender-icon img{width:50px;height:50px}
.tsecrets-chess-app .bca-flight-piece img{width:100%;height:100%}
@media(prefers-reduced-motion:reduce){.mx-sprite{animation:none!important}}

/* v1.6 — sprites are base-centred and may be wider than tall; the slot defines the figure HEIGHT */
.tsecrets-chess-app .bca-slot .bca-piece{display:flex!important;justify-content:center;align-items:flex-end}
.tsecrets-chess-app .bca-slot .bca-piece .mx-sprite{width:auto;height:100%;max-width:none;flex:none;object-fit:fill}
.tsecrets-chess-app .bca-flight-piece.walker{aspect-ratio:1;height:auto;opacity:1;transform:none;animation:none;filter:drop-shadow(0 6px 4px rgba(0,0,0,.45))}
.tsecrets-chess-app .bca-flight-piece.walker.white{filter:drop-shadow(0 6px 4px rgba(0,0,0,.45)) drop-shadow(0 0 5px rgba(120,190,255,.28))}
.tsecrets-chess-app .bca-flight-piece.walker.black{filter:drop-shadow(0 6px 4px rgba(0,0,0,.5)) drop-shadow(0 0 6px rgba(255,50,40,.3))}
.tsecrets-chess-app .bca-flight-piece canvas{display:block}

.tsecrets-chess-app .bca-fly-layer{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:50}
.tsecrets-chess-app .bca-fly-layer .bca-flight-piece{position:absolute}

/* v1.7 — walking figures: ground shadow, dust, victim knock-out, board shake */
.tsecrets-chess-app .bca-flight-piece.walker{position:absolute;pointer-events:none}
.bca-walk-shadow{position:absolute;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.48) 0 28%,rgba(0,0,0,.18) 58%,transparent 76%);transform:translateZ(0);will-change:left,top,width,height,opacity;contain:layout paint}
.bca-dust{position:absolute;pointer-events:none;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,236,200,.75),rgba(200,160,110,.25) 60%,transparent 70%);transform:translate(-50%,-50%);animation:bcaDust .65s ease-out forwards}
@keyframes bcaDust{0%{opacity:.9;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy) - 10px)) scale(2.4)}}
.bca-victim-out .bca-piece{animation:bcaKnock .65s cubic-bezier(.4,0,.9,.6) forwards!important}
@keyframes bcaKnock{0%{transform:none;opacity:1;filter:brightness(2)}30%{transform:translate(8%,-10%) rotate(14deg) scale(1.05);opacity:1}100%{transform:translate(28%,22%) rotate(72deg) scale(.6);opacity:0}}
.bca-victim{pointer-events:none}
.bca-shake{animation:bcaShake .3s cubic-bezier(.36,.07,.19,.97)}
@keyframes bcaShake{10%,90%{transform:translate(-1px,1px)}20%,80%{transform:translate(2px,-1px)}30%,50%,70%{transform:translate(-3px,1px)}40%,60%{transform:translate(3px,-1px)}}


/* v2.0 — 3D board */
.tsecrets-chess-app .bca-board-wrap.bca-3d{background:radial-gradient(ellipse at 50% 30%,#3a2618,#140b07)!important;aspect-ratio:1.61803398875/1;width:min(100%,1240px);overflow:hidden!important;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.tsecrets-chess-app .bca-board-wrap.bca-3d:before{display:none}
.tsecrets-chess-app .bca-board-wrap.bca-3d .bca-board,.tsecrets-chess-app .bca-board-wrap.bca-3d .bca-fly-layer{display:none!important}
.bca-3d-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline:none}
@media(max-width:820px){.tsecrets-chess-app .bca-board-wrap.bca-3d{aspect-ratio:1.61803398875/1;width:100%}}


/* ==========================================================================
   v2.1 — ENTERPRISE LAYOUT: board first, slim chrome, HUD chips
   ========================================================================== */
.bca-app{--panel:rgba(18,15,13,.72);--line:rgba(240,213,140,.16);background:#0d0b0a!important}
.bca-shell{height:100%;display:flex;flex-direction:column;width:100%!important;max-width:none!important}
.bca-topbar{flex:none;display:flex;align-items:center;gap:14px;padding:6px 12px!important;min-height:42px}
.bca-brand{min-width:0!important;gap:9px!important}
.bca-brand-mark{width:26px!important;height:26px!important;font-size:15px!important;border-radius:7px!important}
.bca-brand strong{font-size:13px!important;letter-spacing:.16em!important;display:inline}
.bca-brand small{display:inline!important;margin:0 0 0 8px!important;font-size:9px!important;letter-spacing:.3em!important}
.bca-brand>div{display:flex;align-items:baseline}
.bca-status{flex:1;text-align:center;font-size:10px!important;letter-spacing:.24em!important;color:#c9b27a!important}
.bca-actions{min-width:0!important;gap:6px!important}
.bca-btn{padding:6px 11px!important;font-size:10px!important;letter-spacing:.06em;border-radius:7px!important;background:rgba(255,255,255,.04)!important;border-color:var(--line)!important}
.bca-btn:hover{background:rgba(240,213,140,.12)!important}
.bca-icon{padding:6px!important;width:30px;height:30px;display:grid!important;place-items:center;font-size:15px!important;line-height:1}
.bca-icon[aria-pressed="true"]{background:rgba(240,213,140,.22)!important;border-color:rgba(240,213,140,.55)!important}
.bca-layout{flex:1;min-height:0;display:block!important;gap:0!important;padding:0 8px 8px}
.bca-board-stage{position:relative;height:100%;padding:0!important;display:block!important;min-height:0}
.bca-board-glow{display:none}
.tsecrets-chess-app .bca-board-wrap.bca-3d{position:relative;width:100%!important;height:100%!important;aspect-ratio:auto!important;border-radius:12px}
.tsecrets-chess-app .bca-board-wrap:not(.bca-3d){margin:0 auto;max-height:100%;width:min(100%,calc((100dvh - 60px) * 1.79))}
.bca-hud{position:absolute;z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:7px 10px;min-width:150px;pointer-events:none}
.bca-hud-you{left:18px;bottom:16px}
/* Mirrors .bca-hud-you on the opposite corner, both on the bottom edge — it used to sit top-right at
   the exact same spot as .bca-burger (top:16px;right:18px;height:52px) and ran straight into it. */
.bca-hud-cpu{right:18px;bottom:16px}
.bca-hud-head{display:flex;align-items:center;gap:8px;font-size:11px}
.bca-hud-head b{letter-spacing:.06em}.bca-hud-head small{color:#8e7967;font-size:9px;letter-spacing:.16em;text-transform:uppercase;flex:1}
.bca-hud-head em{font-style:normal;font-weight:900;color:#f0d58c;font-size:13px}
.bca-hud-dot{width:9px;height:9px;border-radius:50%;background:#f3ead6;box-shadow:0 0 8px rgba(255,240,200,.6)}.bca-hud-dot.dark{background:#c7322c;box-shadow:0 0 8px rgba(255,80,60,.7)}
.bca-hud .bca-captured-row{min-height:0;margin-top:4px}.bca-hud .bca-captured-row:empty{display:none}
.bca-hud .bca-mini-piece{font-size:15px}
.bca-turn-ribbon{position:absolute!important;left:50%;bottom:14px;transform:translateX(-50%);margin:0!important;z-index:5;padding:6px 16px!important;font-size:9px!important;letter-spacing:.28em!important;background:var(--panel)!important;backdrop-filter:blur(10px);pointer-events:none}
.bca-drawer{position:absolute;right:14px;bottom:14px;top:70px;width:min(300px,86%);z-index:8;background:rgba(14,11,10,.92);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;backdrop-filter:blur(14px)}
.bca-drawer[hidden]{display:none}
.bca-drawer-head{display:flex;justify-content:space-between;align-items:center}
.bca-drawer .bca-log{flex:1;height:auto;min-height:0}
.bca-footer{display:none!important}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app{padding:0!important;background:#0d0b0a!important}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-shell{width:100%!important;min-height:0}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-layout{display:block!important}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-panel-left,body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-panel-right{display:none}
.tsecrets-chess-app:not([data-x]) .bca-shell{min-height:0}
@media(max-width:700px){.bca-brand small,.bca-status{display:none!important}.bca-hud{min-width:0;padding:5px 8px}.bca-hud-head small{display:none}.bca-hud-you{left:8px;bottom:44px}.bca-hud-cpu{right:8px;bottom:44px}.bca-actions{margin-left:auto}}

/* v2.4 — mini zoom buttons + duel cinematic support (no layout impact) */
.bca-zoomgroup{display:inline-flex;gap:4px;margin-right:4px}
.bca-zoomgroup[hidden]{display:none}
.bca-btn.bca-zoom{width:28px;height:28px;padding:0!important;display:grid;place-items:center;font-size:15px!important;line-height:1;font-weight:900}

/* v2.6 — interactive pawn duel HUD (floats over the live 3D side-view shot) */
.bca-duel-hud{position:absolute;left:50%;bottom:6%;transform:translateX(-50%);z-index:45;width:min(460px,92%);pointer-events:none}
.bca-duel-hud[hidden]{display:none}
.bca-duel-hud .tclash-wrap{width:100%;padding:10px 12px 12px;pointer-events:auto;background:rgba(10,6,4,.6);border:1px solid rgba(240,213,140,.22);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.bca-duel-hud .tclash-arena{height:150px}
.bca-duel-hud .tclash-top strong{font-size:15px}
@media(max-width:700px){.bca-duel-hud{bottom:4%}.bca-duel-hud .tclash-arena{height:120px}}

/* v3.42.75 — main menu in the same comic style as the "SCHACH MATT!" finale (.mm-* rules further down are shared) */
.myrqel-main-menu{
  --mm-burst:polygon(50.0% 0.0%,54.5% 13.3%,61.2% 4.4%,63.1% 15.4%,73.2% 5.7%,71.0% 19.5%,81.2% 14.8%,77.7% 25.5%,91.1% 21.6%,82.8% 32.8%,93.9% 33.3%,85.9% 41.1%,99.6% 44.0%,87.0% 50.0%,96.7% 55.7%,85.9% 58.9%,96.8% 67.7%,82.8% 67.2%,88.7% 76.7%,77.7% 74.5%,83.2% 87.4%,71.0% 80.5%,71.8% 91.6%,63.1% 84.6%,62.0% 98.5%,54.5% 86.7%,50.0% 97.0%,45.5% 86.7%,38.0% 98.5%,36.9% 84.6%,28.2% 91.6%,29.0% 80.5%,16.8% 87.4%,22.3% 74.5%,11.3% 76.7%,17.2% 67.2%,3.2% 67.7%,14.1% 58.9%,3.3% 55.7%,13.0% 50.0%,0.4% 44.0%,14.1% 41.1%,6.1% 33.3%,17.2% 32.8%,8.9% 21.6%,22.3% 25.5%,18.8% 14.8%,29.0% 19.5%,26.8% 5.7%,36.9% 15.4%,38.8% 4.4%,45.5% 13.3%);
  position:fixed;inset:0;z-index:2147483002;isolation:isolate;
  display:grid;place-items:center;overflow:auto;padding:clamp(12px,3vw,32px);
  background:radial-gradient(circle at 50% 44%,rgba(255,200,0,.42),rgba(26,10,40,.94) 64%),#0e0618;color:#140a00;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease;
  -webkit-tap-highlight-color:transparent;overscroll-behavior:contain;
}
.myrqel-main-menu.show{opacity:1;visibility:visible;pointer-events:auto}
.myrqel-main-menu[hidden]{display:none!important}
.myrqel-main-menu>.mm-rays,.myrqel-main-menu>.mm-dots,.myrqel-main-menu>.mm-stars{position:fixed;pointer-events:none}
.myrqel-main-menu>.mm-rays{inset:-60%}
.myrqel-main-menu>.mm-dots,.myrqel-main-menu>.mm-stars{inset:0}
.myrqel-main-menu .mm-stars i{animation:mmStar 5s calc(var(--t)*4) ease-out infinite}
.myrqel-menu-panel{position:relative;z-index:3;width:100%;display:grid;place-items:center;margin:auto 0}
.mmenu-stage{width:min(94vw,640px);aspect-ratio:auto;padding:clamp(44px,9vw,76px) clamp(14px,5vw,56px) clamp(30px,6vw,52px);gap:clamp(8px,1.8vw,14px)}
.mmenu-burstwrap{position:absolute;left:50%;top:50%;height:116%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.mmenu-burstwrap .mm-burst,.mmenu-burstwrap .mm-burst2{clip-path:var(--mm-burst)}
.mmenu-stage .mm-king{top:clamp(10px,3vw,26px);left:50%;margin-left:-.5em;animation:mmenuWobble 3.4s ease-in-out infinite;transform-origin:50% 100%}
.mmenu-stage .mm-word{font-size:clamp(44px,12.5vw,96px);text-align:center}
.mmenu-stage .mm-bubble{font-size:clamp(12px,3vw,17px);max-width:92%;padding:.75em 1.1em .5em}
.myrqel-main-menu .mm-who{background:#19b84b;font-size:clamp(15px,4vw,24px)}
.mmenu-actions{display:grid;grid-template-columns:1fr;gap:clamp(8px,1.8vw,12px);width:min(100%,360px);margin-top:6px}
.mmenu-btn{display:grid;gap:4px;width:100%;min-height:56px;padding:.5em 1em;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.mmenu-btn b{font:inherit;font-size:clamp(19px,5vw,24px)}
.mmenu-btn.chaos-menu{background:#ff5a4a;color:#fff;box-shadow:5px 6px 0 #140a00,0 0 0 2px rgba(255,230,0,.35)}
.mmenu-btn.chaos-menu small{color:rgba(255,255,255,.82)}
.mmenu-btn.chaos-menu:hover{filter:saturate(1.08) brightness(1.04)}
.mmenu-btn small{font:800 clamp(10px,2.6vw,12px)/1.15 system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:rgba(20,10,0,.72)}
.mm-btn:focus-visible{outline:4px solid #fff;outline-offset:3px;box-shadow:4px 5px 0 #140a00,0 0 0 7px #140a00}
.mm-btn[hidden]{display:none}
.mmenu-foot{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:8px;color:#fff3c4;font:800 clamp(10px,2.6vw,12px)/1.3 system-ui,sans-serif;text-shadow:0 2px 0 #140a00,0 0 6px #140a00;text-align:center}
.mmenu-version{letter-spacing:.12em;opacity:.85}
.mmenu-back{font-size:16px;padding:.4em 1em}
@keyframes mmenuWobble{0%,100%{transform:rotate(10deg)}50%{transform:rotate(18deg) translateY(-4px)}}
/* lobby view: the mode buttons make room for the open-games card */
.myrqel-main-menu.is-lobby .mmenu-actions,.myrqel-main-menu.is-lobby .mmenu-ready,.myrqel-main-menu.is-lobby .mmenu-intro{display:none}
.myrqel-main-menu.is-lobby .mmenu-stage .mm-word{font-size:clamp(34px,8vw,60px)}
.myrqel-lobby{position:relative;width:min(100%,520px);margin-top:4px;padding:16px;text-align:left;color:#140a00;background:#fff;border:3px solid #140a00;border-radius:18px;box-shadow:4px 5px 0 #140a00}
.myrqel-lobby[hidden]{display:none}
.myrqel-lobby-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.myrqel-lobby-head .bca-card-kicker{color:#e5231b;font:900 11px/1 system-ui,sans-serif;letter-spacing:.16em}
.myrqel-lobby-head h2{margin:4px 0 0;font:900 clamp(22px,6vw,30px)/1 Impact,"Arial Black",system-ui,sans-serif;letter-spacing:.03em;text-transform:uppercase;color:#140a00}
.myrqel-lobby-notice{display:none;margin:12px 0;padding:10px 12px;border:3px solid #140a00;border-radius:12px;background:#ffe600;font:800 12px/1.3 system-ui,sans-serif}
.myrqel-lobby-notice.show,.myrqel-lobby-notice.error{display:block}
.myrqel-lobby-notice.error{background:#ff5a4a;color:#fff}
.myrqel-requests,.myrqel-open-games{display:grid;gap:8px;margin-top:12px}
.myrqel-request,.myrqel-game-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:3px solid #140a00;border-radius:12px;background:#fff7d6}
.myrqel-request b,.myrqel-game-row b{display:block;font:800 14px/1.2 system-ui,sans-serif}
.myrqel-request small,.myrqel-game-row small{display:block;margin-top:3px;color:#5a4a2a;font:700 11px/1.2 system-ui,sans-serif}
.myrqel-room-id{font:700 9px/1 monospace;letter-spacing:.02em;color:#5a4a2a;margin-left:6px;opacity:.85}
.myrqel-request-actions,.myrqel-game-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.myrqel-empty{padding:14px;border:3px dashed #140a00;border-radius:12px;color:#5a4a2a;font:800 12px/1.3 system-ui,sans-serif;text-align:center}
.myrqel-create-game{width:100%;margin-top:12px;padding:.6em 1em;font:900 clamp(16px,4.4vw,20px)/1 Impact,"Arial Black",system-ui,sans-serif;letter-spacing:.05em;color:#140a00;background:#ffe600;border:3px solid #140a00;border-radius:12px;box-shadow:4px 5px 0 #140a00;cursor:pointer;touch-action:manipulation;transition:transform .08s,box-shadow .08s}
.myrqel-create-game:hover{transform:translate(-1px,-2px);box-shadow:6px 8px 0 #140a00}.myrqel-create-game:active{transform:translate(3px,4px);box-shadow:1px 1px 0 #140a00}
.myrqel-main-menu .bca-btn{min-height:38px;padding:.35em .8em!important;font:900 13px/1 Impact,"Arial Black",system-ui,sans-serif!important;letter-spacing:.05em;color:#140a00!important;background:#fff!important;border:3px solid #140a00!important;border-radius:10px!important;box-shadow:3px 4px 0 #140a00;cursor:pointer;touch-action:manipulation}
.myrqel-main-menu .bca-btn:hover{background:#fff3a0!important}.myrqel-main-menu .bca-btn:active{transform:translate(2px,3px);box-shadow:1px 1px 0 #140a00}
.myrqel-main-menu .bca-btn.primary{background:#ffe600!important}.myrqel-main-menu .bca-btn.danger{background:#ff5a4a!important;color:#fff!important}
.myrqel-main-menu .bca-btn:disabled{opacity:.5;cursor:not-allowed}
.myrqel-main-menu .bca-btn.bca-icon{min-width:38px;padding:.35em!important}
@media(max-width:520px){.myrqel-game-row,.myrqel-request{flex-direction:column;align-items:stretch}.myrqel-game-row-actions,.myrqel-request-actions{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){.myrqel-main-menu{transition:none}.mmenu-stage .mm-king,.myrqel-main-menu .mm-stars i{animation:none}}
/* v3.2 live multiplayer battle observer */
.myrqel-battle-stage.remote-observer{filter:saturate(1.08);}
.myrqel-remote-battle-wait{position:relative;z-index:8;display:grid;gap:.35rem;place-items:center;text-align:center;padding:1.15rem 1.4rem;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(8,10,16,.72);backdrop-filter:blur(10px);box-shadow:0 18px 50px rgba(0,0,0,.35);}
.myrqel-remote-battle-wait strong{font-size:.78rem;letter-spacing:.18em;color:#f5d27a;}
.myrqel-remote-battle-wait span{font-size:.78rem;color:rgba(255,255,255,.72);}
.myrqel-remote-battle-wait i{width:34px;height:3px;border-radius:999px;background:currentColor;opacity:.65;animation:myrqelRemotePulse 1s ease-in-out infinite;}
@keyframes myrqelRemotePulse{0%,100%{transform:scaleX(.45);opacity:.3}50%{transform:scaleX(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.myrqel-remote-battle-wait i{animation:none}}

/* v3.9.1 — touch hardening (no tap-highlight flash, no sticky hover, no accidental selection/callout) */
html.tsecrets-chess-fullscreen-page,
body.tsecrets-chess-fullscreen-page,
.tsecrets-chess-app,
.tsecrets-chess-app *,
.bca-modal,
.bca-modal *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important;tap-highlight-color:transparent}
.tsecrets-chess-app button,
.tsecrets-chess-app [data-action],
.tsecrets-chess-app [data-menu-action],
.tsecrets-chess-app .bca-board-wrap{touch-action:manipulation}
.bca-3d-canvas{touch-action:none}
.bca-3d-canvas,
.bca-board-wrap,
.bca-board,
.bca-square,
.bca-slot,
.bca-hud,
.bca-topbar,
.bca-turn-ribbon,
.bca-btn,
.bca-duel-hud{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.bca-3d-canvas:focus,
.tsecrets-chess-app button:focus:not(:focus-visible){outline:none}
.bca-3d-canvas::selection,.bca-board-wrap::selection,.bca-board-wrap *::selection{background:transparent}
@media (hover:none){
  .myrqel-menu-btn:hover{transform:none;box-shadow:none;border-color:rgba(239,213,140,.15)}
  .myrqel-menu-btn.primary:hover{border-color:rgba(239,213,140,.36)}
  .myrqel-menu-btn:hover:after{transform:rotate(20deg)}
  .myrqel-menu-btn:hover .myrqel-menu-btn-arrow{transform:none;background:transparent}
  .bca-btn:not([aria-pressed="true"]):hover{transform:none;background:rgba(255,255,255,.04)!important;border-color:var(--line)!important}
  .bca-square:hover{filter:none}
}

/* v3.9.2 — candle-lit walnut table stage background (canvas painted once; only flame/glow animate, compositor-only) */
.bca-stage-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;border-radius:inherit;background:#04060b}
.bca-stage-bg canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.bca-candles{position:absolute;inset:0}
.bca-candle{position:absolute;width:0;height:0}
.bca-candle-glow{position:absolute;left:0;top:0;width:var(--gr,300px);height:var(--gr,300px);margin:calc(var(--gr,300px)/-2) 0 0 calc(var(--gr,300px)/-2);border-radius:50%;background:radial-gradient(circle,rgba(255,176,84,.30) 0,rgba(255,140,50,.12) 30%,rgba(255,120,40,0) 66%);opacity:.8;animation:bcaCandleGlow 3.4s ease-in-out var(--dl,0s) infinite;will-change:opacity}
.bca-flame{position:absolute;left:calc(-5px*var(--fs,1));top:calc(-24px*var(--fs,1));width:calc(10px*var(--fs,1));height:calc(24px*var(--fs,1));border-radius:50% 50% 50% 50%/62% 62% 38% 38%;background:linear-gradient(to top,rgba(255,120,20,0) 0,#ff8a1e 18%,#ffd36a 55%,#fff8d8 100%);box-shadow:0 0 calc(14px*var(--fs,1)) calc(4px*var(--fs,1)) rgba(255,170,70,.55);transform-origin:50% 100%;animation:bcaFlame 1.7s ease-in-out var(--dl,0s) infinite;will-change:transform}
@keyframes bcaFlame{0%,100%{transform:scale(1,1) skewX(0)}18%{transform:scale(.94,1.07) skewX(-3deg)}37%{transform:scale(1.04,.95) skewX(2.5deg)}55%{transform:scale(.97,1.05) skewX(-1.5deg)}76%{transform:scale(1.03,.97) skewX(3deg)}}
@keyframes bcaCandleGlow{0%,100%{opacity:.78}22%{opacity:.62}45%{opacity:.88}68%{opacity:.7}}
.bca-stage-bg.calm .bca-flame,.bca-stage-bg.calm .bca-candle-glow{animation:none}
@media (prefers-reduced-motion:reduce){.bca-flame,.bca-candle-glow{animation:none}}
.bca-3d-canvas{position:absolute;z-index:1}

/* v3.15.5 — full-board command deck / chaos mode */
.bca-topbar{display:none!important}
.bca-layout{display:block!important;position:relative;min-height:calc(100vh - 48px)}
.bca-board-stage{min-height:calc(100vh - 48px);padding:8px 18px 18px!important}
.bca-board-wrap{width:min(94vw,920px)!important}
/* Burger: one real <button> with an inline SVG. 56px target (+ invisible 8px halo), never a span as click target. */
.bca-burger{
  --burger-top:max(16px,env(safe-area-inset-top,0px));--burger-right:max(18px,env(safe-area-inset-right,0px));
  position:absolute;z-index:2147483004;top:var(--burger-top);right:var(--burger-right);width:56px;height:56px;padding:0;margin:0;
  display:grid;place-items:center;border:1px solid rgba(240,213,140,.4);border-radius:16px;color:#f0d58c;
  background:linear-gradient(145deg,rgba(52,32,23,.96),rgba(13,9,7,.96));
  box-shadow:0 16px 40px rgba(0,0,0,.35),inset 0 0 22px rgba(240,213,140,.08);
  cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;
  transition:transform .12s ease,border-color .12s ease,background .12s ease;
}
.bca-burger:before{content:"";position:absolute;inset:-8px}
.bca-burger svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;pointer-events:none}
.bca-burger:hover{border-color:rgba(240,213,140,.75)}
.bca-burger:active{transform:scale(.93)}
.bca-burger:focus-visible{outline:3px solid #f0d58c;outline-offset:3px}
.bca-burger .ico-close{display:none}
.bca-burger[aria-expanded="true"] .ico-menu{display:none}.bca-burger[aria-expanded="true"] .ico-close{display:inline}
/* settings opened from the main menu: the same burger/X is lifted above the main-menu overlay (still just ONE close control) */
.bca-burger.on-main{position:fixed;z-index:2147483004}
/* Bazooka: comic-style launcher button sitting just left of the burger menu, one charge per own turn in Chaos mode. */
.bca-bazooka-btn{position:absolute;z-index:80;top:max(16px,env(safe-area-inset-top,0px));right:calc(max(18px,env(safe-area-inset-right,0px)) + 70px);width:52px;height:52px;border:2px solid #ffb144;border-radius:16px;background:linear-gradient(145deg,#4a2a12,#1c0f05);box-shadow:0 16px 40px rgba(0,0,0,.4),0 0 0 3px rgba(255,120,30,.15),inset 0 0 16px rgba(255,150,60,.15);display:grid;place-content:center;cursor:pointer;animation:bzPulse 2.1s ease-in-out infinite}
.bca-bazooka-btn[hidden]{display:none}.bca-bazooka-btn.preloading{opacity:.62;filter:saturate(.7);cursor:progress;animation:bzPulse .9s ease-in-out infinite}.bca-bazooka-btn.preloading:after{content:"";position:absolute;inset:8px;border:2px solid rgba(255,209,108,.22);border-top-color:rgba(255,209,108,.95);border-radius:50%;animation:bzSpin .65s linear infinite}@keyframes bzSpin{to{transform:rotate(360deg)}}
.bca-bazooka-btn svg{width:34px;height:34px;overflow:visible}
.bca-bazooka-btn .bz-tube{fill:#5a5f52;stroke:#1a1c16;stroke-width:1.5}
.bca-bazooka-btn .bz-tube-band{fill:none;stroke:#2a2c22;stroke-width:2}
.bca-bazooka-btn .bz-cone{fill:#7a8069;stroke:#1a1c16;stroke-width:1.5}
.bca-bazooka-btn .bz-cone-hole{fill:#12100c}
.bca-bazooka-btn .bz-handle{fill:#3a3226;stroke:#1a1c16;stroke-width:1.5}
.bca-bazooka-btn .bz-sight{fill:#ffb144}
.bca-bazooka-btn .bz-spark{fill:none;stroke:#ffcf6b;stroke-width:2.4;stroke-linecap:round;opacity:.85}
.bca-bazooka-btn b{position:absolute;right:-4px;bottom:-4px;min-width:19px;height:19px;padding:0 4px;border-radius:999px;background:#ff5a36;color:#fff;font:800 12px/19px system-ui;text-align:center;box-shadow:0 0 0 2px #1c0f05}
.bca-bazooka-btn.used{opacity:.4;filter:grayscale(.7);cursor:not-allowed;animation:none}
.bca-bazooka-btn.used b{background:#555}
.bca-bazooka-btn.aiming{border-color:#ff5a36;box-shadow:0 0 0 4px rgba(255,90,54,.35),0 16px 40px rgba(0,0,0,.4)}
@keyframes bzPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.bca-bazooka-hud{position:absolute;inset:0;z-index:75;pointer-events:none}
.bca-bazooka-hud[hidden]{display:none}
/* Tactical scope view — dark vignette tube, green digital rangefinder text burned into the glass,
   exactly the framing of the reference photo (looking down the optic, not a plain crosshair). */
.bca-bazooka-scope{position:fixed;left:0;top:0;width:340px;height:340px;margin:-170px 0 0 -170px;pointer-events:none;z-index:76;will-change:translate;--rx:0px;--ry:0px}
/* the circular glass is its own clipped element; the readout lives OUTSIDE it, so no text is ever cut off */
.bzs-tube{position:absolute;inset:0;border-radius:50%;overflow:hidden;box-shadow:0 0 0 100vmax rgba(0,0,0,.78),inset 0 0 40px rgba(0,0,0,.9),inset 0 0 0 6px #050403,inset 0 0 0 10px rgba(255,255,255,.05)}
.bzs-vignette{position:absolute;inset:0;background:radial-gradient(circle,rgba(0,0,0,0) 48%,rgba(0,0,0,.55) 78%,rgba(0,0,0,.95) 100%)}
.bzs-ring{position:absolute;inset:14px;border-radius:50%;border:1px solid rgba(120,255,150,.28)}
.bzs-cross{position:absolute;inset:0;width:100%;height:100%}
.bzs-cross path{fill:none;stroke:rgba(120,255,150,.85);stroke-width:1.4}
.bzs-cross .bzs-ticks{stroke-width:2.2}
.bzs-cross .bzs-dot{fill:#7dffa0}
.bzs-cross{filter:drop-shadow(0 0 3px rgba(80,255,130,.6))}
.bzs-readout{position:absolute;left:50%;top:100%;display:flex;gap:6px;align-items:stretch;white-space:nowrap;transform:translate(calc(-50% + var(--rx)),var(--ry));font:700 11px/1 'Courier New',ui-monospace,monospace;letter-spacing:.04em}
.bzs-readout>span{padding:6px 9px;border-radius:4px;background:rgba(2,10,5,.82);border:1px solid rgba(120,255,150,.4);color:#7dffa0;text-shadow:0 0 4px rgba(80,255,130,.8);min-width:0}
.bzs-readout>.bzs-ready{color:#ffe27a;border-color:rgba(255,200,90,.5);text-shadow:0 0 4px rgba(255,190,60,.8);animation:bzReady 1s step-start infinite}
.bca-bazooka-scope[data-flip="1"] .bzs-readout{top:auto;bottom:100%}
@keyframes bzReady{50%{opacity:.4}}
.bzs-scan{position:absolute;left:0;right:0;top:8%;height:2px;background:linear-gradient(90deg,transparent,rgba(120,255,150,.5),transparent);animation:bzScan 2.6s linear infinite;will-change:transform}
@keyframes bzScan{0%{transform:translateY(0)}100%{transform:translateY(calc(var(--scan,286px)))}}
@media(max-width:700px){.bca-bazooka-scope{width:260px;height:260px;margin:-130px 0 0 -130px;--scan:218px}.bzs-readout{font-size:10px}.bzs-readout>span{padding:5px 7px}}
.bca-game-menu{position:absolute;inset:0;z-index:2147483002;pointer-events:auto;isolation:isolate}
.bca-game-menu[hidden]{display:none}
.bca-game-menu-backdrop{position:absolute;inset:0;z-index:0;pointer-events:auto;background:rgba(5,3,2,.68);contain:strict}
.bca-game-menu-panel{position:absolute;z-index:1;pointer-events:auto;touch-action:pan-y;top:10px;right:10px;width:min(390px,calc(100vw - 20px));max-height:calc(100% - 20px);overflow:auto;padding:22px;border:1px solid rgba(240,213,140,.24);border-radius:24px;background:linear-gradient(155deg,rgba(44,27,19,.98),rgba(11,8,6,.98));box-shadow:0 35px 90px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.05);animation:bcaMenuIn .25s ease-out}
@keyframes bcaMenuIn{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}
.bca-game-menu-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-right:66px;min-height:56px}
.bca-game-menu-head small{display:block;color:#cba65c;font-size:9px;letter-spacing:.35em;font-weight:900}
.bca-game-menu-head strong{display:block;font-size:22px;letter-spacing:.05em}
/* opened from the main menu: sits above it, shows only settings (no "Neu" / "Brett drehen" / "Spiel beenden") */
.bca-game-menu.from-main{position:fixed;z-index:2147483003}
.bca-game-menu.from-main [data-ctx="game"]{display:none}
.myrqel-mature-modal{z-index:2147483004!important}
.bca-menu-status{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:9px 12px;border-radius:12px;background:rgba(0,0,0,.22);font-size:9px;letter-spacing:.2em;color:#bca98f;font-weight:900}
.bca-menu-status span:first-child{width:7px;height:7px;border-radius:50%;background:#69d39a;box-shadow:0 0 12px #69d39a}
.bca-menu-status span:first-child.chaos{background:#ff4e42;box-shadow:0 0 14px #ff4e42}
.bca-menu-section{display:grid;gap:8px;padding:14px 0;border-top:1px solid rgba(255,255,255,.07)}
.bca-menu-section.compact{gap:5px}
.bca-menu-label{font-size:9px;letter-spacing:.24em;color:#9f876d;font-weight:900;margin-bottom:2px}
.bca-menu-item{display:flex;align-items:center;gap:13px;width:100%;min-height:58px;padding:10px 12px;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:rgba(255,255,255,.035);color:#f6ead8;text-align:left;cursor:pointer;transition:transform .12s cubic-bezier(.2,.8,.2,1)}
.bca-menu-item:hover{transform:translateX(-2px);border-color:rgba(240,213,140,.3);background:rgba(240,213,140,.07)}
.bca-menu-item.primary{border-color:rgba(240,213,140,.24);background:linear-gradient(120deg,rgba(215,173,90,.15),rgba(255,255,255,.035))}
.bca-menu-item.danger{border-color:rgba(226,95,78,.28);background:rgba(226,95,78,.06)}
.bca-menu-item.danger:hover{border-color:rgba(226,95,78,.55);background:rgba(226,95,78,.14)}
.bca-menu-item.danger>span{color:#e2624e}
.bca-menu-item>span{width:28px;text-align:center;font-size:19px;color:#f0d58c}
.bca-menu-item div{flex:1}.bca-menu-item b{display:block;font-size:12px}.bca-menu-item small{display:block;margin-top:3px;color:#a99580;font-size:9px}.bca-menu-item em{font-style:normal;font-size:8px;letter-spacing:.16em;color:#d7b96f}
.bca-range-row,.bca-toggle-row{display:flex;align-items:center;gap:10px;font-size:10px;color:#d9c9b5}.bca-range-row span,.bca-toggle-row span{flex:1}.bca-range-row b{width:38px;text-align:right;color:#f0d58c;font-size:9px}
.bca-range-row input{width:105px;accent-color:#d7ad5a}
.bca-toggle-row input{position:absolute;opacity:0;pointer-events:none}.bca-toggle-row i{width:38px;height:22px;border-radius:99px;background:#39271e;border:1px solid rgba(255,255,255,.12);position:relative;transition:.2s}.bca-toggle-row i:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#a58f78;transition:.2s}.bca-toggle-row input:checked+i{background:#765727;border-color:#d7ad5a}.bca-toggle-row input:checked+i:after{left:19px;background:#f0d58c}
.bca-menu-footer{display:flex;justify-content:space-between;gap:12px;padding-top:12px;color:#756354;font-size:8px;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:700px){.bca-board-stage{padding:8px!important}.bca-burger{--burger-top:max(10px,env(safe-area-inset-top,0px));--burger-right:max(10px,env(safe-area-inset-right,0px))}.bca-bazooka-btn{top:max(10px,env(safe-area-inset-top,0px));right:calc(max(10px,env(safe-area-inset-right,0px)) + 70px)}.bca-game-menu-panel{top:8px;right:8px;padding:17px;width:min(370px,calc(100vw - 16px))}.bca-board-wrap{width:98vw!important}}

/* v3.15.7 — 3D is mandatory and the game-start fullscreen request fills the real viewport. */
.bca-board-wrap.bca-3d-loading .bca-board{visibility:hidden}
.bca-board-wrap.bca-3d-loading:after{content:attr(data-loading-label);position:absolute;inset:0;display:grid;place-items:center;color:#f0d58c;font-size:11px;font-weight:900;letter-spacing:.24em;background:radial-gradient(circle,rgba(36,24,16,.82),rgba(10,7,5,.96));z-index:20;border-radius:8px}
.bca-board-wrap.bca-3d-error:after{content:'3D MODUS BENÖTIGT · WEBGL AKTIVIEREN';position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#f0d58c;font-size:11px;font-weight:900;letter-spacing:.18em;padding:24px;background:rgba(10,7,5,.96);z-index:20;border-radius:8px}
.bca-app:fullscreen,.bca-app:-webkit-full-screen{width:100vw!important;max-width:none!important;height:100vh!important;min-height:100vh!important;margin:0!important;padding:0!important;border-radius:0!important;overflow:hidden!important}
.bca-app:fullscreen .bca-shell,.bca-app:-webkit-full-screen .bca-shell{width:100%;height:100%;min-height:100%}

/* v3.27 music toggle */
.bca-game-menu .bca-menu-item[data-action="music"] { position: relative; }
.bca-game-menu .bca-menu-item[aria-pressed="true"] { outline: 1px solid rgba(255,211,107,.22); }

.myrqel-join-pop{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:rgba(2,3,7,.62);backdrop-filter:blur(8px)}.myrqel-join-pop[hidden]{display:none}.myrqel-join-pop-card{width:min(420px,calc(100vw - 32px));padding:22px;border:1px solid rgba(239,213,140,.28);border-radius:18px;background:linear-gradient(145deg,rgba(31,25,19,.98),rgba(10,11,15,.98));box-shadow:0 24px 80px rgba(0,0,0,.55);text-align:center}.myrqel-join-pop-card strong{display:block;margin:8px 0 18px;color:#f4ead8;font-size:18px}.myrqel-join-pop-actions{display:flex;gap:10px;justify-content:center}.myrqel-join-pop-actions .bca-btn{min-width:120px}.myrqel-game-row-actions{display:flex;flex-wrap:wrap;gap:7px}

/* v3.28.1 — age-gated 18+ combat unlock */
.myrqel-mature-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.72);backdrop-filter:blur(10px)}
.myrqel-mature-modal[hidden]{display:none!important}
.myrqel-mature-backdrop{position:absolute;inset:0}
.myrqel-mature-card{position:relative;width:min(460px,94vw);padding:28px;border:1px solid rgba(214,173,93,.38);border-radius:22px;background:linear-gradient(145deg,#1a120d,#090706);box-shadow:0 30px 90px rgba(0,0,0,.6);color:#eee1cf}
.myrqel-mature-kicker{font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.2em;color:#d9b765}
.myrqel-mature-card h2{margin:12px 0 8px;font:500 30px/1.05 Georgia,serif}
.myrqel-mature-card p{margin:0 0 20px;color:#a99480;font-size:12px;line-height:1.55}
.myrqel-mature-card label:not(.myrqel-mature-check){display:grid;gap:7px;margin:12px 0;color:#cbbba7;font-size:11px;font-weight:700}
.myrqel-mature-card input[type=date],.myrqel-mature-card input[type=password]{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid rgba(255,255,255,.13);border-radius:11px;background:#0c0907;color:#f7ead2;font:600 13px/1 system-ui}
.myrqel-mature-check{display:flex;align-items:flex-start;gap:9px;margin:16px 0;color:#b9a794;font-size:11px;line-height:1.45}
.myrqel-mature-check input{margin-top:2px;accent-color:#d7ad5a}
.myrqel-mature-error{padding:10px 12px;margin:12px 0;border:1px solid rgba(190,66,66,.5);border-radius:10px;background:rgba(100,20,20,.2);color:#ffb1a8;font-size:11px}
.myrqel-mature-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.myrqel-mature-actions .bca-btn{min-width:110px}
.myrqel-battle-stage.mature-gore{--mature-red:#9f1722}
.myrqel-mature-gore-fx{position:absolute;inset:0;z-index:20;pointer-events:none;overflow:hidden}
.myrqel-mature-gore-fx i{position:absolute;left:var(--gx);top:var(--gy);width:calc(3px * var(--gs));height:calc(9px * var(--gs));border-radius:65% 35% 55% 45%;background:linear-gradient(150deg,#d42b38,#651018);box-shadow:0 0 7px rgba(150,18,28,.45);transform:rotate(var(--gr));animation:myrqelMatureDroplet var(--gd) cubic-bezier(.18,.7,.22,1) both}
@keyframes myrqelMatureDroplet{0%{opacity:0;transform:translate(0,0) rotate(var(--gr)) scale(.2)}18%{opacity:.95}100%{opacity:0;transform:translate(calc((var(--gx) - 50%) * .55),42px) rotate(calc(var(--gr) + 150deg)) scale(1.05)}}
.myrqel-battle-stage.mature-gore .myrqel-defender.combat-hit{filter:saturate(1.3) contrast(1.12)}
/* v3.28.2 mature combat: intense but non-photorealistic impact treatment */
.myrqel-mature-layer{position:absolute;inset:0;pointer-events:none;z-index:21}
.myrqel-mature-layer.slash{background:linear-gradient(112deg,transparent 43%,rgba(255,235,210,.0) 47%,rgba(255,235,210,.92) 49%,rgba(170,25,35,.75) 50%,transparent 54%);mix-blend-mode:screen;animation:myrqelMatureSlash .34s cubic-bezier(.1,.8,.2,1) both}
.myrqel-mature-layer.vignette{background:radial-gradient(circle at 50% 48%,transparent 20%,rgba(130,10,18,.0) 38%,rgba(70,0,8,.68) 100%);opacity:0;animation:myrqelMatureVignette .9s ease-out both}
.myrqel-mature-layer.chips:before,.myrqel-mature-layer.chips:after{content:"";position:absolute;inset:0;background:repeating-conic-gradient(from 12deg at 52% 49%,rgba(220,190,120,.9) 0 1deg,transparent 1deg 9deg);mask-image:radial-gradient(circle at 50% 50%,#000 0 16%,transparent 50%);animation:myrqelMatureChips .7s ease-out both;opacity:.7}
.myrqel-battle-stage.mature-hit-pulse{animation:myrqelMatureStagePulse .24s ease-out both}
@keyframes myrqelMatureSlash{0%{opacity:0;transform:translateX(-18%) scale(.72) rotate(-8deg)}25%{opacity:1}100%{opacity:0;transform:translateX(18%) scale(1.1) rotate(5deg)}}
@keyframes myrqelMatureVignette{0%{opacity:0}18%{opacity:.92}100%{opacity:0}}
@keyframes myrqelMatureChips{0%{transform:scale(.2);opacity:0}18%{opacity:.9}100%{transform:scale(1.35);opacity:0}}
@keyframes myrqelMatureStagePulse{0%{transform:scale(1)}35%{transform:scale(1.012) translateY(-2px)}100%{transform:scale(1)}}
@media(max-width:600px){.myrqel-mature-card{padding:22px;border-radius:18px}.myrqel-mature-card h2{font-size:25px}}

/* v3.28.5 — cinematic boot screen: the 2D board is never visible during startup. */
/* ===== v3.49.34 original loading screen, rebuilt: key art + live progress, used at page load AND on every menu game start ===== */
.myrqel-loading-screen{--ml-ar:1584/672;--ox:50%;--oy:50%;--gold:#f0d58c;--gold2:#d7ad5a;position:fixed;inset:0;z-index:2147483647;display:block;background:#060403;color:#f5e5c5;overflow:hidden;opacity:1;visibility:visible;contain:layout paint;user-select:none;-webkit-user-select:none;cursor:progress;transition:opacity .75s cubic-bezier(.4,0,.2,1) .3s,visibility 0s linear 1.05s}
.myrqel-loading-screen[hidden]{display:none!important}
/* Launch overlay is immediately opaque: no click-origin iris that can reveal the board. */
.myrqel-loading-screen.is-launching{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transition:none!important;clip-path:none!important;animation:none!important}
.myrqel-loading-screen.is-launching .ml-art{transform:none!important}
.myrqel-loading-screen.complete{opacity:0;visibility:hidden;pointer-events:none}
.myrqel-loading-screen.is-entering{animation:mlEnter .6s cubic-bezier(.22,.8,.24,1) both}
@keyframes mlEnter{from{opacity:0;clip-path:circle(0% at var(--ox) var(--oy))}30%{opacity:1}to{opacity:1;clip-path:circle(150% at var(--ox) var(--oy))}}
.ml-art{position:absolute;inset:0;overflow:hidden;background:#060403;transition:transform 1.25s cubic-bezier(.5,0,.2,1);will-change:transform}
.myrqel-loading-screen.complete .ml-art{transform:scale(1.16)}
/* v3.49.37 production loader: use a real <img> instead of a CSS background variable.
   This removes CSS custom-property URL parsing as a failure point and lets the browser
   report/load the image normally. The image always covers the viewport. */
.ml-img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center center;transform:translate3d(0,0,0) scale(1.02);background:#060403;animation:mlDrift 16s ease-in-out infinite alternate;will-change:transform;image-rendering:auto}
.ml-img.is-load-error{opacity:0}
@keyframes mlDrift{to{transform:translate3d(0,0,0) scale(1.075)}}
.ml-rays{position:absolute;inset:-10%;background:conic-gradient(from 232deg at 86% 45%,transparent 0 3deg,rgba(255,196,110,.16) 6deg,transparent 11deg 18deg,rgba(255,170,90,.12) 23deg,transparent 30deg 38deg,rgba(255,210,140,.1) 42deg,transparent 50deg);mix-blend-mode:screen;opacity:.55;animation:mlRays 7s ease-in-out infinite alternate;will-change:opacity,transform;pointer-events:none}
@keyframes mlRays{from{opacity:.25;transform:rotate(-1.5deg)}to{opacity:.7;transform:rotate(1.5deg)}}
.ml-embers{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.ml-embers i{position:absolute;left:var(--x);bottom:-12px;width:var(--s);height:var(--s);border-radius:50%;background:#ffd28a;box-shadow:0 0 8px 2px rgba(255,170,70,.7);opacity:0;animation:mlEmber var(--d) linear var(--w) infinite;will-change:transform,opacity}
@keyframes mlEmber{0%{opacity:0;transform:translate3d(0,0,0)}12%{opacity:.9}70%{opacity:.55}100%{opacity:0;transform:translate3d(var(--dx),-92vh,0)}}
.myrqel-loading-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(0,0,0,0) 38%,rgba(3,2,2,.62) 100%),linear-gradient(180deg,rgba(4,3,3,.28),rgba(4,3,3,0) 22%,rgba(4,3,3,0) 62%,rgba(4,3,3,.9))}
.ml-grain{position:absolute;inset:0;opacity:.08;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
.myrqel-loading-content{position:absolute;inset:0;display:flex;flex-direction:column;padding:0 clamp(22px,6.4vw,110px) clamp(18px,3.4vw,50px);text-shadow:0 2px 18px rgba(0,0,0,.7);transition:opacity .4s ease,transform .6s cubic-bezier(.22,.8,.24,1)}
.myrqel-loading-screen.complete .myrqel-loading-content{opacity:0;transform:translate3d(0,-18px,0)}
.myrqel-loading-spacer{flex:1}
.ml-row{display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(16px,4vw,64px)}
.ml-count{display:flex;align-items:flex-start;line-height:.8;font:200 clamp(60px,10.5vw,170px)/.8 system-ui,'Helvetica Neue',Arial,sans-serif;letter-spacing:-.05em;font-variant-numeric:tabular-nums;min-width:2.9ch;background:linear-gradient(180deg,#fff6d6 8%,var(--gold) 52%,#8b6325);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 4px 22px rgba(240,213,140,.22))}
.ml-count sup{font-size:.2em;letter-spacing:0;font-weight:700;margin:.18em 0 0 .12em}
.myrqel-loading-label{display:flex;flex-direction:column;align-items:flex-end;gap:11px;text-align:right;padding-bottom:clamp(2px,.8vw,12px)}
.ml-mode{font:800 10px/1 system-ui,sans-serif;letter-spacing:.42em;color:var(--gold2);text-transform:uppercase}
#myrqel-loading-status{font:800 clamp(11px,1.05vw,14px)/1.2 system-ui,sans-serif;letter-spacing:.34em;color:#fff2d0;text-transform:uppercase}
.ml-tip{max-width:36ch;min-height:2.7em;font:italic clamp(12px,1.15vw,16px)/1.45 Georgia,serif;color:rgba(245,229,197,.7);transition:opacity .4s ease}.ml-tip.f{opacity:0}
.myrqel-loading-track{position:relative;height:2px;margin-top:clamp(12px,2vw,26px);background:linear-gradient(90deg,rgba(240,213,140,.22),rgba(240,213,140,.1));overflow:visible}
.myrqel-loading-track:before{content:"";position:absolute;inset:-3px 0;background:repeating-linear-gradient(90deg,rgba(240,213,140,.38) 0 1px,transparent 1px 10%);opacity:.7;-webkit-mask:linear-gradient(#000 0 0) top/100% 1px no-repeat,linear-gradient(#000 0 0) bottom/100% 1px no-repeat;mask:linear-gradient(#000 0 0) top/100% 1px no-repeat,linear-gradient(#000 0 0) bottom/100% 1px no-repeat}
.myrqel-loading-progress{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#8b6325,var(--gold) 78%,#fff1bd);box-shadow:0 0 18px rgba(240,213,140,.8);will-change:transform}
.ml-head{position:absolute;left:0;top:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:radial-gradient(circle,#fff 0 28%,#fff1bd 45%,rgba(240,213,140,0) 72%);box-shadow:0 0 22px 6px rgba(240,213,140,.75);transform:translate3d(0,-50%,0);will-change:transform}
.myrqel-loading-meta{display:flex;justify-content:space-between;gap:12px;margin-top:clamp(12px,1.8vw,22px);font:700 9px/1 system-ui,sans-serif;letter-spacing:.2em}
.myrqel-loading-meta span{color:rgba(240,213,140,.34);transition:color .5s ease,text-shadow .5s ease}
.myrqel-loading-meta span.on{color:var(--gold);text-shadow:0 0 14px rgba(240,213,140,.55)}
.myrqel-loading-foot{display:flex;justify-content:space-between;margin-top:14px;font:700 8px/1 system-ui,sans-serif;letter-spacing:.22em;color:rgba(242,229,202,.38)}
.myrqel-loading-screen.is-ready .ml-count{filter:drop-shadow(0 0 34px rgba(255,226,150,.75))}
.myrqel-loading-screen.is-ready .myrqel-loading-progress{box-shadow:0 0 34px 4px rgba(255,226,150,.95)}
.myrqel-loading-screen.error .myrqel-loading-progress{background:linear-gradient(90deg,#6d2020,#d9a15c 72%,#fff1bd)}
.myrqel-loading-screen.error #myrqel-loading-status{color:#f3c7a6}
/* entrance: the UI builds up in stages */
.ml-count,.myrqel-loading-label>*,.myrqel-loading-track,.myrqel-loading-meta,.myrqel-loading-foot{animation:mlUp .8s cubic-bezier(.22,.8,.24,1) both}
.myrqel-loading-label>:nth-child(2){animation-delay:.08s}.myrqel-loading-label>:nth-child(3){animation-delay:.16s}.myrqel-loading-track{animation-delay:.2s}.myrqel-loading-meta{animation-delay:.3s}.myrqel-loading-foot{animation-delay:.38s}
@keyframes mlUp{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}
@media(max-width:700px){.ml-row{flex-direction:column;align-items:flex-start;gap:12px}.myrqel-loading-label{align-items:flex-start;text-align:left}.ml-tip{display:none}.myrqel-loading-meta{flex-wrap:wrap;justify-content:flex-start;gap:8px 16px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.ml-img,.ml-rays,.ml-embers i,.ml-count,.myrqel-loading-label>*,.myrqel-loading-track,.myrqel-loading-meta,.myrqel-loading-foot,.myrqel-loading-screen.is-entering{animation:none}.ml-embers{display:none}.ml-art,.myrqel-loading-content,.myrqel-loading-screen{transition-duration:.01s;transition-delay:0s}}
.bca-board-wrap:not(.bca-3d-ready) .bca-board{visibility:hidden}.bca-board-wrap.bca-3d-ready .bca-board{visibility:hidden}
.bca-board-wrap.bca-3d-error .bca-board{visibility:hidden}
.myrqel-join-pop{z-index:1000100!important}

/* v3.42.27 — Angriff/Abwehr-Minispiel: verständlicher Aufbau (Schritte, Trefferpunkte, Hinweis-Puls) */
.tclash-kicker{font-size:9px;letter-spacing:.16em}
.tclash-round{display:flex;align-items:center;gap:8px}
.tclash-pips{display:inline-flex;gap:4px}
.tclash-pips i{width:9px;height:9px;border-radius:50%;border:1.5px solid rgba(240,213,140,.55);background:transparent;transition:background .2s,box-shadow .2s,transform .2s}
.tclash-pips i.on{background:#f0d58c;box-shadow:0 0 8px rgba(240,213,140,.85);transform:scale(1.15)}
.role-defender .tclash-pips i.on{background:#7fc4ff;border-color:#7fc4ff;box-shadow:0 0 8px rgba(127,196,255,.85)}
.tclash-steps{list-style:none;margin:0 0 9px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:80px;overflow:hidden;transition:max-height .45s ease,opacity .35s ease,margin .35s ease}
.tclash-steps li{display:flex;gap:7px;align-items:flex-start;background:rgba(240,213,140,.07);border:1px solid rgba(240,213,140,.16);border-radius:10px;padding:6px 7px}
.tclash-steps b{flex:0 0 auto;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:900 10px/1 Georgia,serif;color:#1c100a;background:linear-gradient(#f5dc98,#c99a44)}
.role-defender .tclash-steps b{background:linear-gradient(#bfe2ff,#5a9fd8)}
.tclash-steps span{display:flex;flex-direction:column;gap:1px;min-width:0}
.tclash-steps strong{font:700 10.5px/1.2 Georgia,serif;color:#f5e5c7}
.tclash-steps em{font:400 9.5px/1.25 system-ui,sans-serif;font-style:normal;color:#b8a48f}
.tclash-steps.done{max-height:0;opacity:0;margin:0}
.tclash-target.tclash-hot{animation:tclashHint .7s ease-in-out infinite alternate}
@keyframes tclashHint{from{box-shadow:0 0 0 4px rgba(239,198,92,.28),0 0 18px rgba(239,198,92,.55)}to{box-shadow:0 0 0 9px rgba(239,198,92,.1),0 0 32px rgba(239,198,92,.85)}}
.tclash-bottom{align-items:center}
.tclash-bottom span{font-size:11px;color:#d9c7ae;line-height:1.3}
.tclash-bottom b{min-width:34px;text-align:center}
.bca-duel-hud .tclash-steps{grid-template-columns:1fr;gap:4px;max-height:130px}
.bca-duel-hud .tclash-steps em{display:none}
.bca-duel-hud .tclash-steps li{padding:4px 7px}
@media(min-width:701px){.bca-duel-hud .tclash-steps{grid-template-columns:repeat(3,1fr);max-height:60px}.bca-duel-hud .tclash-steps em{display:block}}
@media(max-width:520px){.tclash-steps strong{font-size:10px}.tclash-top small{display:none}}

/* v3.42.28 — Minispiel: nur das Nötigste, passt auch auf kleine Bildschirme */
.tclash-top small{display:none!important}
.tclash-steps{display:flex;flex-wrap:wrap;gap:5px;max-height:none}
.tclash-steps li{flex:1 1 0;min-width:0;align-items:center;gap:6px;padding:5px 8px}
.tclash-steps li b{width:auto;height:auto;background:none;border-radius:0;font-size:15px;line-height:1;color:inherit}
.tclash-steps strong{font:700 11px/1.2 system-ui,sans-serif;color:#f5e5c7}
.tclash-steps em{display:none!important}
.tclash-steps.done{max-height:0;padding:0;border:0}
.bca-duel-hud .tclash-steps{flex-wrap:nowrap}
@media(max-width:560px){
  .tclash-wrap{width:100%}
  .tclash-kicker{font-size:8px;letter-spacing:.1em}
  .tclash-top{margin-bottom:6px;gap:8px}
  .tclash-top strong{font-size:15px}
  .tclash-round{padding:5px 8px;gap:5px}
  .tclash-steps{gap:4px;margin-bottom:6px}
  .tclash-steps li{flex-direction:column;text-align:center;gap:2px;padding:4px 3px}
  .tclash-steps strong{font-size:9.5px}
  .tclash-steps li b{font-size:14px}
  .tclash-bottom span{font-size:10px}
  .bca-duel-hud .tclash-wrap{padding:8px 9px 9px}
  .bca-duel-hud .tclash-arena{height:104px}
}
@media(max-height:520px){.tclash-steps{display:none}.bca-duel-hud .tclash-arena{height:92px}}

/* ===== v3.42.56 comic "SCHACH!" banner + "SCHACH MATT!" finale ===== */
.myrqel-check-banner{position:absolute;left:50%;top:15%;z-index:590;width:min(78vw,420px);aspect-ratio:1.6;transform:translateX(-50%);display:grid;place-items:center;pointer-events:none;animation:mcbIn .55s cubic-bezier(.2,1.7,.4,1) both}
.myrqel-check-banner.out{animation:mcbOut .45s ease-in forwards}
.mcb-burst{position:absolute;inset:0;background:#ffdf1a;filter:drop-shadow(0 0 0 #140a00) drop-shadow(5px 6px 0 #140a00)}
.mcb-burst:after{content:"";position:absolute;inset:7%;background:#e5231b;clip-path:inherit}
.mcb-word{position:relative;font:900 clamp(40px,11vw,74px)/1 Impact,"Arial Black",Haettenschweiler,system-ui,sans-serif;color:#fff;letter-spacing:.02em;-webkit-text-stroke:.05em #140a00;paint-order:stroke fill;text-shadow:.05em .06em 0 #140a00;transform:rotate(-7deg)}
.mcb-sub{position:absolute;bottom:13%;font:800 clamp(11px,2.6vw,14px)/1 system-ui,sans-serif;color:#fff3c4;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 2px 0 #140a00,0 0 6px #140a00}
@keyframes mcbIn{0%{transform:translateX(-50%) scale(.1) rotate(-25deg);opacity:0}100%{transform:translateX(-50%) scale(1) rotate(0);opacity:1}}
@keyframes mcbOut{to{transform:translateX(-50%) scale(1.25) translateY(-14px);opacity:0}}
.myrqel-mate{position:absolute;inset:0;z-index:620;display:grid;place-items:center;overflow:auto;background:radial-gradient(circle at 50% 44%,rgba(255,200,0,.42),rgba(26,10,40,.94) 64%);animation:mmFade .3s ease-out both;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-sizing:border-box;padding:clamp(10px,2.5vw,28px);}
.myrqel-mate.lose{background:radial-gradient(circle at 50% 44%,rgba(229,35,27,.45),rgba(14,6,20,.96) 64%)}
.myrqel-mate.draw{background:radial-gradient(circle at 50% 44%,rgba(120,170,255,.4),rgba(10,10,30,.95) 64%)}
.mm-rays{position:absolute;inset:-60%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.13) 0 5deg,transparent 5deg 10deg);animation:mmSpin 50s linear infinite}
.mm-dots{position:absolute;inset:0;background:radial-gradient(rgba(0,0,0,.42) 1.3px,transparent 1.8px) 0 0/10px 10px;mix-blend-mode:multiply;opacity:.55}
.mm-stage{position:relative;width:min(92vw,560px);min-width:280px;max-width:100%;aspect-ratio:1;display:grid;place-items:center;align-content:center;gap:clamp(6px,1.6vw,12px);text-align:center;box-sizing:border-box}
.mm-burst,.mm-burst2{position:absolute;inset:2%;animation:mmBurst .7s cubic-bezier(.2,1.5,.4,1) both}
.mm-burst{background:#140a00;transform:scale(1.04)}
.mm-burst2{background:repeating-radial-gradient(circle at 50% 50%,#ffe600 0 14px,#ffd000 14px 28px);filter:none}
.mm-king{position:absolute;top:2%;font:900 clamp(40px,11vw,78px)/1 system-ui;color:#140a00;-webkit-text-stroke:2px #fff;transform:rotate(14deg);animation:mmTopple 1.2s .35s ease-in both;transform-origin:50% 100%}
.mm-word{position:relative;margin:0;display:grid;font:900 clamp(56px,17vw,128px)/.86 Impact,"Arial Black",Haettenschweiler,system-ui,sans-serif;text-transform:uppercase;color:#fff;-webkit-text-stroke:.055em #140a00;paint-order:stroke fill;text-shadow:.045em .055em 0 #e5231b,.09em .11em 0 #140a00;transform:rotate(-6deg) skew(-5deg);animation:mmPop .75s .15s cubic-bezier(.2,1.7,.4,1) both}
.mm-word span:nth-child(2){color:#ffe600;transform:translateX(.08em) rotate(3deg)}
.mm-bubble{position:relative;background:#fff;color:#140a00;border:3px solid #140a00;border-radius:18px;padding:.5em 1em;font:800 clamp(13px,3.4vw,19px)/1.15 system-ui,sans-serif;box-shadow:4px 5px 0 #140a00;animation:mmPop .6s .55s cubic-bezier(.2,1.6,.4,1) both}
.mm-bubble:before{content:"";position:absolute;top:-16px;left:30px;width:22px;height:22px;background:#fff;border-left:3px solid #140a00;border-top:3px solid #140a00;transform:rotate(45deg) skew(10deg,10deg)}
.mm-who{position:relative;font:900 clamp(22px,6vw,38px)/1 Impact,"Arial Black",system-ui,sans-serif;color:#fff;letter-spacing:.08em;background:#e5231b;border:3px solid #140a00;padding:.15em .6em;transform:rotate(3deg);box-shadow:4px 5px 0 #140a00;animation:mmPop .6s .7s cubic-bezier(.2,1.6,.4,1) both}
.myrqel-mate.win .mm-who{background:#19b84b}.myrqel-mate.draw .mm-who{background:#3a6fe0}
.mm-actions{position:relative;display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:4px;animation:mmPop .6s .9s cubic-bezier(.2,1.6,.4,1) both}
.mm-btn{font:900 clamp(16px,4.4vw,22px)/1 Impact,"Arial Black",system-ui,sans-serif;letter-spacing:.06em;color:#140a00;background:#fff;border:3px solid #140a00;border-radius:12px;padding:.55em 1.1em;cursor:pointer;box-shadow:4px 5px 0 #140a00;transition:transform .08s,box-shadow .08s}
.mm-btn.again{background:#ffe600}
.mm-btn:hover{transform:translate(-1px,-2px) rotate(-1deg);box-shadow:6px 8px 0 #140a00}.mm-btn:active{transform:translate(3px,4px);box-shadow:1px 1px 0 #140a00}
.mm-stars i{position:absolute;left:50%;top:46%;width:26px;height:26px;background:#ffe600;clip-path:polygon(50% 0,62% 36%,100% 38%,70% 60%,80% 100%,50% 76%,20% 100%,30% 60%,0 38%,38% 36%);transform:translate(-50%,-50%) scale(0);animation:mmStar 1.1s var(--t) ease-out both}
@keyframes mmFade{from{opacity:0}to{opacity:1}}
@keyframes mmSpin{to{transform:rotate(360deg)}}
@keyframes mmBurst{0%{transform:scale(.05) rotate(-30deg)}100%{transform:scale(1) rotate(0)}}
@keyframes mmPop{0%{transform:scale(.2) rotate(-14deg);opacity:0}100%{opacity:1}}
@keyframes mmTopple{0%{transform:rotate(0)}40%{transform:rotate(-8deg)}100%{transform:rotate(86deg) translate(40px,30px)}}
@keyframes mmStar{0%{transform:translate(-50%,-50%) scale(0) rotate(0)}30%{opacity:1}100%{transform:translate(calc(-50% + cos(var(--a))*var(--d)),calc(-50% + sin(var(--a))*var(--d))) scale(var(--s)) rotate(200deg);opacity:0}}
@media (prefers-reduced-motion:reduce){.mm-rays,.mm-king,.mm-stars i{animation:none}.mm-word,.mm-bubble,.mm-who,.mm-actions,.mm-burst,.mm-burst2{animation-duration:.01s}}

/* v3.42.83 — edge-to-edge viewport: eliminate theme/browser gutters on every device */
html.tsecrets-chess-fullscreen-page,
body.tsecrets-chess-fullscreen-page {
  width:100% !important;
  height:100% !important;
  min-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
  background:#120c08 !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app {
  position:fixed !important;
  inset:0 !important;
  width:100% !important;
  height:100vh !important;
  height:100dvh !important;
  min-height:0 !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:auto !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-shell {
  width:100% !important;
  min-height:100% !important;
  max-width:none !important;
}
/* Dynamic viewport is intentional: svh can leave a visible strip when mobile browser chrome collapses. */
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app {
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  height:100dvh !important;
  min-width:100vw !important;
  min-height:100vh !important;
  min-height:100dvh !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:hidden !important;
  background:#120c08 !important;
  transform:none !important;
}
html.tsecrets-chess-fullscreen-page,
body.tsecrets-chess-fullscreen-page {
  width:100% !important;
  height:100% !important;
  min-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
  overscroll-behavior:none !important;
  background:#120c08 !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app > .bca-shell {
  width:100% !important;
  height:100% !important;
  min-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  max-width:none !important;
}


/* v3.42.85 — remove the actual 3D host gutters shown in the edge-to-edge screenshot.
   Earlier viewport rules filled the outer app but left padding on .bca-layout and
   .bca-board-stage, so the WebGL host itself still began ~24px inside the viewport.
   Keep HUD controls positioned against the stage while making the render host full-bleed. */
html.tsecrets-chess-fullscreen-page,
body.tsecrets-chess-fullscreen-page {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  overscroll-behavior: none !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  min-width: 100vw !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  transform: none !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app > .bca-shell {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-layout {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-board-stage {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-board-wrap.bca-3d {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  overflow: hidden !important;
  background: #0b0705 !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-board-wrap.bca-3d:before {
  display: none !important;
}
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-board-wrap.bca-3d .bca-3d-canvas,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app .bca-board-wrap.bca-3d .bca-stage-bg {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: 0 !important;
}

/* v3.42.90 giant foot (Chaos mode): launcher button left of the bazooka + comic words */
.bca-foot-btn{position:absolute;z-index:80;top:max(16px,env(safe-area-inset-top,0px));right:calc(max(18px,env(safe-area-inset-right,0px)) + 132px);width:52px;height:52px;border:2px solid #e8a77a;border-radius:16px;background:linear-gradient(145deg,#4a2a1e,#1c0f09);box-shadow:0 16px 40px rgba(0,0,0,.4),0 0 0 3px rgba(230,130,90,.15),inset 0 0 16px rgba(255,160,110,.15);display:grid;place-content:center;cursor:pointer;animation:bzPulse 2.1s ease-in-out infinite}
.bca-foot-btn[hidden]{display:none}.bca-foot-btn svg{width:34px;height:34px;overflow:visible}
.bca-foot-btn .ft-leg{fill:#c99372;stroke:#2a1409;stroke-width:1.6}.bca-foot-btn .ft-toes,.bca-foot-btn .ft-hair{fill:none;stroke:#2a1409;stroke-width:1.8;stroke-linecap:round}
.bca-foot-btn b{position:absolute;right:-4px;bottom:-4px;min-width:19px;height:19px;padding:0 4px;border-radius:999px;background:#ff5a36;color:#fff;font:800 12px/19px system-ui;text-align:center;box-shadow:0 0 0 2px #1c0f05}
.bca-foot-btn.used{opacity:.4;filter:grayscale(.7);cursor:not-allowed;animation:none}.bca-foot-btn.used b{background:#555}
.bca-foot-btn.aiming{border-color:#ff5a36;box-shadow:0 0 0 4px rgba(255,90,54,.35),0 16px 40px rgba(0,0,0,.4)}
@media(max-width:700px){.bca-foot-btn{top:max(10px,env(safe-area-inset-top,0px));right:calc(max(10px,env(safe-area-inset-right,0px)) + 132px)}}
.bca-foot-word{position:absolute;z-index:90;pointer-events:none;transform:translate(-50%,-50%) rotate(var(--rot,0deg));font:900 clamp(34px,7vw,64px)/1 Impact,"Arial Black",system-ui,sans-serif;letter-spacing:.02em;color:#ffe14d;-webkit-text-stroke:3px #6b1300;paint-order:stroke fill;text-shadow:0 4px 0 #6b1300,0 8px 18px rgba(0,0,0,.55);white-space:nowrap;animation:ftWord 1.5s cubic-bezier(.2,1.4,.4,1) forwards}
.bca-foot-word.ouch{color:#ff6a4d;font-size:clamp(44px,9vw,84px)}.bca-foot-word.slurp{color:#b8ff8a;-webkit-text-stroke-color:#1c4a00;text-shadow:0 4px 0 #1c4a00}.bca-foot-word.pop{color:#8ae6ff;-webkit-text-stroke-color:#00364a;text-shadow:0 4px 0 #00364a}.bca-foot-word.again{color:#ff9bf0;-webkit-text-stroke-color:#4a0040;text-shadow:0 4px 0 #4a0040}
.bca-foot-word.small{font-size:clamp(20px,4.2vw,36px);-webkit-text-stroke-width:2px;text-shadow:0 3px 0 #6b1300,0 5px 10px rgba(0,0,0,.5);color:#fff2a8}   /* v3.42.96 bystander shouts (AAAH!, OHA!) */
@keyframes ftWord{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(.2)}14%{opacity:1;transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(1.3)}26%{transform:translate(-50%,-50%) rotate(var(--rot,0deg)) scale(.95)}78%{opacity:1;transform:translate(-50%,-62%) rotate(var(--rot,0deg)) scale(1)}100%{opacity:0;transform:translate(-50%,-90%) rotate(var(--rot,0deg)) scale(1.05)}}

/* v3.42.104 lightning Chaos control — deliberately sits immediately before the giant-foot icon */
.bca-lightning-btn{position:absolute;z-index:80;top:max(16px,env(safe-area-inset-top,0px));right:calc(max(18px,env(safe-area-inset-right,0px)) + 190px);width:52px;height:52px;border:2px solid #9fd8ff;border-radius:16px;background:linear-gradient(145deg,#182d4a,#09131f);box-shadow:0 16px 40px rgba(0,0,0,.4),0 0 0 3px rgba(120,190,255,.14),inset 0 0 18px rgba(150,210,255,.12);display:grid;place-content:center;cursor:pointer;animation:ltPulse 2.0s ease-in-out infinite}
.bca-lightning-btn[hidden]{display:none}.bca-lightning-btn svg{width:34px;height:34px;overflow:visible}.bca-lightning-btn .lt-bolt{fill:#eaf8ff;stroke:#69bfff;stroke-width:1.4;filter:drop-shadow(0 0 5px rgba(120,210,255,.8))}.bca-lightning-btn .lt-branch{fill:none;stroke:#bce8ff;stroke-width:2.4;stroke-linecap:round}.bca-lightning-btn b{position:absolute;right:-4px;bottom:-4px;min-width:19px;height:19px;padding:0 4px;border-radius:999px;background:#63b7ff;color:#06111d;font:800 12px/19px system-ui;text-align:center;box-shadow:0 0 0 2px #081522}.bca-lightning-btn.used{opacity:.4;filter:grayscale(.7);cursor:not-allowed;animation:none}.bca-lightning-btn.used b{background:#555;color:#fff}.bca-lightning-btn.aiming{border-color:#eaf8ff;box-shadow:0 0 0 4px rgba(120,205,255,.32),0 16px 40px rgba(0,0,0,.4)}
@keyframes ltPulse{0%,100%{transform:translateY(0);filter:brightness(.96)}50%{transform:translateY(-2px);filter:brightness(1.15)}}
@media(max-width:700px){.bca-lightning-btn{top:max(10px,env(safe-area-inset-top,0px));right:calc(max(10px,env(safe-area-inset-right,0px)) + 190px)}}

/* v3.42.104 award-winning lightning targeting reticle: premium storm/arc-reactor look */
.bca-lightning-hud{position:absolute;inset:0;z-index:77;pointer-events:none}.bca-lightning-hud[hidden]{display:none}
.bca-lightning-reticle{--lc:#d9f6ff;--lc2:#65cfff;position:fixed;left:50%;top:50%;width:250px;height:250px;margin:-125px 0 0 -125px;color:var(--lc);filter:drop-shadow(0 0 8px rgba(90,200,255,.75));transition:filter .15s}
.bca-lightning-reticle .ltr-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.ltr-ring{fill:none;vector-effect:non-scaling-stroke;transform-box:view-box;transform-origin:100px 100px}.ltr-bolt,.ltr-dot,.ltr-corner,.ltr-cross{transform-box:view-box;transform-origin:100px 100px}.ltr-ring-a{stroke:#dff9ff;stroke-width:1.5;stroke-dasharray:9 7;animation:ltrSpin 7s linear infinite}.ltr-ring-b{stroke:#67cfff;stroke-width:1;stroke-dasharray:2 9;animation:ltrSpinR 4.5s linear infinite}.ltr-corner{fill:none;stroke:#dff9ff;stroke-width:2.2;stroke-linecap:round;filter:drop-shadow(0 0 5px #69d8ff)}.ltr-cross{fill:none;stroke:#78d9ff;stroke-width:1;stroke-dasharray:12 6;opacity:.72}.ltr-bolt{fill:#f5fdff;stroke:#7edbff;stroke-width:1.4;filter:drop-shadow(0 0 8px #8de4ff);animation:ltrBolt 1s ease-in-out infinite}.ltr-dot{fill:#fff;filter:drop-shadow(0 0 7px #fff)}
.ltr-aura{position:absolute;left:50%;top:50%;width:125px;height:125px;margin:-62.5px;border-radius:50%;background:radial-gradient(circle,rgba(140,225,255,.22),rgba(50,150,255,.07) 42%,transparent 72%);animation:ltrAura 1.1s ease-in-out infinite}.ltr-core{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px;border-radius:50%;background:#effcff;box-shadow:0 0 12px 4px rgba(120,220,255,.85);animation:ltrCore .55s ease-in-out infinite alternate}
.ltr-hud{position:absolute;font:900 10px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.16em;color:#dff9ff;text-shadow:0 1px 3px #00101a,0 0 8px #319ed0;background:rgba(3,14,23,.72);border:1px solid rgba(130,220,255,.48);padding:6px 8px;border-radius:5px;white-space:nowrap;box-shadow:inset 0 0 12px rgba(100,190,255,.08)}.ltr-tl{left:0;top:22px}.ltr-bl{left:0;bottom:20px}.ltr-br{right:0;bottom:20px}.bca-lightning-reticle[data-state="piece"]{filter:drop-shadow(0 0 9px rgba(150,230,255,.95))}.bca-lightning-reticle[data-state="piece"] .ltr-ring-a{stroke:#fff}.bca-lightning-reticle[data-state="king"]{--lc:#fff7b0;--lc2:#ffe066;filter:drop-shadow(0 0 10px rgba(255,224,102,.95))}.bca-lightning-reticle[data-state="king"] .ltr-ring-a{stroke:#fff7b0;stroke-width:2.2}.bca-lightning-reticle[data-state="king"] .ltr-ring-b{stroke:#ffd84d;stroke-width:1.5}.bca-lightning-reticle[data-state="king"] .ltr-bolt{fill:#fffbe2;stroke:#ffd84d;animation:ltrKingBolt .42s ease-in-out infinite}.bca-lightning-reticle[data-state="king"] .ltr-core{box-shadow:0 0 18px 7px rgba(255,224,102,.95)}.bca-lightning-reticle[data-state="empty"]{opacity:.62;filter:saturate(.55) grayscale(.15)}.bca-lightning-reticle[data-state="empty"] .ltr-bolt{opacity:.35}
@keyframes ltrSpin{to{transform:rotate(360deg)}}@keyframes ltrKingBolt{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(2px,-3px) scale(1.14)}}@keyframes ltrSpinR{to{transform:rotate(-360deg)}}@keyframes ltrBolt{50%{opacity:.55;transform:translate(2px,-2px) scale(1.08)} }@keyframes ltrAura{50%{transform:scale(1.15);opacity:.72}}@keyframes ltrCore{to{transform:scale(1.35);opacity:.72}}
@media(max-width:700px){.bca-lightning-reticle{width:188px;height:188px;margin:-94px 0 0 -94px}.ltr-hud{font-size:8px;padding:5px 6px}.ltr-tl{top:12px}.ltr-bl,.ltr-br{bottom:12px}}
@media(prefers-reduced-motion:reduce){.bca-lightning-reticle *{animation:none!important}}

/* v3.42.92 giant-foot targeting reticle */
.bca-foot-hud{position:absolute;inset:0;z-index:75;pointer-events:none}.bca-foot-hud[hidden]{display:none}
.bca-foot-reticle{--c:#ffd23c;--c2:#ff7a1a;position:fixed;left:0;top:0;width:230px;height:230px;margin:-115px 0 0 -115px;pointer-events:none;z-index:76;color:var(--c);transition:filter .15s;will-change:translate}
.bca-foot-reticle .ftr-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 6px rgba(0,0,0,.65)) drop-shadow(0 0 14px color-mix(in srgb,var(--c) 45%,transparent))}
.bca-foot-reticle .ftr-shadow{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;background:radial-gradient(circle,rgba(0,0,0,.42),rgba(0,0,0,.0) 68%);animation:ftrShadow 1.1s ease-in-out infinite}
.ftr-hazard-a,.ftr-hazard-b{fill:none;stroke-width:9;transform-origin:100px 100px}
.ftr-hazard-a{stroke:var(--c);stroke-dasharray:14 14;animation:ftrSpin 14s linear infinite}
.ftr-hazard-b{stroke:#14100a;stroke-dasharray:14 14;stroke-dashoffset:14;animation:ftrSpin 14s linear infinite}
.ftr-ring{fill:none;stroke:var(--c);stroke-width:1.6;stroke-dasharray:3 6;opacity:.85;transform-origin:100px 100px;animation:ftrSpin 9s linear infinite reverse}
.ftr-brackets path,.ftr-ticks path{fill:none;stroke:var(--c);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.ftr-brackets{transform-origin:100px 100px;animation:ftrBrk 1.1s ease-in-out infinite}
.ftr-chev path{fill:none;stroke:var(--c2);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;animation:ftrChev 1s ease-in infinite}.ftr-chev .c2{animation-delay:.18s;opacity:.7}
.ftr-print{transform-origin:100px 100px;animation:ftrStomp 1.1s ease-in-out infinite}
.ftr-sole,.ftr-toe{fill:color-mix(in srgb,var(--c2) 38%,transparent);stroke:var(--c);stroke-width:3;stroke-linejoin:round}
.ftr-dot{fill:#fff;stroke:#14100a;stroke-width:1.5}
.bca-foot-reticle .ftr-hud{position:absolute;font:800 11px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.12em;color:var(--c);text-shadow:0 1px 2px #000,0 0 6px rgba(0,0,0,.8);white-space:nowrap;background:rgba(14,10,6,.62);border:1px solid color-mix(in srgb,var(--c) 55%,transparent);padding:4px 7px;border-radius:5px}
.ftr-tl{left:50%;top:-10px;transform:translateX(-50%)}.ftr-bl{left:50%;bottom:-8px;transform:translateX(-50%)}.ftr-br{left:50%;right:auto;bottom:-38px;transform:translateX(-50%);background:var(--c)!important;color:#14100a!important;text-shadow:none!important;animation:ftrBlink .9s steps(2) infinite}
.bca-foot-reticle[data-state="piece"]{--c:#ff4a2a;--c2:#ff2a1a}.bca-foot-reticle[data-state="piece"] .ftr-svg{transform:scale(1.07);animation:ftrLock .35s ease-out}
.bca-foot-reticle[data-state="king"]{--c:#7fd8ff;--c2:#ffd23c}
.bca-foot-reticle[data-state="empty"]{--c:#a8a095;--c2:#8a8278;filter:saturate(.5) opacity(.85)}.bca-foot-reticle[data-state="empty"] .ftr-chev,.bca-foot-reticle[data-state="empty"] .ftr-print{opacity:.35;animation:none}
@keyframes ftrSpin{to{transform:rotate(360deg)}}
@keyframes ftrBrk{50%{transform:scale(.93)}}
@keyframes ftrChev{0%{transform:translateY(-8px);opacity:0}30%{opacity:1}100%{transform:translateY(22px);opacity:0}}
@keyframes ftrStomp{0%,100%{transform:scale(1)}50%{transform:scale(.86)}}
@keyframes ftrShadow{0%,100%{transform:scale(.9);opacity:.6}50%{transform:scale(1.15);opacity:1}}
@keyframes ftrBlink{50%{opacity:.55}}
@keyframes ftrLock{0%{transform:scale(1.35)}100%{transform:scale(1.07)}}
@media(max-width:700px){.bca-foot-reticle{width:176px;height:176px;margin:-88px 0 0 -88px}.bca-foot-reticle .ftr-hud{font-size:9px}}
@media(prefers-reduced-motion:reduce){.bca-foot-reticle *{animation:none!important}}
canvas.bca-foot-aim{cursor:none!important}

/* v3.42.108: quiet, privacy-first live lobby footer */
.myrqel-live-presence{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 0;padding-top:10px;border-top:1px solid rgba(20,10,0,.12);color:#766a55;font:600 10px/1.4 system-ui,sans-serif;letter-spacing:.035em;text-align:center;opacity:.88}
.myrqel-live-presence b{color:#302619;font-weight:850;font-variant-numeric:tabular-nums}
.myrqel-live-dot{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#28a56a;box-shadow:0 0 0 3px rgba(40,165,106,.12)}
.myrqel-live-sep{padding:0 3px;color:#b0a58f}

/* v3.42.130: live status - active players / multiplayer / solo */
.myrqel-live-presence{display:flex;align-items:stretch;justify-content:center;gap:0;margin:14px 0 0;padding:10px 0 0;border-top:1px solid rgba(20,10,0,.12);opacity:1}
.myrqel-live-presence .myrqel-live-dot{align-self:center;margin-right:12px;animation:mlpPulse 2.2s ease-in-out infinite}
.mlp-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 14px;min-width:78px;border-left:1px solid rgba(20,10,0,.12)}
.mlp-stat:first-of-type{border-left:0}
.mlp-stat b{font:850 20px/1 system-ui,sans-serif;color:#302619;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.mlp-stat i{font:700 9px/1.2 system-ui,sans-serif;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:#766a55}
.mlp-stat b.tick{animation:mlpTick .45s ease-out}
.myrqel-live-presence.is-offline .myrqel-live-dot{background:#b0a58f;box-shadow:none;animation:none}
.myrqel-live-presence.is-offline{opacity:.6}
@keyframes mlpPulse{50%{box-shadow:0 0 0 6px rgba(40,165,106,0)}}
@keyframes mlpTick{0%{transform:translateY(-3px);opacity:.4}100%{transform:none;opacity:1}}
@media(max-width:420px){.mlp-stat{padding:0 9px;min-width:64px}.mlp-stat b{font-size:17px}}
@media(prefers-reduced-motion:reduce){.myrqel-live-dot,.mlp-stat b.tick{animation:none!important}}

/* v3.42.144 ice storm Chaos control - sits right next to the lightning icon */
.bca-ice-btn{position:absolute;z-index:80;top:max(16px,env(safe-area-inset-top,0px));right:calc(max(18px,env(safe-area-inset-right,0px)) + 248px);width:52px;height:52px;border:2px solid #bfeaff;border-radius:16px;background:linear-gradient(145deg,#1d4d6e,#0a2233);box-shadow:0 16px 40px rgba(0,0,0,.4),0 0 0 3px rgba(150,225,255,.16),inset 0 0 18px rgba(190,235,255,.18);display:grid;place-content:center;cursor:pointer;animation:icePulse 2.4s ease-in-out infinite}
.bca-ice-btn[hidden]{display:none}.bca-ice-btn svg{width:36px;height:36px;overflow:visible}.bca-ice-btn .ice-flake{fill:none;stroke:#e9f9ff;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 5px rgba(140,225,255,.9))}.bca-ice-btn .ice-core{fill:#fff;stroke:#7fd3ff;stroke-width:1.6}
.bca-ice-btn b{position:absolute;right:-4px;bottom:-4px;min-width:19px;height:19px;padding:0 4px;border-radius:999px;background:#8fdcff;color:#06202e;font:800 12px/19px system-ui;text-align:center;box-shadow:0 0 0 2px #081a26}
.bca-ice-btn.used{opacity:.4;filter:grayscale(.7);cursor:not-allowed;animation:none}.bca-ice-btn.used b{background:#555;color:#fff}.bca-ice-btn.aiming{border-color:#fff;box-shadow:0 0 0 3px rgba(190,240,255,.5),0 0 28px rgba(150,225,255,.8)}
@keyframes icePulse{0%,100%{transform:translateY(0);filter:brightness(.96)}50%{transform:translateY(-2px);filter:brightness(1.18)}}
@media(max-width:700px){.bca-ice-btn{top:max(10px,env(safe-area-inset-top,0px));right:calc(max(10px,env(safe-area-inset-right,0px)) + 248px)}}
@media(prefers-reduced-motion:reduce){.bca-ice-btn{animation:none}}

/* v3.49.0 ice-storm targeting reticle: frost-glass hexagon + six-armed snowflake (compositor-only animations) */
.bca-ice-hud{position:absolute;inset:0;z-index:77;pointer-events:none}.bca-ice-hud[hidden]{display:none}
.bca-ice-reticle{--ic:#eafcff;--ic2:#8fe0ff;position:fixed;left:0;top:0;width:250px;height:250px;margin:-125px 0 0 -125px;will-change:translate;color:var(--ic);filter:drop-shadow(0 0 8px rgba(120,215,255,.7));transition:filter .15s}
.bca-ice-reticle .icr-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.icr-hex{fill:none;vector-effect:non-scaling-stroke;transform-origin:100px 100px}.icr-hex-a{stroke:#eafcff;stroke-width:1.6;stroke-dasharray:14 8;animation:icrSpin 14s linear infinite}.icr-hex-b{stroke:#8fe0ff;stroke-width:1;stroke-dasharray:3 9;animation:icrSpinR 9s linear infinite}
.icr-corner{fill:none;stroke:#eafcff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #8fe0ff)}.icr-cross{fill:none;stroke:#9be5ff;stroke-width:1.2;stroke-linecap:round;opacity:.8}
.icr-flake{fill:none;stroke:#f4fdff;stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 6px #9be5ff);transform-origin:100px 100px;animation:icrFlake 5s ease-in-out infinite}.icr-dot{fill:#fff;filter:drop-shadow(0 0 7px #fff)}
.icr-aura{position:absolute;left:50%;top:50%;width:130px;height:130px;margin:-65px;border-radius:50%;background:radial-gradient(circle,rgba(170,235,255,.24),rgba(90,170,255,.08) 44%,transparent 72%);animation:icrAura 1.6s ease-in-out infinite}
.icr-core{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px;border-radius:50%;background:#f2fdff;box-shadow:0 0 12px 4px rgba(150,225,255,.8);animation:icrCore .7s ease-in-out infinite alternate}
.icr-hud{position:absolute;font:900 10px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.16em;color:#eafcff;text-shadow:0 1px 3px #001018,0 0 8px #3fa8d8;background:rgba(4,16,26,.72);border:1px solid rgba(160,228,255,.5);padding:6px 8px;border-radius:5px;white-space:nowrap;box-shadow:inset 0 0 12px rgba(120,200,255,.1)}.icr-tl{left:0;top:22px}.icr-bl{left:0;bottom:32px}.icr-br{left:0;bottom:8px}
.bca-ice-reticle[data-state="piece"]{filter:drop-shadow(0 0 10px rgba(180,240,255,.95))}.bca-ice-reticle[data-state="piece"] .icr-hex-a{stroke:#fff;stroke-width:2.2}.bca-ice-reticle[data-state="piece"] .icr-flake{animation-duration:1.8s}
.bca-ice-reticle[data-state="king"]{--ic:#ffe9a8;filter:drop-shadow(0 0 10px rgba(255,214,120,.9))}.bca-ice-reticle[data-state="king"] .icr-hex-a,.bca-ice-reticle[data-state="king"] .icr-corner{stroke:#ffe9a8}.bca-ice-reticle[data-state="king"] .icr-hex-b,.bca-ice-reticle[data-state="king"] .icr-cross{stroke:#ffd36b}.bca-ice-reticle[data-state="king"] .icr-flake{stroke:#fff3cf}
@keyframes icrSpin{to{transform:rotate(360deg)}}@keyframes icrSpinR{to{transform:rotate(-360deg)}}@keyframes icrFlake{50%{transform:rotate(30deg) scale(1.08);opacity:.78}}@keyframes icrAura{50%{transform:scale(1.14);opacity:.7}}@keyframes icrCore{to{transform:scale(1.35);opacity:.72}}
@media(max-width:700px){.bca-ice-reticle{width:188px;height:188px;margin:-94px 0 0 -94px}.icr-hud{font-size:8px;padding:5px 6px}.icr-tl{top:12px}.icr-bl{bottom:26px}.icr-br{bottom:6px}}
@media(prefers-reduced-motion:reduce){.bca-ice-reticle *{animation:none!important}}


/* v3.49.22 — first-paint hardening: the WP theme must never flash before the game. */
html.tsecrets-chess-fullscreen-page,
body.tsecrets-chess-fullscreen-page{
  width:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#090706!important;
}
body.tsecrets-chess-fullscreen-page > *{
  visibility:hidden!important;
}
body.tsecrets-chess-fullscreen-page > .tsecrets-chess-app,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app *{
  visibility:visible!important;
}
body.tsecrets-chess-fullscreen-page > .tsecrets-chess-app,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  min-height:100vh!important;
  margin:0!important;
  padding:clamp(10px,1.25vw,24px)!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:auto!important;
  overscroll-behavior:none!important;
}


/* v3.49.30 — mobile landscape + short-height responsiveness for SCHACH / SCHACH MATT.
   The finale stays readable without overflowing the viewport; when a very wide composition is
   needed, the overlay itself scrolls instead of clipping the word, buttons or score. */
@media (max-width:700px){
  .myrqel-check-banner{top:8%;width:min(92vw,520px);max-width:calc(100vw - 20px);}
  .myrqel-check-banner .mcb-word{font-size:clamp(36px,12vw,72px)}
  .myrqel-check-banner .mcb-sub{font-size:clamp(9px,2.8vw,13px)}
  .myrqel-mate{align-items:start;justify-content:center;overflow:auto;padding:10px 12px calc(16px + env(safe-area-inset-bottom));}
  .myrqel-mate .mm-stage{width:min(94vw,560px);min-height:calc(100dvh - 24px);height:auto;aspect-ratio:auto;padding:36px 0 18px;}
  .myrqel-mate .mm-word{font-size:clamp(48px,15.5vw,118px)}
  .myrqel-mate .mm-actions{max-width:100%;}
}
@media (max-width:700px) and (max-height:520px){
  .myrqel-mate{padding:6px 10px 12px;}
  .myrqel-mate .mm-stage{width:max(92vw,500px);min-width:500px;min-height:0;padding:18px 0 12px;gap:7px;}
  .myrqel-mate .mm-word{font-size:clamp(44px,11vw,90px)}
  .myrqel-mate .mm-king{top:0;font-size:clamp(34px,8vw,58px)}
  .myrqel-mate .mm-bubble{font-size:clamp(11px,2.3vw,16px)}
  .myrqel-check-banner{top:5%;width:min(78vw,500px);}
}
@media (prefers-reduced-motion:reduce){.myrqel-mate,.myrqel-check-banner{scroll-behavior:auto}}


/* v3.49.30 — the enterprise fullscreen rule above previously forced the 3D canvas to 100% x 100%,
   which made the earlier golden-ratio aspect-ratio declaration ineffective. */
@media (min-width:701px){
  .tsecrets-chess-app .bca-board-stage{display:grid!important;place-items:center;overflow:auto;}
  .tsecrets-chess-app .bca-board-wrap.bca-3d{
    width:min(100%,calc(100dvh * 1.61803398875))!important;
    height:min(100%,calc(100vw / 1.61803398875))!important;
    aspect-ratio:1.61803398875/1!important;
    flex:none;
  }
}
@media (max-width:820px) and (orientation:landscape){
  .tsecrets-chess-app .bca-layout{overflow:auto hidden;}
  .tsecrets-chess-app .bca-board-stage{overflow:auto hidden;}
  .tsecrets-chess-app .bca-board-wrap.bca-3d{
    width:min(100vw,calc(100dvh * 1.61803398875))!important;
    height:100%!important;
    aspect-ratio:1.61803398875/1!important;
    margin-inline:auto;
  }
}
/* v3.49.39 language picker: compact, keyboard accessible, RTL-safe. */
.bca-language-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}
.bca-language-btn{min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border:1px solid rgba(240,213,140,.14);border-radius:9px;background:rgba(255,255,255,.035);color:#e8dcc7;font:700 10px/1.1 system-ui,sans-serif;cursor:pointer;transition:transform .12s cubic-bezier(.2,.8,.2,1)}
.bca-language-btn:hover,.bca-language-btn:focus-visible{transform:translateY(-1px);border-color:rgba(240,213,140,.48);background:rgba(240,213,140,.09);outline:none}
.bca-language-btn.is-active{border-color:rgba(240,213,140,.72);background:rgba(240,213,140,.13);box-shadow:inset 0 0 0 1px rgba(240,213,140,.12),0 0 18px rgba(240,213,140,.06)}
.bca-lang-flag{font-size:17px;line-height:1}
.bca-language-auto{display:block;margin-top:7px;color:#8e7d69;font-size:8px;line-height:1.35;letter-spacing:.03em}
html[dir="rtl"] .bca-game-menu-panel,html[dir="rtl"] .myrqel-main-menu{direction:rtl}
@media(max-width:520px){.bca-language-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.bca-language-btn{transition:none}}


/* v3.49.40: first-paint fallback for page builders/template-rendered shortcodes. */
@supports selector(body:has(.tsecrets-chess-app)) {
  html:has(.tsecrets-chess-app),
  body:has(.tsecrets-chess-app) {
    width:100%!important;min-width:100%!important;height:100%!important;min-height:100%!important;
    margin:0!important;padding:0!important;overflow:hidden!important;background:#090706!important;
  }
  body:has(.tsecrets-chess-app)>:not(.tsecrets-chess-app) {visibility:hidden!important;pointer-events:none!important}
  body:has(.tsecrets-chess-app) .tsecrets-chess-app {
    visibility:visible!important;position:fixed!important;inset:0!important;z-index:2147483000!important;
    width:100vw!important;max-width:none!important;height:100dvh!important;min-height:100vh!important;
    margin:0!important;padding:clamp(10px,1.25vw,24px)!important;border:0!important;border-radius:0!important;
    box-shadow:none!important;overflow:auto!important;background:#090706!important;overscroll-behavior:none!important;
  }
}

/* ==== v3.49.45 menu / launch smoothness ====
   1) The menu + loader entrance animations used to play at first paint, then the root was moved into <body> by the boot script (a DOM move restarts every CSS animation):
      the yellow burst and all menu texts played TWICE. They now stay on their first frame until the script is ready (.tc-ready, loader: .tc-ready, menu: .tc-go = loader gone) and then play exactly once.
   2) The huge spinning ray layer (220% x 220%) + a full-screen multiply blend on top of it were re-composited every frame: smaller square layer, no blend mode (black dots under
      `multiply` look identical to plain alpha black). 3) The "3D ARENA WIRD GELADEN" panel can never flash through during a menu launch. 4) The fullscreen backdrop is the loader colour. */
.tsecrets-chess-app:not(.tc-go) .myrqel-main-menu,
.tsecrets-chess-app:not(.tc-go) .myrqel-main-menu *,
.tsecrets-chess-app:not(.tc-go) .myrqel-main-menu *::before,
.tsecrets-chess-app:not(.tc-go) .myrqel-main-menu *::after{animation-play-state:paused!important}
.tsecrets-chess-app:not(.tc-ready) .myrqel-loading-screen,
.tsecrets-chess-app:not(.tc-ready) .myrqel-loading-screen *{animation-play-state:paused!important}
.myrqel-main-menu>.mm-rays{inset:auto;left:50%;top:50%;width:145vmax;height:145vmax;margin:-72.5vmax 0 0 -72.5vmax;will-change:transform;backface-visibility:hidden;contain:strict}
.myrqel-main-menu>.mm-dots{mix-blend-mode:normal;background:radial-gradient(rgba(0,0,0,.42) 1.3px,transparent 1.8px) 0 0/10px 10px;opacity:.55}
.myrqel-main-menu .mm-burst,.myrqel-main-menu .mm-burst2,.myrqel-main-menu .mm-word,.myrqel-main-menu .mm-bubble,.myrqel-main-menu .mm-who,.myrqel-main-menu .mm-actions,.mm-stars i{backface-visibility:hidden}
.tsecrets-chess-app .bca-board-wrap.bca-3d-loading:after{display:none!important}
.tsecrets-chess-app:fullscreen,.tsecrets-chess-app:-webkit-full-screen{background:#060403!important}
.tsecrets-chess-app::backdrop{background:#060403}
html:fullscreen,html:-webkit-full-screen{background:#060403}

/* ==== v3.49.47 — Start/Vollbild: kein Bildsprung, kein schwarzer Balken ====
   Ursache: Die Wurzel hatte mehrfach `min-height:100vh` (= GROSSER Viewport, auf Handys höher als der sichtbare Bereich) zusammen mit
   `height:100dvh`/`100vw` und `overflow:auto`. Beim Wechsel in den echten Vollbildmodus rechnet der Browser vh/dvh/vw kurz mit dem ALTEN Viewport,
   die Wurzel ist dann höher/niedriger als der Bildschirm -> Inhalt springt (scrollTop) und unten schaut der dunkle Wurzel-Hintergrund als Balken heraus.
   Fix: Im Spiel-Layout nie mehr min-height:100vh/overflow:auto; im Vollbild rein relative Maße (100 %) gegen die Top-Layer-Fläche des Browsers. */
html.tsecrets-chess-fullscreen-page body.tsecrets-chess-fullscreen-page .tsecrets-chess-app,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app{
  min-height:0!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
html.tsecrets-chess-fullscreen-page body.tsecrets-chess-fullscreen-page .tsecrets-chess-app:fullscreen,
html.tsecrets-chess-fullscreen-page body.tsecrets-chess-fullscreen-page .tsecrets-chess-app:-webkit-full-screen,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app:fullscreen,
body.tsecrets-chess-fullscreen-page .tsecrets-chess-app:-webkit-full-screen,
.tsecrets-chess-app:fullscreen,
.tsecrets-chess-app:-webkit-full-screen{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  transform:none!important;
}
/* Solange das Menü sichtbar ist, hat auch der Hintergrund dahinter die Menüfarbe: selbst ein 1-Frame-Spalt beim Übergang bleibt unsichtbar. */
.tsecrets-chess-app:has(.myrqel-main-menu.show),
.tsecrets-chess-app:has(.myrqel-main-menu.show):fullscreen,
.tsecrets-chess-app:has(.myrqel-main-menu.show):-webkit-full-screen{background:#0e0618!important}
.tsecrets-chess-app:fullscreen .myrqel-main-menu,
.tsecrets-chess-app:-webkit-full-screen .myrqel-main-menu,
.tsecrets-chess-app:fullscreen .myrqel-loading-screen,
.tsecrets-chess-app:-webkit-full-screen .myrqel-loading-screen{inset:0;width:100%;height:100%}

/* ==========================================================================
   v3.49.72 — Superweapon bar: magnetic hover, per-weapon icon choreography, single-selection state,
   reticle birth at the button corner, lightning lock-on
   ========================================================================== */
@property --swA{syntax:'<angle>';inherits:false;initial-value:0deg}
.sw-btn{--sw:#ffb144;--sw2:#ff5a36;--tx:0px;--ty:0px;--mx:26px;--my:26px;isolation:isolate;animation:none;transform:translate(var(--tx),var(--ty));transition:transform .5s cubic-bezier(.2,.9,.2,1),box-shadow .35s,border-color .35s,filter .4s,opacity .4s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.sw-bz{--sw:#ffb144;--sw2:#ff5a36}.sw-lt{--sw:#9fd8ff;--sw2:#eaf8ff}.sw-ic{--sw:#bfeaff;--sw2:#6fd0ff}.sw-ft{--sw:#e8a77a;--sw2:#ff7a45}
.sw-btn::before{content:"";position:absolute;inset:-4px;border-radius:20px;padding:2px;background:conic-gradient(from var(--swA),transparent 0 58%,var(--sw) 78%,#fff 90%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.32;transition:opacity .35s;animation:none;pointer-events:none;z-index:-1}
.sw-btn::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(70px circle at var(--mx) var(--my),color-mix(in srgb,var(--sw) 52%,transparent),transparent 64%);opacity:0;transition:opacity .3s;pointer-events:none}
.sw-btn:not(.used):hover::after{mix-blend-mode:screen}
.sw-btn:not(.used):hover::before,.sw-btn.aiming::before{animation:swSpin 5s linear infinite}
.sw-btn.used::before,.sw-btn.used::after{display:none}
.sw-btn .sw-ico{transition:transform .55s cubic-bezier(.2,1.5,.3,1),filter .4s;transform:translate(calc(var(--tx)*.7),calc(var(--ty)*.7));pointer-events:none}
.sw-btn .sw-tip{position:absolute;top:calc(100% + 12px);right:0;display:flex;gap:9px;align-items:baseline;padding:7px 11px;border-radius:10px;background:rgba(8,10,16,.78);border:1px solid color-mix(in srgb,var(--sw) 55%,transparent);box-shadow:0 10px 30px rgba(0,0,0,.45);font:700 12px/1 system-ui,sans-serif;color:#fff;white-space:nowrap;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.96);transform-origin:90% 0;transition:opacity .22s,transform .35s cubic-bezier(.2,1.3,.3,1),visibility 0s linear .22s;pointer-events:none;z-index:2}
.sw-tip strong{color:var(--sw);font-weight:800}.sw-tip em{font-style:normal;font-weight:600;opacity:.72}
.sw-rip{position:absolute;left:var(--rx);top:var(--ry);width:10px;height:10px;margin:-5px;border-radius:50%;border:2px solid var(--sw);pointer-events:none;animation:swRip .7s cubic-bezier(.1,.6,.3,1) forwards;z-index:3}
@keyframes swSpin{to{--swA:360deg}}@keyframes swRip{from{transform:scale(1);opacity:.9}to{transform:scale(7);opacity:0}}
@keyframes swPop{0%{transform:scale(1)}35%{transform:scale(.8) rotate(-6deg)}70%{transform:scale(1.18) rotate(3deg)}100%{transform:scale(1)}}
@keyframes swShake{20%{translate:-4px 0}40%{translate:4px 0}60%{translate:-3px 0}80%{translate:2px 0}}
@keyframes swRecoil{0%{transform:none}25%{transform:translateX(-6px) rotate(-5deg)}60%{transform:translateX(2px)}100%{transform:none}}
@keyframes swSpark{0%{opacity:0;transform:scale(.3)}30%{opacity:1;transform:scale(1.5)}100%{opacity:.85;transform:scale(1)}}
@keyframes swFlick{0%,100%{filter:drop-shadow(0 0 5px rgba(120,210,255,.8))}12%{filter:brightness(2.2) drop-shadow(0 0 12px #fff)}24%{filter:brightness(.7)}38%{filter:brightness(2) drop-shadow(0 0 14px #9fe3ff)}55%{filter:drop-shadow(0 0 8px rgba(120,210,255,.9))}}
@keyframes swStomp{0%{transform:translateY(-5px) rotate(-8deg)}45%{transform:translateY(-9px) rotate(-12deg)}70%{transform:translateY(4px) rotate(2deg)}100%{transform:none}}
.sw-bz .bz-spark{transform-box:fill-box;transform-origin:left center}
.sw-lt .lt-branch{stroke-dasharray:14;stroke-dashoffset:14;transition:stroke-dashoffset .38s cubic-bezier(.3,.8,.3,1)}
.sw-ic .ice-flake,.sw-ic .ice-core{transform-box:view-box;transform-origin:50% 50%;transition:transform .9s cubic-bezier(.2,.9,.2,1)}
@media(hover:hover){
  .sw-btn:not(.used):hover{transform:translate(var(--tx),var(--ty)) translateY(-3px) scale(1.08);border-color:#fff;box-shadow:0 22px 46px rgba(0,0,0,.5),0 0 0 3px color-mix(in srgb,var(--sw) 30%,transparent),0 0 30px color-mix(in srgb,var(--sw) 50%,transparent),inset 0 0 22px color-mix(in srgb,var(--sw) 30%,transparent)}
  .sw-btn:not(.used):hover::before{opacity:1;animation:swSpin 1.6s linear infinite}.sw-btn:not(.used):hover::after{opacity:1}
  .sw-btn:hover .sw-tip{transition:opacity .22s,transform .35s cubic-bezier(.2,1.3,.3,1),visibility 0s;opacity:1;visibility:visible;transform:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .sw-bz:not(.used):hover .sw-ico{animation:swRecoil .6s cubic-bezier(.2,.9,.3,1)}.sw-bz:not(.used):hover .bz-spark{animation:swSpark .5s ease-out}
  .sw-lt:not(.used):hover .lt-bolt{animation:swFlick .6s steps(1,end)}.sw-lt:not(.used):hover .lt-branch{stroke-dashoffset:0}
  .sw-ic:not(.used):hover .ice-flake{transform:rotate(60deg) scale(1.1)}.sw-ic:not(.used):hover .ice-core{transform:scale(1.7)}
  .sw-ft:not(.used):hover .sw-ico{transform:translate(calc(var(--tx)*.7),calc(var(--ty)*.7 - 4px)) rotate(-9deg)}
}
.sw-btn:not(.used):active{transform:translate(var(--tx),var(--ty)) scale(.9);transition-duration:.08s}
.sw-btn.sw-pop .sw-ico{animation:swPop .5s cubic-bezier(.2,1.6,.3,1)}.sw-ft.sw-pop .sw-ico{animation:swStomp .5s cubic-bezier(.3,1.4,.4,1)}
.sw-btn.sw-shake{animation:swShake .35s linear}
/* the selected weapon: lit ring, others step back */
.sw-btn.aiming{border-color:#fff;box-shadow:0 18px 44px rgba(0,0,0,.5),0 0 0 4px color-mix(in srgb,var(--sw) 38%,transparent),0 0 34px color-mix(in srgb,var(--sw) 60%,transparent),inset 0 0 22px color-mix(in srgb,var(--sw) 35%,transparent)}
.sw-btn.aiming::before{opacity:1;animation:swSpin 1.1s linear infinite}.sw-btn.aiming .sw-ico{filter:drop-shadow(0 0 8px var(--sw))}
.sw-lt.aiming .lt-branch{stroke-dashoffset:0}
[data-sw-active] .sw-btn:not(.aiming){opacity:.5;filter:saturate(.45) brightness(.82);transform:translate(var(--tx),var(--ty)) scale(.93)}
[data-sw-active] .sw-btn:not(.aiming):not(.used):hover{opacity:.95;filter:none}
/* reticle birth: grows out of the clicked icon (scale+spin), then glides to the cursor */
.sw-ret{transition:scale .62s cubic-bezier(.16,1.3,.3,1),rotate .62s cubic-bezier(.16,1,.3,1),opacity .3s,filter .15s}
.sw-ret.sw-spawn{scale:.16;rotate:-120deg;opacity:0;transition:none}
.sw-ret.sw-fly{transition:scale .62s cubic-bezier(.16,1.3,.3,1),rotate .62s cubic-bezier(.16,1,.3,1),opacity .3s,filter .15s}
/* lightning reticle: position stays cursor-true; only the reticle artwork animates */
.bca-lightning-reticle{left:0;top:0;--k:1;will-change:translate;transition:filter .15s}
.ltr-lockgroup{transform-origin:100px 100px;transform:scale(1)}
.ltr-ring-a{transition:stroke-dasharray .45s ease,stroke .3s}.ltr-cross{transition:opacity .3s,stroke-dasharray .4s}
.ltr-lockring{fill:none;stroke:#fff;stroke-width:1.6;vector-effect:non-scaling-stroke;opacity:0;transform-origin:100px 100px;transform:scale(1.6) rotate(-60deg);transition:opacity .25s,transform .5s cubic-bezier(.16,1.3,.3,1);stroke-dasharray:22 9;filter:drop-shadow(0 0 6px #9fe3ff)}
.ltr-notch{fill:#fff;opacity:0;transform-origin:100px 100px;transform:scale(1.45);transition:opacity .25s,transform .45s cubic-bezier(.16,1.4,.3,1);filter:drop-shadow(0 0 5px #9fe3ff)}
.ltr-shock{fill:none;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;opacity:0;transform-origin:100px 100px}
.bca-lightning-reticle[data-state="piece"] .ltr-ring-a,.bca-lightning-reticle[data-state="king"] .ltr-ring-a{stroke-dasharray:34 3}
.bca-lightning-reticle[data-state="piece"] .ltr-cross,.bca-lightning-reticle[data-state="king"] .ltr-cross{stroke-dasharray:3 5;opacity:.95}
.bca-lightning-reticle[data-state="piece"] .ltr-lockring,.bca-lightning-reticle[data-state="king"] .ltr-lockring{opacity:1;transform:none;animation:ltrLockSpin 5s linear infinite}
.bca-lightning-reticle[data-state="piece"] .ltr-notch,.bca-lightning-reticle[data-state="king"] .ltr-notch{opacity:1;transform:none}
.bca-lightning-reticle[data-state="king"] .ltr-lockring,.bca-lightning-reticle[data-state="king"] .ltr-notch{stroke:#ffe066;fill:#ffe066;filter:drop-shadow(0 0 6px #ffd84d)}.bca-lightning-reticle[data-state="king"] .ltr-lockring{fill:none}
.bca-lightning-reticle.lock-hit .ltr-shock{animation:ltrShock .55s cubic-bezier(.1,.7,.3,1)}
.bca-lightning-reticle.lock-hit .ltr-core{animation:ltrLockCore .5s ease-out}
.ltr-hud{transition:transform .46s cubic-bezier(.16,1.3,.3,1)}
.bca-lightning-reticle[data-state="piece"] .ltr-tl,.bca-lightning-reticle[data-state="king"] .ltr-tl{transform:translate(calc((1 - var(--k))*58px),calc((1 - var(--k))*34px))}
.bca-lightning-reticle[data-state="piece"] .ltr-bl,.bca-lightning-reticle[data-state="king"] .ltr-bl{transform:translate(calc((1 - var(--k))*58px),calc((var(--k) - 1)*34px))}
.bca-lightning-reticle[data-state="piece"] .ltr-br,.bca-lightning-reticle[data-state="king"] .ltr-br{transform:translate(calc((var(--k) - 1)*58px),calc((var(--k) - 1)*34px))}
.bca-lightning-reticle[data-state="piece"] .ltr-aura,.bca-lightning-reticle[data-state="king"] .ltr-aura{background:radial-gradient(circle,rgba(190,240,255,.34),rgba(60,160,255,.1) 46%,transparent 72%)}
@keyframes ltrShock{0%{opacity:.95;transform:scale(1.5)}100%{opacity:0;transform:scale(.7)}}
@keyframes ltrLockSpin{to{transform:rotate(360deg)}}
@keyframes ltrLockCore{0%{transform:scale(2.6);opacity:1}100%{transform:scale(1);opacity:.8}}
@media(prefers-reduced-motion:reduce){.sw-btn,.sw-btn *,.sw-btn::before,.sw-ret,.ltr-lockgroup,.ltr-hud{animation:none!important;transition:none!important}.sw-btn::before{opacity:.5}.sw-rip{display:none}}

/* v3.49.85 — AAA input/scroll pass.
   The settings panel owns scrolling. No scroll-linked JS, no animated paint properties,
   no scroll-position will-change hint, and no backdrop blur over the live 3D renderer. */
.bca-game-menu-panel{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  scrollbar-gutter:stable;
  contain:layout paint;
  scroll-behavior:auto;
  isolation:isolate;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.bca-game-menu-panel > *{contain:layout style;}
.bca-game-menu-panel .bca-menu-section{contain:layout style;}
.bca-game-menu-panel input[type=range]{touch-action:pan-x;}
.bca-game-menu-backdrop{contain:strict;}
@media (hover:hover) and (pointer:fine){
  .bca-menu-item:hover{transform:translate3d(-2px,0,0)}
  .bca-language-btn:hover{transform:translate3d(0,-1px,0)}
}
@media (prefers-reduced-motion:reduce){
  .bca-game-menu-panel,.bca-menu-item,.bca-language-btn{scroll-behavior:auto;transition:none!important}
}

/* v3.49.98 — production multiplayer transient dialogs */
.myrqel-room-name-pop{position:fixed;inset:0;z-index:1000300;display:grid;place-items:center;padding:20px;background:rgba(3,2,1,.62);backdrop-filter:blur(10px)}.myrqel-room-name-pop[hidden]{display:none}.myrqel-room-name-card{position:relative;width:min(500px,calc(100vw - 32px));padding:26px;border:1px solid rgba(240,213,140,.38);border-radius:22px;background:linear-gradient(145deg,rgba(55,35,23,.99),rgba(11,8,6,.99));box-shadow:0 30px 100px rgba(0,0,0,.64),0 0 0 1px rgba(255,255,255,.035) inset;color:#f5ead6;animation:myrqelPopIn .24s cubic-bezier(.2,.8,.2,1)}.myrqel-room-name-card h2{margin:10px 0 8px;font:500 30px/1.05 Georgia,serif;color:#fff3d8}.myrqel-room-name-card p{margin:0 0 20px;color:#b9a794;font-size:12px;line-height:1.5}.myrqel-room-name-field{display:grid;gap:7px;color:#d9c8b2;font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.myrqel-room-name-field input{box-sizing:border-box;width:100%;padding:13px 14px;border:1px solid rgba(240,213,140,.24);border-radius:11px;background:#0c0907;color:#fff3d8;outline:none;font:700 14px/1.2 system-ui,sans-serif}.myrqel-room-name-field input:focus{border-color:rgba(240,213,140,.72);box-shadow:0 0 0 3px rgba(240,213,140,.08)}.myrqel-room-name-field input::placeholder{color:#796b5b}.myrqel-room-name-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.myrqel-room-name-actions .bca-btn{min-width:125px}.myrqel-room-name-pop[hidden]{display:none!important}
.myrqel-room-created-pop,.myrqel-mp-accepted-pop{position:fixed;inset:0;z-index:1000200;display:grid;place-items:center;padding:20px;background:rgba(3,2,1,.58);backdrop-filter:blur(9px);pointer-events:none}.myrqel-room-created-pop[hidden],.myrqel-mp-accepted-pop[hidden]{display:none}.myrqel-room-created-card,.myrqel-mp-accepted-card{width:min(460px,calc(100vw - 32px));padding:24px 24px 22px;border:1px solid rgba(240,213,140,.38);border-radius:22px;background:linear-gradient(145deg,rgba(55,35,23,.98),rgba(11,8,6,.98));box-shadow:0 30px 100px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.035) inset;text-align:center;animation:myrqelPopIn .24s cubic-bezier(.2,.8,.2,1)}.myrqel-room-created-card .award{font-size:34px;line-height:1;margin-bottom:8px;filter:drop-shadow(0 5px 10px rgba(0,0,0,.45))}.myrqel-room-created-card [data-room-created-title],.myrqel-mp-accepted-card [data-mp-accepted-title]{display:block;color:#f0d58c;font-size:10px;font-weight:900;letter-spacing:.28em;text-transform:uppercase}.myrqel-room-created-card [data-room-created-name]{display:block;margin:10px 0 7px;color:#fff3d8;font:900 26px/1.15 Georgia,serif;overflow-wrap:anywhere}.myrqel-room-created-card [data-room-created-id]{display:inline-block;padding:5px 9px;border-radius:999px;background:rgba(240,213,140,.08);border:1px solid rgba(240,213,140,.18);color:#cdb897;font:800 10px/1 system-ui,sans-serif;letter-spacing:.14em}.myrqel-room-created-card [data-room-created-close]{margin-top:15px;pointer-events:auto}.myrqel-mp-accepted-card{width:min(400px,calc(100vw - 32px));padding:20px}.myrqel-mp-accepted-card [data-mp-accepted-title]{font-size:12px}.myrqel-mp-accepted-card [data-mp-accepted-message]{display:block;margin-top:9px;color:#f5ead6;font-size:14px;font-weight:800;line-height:1.4}@keyframes myrqelPopIn{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
