/* Gold and teal battle-table preview; game rules and card data are unchanged. */
body{background:#021412;background-image:radial-gradient(ellipse at 45% 20%,#0b67543b,transparent 45%),radial-gradient(ellipse at 90% 70%,#00615826,transparent 50%)}#arena{max-width:1040px;margin:auto}.arenahead h1{font-style:italic;color:#f5e5bb}.arenahead .eyebrow{color:#64e8d5}.scoreboard{background:radial-gradient(ellipse at center,#0d5a4844,transparent 65%);border:0;padding:18px 2px;margin:18px 0;grid-template-columns:1fr 160px 1fr}.scoreboard strong{color:#fff2d4;text-shadow:0 2px 5px #000;font-weight:bold}.scoreboard strong small{color:#efca6d}.scoreboard>div:first-child{border-left:3px solid #3fffc3;padding-left:15px}.scoreboard>div:last-child{border-right:3px solid #e77058;padding-right:15px}.turn #round{color:#fff4d5;border:1px solid #c8a459;border-radius:4px;padding:8px;letter-spacing:2px;background:linear-gradient(120deg,#5f461c,#081815 25%,#081815 75%,#5f461c);box-shadow:0 0 10px #d9ac4820}.turn b{font-size:23px;font-style:italic;color:#bffff2;text-shadow:0 0 15px #00ffcf;margin-top:14px}.message{border:1px solid #66eadd;background:linear-gradient(100deg,#063b36,#031f20);box-shadow:inset 0 0 10px #38d9c530,0 0 12px #00e8cb25;color:#d9f6ec;padding:16px 20px;border-radius:18px}.message:before{content:'◆';color:#26ffe1;text-shadow:0 0 10px #14d6d0;margin-right:12px}.board{position:relative;padding:22px;border:5px ridge #d5b367;border-radius:28px;background:radial-gradient(ellipse at 50% 50%,#0e5c454d,transparent 55%),linear-gradient(135deg,#001613,#0b342c 50%,#001512);box-shadow:inset 0 0 0 3px #43391d,inset 0 0 45px #000c,0 0 20px #ddaf4615;overflow:hidden}.board:before,.board:after{content:'';position:absolute;left:18%;right:18%;height:1px;background:linear-gradient(90deg,transparent,#7dffe7,transparent);box-shadow:0 0 12px #00ffd5;pointer-events:none}.board:before{top:0}.board:after{bottom:0}.boardlabel{margin:0 0 18px;align-items:center;min-height:26px}.fieldbanner{color:#f9e3a4;border:1px solid #b89855;padding:6px 22px;font-size:13px;letter-spacing:2px;background:linear-gradient(100deg,#05291e,#13644888,#05291e);clip-path:polygon(8% 0,92% 0,100% 50%,92% 100%,8% 100%,0 50%)}.rivalbanner{background:linear-gradient(100deg,#280d0c,#85231988,#280d0c);margin:auto}.field{gap:15px;grid-template-columns:repeat(4,minmax(0,1fr))}.slot{max-width:none;min-width:0;display:flex;flex-direction:column}.wolf{height:auto;aspect-ratio:5/6.8;border:1px solid #59d7c1;border-radius:10px;background:radial-gradient(ellipse at center,#0b554238,#021b19);box-shadow:inset 0 0 20px #2adabb0d,0 0 5px #36dccd30;transition:box-shadow .18s,outline .18s}.wolf img{width:100%;height:100%;object-fit:contain;image-rendering:auto}.wolf.selected{outline:2px solid #8bffe2;box-shadow:0 0 18px #1bfbbb55}.wolf.target{outline:2px solid #fbe6a5;box-shadow:0 0 18px #ffc34880;cursor:crosshair}.hp{padding:5px 4px;font-size:12px;background:linear-gradient(0deg,#011914,#011914ed);color:#f4ffe8}.hp i{height:5px;border-radius:4px;background:linear-gradient(90deg,#00b875,#52ffb1);box-shadow:0 0 6px #06fca5}.taphint{font-size:8px;background:#06241db8;padding:2px 5px;top:3px}.gemrow{min-height:58px;border:2px ridge #aa9157;border-radius:10px;background:radial-gradient(ellipse,#0c423d,#021918);box-shadow:inset 0 0 0 3px #041f1c,inset 0 0 0 4px #67744d;letter-spacing:.5px;color:#ebd79f;font-size:10px;margin-top:12px;padding:8px}.gem{background:#032b23;border:1px solid #42978166}.midline{padding:25px 0 23px;position:relative;font-size:16px;color:#ecd083;letter-spacing:3px;text-shadow:0 0 9px #d49e3740}.midline:before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:linear-gradient(90deg,#b99b56,transparent 20%,transparent 80%,#b99b56)}.midline span{color:#5dffdd;text-shadow:0 0 13px #00ffd0}#enemyfield{transform:rotate(180deg)}#enemyfield .gemrow{transform:rotate(180deg)}.actionpanel{display:flex;align-items:center;gap:20px;padding:18px;border:1px solid #4eaba3;border-radius:19px;background:linear-gradient(120deg,#062e28,#011e1c);box-shadow:inset 0 0 15px #1ba78316;margin:20px 0 16px}.fighterinfo{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.fighterinfo>img{width:70px;height:98px;object-fit:contain;border:1px solid #be9b54;border-radius:8px;box-shadow:0 0 12px #d5b15722}.fighterinfo>div{min-width:0}.fighterinfo .eyebrow{font-size:8px;letter-spacing:1px}.fighterinfo h3{font:bold italic 20px Arial;margin:7px 0;color:#fff6d9}.fighterwp{font-size:12px;color:#dfddbf}.fighterbar{margin-top:8px;height:7px;background:#071c16;border-radius:20px;border:1px solid #3a6550;overflow:hidden}.fighterbar i{height:100%;display:block;background:#00ed95;box-shadow:0 0 8px #00ffb3}.moves{display:flex;flex:1;gap:8px;align-items:stretch}.move{flex:1;border:1px solid #66c9bc;border-radius:28px;min-width:0;text-align:center;padding:11px 10px;background:linear-gradient(180deg,#164a40,#031c1a);box-shadow:inset 0 2px 3px #d4fff533,0 3px 5px #0007;transition:transform .12s,box-shadow .15s,border-color .15s}.move b{font-size:12px;font-style:italic}.move small{font-size:8px;line-height:1.4;color:#b7d5c8}.move .damagecost{display:block;font-size:13px;color:#e4cb76;margin:4px 0}.move:active:not(:disabled){transform:translateY(3px) scale(.97)}.move.chosen{border:2px solid #ffe389;background:linear-gradient(180deg,#775417,#241a08);box-shadow:0 0 8px #ffdc69,0 0 24px #ffb51e55,inset 0 0 12px #ffd76940;transform:translateY(2px)}.move:disabled{opacity:.43;box-shadow:none}.endbar{padding:0 8% 18px}.endbar #endturn{width:100%;border:2px solid #aeffe3;border-radius:100px;padding:15px;font:bold italic 25px Arial;color:#fffde7;background:linear-gradient(180deg,#5dffc7 0%,#00c786 22%,#007c58 75%,#09c78b);box-shadow:inset 0 0 12px #d4ffef,0 0 8px #00ffb3,0 0 24px #00e8ab55;text-shadow:0 2px 3px #003b2a;transition:transform .12s}.endbar #endturn:active:not(:disabled){transform:scale(.98);box-shadow:inset 0 0 18px #003e2c,0 0 8px #00ffb3}.endbar #endturn:disabled{box-shadow:none;background:#164237;opacity:.55}.handhead h2{font-size:23px}.hand{padding-top:12px}.handcard{box-shadow:0 3px 9px #0005;border-color:#977d45}#inspectdetail .fighterinfo{margin:14px 0}#inspectdetail .fighterinfo>img{display:none}#inspectdetail .moves{display:flex}#inspectdetail .move{border-radius:22px}#inspectdetail .move small{font-size:10px}.damage{z-index:3;color:#fff3bd;text-shadow:0 0 8px #ff582d}#enemyfield .damage{transform:rotate(180deg)}
@media(max-width:700px){main{padding:18px 10px}.arenahead h1{font-size:26px}.arenahead .options{gap:5px}.options label{font-size:9px}.options .btn,.options .textbutton{padding:8px;font-size:11px}header{padding:14px}.scoreboard{grid-template-columns:1fr 85px 1fr;gap:6px;margin:14px 0}.scoreboard>div:first-child{padding-left:6px}.scoreboard>div:last-child{padding-right:6px}.scoreboard strong{font-size:24px}.scoreboard strong small{font-size:11px}.scoreboard span{font-size:8px}.turn #round{font-size:9px;padding:6px 2px;letter-spacing:0}.turn b{font-size:17px;margin:10px 0}.message{font-size:11px;padding:12px;border-radius:12px}.message:before{margin-right:6px}.board{border-width:4px;border-radius:20px;padding:12px 8px}.boardlabel{margin-bottom:12px}.fieldbanner{font-size:10px;padding:5px 16px;letter-spacing:1px}.field{gap:7px}.wolf{border-radius:7px;aspect-ratio:5/6.9}.hp{font-size:8px;padding:3px 1px}.hp i{height:3px;margin-top:3px}.taphint{font-size:6px}.gemrow{margin-top:7px;min-height:44px;font-size:8px;padding:5px 3px;border-width:1px}.gem{padding:3px 1px;font-size:7px;letter-spacing:0}.midline{font-size:12px;padding:20px 0;letter-spacing:2px;gap:10px}.boardlabel small{font-size:8px}.actionpanel{gap:10px;padding:12px 10px;flex-wrap:wrap}.fighterinfo{flex-basis:100%;gap:10px}.fighterinfo>img{width:40px;height:56px}.fighterinfo h3{font-size:16px;margin:3px 0}.fighterinfo .eyebrow{font-size:7px}.fighterwp{font-size:10px}.fighterbar{margin-top:4px;height:5px}.moves{width:100%;gap:6px}.move{padding:8px 5px;border-radius:22px}.move b{font-size:10px}.move small{font-size:7px}.move .damagecost{font-size:12px}.endbar{padding:0 6% 18px}.endbar #endturn{font-size:23px;padding:12px}.digitalnotice{font-size:10px;padding:8px}.handcard{flex-basis:100px}#inspectdetail .moves{display:flex}}
.playerlife{display:block!important;height:8px;margin-top:9px;background:#031811;border:1px solid #416555;border-radius:10px;overflow:hidden;box-shadow:0 0 7px color-mix(in srgb,var(--life) 30%,transparent)}.playerlife i,.hp i,.fighterbar i{position:relative;display:block;height:100%;background:var(--life,#1fffb0);box-shadow:0 0 7px var(--life,#1fffb0);transition:width .4s,background .4s;overflow:hidden}.hp i{height:5px}.playerlife i:after,.hp i:after,.fighterbar i:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 8px,#e8fffbaa 9px 10px,transparent 11px 20px);animation:lifespark 1.4s linear infinite;opacity:.65}.hitfx{position:absolute;inset:12% 8% 20%;pointer-events:none;z-index:8;overflow:hidden}.hitfx i{position:absolute;left:15%;top:0;width:8%;height:95%;background:linear-gradient(90deg,transparent,#fff8d8 40%,#ffdd66 60%,transparent);transform:rotate(32deg);filter:drop-shadow(0 0 5px #ff6e27);clip-path:polygon(60% 0,95% 65%,20% 100%,40% 35%);animation:clawcut .65s ease-out forwards}.hitfx i:nth-child(2){left:44%;animation-delay:.05s}.hitfx i:nth-child(3){left:72%;animation-delay:.1s}.slot.struck{animation:cardimpact .65s ease-out}.koecho{position:absolute;inset:0;width:100%;height:calc(100% - 65px);object-fit:contain;pointer-events:none;z-index:4;animation:kofade .8s forwards}.scorehit{animation:scoreimpact .6s}.damage{animation:damagefloat .85s forwards;z-index:10;font-size:28px}#enemyfield .damage{animation:rivaldamagefloat .85s forwards}@keyframes lifespark{to{background-position:40px 0}}@keyframes clawcut{0%{opacity:0;translate:0 -70%}20%{opacity:1}65%{opacity:1;translate:0 0}100%{opacity:0;translate:0 20%}}@keyframes cardimpact{15%{translate:-5px 0;rotate:-3deg;filter:brightness(1.7)}30%{translate:5px 0;rotate:3deg}50%{translate:-3px 0;rotate:-2deg}75%{translate:2px 0;rotate:1deg}100%{translate:0 0;rotate:0deg}}@keyframes scoreimpact{30%{color:#ffbd7a;text-shadow:0 0 14px #ff4b34}}@keyframes kofade{50%{opacity:.7;scale:.96}100%{opacity:0;scale:.8}}@keyframes damagefloat{0%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -45px}}@keyframes rivaldamagefloat{0%{opacity:1;transform:rotate(180deg);translate:0 0}100%{opacity:0;transform:rotate(180deg);translate:0 45px}}@media(prefers-reduced-motion:reduce){.playerlife i:after,.hp i:after,.fighterbar i:after{animation:none}.slot.struck,.scorehit{animation:none}.hitfx{display:none}.damage,.koecho{animation:none}}
.countdown-hit{position:absolute;z-index:12;left:50%;top:35%;transform:translate(-50%,-10%);min-width:90px;padding:9px 12px;text-align:center;border:1px solid #ffdf8b;border-radius:12px;background:#09231bec;box-shadow:0 0 18px #ffba3844;pointer-events:none;opacity:1;transition:opacity .3s,translate .3s}.countdown-hit .hitloss{display:block;color:#ffbe79;font:bold 19px Arial;white-space:nowrap}.countdown-hit .hitremaining{display:block;font:bold 28px Georgia;color:#fff4ce;margin:4px 0;font-variant-numeric:tabular-nums;text-shadow:0 0 8px #ffc961}.countdown-hit small{display:block;color:#ddd3ad;font:7px Arial;letter-spacing:1px;white-space:nowrap}.countdown-hit.settled{border-color:#68ffce;box-shadow:0 0 16px #33ffb955}.countdown-hit.fading{opacity:0;translate:0 -12px}#enemyfield .countdown-hit{transform:translate(-50%,-10%)}#yourwp,#enemywp{position:relative}.hp i,.playerlife i{transition:background .3s;}.countdown-hit~.hitfx{z-index:8}@media(max-width:700px){.countdown-hit{min-width:65px;padding:5px 6px}.countdown-hit .hitloss{font-size:13px}.countdown-hit .hitremaining{font-size:22px}.countdown-hit small{font-size:6px;letter-spacing:0}}
#actions{position:relative;padding-top:51px}#actions[hidden]{display:none!important}.attacktools{position:absolute;top:5px;right:8px;left:8px;display:flex;justify-content:flex-end;align-items:center;gap:8px}.attacktools .textbutton{font-size:11px;padding:8px;color:#bfe8d6}.panelclose{width:36px;height:36px;border:1px solid #609d89;border-radius:50%;background:#0b382c;color:#f8edd0;font-size:25px;line-height:1;cursor:pointer}.panelclose:active{background:#17614a}.endbar{margin-top:12px}#actions:not([hidden]){animation:panelappear .18s ease-out}@keyframes panelappear{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){#actions:not([hidden]){animation:none}}

/* Each socket represents one attached gem, facing its owner. */
.gemrow{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:nowrap}.gemsocket{display:block;flex:0 1 30px;min-width:0;max-width:30px;opacity:.65}.gemsocket svg{width:100%;display:block;overflow:visible;fill:#06271f;stroke:#658a78;stroke-width:1.5}.gemsocket .facet{fill:none;stroke-width:1;opacity:.65}.gemsocket.filled{opacity:1;filter:drop-shadow(0 0 4px var(--gem))}.gemsocket.filled svg{fill:var(--gem);stroke:#fff2ce}.gemsocket.filled .facet{stroke:#072d2c}.emptygemlabel{font-size:inherit}#enemyfield .gemrow{transform:none}.midline{min-height:115px;isolation:isolate}.midline:after{content:'';position:absolute;z-index:-1;width:104px;height:104px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);background:url('assets/back.webp') 50% 46% / 175% auto;opacity:.34;box-shadow:0 0 24px #00dcb333}.midline i{position:relative;text-shadow:0 2px 4px #001a13,0 0 8px #001a13;font-weight:bold}@media(max-width:700px){.gemrow{gap:3px}.gemsocket{flex-basis:20px;max-width:20px}.midline{min-height:90px}.midline:after{width:82px;height:82px}}

/* Cut-jewel sockets: saturated cores, reflective bevels and pinpoint shine. */
.gemsocket:not(.filled) .jewelfacets{display:none}.gemsocket.filled svg{fill:color-mix(in srgb,var(--gem) 70%,#00101c);stroke:#d8edf0;stroke-width:.8}.gemsocket.filled .jewelfacets path{stroke:none}.gemsocket.filled .beveltop{fill:#fff6ce}.gemsocket.filled .bevelleft{fill:color-mix(in srgb,var(--gem) 40%,white)}.gemsocket.filled .bevelright{fill:color-mix(in srgb,var(--gem) 45%,#000b25)}.gemsocket.filled .crystalcore{fill:var(--gem)}.gemsocket.filled .crystalshade{fill:color-mix(in srgb,var(--gem) 62%,#001026)}.gemsocket.filled .crystalfire{fill:color-mix(in srgb,var(--gem) 35%,white);opacity:.85}.gemsocket.filled .crystalshine{fill:none;stroke:white!important;stroke-width:1;opacity:.9}.gemsocket.filled .sparkle{fill:white;filter:drop-shadow(0 0 1px white)}.gemsocket.filled .facet{stroke:#d9fcff;opacity:.65}.gemsocket.filled{filter:drop-shadow(0 0 3px var(--gem)) drop-shadow(0 2px 2px #000)}#turnhint{text-align:center;color:#ffe5a1;font-size:13px;line-height:1.5;margin:10px 0 14px}.endbar #endturn.nomoves{border-color:#ffe9a6;box-shadow:inset 0 0 12px #d4ffef,0 0 12px #f4da79;font-size:clamp(16px,4vw,25px)}

#vaultzone{padding:16px 5%;text-align:center}#vaultzone[hidden]{display:none}#vaultzone small{display:block;margin:10px 0 0;color:#f6ccad;font-size:12px}#direct.targetvault{display:block;width:100%;padding:16px 12px;border:2px solid #ffbea5;border-radius:50px;background:linear-gradient(#ff755b,#d3262f 35%,#791323);box-shadow:inset 0 0 14px #ffb49c,0 0 16px #ff372b80;color:#fff4dd;font:bold italic clamp(18px,4vw,28px) Arial;cursor:pointer}#direct.armed{box-shadow:inset 0 0 14px #fff2bb,0 0 28px #ff3b2c}#direct:active:not(:disabled){transform:scale(.97)}#direct:disabled{opacity:.5}.vaultexplosion{position:absolute;inset:-35px;z-index:9;pointer-events:none;display:grid;place-items:center}.vaultexplosion i{position:absolute;width:80px;height:80px;border:4px solid #ffc24f;border-radius:50%;box-shadow:0 0 18px #ff4d22;animation:vaultblast .8s ease-out both}.vaultexplosion i:nth-child(2){animation-delay:.1s;border-color:#fff5bb}.vaultexplosion i:nth-child(3){animation-delay:.2s;border-color:#ff6844}.vaultexplosion b{font-size:90px;color:#fff0af;animation:vaultblast .65s ease-out both}@keyframes vaultblast{from{opacity:1;transform:scale(.2) rotate(0)}to{opacity:0;transform:scale(2.4) rotate(45deg)}}#matchresult{width:min(92vw,520px);max-height:90dvh;overflow:auto;padding:32px 20px;border:2px solid #dfbd70;border-radius:24px;background:radial-gradient(ellipse at 50% 20%,#0b6850,#021d18 70%);color:#ffefc9;text-align:center}#matchresult::backdrop{background:#00120ed9;backdrop-filter:blur(5px)}.resultcontent{position:relative;z-index:2}.resultclose{position:sticky;top:0;float:right;z-index:5;border:1px solid #c6dccc;border-radius:50%;width:38px;height:38px;background:#07352a;color:white;font-size:25px;cursor:pointer}.resultlogo{width:130px;height:130px;border-radius:50%;margin:5px auto 20px;background:url('assets/back.webp') 50% 46% / 175% auto;box-shadow:0 0 24px #64ffd68c;animation:logoarrive .8s ease-out}#resulttitle{font-size:clamp(36px,9vw,58px);margin:15px 0;color:#ffe3a1;text-shadow:0 0 20px #eeb744}#resultreason{line-height:1.6}#matchresult .btn{display:block;width:100%;margin:14px 0}#matchresult small{display:block;color:#c1d7cc;font-size:12px}#fireworks{position:absolute;inset:0;overflow:hidden;pointer-events:none}.firework{position:absolute;left:var(--x);top:var(--y)}.firework i{position:absolute;width:4px;height:10px;background:var(--color);border-radius:50%;box-shadow:0 0 7px var(--color);animation:fireworkburst 1.8s ease-out var(--delay) 3 both}@keyframes fireworkburst{0%{opacity:0;transform:rotate(var(--angle)) translateY(0)}10%{opacity:1}85%,100%{opacity:0;transform:rotate(var(--angle)) translateY(-95px)}}@keyframes logoarrive{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.vaultexplosion,.firework{display:none}.resultlogo{animation:none}}

.rivalheading{display:block}.rivalheading #vaultzone{padding:0 3% 4px;width:100%}.rivalheading .rivalbanner{display:table;margin:auto}.rivalheading .rivalbanner[hidden]{display:none}.rivalheading #direct{padding:12px;font-size:clamp(18px,4vw,25px)}

.deckdock{display:flex;align-items:center;gap:15px;padding:14px 8px;color:#ebd79f;font-size:12px}.deckdock>span{display:flex;flex-direction:column;gap:5px}.deckdock b{font-size:19px;color:#fff0cb}.deckdock small{font-size:10px;color:#91bdb0}.deckstack{position:relative;width:57px;height:80px;isolation:isolate;flex-shrink:0}.deckstack:before,.deckstack:after{content:'';position:absolute;inset:0;border:1px solid #c9ad6c;border-radius:5px;background:#071b2d;z-index:-1;transform:translate(4px,3px)}.deckstack:after{transform:translate(8px,6px);z-index:-2}.deckstack img{width:100%;height:100%;border-radius:5px;box-shadow:0 5px 10px #0009}.rivaldeck{justify-content:flex-end;padding:0 8px 14px}.rivaldeck .deckstack{transform:rotate(180deg)}.shuffling img{animation:deckshuffle .25s ease-in-out 4}.shuffling:before{animation:deckshuffle .25s ease-in-out .12s 4}.dealfly{position:fixed;z-index:100;pointer-events:none;perspective:800px}.dealinner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .35s}.dealinner img{position:absolute;inset:0;width:100%;height:100%;border-radius:6px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.dealfront{transform:rotateY(180deg)}.dealfly.revealed .dealinner{transform:rotateY(180deg)}@keyframes deckshuffle{50%{transform:translateX(20px) rotate(10deg)}}@media(prefers-reduced-motion:reduce){.shuffling img,.shuffling:before{animation:none}.dealinner{transition:none}}

@media(pointer:coarse){.handcard{touch-action:pan-x pinch-zoom}.hand{overscroll-behavior-x:contain}}

/* Both players' live points belong to the table, between the opposing rows. */
.matcenter{position:relative;isolation:isolate;margin:22px 0;padding:17px 0;border-block:1px solid #b49a594f}
.matcenter:before{content:'';position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,#187b5b42,transparent 70%)}
.matbrand{text-align:center;color:#e8d392;font:bold italic 12px Georgia;letter-spacing:3px;margin-bottom:15px}
.board .matscore{margin:0;padding:0;gap:18px;grid-template-columns:minmax(0,1fr) 140px minmax(0,1fr);background:transparent;border-radius:0}
.matscore>div{min-width:0}.matscore>div>span{line-height:1.5;font-size:10px;letter-spacing:.5px}
.matscore #yourdeckname{display:block;font-size:10px;letter-spacing:0}
.matscore strong{font-size:38px;font-variant-numeric:tabular-nums;white-space:nowrap;margin:7px 0 10px}
.matscore #yourcounts,.matscore #enemycounts{font-size:10px;line-height:1.6}
.matscore .playerlife{height:7px;margin-top:8px}
.playerdeck{padding:17px 8px 5px;justify-content:flex-start}
.playerdeck #dealstatus{max-width:210px;line-height:1.5}
@media(max-width:700px){
 .matcenter{margin:16px 0;padding:14px 0}.matbrand{font-size:10px;letter-spacing:1.5px;margin-bottom:12px}
 .board .matscore{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);gap:7px}
 .matscore>div:first-child{padding-left:6px}.matscore>div:last-child{padding-right:6px}
 .matscore>div>span,.matscore #yourdeckname{font-size:8px;letter-spacing:0}
 .matscore strong{font-size:clamp(20px,5.8vw,32px);margin:7px 0}
 .matscore strong small{font-size:10px}.matscore #yourcounts,.matscore #enemycounts{font-size:8px}
 .matscore .turn b{font-size:14px;margin:9px 0}.matscore .turn #round{font-size:8px}
 .matscore .playerlife{height:6px}.playerdeck{padding-top:15px}
}

/* Owner-facing table edges: deck at left, wealth points opposite at right. */
.tableedge{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:12px 8px 18px}
.tableedge.rivaledge{transform:rotate(180deg);padding:12px 8px 18px}
.tableedge .deckdock{padding:0;justify-content:flex-start;flex:0 1 auto;min-width:0}
.tableedge .deckstack{transform:none}
.playerscore{width:42%;max-width:340px;min-width:0;text-align:right;border-right:3px solid #3fffc3;padding-right:12px;color:#fff2d4}
.rivaledge .playerscore{border-color:#e77058}
.playerscore>span{display:block;font-size:10px;line-height:1.5;color:#bbd3c7;letter-spacing:.6px}
.playerscore #yourdeckname{display:block;letter-spacing:0;font-size:10px}
.playerscore>strong{display:block;position:relative;font:bold 36px Georgia;margin:6px 0 8px;white-space:nowrap;font-variant-numeric:tabular-nums}
.playerscore>strong small{font-size:13px;color:#efca6d}
.playerscore>small{display:block;color:#bbd3c7;font-size:10px;line-height:1.5}
.playerscore .playerlife{height:7px;margin-top:8px}
.matcenter{display:flex;align-items:center;justify-content:center;gap:24px;padding:15px 0;margin:18px 0}
.matbrand{margin:0}.matcenter .turn{min-width:110px}.matcenter .turn b{font-size:18px;margin:8px 0 0}
@media(max-width:700px){
 .tableedge{gap:12px;padding:12px 2px 8px}.tableedge.rivaledge{padding:12px 2px 8px}
 .tableedge .deckstack{width:48px;height:67px}.tableedge .deckdock{gap:9px;font-size:11px}.tableedge .deckdock b{font-size:18px}
 .tableedge .deckdock small{max-width:105px;font-size:9px;line-height:1.5}
 .playerscore{width:48%;padding-right:7px;flex-shrink:0}.playerscore>strong{font-size:clamp(22px,6.4vw,30px)}
 .playerscore>strong small{font-size:10px}.playerscore>span,.playerscore #yourdeckname,.playerscore>small{font-size:8px;letter-spacing:0}
 .playerscore .playerlife{height:6px;margin-top:7px}.matcenter{gap:15px;padding:13px 0}.matbrand{font-size:10px;letter-spacing:1px}
 .matcenter .turn{min-width:90px}.matcenter .turn b{font-size:15px}.matcenter .turn #round{font-size:10px;letter-spacing:.5px}
}

/* Central game controls stay on the mat, beside the archive seal. */
body .matcenter{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,170px) minmax(0,1fr);align-items:center;gap:20px;padding:12px 0}
body .matcenter .turn{min-width:0;text-align:center;justify-self:center;width:100%;max-width:150px}
body .matcenter .turn #round{display:block;font-size:12px;letter-spacing:1px;padding:10px 6px}
body .matcenter .turn b{display:block;font-size:19px;margin-top:10px}
.matcrest{width:100%;line-height:0}.matcrest svg{width:100%;height:auto;overflow:visible}.matcrest .crestring{fill:none;stroke:var(--skin-line,#ddbf70);stroke-width:1.6}.matcrest text{fill:var(--skin-text,#f5e5bb);font:bold 12px Georgia;letter-spacing:1.15px}
.matend{display:flex;flex-direction:column;align-items:center;justify-self:center;width:100%;max-width:170px}
body .matend #endturn{width:100%;min-height:48px;padding:12px 10px;border:1px solid var(--skin-line,#b6ddbd);border-radius:99px;background:var(--skin-button,#38dba8);color:var(--skin-button-text,#052a22);font:bold italic 17px Arial;box-shadow:inset 0 1px 3px #fff4,0 3px 12px var(--skin-glow,#1fffb033);cursor:pointer;white-space:nowrap;transition:transform .12s}
body .matend #endturn:active:not(:disabled){transform:translateY(2px) scale(.97)}body .matend #endturn:disabled{opacity:.45;cursor:default}
.matend #turnhint{font-size:10px;text-align:center;margin:7px 0 0;line-height:1.3}
#attackdialog{width:min(92vw,650px);max-width:650px;max-height:85dvh;padding:0;border:1px solid var(--skin-line,#b99b56);border-radius:22px;background:var(--skin-panel,#062e28);color:var(--skin-text,#fff6d9);overflow:auto;box-shadow:0 22px 80px #0009}
#attackdialog::backdrop{background:#00120dbd;backdrop-filter:blur(5px)}
#attackdialog .actionpanel{display:block;margin:0;padding:22px;border:0;box-shadow:none;border-radius:0;background:transparent}
#attackdialog .actionpanel[hidden]{display:none}#attackdialog .attacktools{position:static;display:flex;justify-content:space-between;align-items:center;width:100%;margin:0 0 12px}
#attackdialog .panelclose{min-width:44px;min-height:44px;border-radius:50%;font-size:24px}
#attackdialog .fighterinfo{margin:0 0 20px}#attackdialog .fighterinfo>img{width:64px;height:90px}#attackdialog .moves{display:flex;gap:9px;width:100%}#attackdialog .move{min-height:100px;padding:14px 8px;border-radius:22px}#attackdialog .move b{font-size:13px}#attackdialog .move small{font-size:10px}#attackdialog .move .damagecost{font-size:17px;margin:8px 0}
@media(max-width:700px){body .matcenter{grid-template-columns:minmax(0,1fr) 116px minmax(0,1fr);gap:5px;padding:9px 0}body .matcenter .turn #round{font-size:9px;padding:8px 3px;letter-spacing:.4px}body .matcenter .turn b{font-size:13px;margin-top:8px}body .matend #endturn{font-size:12px;padding:10px 5px;min-height:44px}.matend #turnhint{font-size:8px}#attackdialog .actionpanel{padding:15px}#attackdialog .moves{flex-direction:column;gap:10px}#attackdialog .move{display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;gap:5px 10px;min-height:72px;padding:12px 16px}#attackdialog .move b{font-size:14px}#attackdialog .move .damagecost{margin:0}#attackdialog .move small{font-size:10px}#attackdialog .fighterinfo h3{font-size:20px}}

/* Compact phone mat: preserve card proportions and touch targets. */
@media(max-width:700px){
 body .board{padding:8px 8px;border-width:3px}
 body .boardlabel{min-height:20px;margin-bottom:6px}
 body #vaultzone{padding:3px 2%}body #direct.targetvault{min-height:44px;padding:9px 8px;font-size:17px}
 body #vaultzone small{font-size:10px;line-height:1.3;margin:5px 0 0}
 body .tableedge,body .tableedge.rivaledge{padding:7px 2px;gap:9px}
 body .tableedge .deckstack{width:37px;height:52px}
 body .tableedge .deckdock{gap:7px;font-size:10px}body .tableedge .deckdock>span{gap:2px}body .tableedge .deckdock b{font-size:17px}body .tableedge .deckdock small{font-size:8px;line-height:1.2}
 body .playerscore>strong{font-size:25px;margin:3px 0 4px}body .playerscore>span,body .playerscore #yourdeckname,body .playerscore>small{font-size:7px;line-height:1.3}body .playerscore .playerlife{height:5px;margin-top:4px}
 body .wolf{height:clamp(72px,12dvh,94px);aspect-ratio:auto}body .wolf img{object-fit:contain}
 body .gemrow{min-height:29px;height:29px;margin-top:5px;padding:3px;font-size:7px}body .gemsocket{max-width:17px}
 body .matcenter{grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);margin:9px 0;padding:3px 0;gap:7px}
 body .matcenter .turn #round{padding:7px 3px}body .matcenter .turn b{margin-top:6px;font-size:12px}
 body .fieldbanner{padding:3px 12px;font-size:9px}body .boardlabel small{font-size:7px}
}
/* In-mat hand, draw deck and full-width player wealth. */
body .wolf{height:auto;aspect-ratio:5/7;padding:0}
body .wolf img{display:block;width:100%;height:100%;object-fit:contain}
body .matcenter{margin:7px 0;padding:0;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr)}
.playerbase{position:relative;margin-top:10px}
.handdeckrow{display:grid;grid-template-columns:minmax(0,1fr) 95px;gap:16px;align-items:center}
.handdock{min-width:0}
.handtoggle{display:block;width:100%;border:0;background:transparent;color:var(--skin-text,var(--cream));text-align:left;padding:4px;min-height:80px;cursor:pointer}
.handtoggle>span:first-child{font-size:11px;display:block;margin-bottom:6px}
#handfan{display:flex;align-items:end;height:66px;padding-left:4px;pointer-events:none}
#handfan img{height:64px;width:46px;object-fit:contain;border-radius:4px;box-shadow:0 2px 4px #0006;margin-right:-13px;transform:rotate(-3deg)}
#handfan img:nth-child(even){transform:translateY(-3px) rotate(2deg)}
.playerbase .playerdeck{padding:0;display:flex;gap:8px;align-items:center;justify-content:end;font-size:10px}
.playerbase .deckstack{width:40px;height:56px;flex:none;transform:none}
.playerbase .playerdeck b{font-size:18px;display:block}.playerbase #dealstatus{display:none}
body .playerbase .playerscore{width:100%;max-width:none;border:0;padding:0;text-align:right;margin-top:4px;display:grid;grid-template-columns:1fr auto;align-items:center}
body .playerbase .playerscore>span{grid-column:1;grid-row:1;text-align:left;font-size:8px}
body .playerbase .playerscore>strong{grid-column:1/-1;grid-row:1;display:block;font-size:26px;margin:0;padding-top:0;pointer-events:none}
body .playerbase .playerscore .playerlife{height:9px;width:100%;margin-top:6px}
body .playerbase .playerscore>small{grid-column:1/-1;margin-top:4px;font-size:8px}
.handselection{font-size:11px;margin:6px 0;color:var(--skin-text,var(--cream))}
.handtray{position:absolute;z-index:30;left:0;right:0;bottom:calc(100% - 12px);border:1px solid var(--skin-line,#bda266);border-radius:18px;background:var(--skin-panel,#062b24);color:var(--skin-text,#f9edcf);box-shadow:0 -8px 35px #0007;padding:10px;transform-origin:bottom;animation:handrise .18s ease-out}
.handtools{display:flex;align-items:center;gap:5px}.handtools strong{flex:1;font:18px Georgia}.handtools button{min-width:44px;min-height:44px;padding:6px;color:inherit}
.handtray p{font-size:10px;line-height:1.4;margin:0;color:var(--skin-muted,#bad1c6)}
body .handtray .hand{display:flex;gap:12px;overflow-x:auto;padding:12px 5px 10px;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
body .handtray .handcard{flex:0 0 110px;padding:0;border-radius:6px;scroll-snap-align:center;touch-action:pan-x pinch-zoom}
body .handtray .handcard img{display:block;width:100%;aspect-ratio:5/7;object-fit:contain}
body .handtray .handcard span{font-size:10px;padding:5px 2px}
.handtray.pulling{opacity:0;pointer-events:none}
@keyframes handrise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(max-width:700px){body .matcenter{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);margin:5px 0;padding:0}body .matcenter .turn b{margin-top:4px}body .wolf{height:auto;aspect-ratio:5/7}.handdeckrow{grid-template-columns:minmax(0,1fr) 75px;gap:8px}#handfan{height:53px}#handfan img{height:50px;width:36px;margin-right:-11px}.handtoggle{min-height:72px}.handtoggle>span:first-child{font-size:10px;margin-bottom:4px}.playerbase{margin-top:6px}.playerbase .playerdeck{gap:5px;font-size:8px}.playerbase .deckstack{width:34px;height:48px}.playerbase .playerdeck b{font-size:16px}body .playerbase .playerscore>strong{font-size:24px}}
@media(prefers-reduced-motion:reduce){.handtray{animation:none}}
body .handtray .handitem{flex:0 0 110px;min-width:0;scroll-snap-align:center}
body .handtray .handitem .handcard{display:block;width:100%}
.handview{display:block;width:100%;min-height:38px;margin-top:6px;border:1px solid var(--skin-line,#bda266);border-radius:20px;background:var(--skin-button,#123f32);color:var(--skin-button-text,#fff0ca);font-size:12px;cursor:pointer}
/* Mirrored deck and concealed rival hand; counts stay clear of the stack. */
body .playerbase .deckdisplay{display:grid;grid-template-columns:minmax(20px,1fr) 40px;grid-template-rows:auto auto;align-items:center;gap:5px 9px;padding:0 9px 7px 0;justify-content:initial;min-width:0}
body .deckdisplay .decktitle{grid-column:1/-1;display:block;text-align:center;font-size:11px;white-space:nowrap;line-height:1.4}
body .deckdisplay .decknumber{grid-column:1;grid-row:2;text-align:right;font:bold 21px Georgia;margin:0;position:relative;z-index:2}
body .deckdisplay .deckstack{grid-column:2;grid-row:2;transform:none;margin:0}
body .opponentbase{transform:rotate(180deg);margin:0 0 9px}
.rivalhand{min-width:0;padding:4px}
#rivalhandlabel{display:block;font-size:11px;color:var(--skin-text,var(--cream));margin-bottom:6px}
.rivalhandfan{display:grid;grid-template-columns:repeat(var(--cards,7),minmax(0,1fr));align-items:end;max-width:265px;height:66px;padding-right:15px}
.rivalhandfan img{display:block;width:46px;height:64px;object-fit:contain;border-radius:4px;box-shadow:0 2px 4px #0006}
@media(max-width:700px){body .handdeckrow{grid-template-columns:minmax(0,1fr) 86px;gap:7px}body .playerbase .deckdisplay{grid-template-columns:minmax(20px,1fr) 34px;gap:4px 8px}body .deckdisplay .decktitle{font-size:10px}body .deckdisplay .decknumber{font-size:19px}#rivalhandlabel{font-size:10px;margin-bottom:4px}.rivalhandfan{height:53px;padding-right:12px;max-width:200px}.rivalhandfan img{width:36px;height:50px}}
/* Signal that the player has exhausted deployment, gem and attack options. */
body .matend #endturn.nomoves:not(:disabled){position:relative;isolation:isolate;border-color:#fff0a6;animation:endTurnBeacon 1.6s ease-in-out infinite}
body .matend #endturn.nomoves:not(:disabled)::after{content:'';position:absolute;inset:-5px;border:2px solid #ffe58a;border-radius:inherit;pointer-events:none;animation:endTurnRing 1.6s ease-out infinite}
@keyframes endTurnBeacon{0%,100%{filter:brightness(1);box-shadow:0 0 8px #ffd45b66,inset 0 0 4px #fff2b033}50%{filter:brightness(1.3);box-shadow:0 0 15px #ffe58acc,0 0 26px #ffd45b88,inset 0 0 9px #fff2b077}}
@keyframes endTurnRing{0%{opacity:.85;transform:scale(1)}85%,100%{opacity:0;transform:scale(1.09,1.2)}}
@media(prefers-reduced-motion:reduce){body .matend #endturn.nomoves:not(:disabled){animation:none;filter:none;box-shadow:0 0 15px #ffe58acc,0 0 24px #ffd45b77}body .matend #endturn.nomoves:not(:disabled)::after{animation:none;opacity:.9;transform:none}}
