:root{--bg:#0a0810;--panel:#15111d;--line:#3a2f4a;--gold:#e4c27a;--red:#d8434f;--blue:#6aa8ff;--green:#6fe39a;--ink:#ece4d4;--mute:#a79fb4;--c:#9a95a8;--r:#4a90e2;--e:#a85cf0;--l:#f0902a}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font:15px/1.35 system-ui,sans-serif;overscroll-behavior:none;touch-action:manipulation}
h1,h2,h3,.ttl{font-family:"Almendra SC",Georgia,serif;font-weight:400;letter-spacing:.04em}
h3{color:var(--gold);margin:14px 0 6px;font-size:18px;align-self:flex-start}
#app{height:100%;max-width:560px;margin:0 auto;display:flex;flex-direction:column;position:relative}
#top{display:flex;align-items:center;gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:#0d0a14}
#top .brand{font:15px "Almendra SC",Georgia,serif;color:var(--gold);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#top .pill{font-size:12px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:#120e19}
#top button{background:#120e19;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:5px 10px;font:inherit;font-size:13px}
#scr{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.btn{background:linear-gradient(#3a2a12,#241a0a);color:var(--gold);border:1px solid #8a6a2c;border-radius:10px;padding:12px 18px;font:17px "Almendra SC",Georgia,serif;letter-spacing:.05em;cursor:pointer;box-shadow:0 0 0 1px #000 inset}
.btn:active{transform:scale(.97)}.btn[disabled]{opacity:.4}
.btn.o{background:#14101b;color:var(--ink);border-color:var(--line)}
.btn.sm{padding:8px 12px;font-size:14px}
.col{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;overflow:auto;flex:1}
.col>*{flex-shrink:0}
.col.wide>*{max-width:520px;width:100%}
.title{justify-content:center;text-align:center;background:linear-gradient(#0a0810cc,#0a0810f2),url(assets/d1.webp) center/cover}
.title h1{font-size:34px;margin:0;color:var(--gold);text-shadow:0 0 22px #e4c27a55;line-height:1.05}
.title .sub{font:20px "Almendra SC",Georgia,serif;color:var(--mute);margin-top:-6px;letter-spacing:.3em}
.title p{max-width:360px;color:var(--mute);margin:0}
.msg{color:var(--mute);text-align:center;max-width:380px;margin:0}
.big-t{font-size:34px;margin:0;color:var(--gold)}.big-t.lose{color:var(--red)}
.fine{color:var(--mute);max-width:320px}
.inp{width:100%;max-width:300px;padding:12px;border-radius:10px;border:1px solid var(--line);background:#120e19;color:var(--ink);font:17px system-ui;text-align:center}
.inp.sm{max-width:180px;padding:8px;font-size:15px}
.lnk{background:none;border:0;color:var(--gold);text-decoration:underline;font:14px system-ui;padding:6px;cursor:pointer}
/* menu */
.menu{background:linear-gradient(#0a0810bb,#0a0810f5),url(assets/d1.webp) center/cover;animation:bgz 30s ease-in-out infinite alternate}
@keyframes bgz{from{background-size:100%,100%,105%}to{background-size:100%,100%,125%}}
.menu h1{animation:glow 4s ease-in-out infinite}
@keyframes glow{0%,100%{text-shadow:0 0 14px #e4c27a33}50%{text-shadow:0 0 34px #e4c27acc}}
.mbtns{display:flex;flex-direction:column;gap:10px;width:100%;max-width:310px;margin-top:6px}
.mbtns>.btn,.mgrid{opacity:0;animation:rise .5s ease-out forwards}
.mbtns>:nth-child(2){animation-delay:.07s}.mbtns>:nth-child(3){animation-delay:.14s}.mbtns>:nth-child(4){animation-delay:.21s}.mbtns>:nth-child(5){animation-delay:.28s}
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mgrid .btn{width:100%}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.nofx .mbtns>*{opacity:1}
/* tabs / heroes */
.tabs{display:flex;gap:6px;overflow-x:auto;justify-content:center;flex-wrap:wrap}
.tab{background:#14101b;color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px}
.tab.on{background:#3a2a12;color:var(--gold);border-color:#8a6a2c}
.bnr{position:relative;border-radius:14px;overflow:hidden;border:2px solid #8a6a2c;aspect-ratio:16/9}
.bnr img{width:100%;height:100%;object-fit:cover;display:block}
.bnr .bt{position:absolute;inset:auto 0 0 0;padding:26px 14px 10px;background:linear-gradient(transparent,#000d)}
.bnr h2{margin:0;color:var(--gold);font-size:26px}.bnr small{color:var(--mute)}
.blurb{color:var(--ink);margin:0;text-align:center}
.facts{display:flex;flex-direction:column;gap:6px}
.fact{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column}
.fact b{color:var(--gold);font:15px "Almendra SC",Georgia,serif}.fact span{color:var(--mute);font-size:13px}
.pwl{display:flex;flex-direction:column;gap:8px}
.pwo{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit;display:flex;flex-direction:column}
.pwo b{color:var(--gold);font:16px "Almendra SC",Georgia,serif}.pwo small{color:var(--mute)}
.pwo.on{border-color:var(--gold);box-shadow:0 0 12px #e4c27a55}.pwo.lock{opacity:.5}
.lvl{display:flex;flex-direction:column;gap:4px;margin-top:6px}.lvl b{color:var(--gold);font:18px "Almendra SC",Georgia,serif}.lvl small{color:var(--mute)}
.xbar{height:10px;background:#000;border:1px solid var(--line);border-radius:6px;overflow:hidden}.xbar i{display:block;height:100%;background:linear-gradient(#6aa8ff,#3a6aa8)}
.eql,.il{display:flex;flex-direction:column;gap:8px}
.eqs{text-align:left;background:var(--panel);border:2px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--ink);font:inherit;display:flex;flex-direction:column}
.eqs b{font:16px "Almendra SC",Georgia,serif}.eqs small{color:var(--mute)}
.eqs.r-c{border-color:#5a5a6a}.eqs.r-r{border-color:#3a6ab0}.eqs.r-e{border-color:#7a3ab0}.eqs.r-l{border-color:#c0702a}.eqs.on{box-shadow:0 0 12px #e4c27a77}
.dkl{display:flex;flex-direction:column;gap:6px}.dk{display:flex;gap:8px;align-items:center}
.dkn{flex:1;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit}
.dk.on .dkn{border-color:var(--gold);box-shadow:0 0 10px #e4c27a55}
/* deck builder */
.dkb{padding:10px;gap:8px}.dkh{display:flex;gap:10px;align-items:center;justify-content:space-between}.dkh b{font:22px "Almendra SC",Georgia,serif;color:var(--red)}.dkh b.ok{color:var(--green)}
.curve{display:flex;gap:4px;height:44px;align-items:flex-end}.cb{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.cb i{display:block;width:100%;background:#3a6ab0;min-height:2px;border-radius:3px 3px 0 0}.cb small{font-size:10px;color:var(--mute)}
.dl{display:flex;flex-direction:column;gap:4px;overflow:auto;flex:1;min-height:0;width:100%}
.dr{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-left:5px solid var(--c);border-radius:8px;padding:5px 8px}
.dr.r-r{border-left-color:var(--r)}.dr.r-e{border-left-color:var(--e)}.dr.r-l{border-left-color:var(--l)}.dr.has{background:#1c1626}
.dc{width:26px;height:26px;flex:none;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8fc6ff,#2a5aa8 55%,#0a2050);display:grid;place-items:center;font:700 14px system-ui;color:#fff}
.dm{flex:1;display:flex;flex-direction:column;min-width:0}.dm b{font:14px "Almendra SC",Georgia,serif}.dm small{color:var(--mute);font-size:11px;line-height:1.2}
.pm{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#14101b;color:var(--ink);font-size:18px}.pm[disabled]{opacity:.3}.dn{width:14px;text-align:center}
.dkbar{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding-bottom:4px}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:10px;justify-items:center}
.pv{margin:auto;display:grid;place-items:center;width:100%;height:100%}
/* quests */
.qgrp{width:100%;max-width:420px;display:flex;flex-direction:column;gap:8px}.qgrp>b{font:20px "Almendra SC",Georgia,serif;color:var(--gold)}
.qrow{display:flex;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px}.qt{flex:1;display:flex;flex-direction:column;gap:4px}.qt small{color:var(--mute)}
/* dungeon */
.dun{width:100%;max-width:520px;text-align:left;border:1px solid #8a6a2c;border-radius:14px;padding:16px;color:var(--ink);background-size:cover;background-position:center;font:inherit;display:flex;flex-direction:column;gap:3px}
.dun b{font:22px "Almendra SC",Georgia,serif;color:var(--gold)}.dun small{color:var(--mute)}
.rule{color:#d8a6ff!important}
.path{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}
.pn{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:11px;color:var(--mute);background:#120e19}
.pn.done{border-color:#4a7a55;color:var(--green)}.pn.cur{border-color:var(--gold);color:var(--gold);box-shadow:0 0 12px #e4c27a66}.pn.boss{border-color:var(--red)}.pn.elite{border-color:#c0703a}
.enemy{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;width:100%;max-width:300px}
.enemy img{width:160px;aspect-ratio:3/4;object-fit:cover;object-position:50% 25%;border-radius:12px;border:2px solid #8a2c3a}.enemy b{font:20px "Almendra SC",Georgia,serif;color:var(--gold)}.enemy small{color:var(--mute);text-align:center}
.ask{margin:auto;max-width:320px;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:10px;text-align:center}
#ov{position:fixed;inset:0;background:#000d;z-index:50;display:flex;flex-direction:column}#ov[hidden]{display:none}
#ov .oh{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;max-width:560px;width:100%;margin:0 auto}
#ov .oc{flex:1;overflow:auto;max-width:560px;width:100%;margin:0 auto;padding:0 12px 12px}
/* cards */
.hc{flex:none;width:92px;height:134px;border-radius:10px;border:2px solid var(--c);background:linear-gradient(#241c30,#14101b);position:relative;padding:4px;display:flex;flex-direction:column;cursor:pointer;color:var(--ink);text-align:center;font:inherit;overflow:visible}
.hc.r-r{border-color:var(--r)}.hc.r-e{border-color:var(--e)}.hc.r-l{border-color:var(--l);box-shadow:0 0 8px #f0902a66}
.hc.t-s{background:linear-gradient(#18263d,#10121b)}.hc.t-w{background:linear-gradient(#3a2e12,#16121a)}
.hc.k-knight{background-image:linear-gradient(#2a2640,#14101b)}.hc.k-necro{background-image:linear-gradient(#17301f,#0e1511)}.hc.k-weapon{background-image:linear-gradient(#3a2412,#16100d)}.hc.k-mage{background-image:linear-gradient(#202a4a,#10121b)}.hc.k-space{background-image:linear-gradient(#34204a,#120e1b)}
.hc .cc{position:absolute;left:-7px;top:-7px;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8fc6ff,#2a5aa8 55%,#0a2050);color:#fff;font:700 15px system-ui;display:grid;place-items:center;border:1px solid #000;z-index:2}
.hc .cc.down{color:#9affb4}
.hc .ca{height:48px;border-radius:6px;overflow:hidden;background:linear-gradient(135deg,#2a2238,#0e0b14);display:grid;place-items:center;margin-bottom:2px}.hc .ca img{width:100%;height:100%;object-fit:cover;object-position:50% 8%}.hc .ca i{font:20px "Almendra SC",Georgia,serif;color:#ffffff55;font-style:normal}
.hc .cn{font:11px/1.05 "Almendra SC",Georgia,serif;margin:1px 0}
.hc .cty{font-size:7.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--mute)}
.hc .cx{font-size:8.5px;line-height:1.15;flex:1;display:grid;place-items:center;padding:0 2px;overflow:hidden}
.hc .sa,.hc .sh,.mn .sa,.mn .sh{position:absolute;bottom:-6px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:700 14px system-ui;border:1px solid #000;color:#fff;z-index:2}
.hc .sa,.mn .sa{left:-6px;background:radial-gradient(circle at 35% 30%,#ffe08a,#c78a1c 60%,#5a3a08)}
.hc .sh,.mn .sh{right:-6px;background:radial-gradient(circle at 35% 30%,#ff8a96,#c0293a 60%,#5a0a14)}
.hc .sh.wd,.mn .sh.wd{background:radial-gradient(circle at 35% 30%,#ccc,#777 60%,#333)}.sh.hurt{color:#ffd0d0}.sh.buf{color:#b9ffcf}
.hc.ok{box-shadow:0 0 0 2px #6fe39a88,0 0 10px #6fe39a55}.hc.no{opacity:.62}
.hc.sel{transform:translateY(-14px) scale(1.06);z-index:5;box-shadow:0 0 18px #e4c27acc}
.hc.big{width:156px;height:268px;padding:8px}.hc.big .cc{width:36px;height:36px;font-size:20px;left:-9px;top:-9px}.hc.big .ca{height:128px}.hc.big .ca img{object-position:50% 30%}.hc.big .cn{font-size:16px;margin:4px 0}.hc.big .cty{font-size:10px}.hc.big .cx{font-size:12.5px}.hc.big .sa,.hc.big .sh{width:34px;height:34px;font-size:19px;bottom:-9px}.hc.big .sa{left:-9px}.hc.big .sh{right:-9px}
.hc.mini{width:96px;height:140px}
/* battle */
.bf2{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:#0a0810;overflow:hidden}
.bf2::before{content:"";position:absolute;inset:0;background:linear-gradient(#0a0810cc,#0a081099 40%,#0a0810dd),var(--bg) center/cover;filter:saturate(.85)}
.bf2>*{position:relative}
.row{display:flex;align-items:center;gap:8px;padding:4px 8px}
.hr{display:flex;align-items:center;gap:8px;flex:none;border-radius:12px;position:relative;cursor:default}
.hp-img{width:52px;height:62px;border-radius:10px;overflow:hidden;border:2px solid #8a6a2c;background:#000}.hp-img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
.hi{display:flex;flex-direction:column;gap:2px}.hn{font:12px "Almendra SC",Georgia,serif;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs{display:flex;gap:4px;align-items:center}
.hv,.ha,.hat{min-width:26px;height:24px;padding:0 6px;border-radius:12px;display:grid;place-items:center;font:700 14px system-ui;border:1px solid #000}
.hv{background:linear-gradient(#e0525f,#a62a37)}.ha{background:linear-gradient(#8fc6ff,#3a6aa8)}.hat{background:linear-gradient(#ffe08a,#b8801a);color:#2a1a02}
.hr.tgt .hp-img{box-shadow:0 0 0 3px var(--gold),0 0 18px #e4c27acc;animation:tg 1s infinite}
.hr.ready .hp-img{box-shadow:0 0 0 3px #6fe39a,0 0 14px #6fe39a99}.hr.sel .hp-img{box-shadow:0 0 0 3px #fff,0 0 18px #fff}
.hr.frz .hp-img{filter:hue-rotate(160deg) saturate(1.5) brightness(1.2)}
.hr.hurt .hp-img{animation:hurt .4s}
.meta{flex:1;display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--mute);min-width:0}.meta>span{display:inline}
.crys{display:flex;gap:2px;align-items:center;flex-wrap:wrap}.crys i{width:11px;height:14px;background:#14284a;border:1px solid #2a4a7a;transform:skewX(-8deg);border-radius:2px}.crys i.on{background:linear-gradient(#8fc6ff,#2a6ad0);border-color:#9fd0ff;box-shadow:0 0 6px #6aa8ff}.crys span{margin-left:6px;font-size:11px;color:var(--ink)}
.pwi{font-size:10px;color:var(--mute)}
.board{display:flex;gap:5px;padding:6px 8px;justify-content:center;align-items:center;min-height:90px;flex:1 1 0}
.mn{position:relative;flex:1;max-width:72px;aspect-ratio:3/4.1;border-radius:8px;border:2px solid var(--c);background:linear-gradient(#241c30,#14101b);cursor:pointer;transition:transform .15s}
.mn.r-r{border-color:var(--r)}.mn.r-e{border-color:var(--e)}.mn.r-l{border-color:var(--l)}
.mn .ma{position:absolute;inset:0;border-radius:6px;overflow:hidden;display:grid;place-items:center}.mn .ma img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}.mn .ma i{font:22px "Almendra SC",Georgia,serif;color:#ffffff66;font-style:normal}
.mn.k-knight .ma{background:#2a2640}.mn.k-necro .ma{background:#17301f}.mn.k-weapon .ma{background:#3a2412}.mn.k-mage .ma{background:#202a4a}.mn.k-space .ma{background:#34204a}
.mn .mnm{position:absolute;left:0;right:0;bottom:12px;font-size:9px;line-height:1;text-align:center;background:#000a;padding:1px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.mn .sa,.mn .sh{width:21px;height:21px;font-size:12px;bottom:-7px}.mn .sa{left:-6px}.mn .sh{right:-6px}
.mn .tg{position:absolute;top:1px;right:2px;font-size:7px;color:#ffd27a;background:#000a;padding:0 2px;border-radius:3px}
.mn .mg{position:absolute;top:1px;left:2px;font-size:8px;font-weight:700;color:#9affb4;background:#000a;padding:0 2px;border-radius:3px}
.mn .ab{position:absolute;top:12px;left:2px;font-size:7px;color:#d8a6ff;background:#000a;padding:0 3px;border-radius:3px}
.mn.taunt{box-shadow:0 0 0 3px #b8b8c8,0 0 0 5px #50505a;border-radius:6px}
.mn.shld{box-shadow:0 0 0 2px #ffe08a,0 0 12px #ffe08a}.mn.taunt.shld{box-shadow:0 0 0 3px #b8b8c8,0 0 0 5px #ffe08a}
.mn.sick{filter:saturate(.6) brightness(.85)}.mn.frz{filter:hue-rotate(170deg) saturate(1.6) brightness(1.1)}
.mn.ready{box-shadow:0 0 0 3px #6fe39a,0 0 12px #6fe39a99}.mn.sel{transform:translateY(-6px);box-shadow:0 0 0 3px #fff}.mn.tgt{box-shadow:0 0 0 3px var(--gold),0 0 16px #e4c27acc;animation:tg 1s infinite}
@keyframes tg{50%{box-shadow:0 0 0 3px #fff,0 0 22px #e4c27a}}
.mn.hurt{animation:hurt .4s}.mn.pop{animation:pop .5s}.mn.lungeU{animation:lU .45s}.mn.lungeD{animation:lD .45s}.hr.lungeU .hp-img{animation:lU .45s}.hr.lungeD .hp-img{animation:lD .45s}
@keyframes hurt{0%,100%{transform:none;filter:none}25%{transform:translateX(6px);filter:brightness(2)}60%{transform:translateX(-5px)}}
@keyframes pop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.15)}100%{transform:none;opacity:1}}
@keyframes lU{40%{transform:translateY(-44px) scale(1.12)}}@keyframes lD{40%{transform:translateY(44px) scale(1.12)}}
.mid{min-height:22px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 8px;text-align:center}
.mid .rule{font-size:10px}.prompt2{font:17px "Almendra SC",Georgia,serif;color:var(--gold);text-shadow:0 2px 6px #000}
.pwb{margin-left:auto;background:#14101b;border:2px solid var(--line);border-radius:12px;color:var(--mute);padding:6px 10px;text-align:left;display:flex;flex-direction:column;font:inherit;max-width:150px}
.pwb b{font:13px "Almendra SC",Georgia,serif}.pwb small{font-size:9px;line-height:1.15}
.pwb.on{border-color:var(--gold);color:var(--ink);box-shadow:0 0 12px #e4c27a66}.pwb.sel{border-color:#fff}
.hand2{display:flex;gap:6px;padding:26px 14px 10px;overflow-x:auto;overflow-y:hidden;align-items:flex-end;min-height:176px;padding-bottom:max(18px,env(safe-area-inset-bottom));margin-top:auto}
.hand2::before,.hand2::after{content:"";flex:1}
.etb2{flex:none;padding:10px 10px;font-size:14px;max-width:84px;line-height:1.1}
.etb2.glow{animation:glw 1.2s infinite}@keyframes glw{50%{box-shadow:0 0 18px #e4c27a}}
.prev{position:absolute!important;left:50%;bottom:184px;transform:translateX(-50%) scale(.8);transform-origin:50% 100%;pointer-events:none;z-index:20;box-shadow:0 0 30px #000}
.prev.epv{bottom:auto;top:30%}.prev.insp{top:30%;bottom:auto}
.cancel{position:absolute!important;left:8px;top:46%;z-index:8;padding:8px 12px;font-size:14px}
.banner2{position:absolute!important;left:0;right:0;top:40%;text-align:center;font:34px "Almendra SC",Georgia,serif;color:var(--gold);text-shadow:0 0 20px #000;animation:bn 1.1s ease-out forwards;pointer-events:none;z-index:30;background:linear-gradient(90deg,transparent,#000a,transparent);padding:10px}
@keyframes bn{0%{opacity:0;transform:scale(.7)}20%{opacity:1;transform:scale(1)}80%{opacity:1}100%{opacity:0}}
.fl2{position:absolute!important;pointer-events:none;font:700 22px "Almendra SC",Georgia,serif;text-shadow:0 2px 0 #000,0 0 10px #000;animation:fl 1.1s ease-out forwards;z-index:40;white-space:nowrap}
.fl2.dmg{color:#ff6a78}.fl2.heal{color:var(--green)}.fl2.arm{color:#8fc6ff;font-size:16px}.fl2.buf{color:#ffd27a;font-size:16px}.fl2.frz{color:#8ff0ff;font-size:16px}
@keyframes fl{0%{transform:translate(-50%,0) scale(.7);opacity:0}15%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}100%{transform:translate(-50%,-52px) scale(1);opacity:0}}
.sheet{position:absolute!important;left:50%;top:50%;transform:translate(-50%,-50%);z-index:40;background:#15111df5;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;width:250px;text-align:center}
.cap.top{top:6px!important}.cap.bot{bottom:6px!important;top:auto!important}
.cap{position:absolute!important;left:8px;right:8px;z-index:35;background:#0d0a14f2;border:2px solid var(--gold);border-radius:14px;padding:14px;text-align:center;box-shadow:0 0 30px #000}
.cap p{margin:0 0 10px;font-size:15px}.capb{display:flex;gap:6px;justify-content:center}
.hlt{outline:3px solid #fff!important;outline-offset:2px;animation:hlp 1s infinite;z-index:25}@keyframes hlp{50%{outline-color:var(--gold)}}
body.nofx *{animation:none!important;transition:none!important}
body.nofx .fl2{animation:none!important;opacity:1}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-height:700px){.hc{width:84px;height:122px}.hand2{min-height:158px}.board{min-height:80px}}

.sigs{display:flex;gap:10px;overflow-x:auto;padding:10px 8px 12px;max-width:100%!important}.sigs .hc{pointer-events:none}

.mn .zz{position:absolute;top:22px;left:50%;transform:translateX(-50%);font:700 11px system-ui;color:#cfe3ff;background:#000a;padding:0 4px;border-radius:6px;letter-spacing:.1em}

/* Hearthstone-style hero zones */
.hz{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 8px}
.hz .hl,.hz .hrt{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;font-size:11px;color:var(--mute);text-align:center}
.hr{flex-direction:column;gap:2px}.hr .hn{max-width:100px;text-align:center}
.hp-img{position:relative;width:80px;height:92px;border-radius:14px;border-width:3px;overflow:visible}
.hp-img img{border-radius:11px}
.hp-img .hv{position:absolute;right:-10px;bottom:-8px;z-index:3}.hp-img .hat{position:absolute;left:-10px;bottom:-8px;z-index:3}.hp-img .ha{position:absolute;right:-10px;top:-8px;z-index:3}
.hv,.ha,.hat{min-width:30px;height:30px;font-size:16px;border-radius:50%;padding:0}
.wpn{background:#14101b;border:1px solid #8a6a2c;color:var(--gold);border-radius:8px;padding:3px 8px;font-size:11px}
.mrow{display:flex;justify-content:center;padding:0 8px 2px}
.crys{justify-content:center}
.pwi{background:#14101b;border:1px solid var(--line);border-radius:10px;padding:4px 8px;display:flex;flex-direction:column}.pwi b{font:12px "Almendra SC",Georgia,serif;color:var(--ink)}
.pwb{margin:0;position:relative;align-items:center;text-align:center;max-width:112px;width:100%;padding:12px 6px 6px}
.pwb .pc{position:absolute;left:-6px;top:-6px;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8fc6ff,#2a5aa8 55%,#0a2050);color:#fff;font:700 13px system-ui;display:grid;place-items:center;border:1px solid #000}
.mid{min-height:46px;padding:2px 8px;justify-content:space-between}
.mid .mt{flex:1;text-align:left;min-width:0}.mid .rule{font-size:10px;line-height:1.15;display:block}
.etb2{flex:none;position:static!important;transform:none!important;padding:10px 14px;font-size:15px;max-width:none}
.hand2{min-height:168px}
@media (max-height:700px){.hp-img{width:66px;height:76px}.hand2{min-height:150px}}

.crys i.lock{opacity:.28;background:#0b1424;box-shadow:none}.crys{gap:2px}.crys i{width:10px;height:13px}
.hand2 .hc.ok{touch-action:pan-x;user-select:none;-webkit-user-select:none}
.hc.dragging{opacity:.25}
.hc.ghost{position:fixed!important;transform:translate(-50%,-70%) scale(.85);pointer-events:none;z-index:60;margin:0;box-shadow:0 8px 30px #000}
.board.drop{outline:2px dashed #d9b45a88;outline-offset:-3px;border-radius:10px}
.gap{width:64px;height:84px;border:2px dashed #d9b45a;border-radius:8px;background:#d9b45a22;flex:0 0 auto}
.bf2,.bf2 *{-webkit-user-select:none;user-select:none}

/* ===== menu redesign ===== */
#top{background:linear-gradient(#17111f,#0d0a14);border-bottom:1px solid #2c2238;gap:10px;min-height:48px}
#top .brand{display:flex;flex-direction:column;line-height:1.05;flex:1}
#top .brand b{font:19px "Almendra SC",Georgia,serif;color:var(--gold);letter-spacing:.08em}
#top .brand small{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--mute)}
#top .pill.coin{display:flex;align-items:center;gap:6px;padding:4px 12px 4px 6px;border:1px solid #8a6a2c;background:#1b1409}
#top .pill.flipcoin i{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff1b5,#e4c27a 45%,#8a6a2c);box-shadow:0 0 6px #e4c27a77}
#top .pill.coin b{font-size:14px;color:var(--gold)}#top .pill.coin small{font-size:10px;color:var(--mute)}
#nav{display:flex;border-top:1px solid #2c2238;background:linear-gradient(#120e19,#0a0810);padding-bottom:max(0px,env(safe-area-inset-bottom))}
#nav[hidden]{display:none}
.nv{flex:1;position:relative;background:none;border:0;color:var(--mute);font:600 12px system-ui;letter-spacing:.06em;text-transform:uppercase;padding:14px 4px 12px;cursor:pointer}
.nv.on{color:var(--gold)}.nv.on::before{content:"";position:absolute;left:22%;right:22%;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--gold);box-shadow:0 0 10px #e4c27a}
.bdg{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;font:700 11px system-ui;font-style:normal;margin-left:5px;vertical-align:middle}
.nv .bdg{position:absolute;top:6px;left:56%}
.pg{flex:1;overflow:auto;padding:12px 14px 18px;display:flex;flex-direction:column;gap:12px;background:radial-gradient(120% 60% at 50% 0,#1d1429 0,transparent 70%)}
.pg>*{flex-shrink:0}
.ph{display:flex;align-items:center;gap:10px}
.ph .pt{flex:1;min-width:0}.ph h2{margin:0;font-size:27px;color:var(--gold);line-height:1.05;letter-spacing:.05em}.ph small{color:var(--mute);font-size:12.5px;display:block;margin-top:3px}
.bk{background:#14101b;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font:inherit;font-size:13px}
.sh{font:17px "Almendra SC",Georgia,serif;color:var(--gold);margin:6px 0 0;letter-spacing:.08em;display:flex;align-items:center;gap:10px;align-self:stretch}
.sh::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#8a6a2c88,transparent)}
.cnt{color:var(--mute);font-size:12px;text-align:center;display:block}
.seg{display:flex;background:#0d0a14;border:1px solid var(--line);border-radius:12px;padding:3px;gap:3px}
.sg{flex:1;background:none;border:0;color:var(--mute);font:600 13px system-ui;padding:10px 4px;border-radius:9px;cursor:pointer}
.sg.on{background:linear-gradient(#4a3516,#2c200c);color:var(--gold);box-shadow:0 0 0 1px #8a6a2c inset}
.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.chip{flex:none;background:#14101b;color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font:600 13px system-ui}
.chip.on{background:#3a2a12;color:var(--gold);border-color:#8a6a2c}
/* hero strip */
.hstrip{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 4px}
.hsb{flex:none;width:74px;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;color:var(--mute);font:600 11px system-ui;padding:0}
.hsb img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 20%;border:2px solid var(--line);background:#120e19;display:block;filter:grayscale(.5) brightness(.75);transition:.2s}
.hsb small{font-size:10px;color:var(--mute);margin-top:-2px}
.hsb.on{color:var(--gold)}.hsb.on img{border-color:var(--gold);filter:none;box-shadow:0 0 14px #e4c27a77}
/* hero banner */
.bnr{border-radius:16px;border:1px solid #8a6a2c;aspect-ratio:16/8;box-shadow:0 8px 24px #000a}
.bnr .lv{position:absolute;top:10px;right:10px;background:#000b;border:1px solid var(--gold);color:var(--gold);border-radius:999px;padding:3px 12px;font:600 12px system-ui}
.hbody{display:flex;flex-direction:column;gap:12px}
.hbody .blurb{text-align:left;line-height:1.45;color:var(--ink)}
.lvl{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0}
.facts2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.facts2 .fact:last-child{grid-column:1/-1}
.fact{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;gap:2px}
.fact small{color:var(--mute);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.fact b{color:var(--ink);font:600 14px/1.3 system-ui}
.pwo{padding:12px 14px;border-radius:12px;gap:2px}.pwo em{font-style:normal;font-size:12px;color:var(--gold);margin-top:4px}.pwo.lock em{color:var(--mute)}
.pwo.on{background:linear-gradient(#2a1f10,#1a140c)}
.hbody .msg{max-width:none;text-align:left;font-size:13px}
.dkn{display:flex;flex-direction:column;gap:2px;border-radius:12px;padding:12px 14px}.dkn b{font:17px "Almendra SC",Georgia,serif;color:var(--gold)}.dkn small{color:var(--mute)}
.eqs{border-radius:12px;padding:12px 14px}
/* home */
.hbn{position:relative;border-radius:18px;overflow:hidden;border:1px solid #8a6a2c;min-height:176px;display:flex;box-shadow:0 10px 28px #000a}
.hbn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hbn .ht{position:relative;margin-top:auto;padding:46px 16px 14px;background:linear-gradient(transparent,#000d 70%);width:100%;display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.hbn small{color:var(--mute);letter-spacing:.2em;text-transform:uppercase;font-size:10px}
.hbn h1{margin:0;font-size:32px;color:var(--gold);line-height:1}.hbn span{color:var(--ink);font-size:13px;margin-bottom:6px}
.pc2{position:relative;display:flex;align-items:center;text-align:left;min-height:96px;border:1px solid #8a6a2c;border-radius:16px;padding:14px 16px;background-size:cover;background-position:center;color:var(--ink);font:inherit;box-shadow:0 6px 18px #0009;overflow:hidden}
.pc2:active{transform:scale(.985)}
.pcx{display:flex;flex-direction:column;gap:3px;max-width:68%}.pcx b{font:25px "Almendra SC",Georgia,serif;color:var(--gold);letter-spacing:.05em}.pcx small{color:#cfc6dc;font-size:12.5px;line-height:1.3}
.pc2 .tag{position:absolute;top:10px;right:12px;font:700 10px system-ui;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid #8a6a2c;border-radius:999px;padding:3px 9px;background:#000a}
.qcard{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 16px;color:var(--ink);font:inherit}
.qcard b{font:19px "Almendra SC",Georgia,serif;color:var(--gold)}.qcard small{color:var(--mute)}
.qcard.hot{border-color:var(--gold);box-shadow:0 0 16px #e4c27a55}
/* quests */
.qlist{display:flex;flex-direction:column;gap:10px}
.qc{display:flex;gap:12px;align-items:center;background:linear-gradient(#1a1424,#120e19);border:1px solid var(--line);border-radius:14px;padding:14px}
.qc.rdy{border-color:var(--gold);box-shadow:0 0 14px #e4c27a44}.qc.got{opacity:.5}
.qc .qt{flex:1;gap:8px}.qc .qt b{font:600 15px system-ui}
.qbar{position:relative;height:20px;background:#07050b;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.qbar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(#6aa8ff,#2f5fa8)}.qc.rdy .qbar i,.qc.got .qbar i{background:linear-gradient(#7be3a0,#2f8a55)}
.qbar span{position:relative;display:block;text-align:center;font:600 11px/18px system-ui;color:#fff;text-shadow:0 1px 2px #000}
.qa{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:78px}
.qr{display:flex;flex-direction:column;align-items:center;line-height:1}.qr b{font:700 20px system-ui;color:var(--gold)}.qr small{font-size:10px;color:var(--mute);text-transform:uppercase;letter-spacing:.1em}
.qa .btn{width:100%;padding:8px 6px;font-size:14px}
/* more */
.stg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stc{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}
.stc b{font:700 19px system-ui;color:var(--gold)}.stc small{color:var(--mute);font-size:11px}
.lrow{display:flex;align-items:center;gap:12px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;color:var(--ink);font:inherit}
.lrow>div{flex:1;display:flex;flex-direction:column}.lrow b{font:600 15px system-ui}.lrow small{color:var(--mute);font-size:12px}
.sw{font:700 12px system-ui;color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:5px 14px;background:#0d0a14}.sw.on{color:#0a0810;background:var(--gold);border-color:var(--gold)}
/* arena / dungeons */
.rankc{display:flex;flex-direction:column;align-items:center;background:linear-gradient(#1f1630,#120e19);border:1px solid #8a6a2c;border-radius:16px;padding:14px}
.rankc b{font:34px "Almendra SC",Georgia,serif;color:var(--gold)}.rankc small{color:var(--mute)}
.btn.big{padding:16px;font-size:21px;width:100%}
.dmsg{max-width:none!important;text-align:left!important}
.dun{max-width:none;border-radius:16px;box-shadow:0 6px 18px #0009}
.title .btn{width:100%}
.menu .mbtns .btn{padding:15px 18px;font-size:19px}
.menu .mgrid{grid-template-columns:repeat(3,1fr)}.menu .mgrid .btn{padding:10px 4px;font-size:14px}

.hbn{aspect-ratio:1280/714;min-height:0}.hbn .ht{padding:60px 16px 12px}.bnr{aspect-ratio:1280/714}
.pban{width:100%;border-radius:14px;border:1px solid #8a6a2c;display:block;box-shadow:0 6px 18px #0009}
.pc3{display:flex;flex-direction:column;padding:0;border:1px solid #8a6a2c;border-radius:16px;overflow:hidden;background:var(--panel);color:var(--ink);font:inherit;text-align:left;box-shadow:0 6px 18px #0009;position:relative}
.pc3:active{transform:scale(.985)}.pc3.hot{border-color:var(--gold);box-shadow:0 0 18px #e4c27a66}
.pc3>img{width:100%;display:block;aspect-ratio:1000/311;object-fit:cover}
.pcs{display:flex;align-items:center;gap:10px;padding:9px 14px;background:linear-gradient(#17111f,#100c17)}.pcs span{flex:1;font-size:12.5px;color:#cfc6dc;line-height:1.3}
.tag{font:700 10px system-ui;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid #8a6a2c;border-radius:999px;padding:3px 9px;background:#000a;white-space:nowrap}
.pc3.dly{flex-direction:row;align-items:center;min-height:92px;padding:14px 16px;background-size:cover;background-position:center}.pc3.dly .tag{position:absolute;top:10px;right:12px}
/* rarity */
.hc{isolation:isolate}
.hc::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none}
.hc.r-c{border-color:#8a8794}.hc.r-c::before{background:linear-gradient(#9a95a826,#9a95a808)}
.hc.r-r{border-color:#4a90e2;box-shadow:0 0 6px #4a90e255}.hc.r-r::before{background:linear-gradient(#4a90e240,#1a3a7010)}
.hc.r-e{border-color:#a85cf0;box-shadow:0 0 8px #a85cf066}.hc.r-e::before{background:linear-gradient(#a85cf048,#4a1a8010)}
.hc.r-l{border-color:#f2cf6a;box-shadow:0 0 10px #f2cf6a88}.hc.r-l::before{background:linear-gradient(#f2cf6a52,#7a501010)}
.hc.big.r-c{box-shadow:0 0 18px #9a95a855}.hc.big.r-c::before{background:linear-gradient(#9a95a844,#9a95a812)}
.hc.big.r-r{box-shadow:0 0 26px #4a90e2aa}.hc.big.r-r::before{background:linear-gradient(#4a90e280,#1a3a7030)}
.hc.big.r-e{box-shadow:0 0 30px #a85cf0cc}.hc.big.r-e::before{background:linear-gradient(#a85cf088,#4a1a8035)}
.hc.big.r-l{border-width:3px;animation:legp 2.4s ease-in-out infinite}.hc.big.r-l::before{background:linear-gradient(115deg,#f2cf6a77,#7a501030 40%,#f2cf6a66 70%,#7a501030)}
.hc.big.r-l::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,transparent 40%,#fff6c055 50%,transparent 60%);background-size:250% 100%;animation:legs 3s linear infinite}
@keyframes legp{0%,100%{box-shadow:0 0 20px #f2cf6a88}50%{box-shadow:0 0 38px #f2cf6add}}
@keyframes legs{from{background-position:150% 0}to{background-position:-100% 0}}
/* no-art dimming, thumbs, legend fx */
.hc.noart{filter:grayscale(.85) brightness(.6);opacity:.7}
.dr.noart{filter:grayscale(.85) brightness(.65);opacity:.75}
.dth{width:46px;height:46px;flex:none;border-radius:8px;overflow:hidden;background:#0e0b14;border:1px solid var(--line)}.dth img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;display:block}
.dr.r-l{box-shadow:inset 0 0 14px #f2cf6a30}
.hc.r-l::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;background:linear-gradient(105deg,transparent 40%,#fff6c04d 50%,transparent 60%);background-size:250% 100%;animation:legs 3.2s linear infinite}
.dr.r-l{position:relative;overflow:hidden}.dr.r-l::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 40%,#fff6c030 50%,transparent 60%);background-size:250% 100%;animation:legs 3.6s linear infinite}
.hc.r-l:not(.big){animation:legp 2.8s ease-in-out infinite}
/* collection & packs */
#top .pill.dust{display:flex;align-items:baseline;gap:5px;padding:4px 10px;border:1px solid #5a4a8a;background:#14101f}#top .pill.dust b{font-size:13px;color:#c9b3ff}#top .pill.dust small{font-size:10px;color:var(--mute)}
.hc.unowned{filter:grayscale(.9) brightness(.55);opacity:.7}
.hc .own{position:absolute;right:4px;top:4px;background:#000b;color:var(--gold);font:700 11px system-ui;padding:1px 6px;border-radius:8px;z-index:4}
.hc.big.unowned .own{display:none}
.dr.unowned{filter:grayscale(.85) brightness(.65);opacity:.75}.dn{width:auto!important;min-width:30px}
.qr .qx{color:#c9b3ff;font-size:10px;margin-top:2px;text-transform:none;letter-spacing:0}
.cvw{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px}.cvi{color:var(--ink);font-size:14px}.cvb{display:flex;gap:10px}.cvh{color:var(--mute);font-size:11px;max-width:300px;text-align:center}
.pkbox{display:flex;gap:16px;align-items:center;background:var(--panel);border:1px solid #8a6a2c;border-radius:16px;padding:14px}
.pkart{flex:none;width:110px;height:156px;border-radius:12px;border:2px solid var(--gold);background:radial-gradient(circle at 50% 30%,#5a3aa0,#241440 60%,#0e0818);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:0 0 22px #a85cf066;animation:legp 3s ease-in-out infinite;overflow:hidden}
.pkart b{font:22px "Almendra SC",Georgia,serif;color:var(--gold)}.pkart small{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#c9b3ff}.pkart.img{border:0;background:none;box-shadow:none}.pkart img{width:100%;height:100%;object-fit:contain}
.pkside{display:flex;flex-direction:column;gap:8px;flex:1}.pkside h2{margin:0;font-size:20px;color:var(--gold)}.pkside small{color:var(--mute)}
.pkhint{width:100%;margin-bottom:6px}
.shop{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.shi{display:flex;flex-direction:column;gap:2px;align-items:center;padding:12px 6px;background:var(--panel);border:1px solid #8a6a2c;border-radius:12px;color:var(--ink);font:inherit}.shi b{font:16px "Almendra SC",Georgia,serif;color:var(--gold)}.shi small{color:var(--mute);font-size:12px}.shi[disabled]{opacity:.4}
.pkov{margin:auto;display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px;width:100%;max-width:420px}.pkov h2{margin:0;color:var(--gold)}
.pkrow{display:flex;flex-wrap:wrap;gap:14px 10px;justify-content:center}.pks{width:96px;min-height:162px;display:flex;flex-direction:column;align-items:center;gap:4px}
.pkb{width:96px;height:140px;border-radius:10px;border:2px solid var(--gold);background:radial-gradient(circle at 50% 30%,#5a3aa0,#241440 65%,#0e0818);color:var(--gold);font:700 34px "Almendra SC",Georgia,serif;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 12px #a85cf055}.pkb span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#c9b3ff;font-family:system-ui;font-weight:400}
.pkt{font-size:11px;color:var(--mute);text-align:center}.pkt.nw{color:var(--green)}
.hc.pop{animation:popin .35s ease-out}@keyframes popin{from{transform:scale(.6) rotateY(90deg);opacity:0}to{transform:none;opacity:1}}
.pkbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

.qc.lock{opacity:.5}.qc small{color:var(--mute)}
body.hasback .pkb{background:var(--cardback) center/cover;border-color:var(--gold)}body.hasback .pkb span{display:none}body.hasback .pkb{color:transparent}
.setbox,.setall{margin-top:10px}.sbr{display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-top:6px}.sbr b{color:var(--gold)}.sbr small{color:var(--mute);font-size:12px}.sbr small.on{color:var(--green)}
.setall summary{color:var(--gold);cursor:pointer;padding:8px 0}
.eql{display:grid;grid-template-columns:1fr;gap:8px}
/* gear icons */
.gi{flex:none;width:56px;height:56px;border-radius:10px;border:2px solid var(--line);background:linear-gradient(#1c1626,#0e0b14);overflow:hidden;display:block}.gi img{width:100%;height:100%;object-fit:cover;display:block}
.gi.sm{width:44px;height:44px}
.gi.r-r{border-color:#4a90e2}.gi.r-e{border-color:#a85cf0}.gi.r-l{border-color:#f2cf6a}.gi.r-c{border-color:#8a8794}
.eqs.wi{flex-direction:row;align-items:center;gap:12px}.eqt{display:flex;flex-direction:column;min-width:0;flex:1}
.qc .gi{margin-right:10px}.qc{align-items:center}
.admlist{display:flex;flex-direction:column;gap:8px;margin-top:10px}.admrow{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit}.admrow b{color:var(--gold)}.admrow small{color:var(--mute);font-size:12px}
.admd .fact{width:100%;max-width:340px;gap:6px}
.admgift{display:flex;flex-direction:column;gap:6px;width:100%;max-width:340px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px}.admgift b{color:var(--gold)}.admn{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.admgift .inp{max-width:none;padding:8px;font-size:15px}
.cvw.admd{max-height:92vh;overflow:auto}
/* admin graphics */
.admt{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.admtile{display:flex;flex-direction:column;gap:2px;background:linear-gradient(#1c1626,#120e19);border:1px solid #8a6a2c;border-radius:14px;padding:12px 14px}
.admtile small{color:var(--mute);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.admtile b{font:32px "Almendra SC",Georgia,serif;color:var(--gold);line-height:1.1}.admtile em{font-style:normal;color:var(--green);font-size:12px}
.admg{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.admc{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.admc h4{margin:0;font:18px "Almendra SC",Georgia,serif;color:var(--gold)}.admc>small{color:var(--mute);font-size:12px;margin-top:-6px}
.admcol{display:flex;align-items:flex-end;gap:4px;height:120px;padding-top:6px}.admk{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;min-width:0}
.admk i{display:block;width:100%;border-radius:4px 4px 0 0;background:linear-gradient(#6aa8ff,#2a5aa8);min-height:2px}.admk i.hi{background:linear-gradient(#f2cf6a,#a8741c)}
.admk .v{font-size:10px;color:var(--ink)}.admk .l{font-size:10px;color:var(--mute)}
.admhr{display:flex;align-items:center;gap:10px}.admhr img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:1px solid #8a6a2c;flex:none}
.admhm{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.admhm span{font-size:13px}.admhm small{color:var(--mute);font-size:11px}
.admbw{height:8px;background:#0a0810;border:1px solid var(--line);border-radius:5px;overflow:hidden}.admbw i{display:block;height:100%;background:linear-gradient(90deg,#a8741c,#f2cf6a)}
.admhr>b{font-size:15px;color:var(--gold);min-width:22px;text-align:right}
.admrow{flex-direction:row!important;align-items:center;gap:10px}.admrow.ban{opacity:.6;border-color:#8a2c3a}
.admav{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid #8a6a2c;flex:none}
.admtx{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.admtop{display:flex;align-items:center;gap:8px}
.admlv{font-size:11px;padding:1px 8px;border-radius:9px;background:#3a2a12;color:var(--gold);border:1px solid #8a6a2c}.admsus{font-size:11px;padding:1px 8px;border-radius:9px;background:#3a121a;color:#ff9aa6}
.admst{font-size:11px!important}
.admhl{display:flex;align-items:flex-end;gap:3px;height:42px;flex:none}.admhl span{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;width:9px}.admhl i{display:block;width:100%;background:linear-gradient(#f2cf6a,#a8741c);border-radius:2px 2px 0 0}.admhl small{font-size:8px;color:var(--mute)}
.admn2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.admn2 .inp,.admgift select.inp{max-width:none;padding:8px;font-size:15px}
.admk.dual{justify-content:flex-end}.admp{display:flex;align-items:flex-end;gap:1px;width:100%;height:100%}.admp i{flex:1;display:block;background:linear-gradient(#6fe39a,#2a7a4a);border-radius:2px 2px 0 0}.admp i.b2{background:linear-gradient(#ff8a96,#a02a3a)}
.admlg{display:flex;gap:14px;font-size:11px;color:var(--mute)}.admlg .k1:before,.admlg .k2:before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;background:#6fe39a}.admlg .k2:before{background:#ff8a96}
/* mailbox */
.maill{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.mailc{display:flex;flex-direction:column;gap:6px;background:linear-gradient(#1c1626,#120e19);border:1px solid #8a6a2c;border-radius:14px;padding:12px 14px}.mailc.got{opacity:.55;border-color:var(--line)}
.mailh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.mailh b{font:18px "Almendra SC",Georgia,serif;color:var(--gold)}.mailh small{color:var(--mute);font-size:11px}
.mailn{margin:0;color:var(--ink);font-size:14px;line-height:1.35}.mailr{color:#c9b3ff;font-size:13px}
.admhist{display:flex;flex-direction:column;gap:6px}.admhr2{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--mute)}.admhr2 span{flex:1;min-width:0}
.admc .inp{max-width:none;padding:8px;font-size:15px}
.admd{max-height:88vh;overflow:auto}.admsec{display:block;margin:12px 0 4px;color:var(--gold,#e0b85a);border-bottom:1px solid #ffffff22;padding-bottom:2px}.admln{display:block;margin:2px 0;line-height:1.35}.admhero{background:#ffffff0a;border-radius:8px;padding:8px;margin:6px 0}.admd details{margin:4px 0}.admd summary{cursor:pointer;font-size:.8rem;opacity:.85}.admraw{font-size:.65rem;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-all}
/* Netlify free-tier badge floats over the bottom bar: lift the bar above it */
body.nlb #nav{padding-bottom:calc(max(0px,env(safe-area-inset-bottom)) + 46px)}
.admip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0}.admip small{flex:1 1 60%}.admwarn{color:#e8a050;display:block}.admstr{margin-top:8px}.admstr small{display:block}.admsusn{display:block;color:#e07070;margin-bottom:6px}.admdanger{border:1px solid #7a2a2a}.admchk{display:block;margin:6px 0;font-size:.8rem}
.strk{display:flex;gap:6px;margin:6px 0}.strk i{width:22px;height:8px;border-radius:4px;background:#2c2238}.strk i.on{background:var(--gold,#e0b85a);box-shadow:0 0 8px #e0b85a88}.rankc .qbar{width:80%;margin:6px 0}
.maila{display:flex;gap:8px;margin-top:8px}.mailtake{color:#e8a050}.admd textarea.inp,#ov textarea.inp{width:100%;font-size:.75rem;resize:none}
/* pack opening: the card back glows softly in the colour of what is inside */
.pkb.g-r{box-shadow:0 0 16px 3px rgba(110,170,255,.38)}
.pkb.g-e{box-shadow:0 0 18px 4px rgba(176,120,255,.42)}
.pkb.g-l{box-shadow:0 0 22px 6px rgba(255,222,120,.5);animation:glowl 1.8s ease-in-out infinite}
@keyframes glowl{50%{box-shadow:0 0 30px 9px rgba(255,222,120,.65)}}
body.nofx .pkb.g-l{animation:none}
.pks .rv-r{box-shadow:0 0 22px 4px rgba(110,170,255,.55)}.pks .rv-e{box-shadow:0 0 26px 6px rgba(176,120,255,.6)}.pks .rv-l{box-shadow:0 0 32px 8px rgba(255,222,120,.7)}
/* v1.40: phone safety for the battle screen */
html,body{height:100dvh}#app{height:100dvh}
.hand2{padding-top:36px}.board{padding-top:12px;padding-bottom:10px}
.pv:has(.admd){background:rgba(6,4,10,.96)}
.admtabs{position:sticky;top:0;z-index:4;background:#14101b;padding:8px 0;margin:0 0 6px}
/* drag targets: green = friendly, red = enemy */
.mn.dtgt.fr,.hr.dtgt.fr .hp-img{box-shadow:0 0 0 3px #6fe39a,0 0 20px #6fe39acc!important;animation:tg 1s infinite}
.mn.dtgt.foe,.hr.dtgt.foe .hp-img{box-shadow:0 0 0 3px #ff5a5a,0 0 20px #ff5a5acc!important;animation:tg 1s infinite}
.hr.dself .hp-img{box-shadow:0 0 0 3px #6fe39a88,0 0 14px #6fe39a88}
.adot{position:fixed;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:radial-gradient(#ffb0b0,#ff5a5a);box-shadow:0 0 18px #ff5a5a;pointer-events:none;z-index:70}
body.nofx .dtgt{animation:none!important}
.mn,.hr{touch-action:none}

/* logo */
.lgo{display:block;width:min(62vw,250px);height:auto;margin:0 auto 6px;filter:drop-shadow(0 6px 18px #000a)}
.menu .lgo~h1{font-size:0;height:0;margin:0;overflow:hidden}
.tlg{width:30px;height:30px;border-radius:50%;margin-right:8px;vertical-align:middle;object-fit:cover}
.brand{display:flex;align-items:center}

/* rule: one small info button instead of text in the middle */
.rinfo{width:22px;height:22px;border-radius:50%;border:1px solid #d8a6ff88;background:#1a1226cc;color:#d8a6ff;font:italic 700 13px Georgia,serif;line-height:1;padding:0;cursor:pointer}
.mid .rulepop{position:absolute;left:8px;right:8px;bottom:100%;margin-bottom:4px;background:#120c1cf2;border:1px solid #d8a6ff66;border-radius:8px;padding:6px 8px;font-size:11px;z-index:30;text-align:left}
.mid{position:relative}

.lbx{display:flex;flex-direction:column;gap:6px;margin-top:8px}.lbr{display:grid;grid-template-columns:44px 1fr auto 56px;gap:8px;align-items:center;padding:8px 10px;border:1px solid #ffffff1a;border-radius:8px;background:#ffffff08}.lbr.me{border-color:var(--gold);background:#d8a63a18}.lbr b{color:var(--gold)}.lbr em{font-style:normal;text-align:right;font-weight:700}.lbr small{opacity:.7}

.dtimer{position:fixed;top:calc(env(safe-area-inset-top,0px) + 4px);left:50%;transform:translateX(-50%);z-index:60;background:#120c1cee;border:1px solid #ffffff2a;border-radius:14px;padding:3px 12px;font-size:12px;color:#e8dcc0;display:flex;gap:8px;align-items:center;pointer-events:auto}.dtimer.low{border-color:#ff5a5a;color:#ff9a9a}.dtimer .btn{padding:2px 10px;font-size:12px}

.diag{white-space:pre-wrap;word-break:break-word;font:12px/1.5 ui-monospace,Menlo,Consolas,monospace;background:#120f1a;border:1px solid #3a2f52;border-radius:10px;padding:10px;margin:6px 0 10px;color:#d8d0ea;user-select:text}

/* admin: online status */
.admdot{width:10px;height:10px;border-radius:50%;background:#5a5666;flex:none;display:inline-block}
.admdot.on{background:#3ddc84;box-shadow:0 0 6px #3ddc84}
.admflt{margin:12px 0 8px;align-items:center}
.dgrow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.dgrow .btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;font-size:14px;line-height:1.2}
.dgrow .btn b{font:17px "Almendra SC",Georgia,serif;color:var(--gold)}
.dgrow .btn small{font-size:11px;color:var(--mute)}
.dgrow .dg1{border-color:#c88a2c}.dgrow .dg2{border-color:#b0382c;background:linear-gradient(#4a1a14,#2a0e0a)}
.dgrow .btn.lock{opacity:.5;filter:grayscale(.6)}


/* ---- v44: bigger cards and text, piles, cast banner, tips ---- */
.hc{width:106px;height:156px;padding:5px}
.hc .cn{font-size:13px;line-height:1.05}
.hc .cty{font-size:8.5px}
.hc .cx{font-size:10.5px;line-height:1.15}
.hc .ca{height:54px}
.hc .cc{width:30px;height:30px;font-size:17px}
.hc .sa,.hc .sh{width:28px;height:28px;font-size:16px}
.hc.mini{width:84px;height:124px}.hc.mini .cn{font-size:11px}.hc.mini .cx{font-size:8.5px}.hc.mini .ca{height:40px}
.hand2{min-height:190px}
@media (max-height:700px){.hc{width:96px;height:142px}.hand2{min-height:172px}}
.hc.big{width:220px;height:350px;padding:10px}
.hc.big .ca{height:160px}.hc.big .cn{font-size:20px;margin:6px 0}.hc.big .cty{font-size:11px}.hc.big .cx{font-size:15px;line-height:1.25}
.hc.big .cc{width:42px;height:42px;font-size:24px}.hc.big .sa,.hc.big .sh{width:40px;height:40px;font-size:22px;bottom:-10px}
.prev{bottom:auto!important;top:50%!important;transform:translate(-50%,-50%)!important;transform-origin:50% 50%}
.prev.epv,.prev.insp{top:50%!important}
@media (max-height:700px){.hc.big{width:190px;height:310px}.hc.big .ca{height:136px}.hc.big .cx{font-size:13.5px}}
.mn{max-width:84px}
.mn .mnm{font-size:10.5px;bottom:13px}
.mn .sa,.mn .sh{width:25px;height:25px;font-size:14px}
.mn .tg,.mn .ab{font-size:9px}
.board{min-height:96px}
.hz .hl,.hz .hrt{font-size:13px}
.crys{font-size:13px}
.etb2{font-size:16px}
.pile{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:64px;border-radius:8px;border:2px solid #7a6a9a;background:repeating-linear-gradient(135deg,#2b2140,#2b2140 5px,#241b36 5px,#241b36 10px);color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 #1a1426,5px 5px 0 #120d1c;padding:0;font-family:system-ui}
.pile b{font-size:20px;line-height:1}.pile small{font-size:10px;color:var(--gold);line-height:1.1;margin-top:2px}
.pile.disc{border-color:#8a5a5a;background:repeating-linear-gradient(135deg,#3a2230,#3a2230 5px,#2e1a26 5px,#2e1a26 10px)}
.psheet{position:absolute!important;left:6px;right:6px;top:8%;bottom:8%;z-index:45;background:#0d0a14f7;border:2px solid var(--gold);border-radius:14px;padding:10px;display:flex;flex-direction:column;box-shadow:0 0 30px #000}
.psh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.psh b{font-size:15px}
.plist{overflow-y:auto;display:flex;flex-direction:column;gap:5px}
.prow{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;border:1px solid var(--line);background:#1a1426;color:var(--ink);font-size:15px;text-align:left;cursor:pointer}
.prow.r-r{border-color:#4a90e2}.prow.r-e{border-color:#a85cf0}.prow.r-l{border-color:#f2cf6a}
.prow .pc2{flex:none;width:26px;height:26px;border-radius:50%;background:#2a5aa8;display:grid;place-items:center;font-weight:700;font-size:14px}
.prow .pn{flex:1}.prow .pt{color:var(--mute);font-size:12px}.prow .px{font-weight:700;color:var(--gold)}
.pnote{text-align:center;color:var(--mute);padding:20px;font-size:15px}
.castbn{position:absolute!important;left:8px;right:8px;top:36%;z-index:40;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:#0d0a14f2;border:2px solid #6fe39a;box-shadow:0 0 24px #000;pointer-events:none;animation:cbin .25s ease-out}
.castbn.foe{border-color:#ff5a5a}.castbn p{margin:0;font-size:16px;flex:1;text-align:left}.castbn .hc{flex:none}
@keyframes cbin{from{transform:translateY(-14px);opacity:0}to{transform:none;opacity:1}}
.castT{box-shadow:0 0 0 4px #ffd27a,0 0 26px #ffd27a!important;animation:tg .5s 3}
.hr.castT .hp-img{box-shadow:0 0 0 4px #ffd27a,0 0 26px #ffd27a}
.tipbox{position:absolute!important;left:10px;right:10px;top:36%;z-index:30;background:#0d0a14f2;border:2px solid #d8a6ff;border-radius:12px;padding:10px 12px;pointer-events:none;display:flex;flex-direction:column;gap:4px;text-align:left}
.tipbox b{color:var(--gold);font-size:16px}.tipbox span{font-size:15px;line-height:1.3}

.dun.locked{filter:grayscale(.9) brightness(.6)}.dun .lockmsg{color:#ff9a9a;font-weight:700}.dun .dd{color:var(--gold)}.dun .cont{color:#9affb4}
.dun.legend{border-color:#f2cf6a;box-shadow:0 0 14px #f2cf6a66}
.dfbox{display:flex;flex-direction:column;gap:8px;padding:12px;border:2px solid var(--line);border-radius:12px;background:#15111d;margin-bottom:10px}
.dfbox.locked{opacity:.55}.dfbox b{font-size:18px;color:var(--gold)}.dfbox .lockmsg{color:#ff9a9a}
.plvl{display:flex;flex-direction:column;gap:4px;padding:8px 12px;margin:8px 0;border:1px solid var(--line);border-radius:10px;background:#15111d}
.plvl b{color:var(--gold)}.plvl small{color:var(--mute)}

/* ---- v46: everything scales with --k (set by battle.js from the real battle height) ---- */
.bf2{--k:1}
.bf2 .hp-img{width:calc(80px*var(--k))!important;height:calc(94px*var(--k))!important}
.bf2 .hr .hn{font-size:max(11px,calc(13px*var(--k)))}
.bf2 .hz{padding:calc(2px*var(--k)) 8px}
.bf2 .board{min-height:calc(86px*var(--k));padding:calc(8px*var(--k)) 8px calc(8px*var(--k))}
.bf2 .mn{max-width:calc(80px*var(--k))}
.bf2 .mn .mnm{font-size:max(9px,calc(10.5px*var(--k)))}
.bf2 .mn .sa,.bf2 .mn .sh{width:calc(25px*var(--k));height:calc(25px*var(--k));font-size:max(11px,calc(14px*var(--k)))}
.bf2 .mid{min-height:calc(44px*var(--k));gap:10px;padding:2px 10px;margin:calc(2px*var(--k)) 0}
.bf2 .etb2{font-size:max(13px,calc(16px*var(--k)));padding:calc(9px*var(--k)) calc(14px*var(--k));white-space:nowrap}
.bf2 .mrow{padding:0 8px calc(2px*var(--k))}
.bf2 .hand2{display:flex;justify-content:flex-start;overflow-x:auto!important;overflow-y:hidden;gap:calc(6px*var(--k));padding:calc(30px*var(--k)) 14px max(calc(10px*var(--k)),env(safe-area-inset-bottom))!important;min-height:calc(150px*var(--k) + 30px*var(--k) + 10px)!important;align-items:flex-end}
.bf2 .hand2::before,.bf2 .hand2::after{display:block;content:"";flex:1}
.bf2 .hand2 .hc{width:calc(100px*var(--k))!important;height:calc(148px*var(--k))!important;padding:calc(4px*var(--k))}
.bf2 .hand2 .hc .cx,.bf2 .hand2 .hc .cty{display:grid}
.bf2 .hand2 .hc .cty{display:block;font-size:max(7.5px,calc(8px*var(--k)))}
.bf2 .hand2 .hc .ca{height:calc(52px*var(--k))}
.bf2 .hand2 .hc .cn{font-size:max(10.5px,calc(12.5px*var(--k)));margin-top:2px}
.bf2 .hand2 .hc .cx{font-size:max(9.5px,calc(10.5px*var(--k)));line-height:1.12}
.bf2 .hand2 .hc .cc{width:calc(28px*var(--k));height:calc(28px*var(--k));font-size:max(13px,calc(16px*var(--k)));left:-6px;top:-6px}
.bf2 .hand2 .hc .sa,.bf2 .hand2 .hc .sh{width:calc(26px*var(--k));height:calc(26px*var(--k));font-size:max(12px,calc(15px*var(--k)))}
.bf2 .hand2 .hc.sel{transform:translateY(-8px)}
.bf2 .hc.big{width:calc(230px*max(var(--k),.8));height:calc(370px*max(var(--k),.8))}
.bf2 .hc.big .ca{height:calc(150px*max(var(--k),.8))}
.bf2 .hc.big .cn{font-size:max(19px,calc(23px*var(--k)))}
.bf2 .hc.big .cx{font-size:max(15px,calc(18px*var(--k)))}
.bf2 .hc.big .cty{font-size:12px}
/* pile chips: small, no extra layout height */
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;border:1px solid #7a6a9a;background:#1c1530;color:var(--ink);font:600 max(11px,calc(12px*var(--k))) system-ui;cursor:pointer;line-height:1.4;white-space:nowrap}
.chip b{color:var(--gold)}.chip.disc{border-color:#8a6a6a;background:#2a1a22}
.chip.flat{cursor:default;border-color:transparent;background:#0006}
.chips{display:flex;flex-direction:column;gap:3px;align-items:center}
.mrow{display:flex;align-items:center;justify-content:space-between;gap:6px}
/* pile viewer: cards side by side like a hand */
.psheet .pgrid{display:flex;flex-wrap:wrap;gap:12px 8px;justify-content:center;overflow-y:auto;padding:10px 4px 20px}
.psheet .pgrid .hc{width:calc(100px*max(var(--k),.85))!important;height:calc(148px*max(var(--k),.85))!important;margin:0}
.psheet .pgrid .xn{position:absolute;right:-4px;top:-8px;z-index:5;background:var(--gold);color:#000;font:700 12px system-ui;padding:1px 6px;border-radius:9px}
/* quiet cast notice: a slim line at the very top, no jumping card */
.castbn{top:4px!important;left:8px!important;right:8px!important;padding:5px 10px!important;border-width:1px!important;border-radius:10px!important;box-shadow:none!important;animation:cbfade 1.8s ease both!important;background:#0d0a14dd!important;flex-direction:column;align-items:flex-start!important;gap:1px!important}
.castbn p{font-size:13px!important;line-height:1.25;margin:0}.castbn p.sub{font-size:11.5px!important;color:var(--mute)}
@keyframes cbfade{0%{opacity:0}12%{opacity:1}80%{opacity:1}100%{opacity:0}}
.bf2 .mid,.bf2 .hz,.bf2 .mrow,.bf2 .hand2{flex:none}
.bf2 .board{flex:1 1 0;overflow:hidden}
.bf2 .chip{padding:1px 7px;font-size:max(10.5px,calc(11.5px*var(--k)))}
.bf2 .chips{gap:2px}
/* v60: arena buttons identical */
.pg>.btn{font-size:17px!important;line-height:1.2}
.pg>.btn+small.cnt{font-size:12px}

/* ---- v63: spell showcase, bolt and burst ---- */
.cshow{position:absolute!important;transform:translate(-50%,-50%) scale(.45);z-index:45;pointer-events:none;opacity:0;animation:cshow 1.25s ease both;box-shadow:0 0 0 3px var(--fc),0 0 40px 8px var(--fc),0 10px 40px #000!important}
.bf2 .cshow.hc.big{width:calc(170px*max(var(--k),.7));height:calc(262px*max(var(--k),.7))}
.bf2 .cshow.hc.big .ca{height:calc(100px*max(var(--k),.7))}
.bf2 .cshow.hc.big .cn{font-size:max(15px,calc(18px*var(--k)))}
.bf2 .cshow.hc.big .cx{font-size:max(12px,calc(14px*var(--k)))}
@keyframes cshow{0%{opacity:0;transform:translate(-50%,-50%) scale(.35)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}30%{transform:translate(-50%,-50%) scale(1)}72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.7)}}
.orb{position:absolute!important;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle,#fff 0,var(--fc) 45%,transparent 72%);box-shadow:0 0 22px 10px var(--fc);z-index:46;pointer-events:none;transform:translate(-50%,-50%)}
.burst{position:absolute!important;width:20px;height:20px;border-radius:50%;z-index:46;pointer-events:none;transform:translate(-50%,-50%);border:4px solid var(--fc);box-shadow:0 0 30px 12px var(--fc),inset 0 0 18px var(--fc);animation:burst .65s ease-out forwards}
@keyframes burst{from{opacity:1;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) scale(6)}}
body.nofx .cshow,body.nofx .orb,body.nofx .burst{display:none}
.fxl{position:absolute!important;inset:0;pointer-events:none;z-index:44}

/* ---- v65: landscape battlefield built on the painted boards ---- */
@media (orientation:landscape){body.inb #app{max-width:none}}
@media (orientation:landscape) and (max-height:560px){
 body.inb #top{position:absolute;left:4px;top:4px;z-index:60;padding:0;border:0;background:none;min-height:0;width:auto}
 body.inb #top .brand,body.inb #top .pill{display:none}
 body.inb #top button{padding:3px 8px;font-size:11px;opacity:.85}
}
.stageimg,.ehand,.pnm{display:none}
.bf2.land{display:block!important}
.bf2.land::before{background:linear-gradient(#000a,#000a),var(--bimg) center/cover!important;filter:blur(5px)!important;inset:-10px}
.bf2.land>*{position:absolute}
.bf2.land .stageimg{display:block;left:calc((100% - var(--sw))/2);top:0;width:var(--sw);height:var(--sh);background:var(--bimg) center/100% 100% no-repeat;pointer-events:none}
.bf2.land .hz{position:absolute!important;inset:0;padding:0!important;display:block!important;pointer-events:none;z-index:2}
.bf2.land .hz>*,.bf2.land .hz .hl>*,.bf2.land .hz .hrt>*{pointer-events:auto}
.bf2.land .hz .hl,.bf2.land .hz .hrt{display:contents}
/* hero portraits sit in the arched frames */
.bf2.land .hz.ez .hr{position:absolute;left:var(--th-l);top:var(--th-t);width:var(--th-w);height:var(--th-h);display:block;z-index:3}
.bf2.land .hz.pz .hr{position:absolute;left:var(--bh-l);top:var(--bh-t);width:var(--bh-w);height:var(--bh-h);display:block;z-index:3}
.bf2.land .hr .hp-img{width:106%!important;height:104%!important;margin:-1% 0 0 -3%;background:none;border:0!important;border-radius:0;overflow:visible;position:relative;box-shadow:none!important;animation:none!important}
.bf2.land .hr .hp-img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;border-radius:0;display:block;background:#10141c;clip-path:polygon(0% 100%,0% 42%,0.6% 33.7%,2.4% 27.6%,5.4% 21.8%,9.5% 16.4%,14.6% 11.7%,20.6% 7.6%,27.3% 4.3%,34.5% 2.0%,42.2% 0.5%,50% 0%,57.8% 0.5%,65.5% 2.0%,72.7% 4.3%,79.4% 7.6%,85.4% 11.7%,90.5% 16.4%,94.6% 21.8%,97.6% 27.6%,99.4% 33.7%,100% 42%,100% 100%)}
.bf2.land .hr .hn{display:none}
.bf2.land .hr.tgt .hp-img{filter:drop-shadow(0 0 6px #e4c27a) drop-shadow(0 0 3px #e4c27a)}
.bf2.land .hr.ready .hp-img{filter:drop-shadow(0 0 6px #6fe39a)}
.bf2.land .hr.sel .hp-img{filter:drop-shadow(0 0 6px #fff)}
.bf2.land .hr.dtgt.foe .hp-img{filter:drop-shadow(0 0 7px #ff5a5a)}.bf2.land .hr.dtgt.fr .hp-img,.bf2.land .hr.dself .hp-img{filter:drop-shadow(0 0 7px #6fe39a)}
.bf2.land .hr.castT .hp-img{filter:drop-shadow(0 0 8px #ffd27a)}
.bf2.land .hr .hv,.bf2.land .hr .ha,.bf2.land .hr .hat{width:calc(26px*var(--k));height:calc(26px*var(--k));font-size:max(11px,calc(15px*var(--k)))}
/* hero power circles */
.bf2.land .hz.ez .pwi{position:absolute;left:var(--tp-l);top:var(--tp-t);width:var(--tp-d);height:var(--tp-d);border-radius:50%;padding:0;justify-content:center;align-items:center;text-align:center;background:#0b1018d9;border:0;z-index:3}
.bf2.land .hz.ez .pwi b{font-size:max(7px,calc(9px*var(--k)));line-height:1.05}
.bf2.land .hz.ez .pwi small{display:none}
.bf2.land .hz.pz .pwb{position:absolute!important;left:var(--bp-l);top:var(--bp-t);width:var(--bp-d);height:var(--bp-d);max-width:none;border-radius:50%;padding:0;margin:0;justify-content:center;align-items:center;text-align:center;background:#0b1018d9;border:2px solid transparent;z-index:3}
.bf2.land .hz.pz .pwb b{font-size:max(7px,calc(9px*var(--k)));line-height:1.05;padding:0 2px}
.bf2.land .hz.pz .pwb small{display:none}
.bf2.land .hz.pz .pwb .pc{left:-4px;top:-4px;width:calc(20px*var(--k));height:calc(20px*var(--k));font-size:max(10px,calc(12px*var(--k)))}
.bf2.land .hz.pz .pwb.on{border-color:var(--gold);box-shadow:0 0 14px #e4c27acc}
/* weapons: small badge left of the hero */
.bf2.land .hz.ez .wpn{position:absolute;left:calc(var(--th-l) - 58px*var(--k));top:calc(var(--th-t) + var(--th-h)*.55);z-index:3}
.bf2.land .hz.pz .wpn{position:absolute;left:calc(var(--bh-l) - 58px*var(--k));top:calc(var(--bh-t) + var(--bh-h)*.55);z-index:3}
/* names, mana and decks live in the margins next to the picture */
.bf2.land .pnm{display:block;position:absolute;left:8px;font:12px "Almendra SC",Georgia,serif;color:var(--gold);text-shadow:0 1px 3px #000;max-width:calc(var(--lb) - 12px);min-width:64px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bf2.land .hz.ez .pnm{top:38px}
.bf2.land .hz.pz .pnm{bottom:62px}
.bf2.land .hz.ez .crys{position:absolute;left:8px;top:54px;justify-content:flex-start;max-width:calc(var(--lb) - 8px);min-width:80px}
.bf2.land .mrow{position:absolute!important;left:8px;bottom:6px;padding:0;z-index:5;align-items:flex-start;max-width:calc(var(--lb) - 8px);min-width:80px}
.bf2.land .hz.ez .chips{position:absolute;right:8px;top:6px;flex-direction:column;align-items:flex-end}
.bf2.land .hz.pz .chip.draw{position:absolute;right:8px;top:calc(50% + 62px)}
.bf2.land .hz.pz .chip.disc{position:absolute;right:8px;top:calc(50% + 94px)}
.bf2.land .chip.flat{display:none}
/* the enemy hand as card backs behind the top frame */
.bf2.land .ehand{display:flex;position:absolute;left:calc(var(--th-l) + var(--th-w)/2);top:calc(var(--th-t) - 4px);transform:translateX(-50%);z-index:1;pointer-events:none}
.bf2.land .ehand i{width:calc(22px*var(--k));height:calc(32px*var(--k));margin-left:calc(-8px*var(--k));border:1px solid #8a6a2c;border-radius:4px;background:linear-gradient(135deg,#4a2a6a,#1a1030);box-shadow:0 2px 4px #000}
/* the two lanes of minions */
.bf2.land .eb,.bf2.land .pb{position:absolute;left:var(--ln-l);width:var(--ln-w);min-height:0!important;margin:0;padding:0!important;gap:calc(6px*var(--k));justify-content:center;align-items:center;z-index:2;background:none}
.bf2.land .eb{top:var(--el-t);height:var(--el-h)}
.bf2.land .pb{top:var(--pl-t);height:var(--pl-h)}
.bf2.land .mn{max-width:var(--mw);overflow:visible}
.bf2.land .board.drop{outline-offset:-2px}
/* End turn button: the painted one, in the right margin */
.bf2.land .mid{position:absolute;left:max(6px,calc((var(--lb) - var(--ew))/2));top:50%;transform:translateY(-50%);width:var(--ew);--ew:clamp(78px,calc(var(--lb) - 10px),128px);min-height:0;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:6}
.bf2.land .mid .mt{text-align:center;flex:none}
.bf2.land .etb2{width:100%;aspect-ratio:1496/872;padding:0;border:0;background:url(assets/endturn.webp) center/contain no-repeat;font-size:0;color:transparent;box-shadow:none;border-radius:0;max-width:none}
.bf2.land .etb2.glow{animation:etg 1.2s infinite}@keyframes etg{50%{filter:drop-shadow(0 0 10px #6fff6f)}}
.bf2.land .etb2.wait,.bf2.land .etb2:disabled{filter:grayscale(1) brightness(.55)}
/* hand: a fan in its own strip below the picture, every card fully on screen */
.bf2.land .hand2{position:absolute!important;left:0;right:0;bottom:0;height:calc(var(--hh) + 6px);min-height:0!important;padding:0!important;overflow:visible!important;display:block;z-index:7;pointer-events:none}
.bf2.land .hand2::before,.bf2.land .hand2::after{display:none}
.bf2.land .hand2 .hc{position:absolute;pointer-events:auto;--hs:calc((var(--hh) - 8px)/148px);left:var(--x);bottom:6px;width:100px!important;height:148px!important;margin:0;transform-origin:50% 100%;transform:rotate(var(--rot,0deg)) scale(var(--hs))}
.bf2.land .hand2 .hc:hover,.bf2.land .hand2 .hc.sel{transform:translateY(-16px) scale(calc(var(--hs)*1.6));z-index:60!important}
.bf2.land .hc.big{width:calc(150px*var(--k)*1.3)!important;height:calc(236px*var(--k)*1.3)!important}
.bf2.land .cshow.hc.big{width:calc(190px*var(--k))!important;height:calc(272px*var(--k))!important}
.bf2.land .cshow.hc.big .ca{height:calc(84px*var(--k))!important}
.bf2.land .cshow.hc.big .cx{font-size:max(10px,calc(13px*var(--k)))}


/* ---- v68: title picture ---- */
.hero{position:fixed;inset:0;z-index:30;background:#05060d;overflow:hidden;display:block}
.hvp{position:absolute;inset:0;overflow:hidden;display:flex;align-items:flex-start;justify-content:center}
.hst{position:relative;flex:none;animation:kb 28s ease-in-out infinite alternate;transform-origin:50% 0}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.06)}}
.hst>img{position:absolute;inset:0;width:100%;height:100%;user-select:none;-webkit-user-drag:none;pointer-events:none}
.hfx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hst .glow{position:absolute;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);mix-blend-mode:screen}
.glow.moon{width:22%;aspect-ratio:1;background:radial-gradient(circle,#cfe4ff66,#9ec2ff22 45%,transparent 70%);animation:gp 6s ease-in-out infinite}
.glow.orb{width:9%;aspect-ratio:1;background:radial-gradient(circle,#9fd8ffcc,#5a8cff55 35%,transparent 70%);animation:gp 2.4s ease-in-out infinite}
.glow.rn1,.glow.rn2{width:9%;aspect-ratio:1;background:radial-gradient(circle,#ffcf6a88,#ff9a2a33 45%,transparent 70%);animation:gp 3.4s ease-in-out infinite}
.glow.rn3,.glow.rn4{width:6%;aspect-ratio:1;background:radial-gradient(circle,#6fffe099,#2ad0c033 45%,transparent 70%);animation:gp 4.2s ease-in-out infinite}
.glow.rn2{animation-delay:-1.2s}.glow.rn4{animation-delay:-2s}.glow.rn3{animation-delay:-1s}
@keyframes gp{0%,100%{opacity:.35;transform:translate(-50%,-50%) scale(.9)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}}
.mist{position:absolute;left:-20%;width:140%;height:26%;pointer-events:none;background:radial-gradient(ellipse at 30% 50%,#b9c8ff22,transparent 60%),radial-gradient(ellipse at 75% 60%,#c7b9ff1a,transparent 55%);filter:blur(10px)}
.mist.m1{bottom:6%;animation:mst 38s linear infinite alternate}.mist.m2{bottom:26%;opacity:.7;animation:mst 52s linear infinite alternate-reverse}
@keyframes mst{from{transform:translateX(-6%)}to{transform:translateX(6%)}}
.flash{position:absolute;left:8%;top:0;width:84%;height:34%;pointer-events:none;background:radial-gradient(ellipse at 55% 60%,#bcd0ff,transparent 65%);opacity:0;animation:fl 11s infinite}
@keyframes fl{0%,90%,100%{opacity:0}91%{opacity:.28}92%{opacity:.04}93.5%{opacity:.35}96%{opacity:0}}
.hbar{position:absolute;left:0;right:0;bottom:0;padding:26px 12px max(10px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:6px;background:linear-gradient(transparent,#05060dcc 55%,#05060df0);z-index:3}
.hr1,.hr2{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.hbar .btn{margin:0;width:auto;min-width:0}
.hr1 .btn{padding:10px 20px;font-size:16px}
.hr1 .btn:first-child{min-width:210px}
.hr2 .btn{padding:6px 14px;font-size:13px}
.hbar .btn.o{background:#0b0d1acc;backdrop-filter:blur(3px)}
@media (max-height:460px){.hbar{padding-top:18px;gap:4px}.hr1 .btn{padding:7px 16px;font-size:14px}.hr2 .btn{padding:4px 12px;font-size:12px}}
/* phones and tablets: landscape only */
#rot{position:fixed;inset:0;z-index:9999;background:#05060d;display:none;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#e4c27a;font:20px "Almendra SC",Georgia,serif;text-align:center;padding:20px}
#rot svg{width:84px;height:84px;animation:rt 2.4s ease-in-out infinite}
@keyframes rt{0%,20%{transform:rotate(0)}60%,100%{transform:rotate(-90deg)}}
@media (orientation:portrait){#rot{display:flex}}

/* ---- v69: the whole game is landscape: side rail, slim top bar, wide two-column pages ---- */
@media (orientation:landscape){
 #app{max-width:none;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
 #top{grid-column:2;grid-row:1;padding:3px 12px;padding-top:max(3px,env(safe-area-inset-top));min-height:0;gap:8px}
 #top .brand{flex-direction:row;align-items:baseline;gap:8px}#top .brand b{font-size:15px;letter-spacing:.06em}#top .brand small{display:none}
 #top .tlg{width:24px;height:24px;border-radius:50%}
 #top .pill.coin{padding:2px 10px 2px 5px}#top .pill.flipcoin i{width:13px;height:13px}#top .pill.dust{padding:2px 9px}
 #top .pill.coin b{font-size:13px}#top .pill.dust b{font-size:12px}
 #scr{grid-column:2;grid-row:2}
 #nav{grid-column:1;grid-row:1/3;flex-direction:column;width:calc(74px + env(safe-area-inset-left));padding:0 0 0 env(safe-area-inset-left);border-top:0;border-right:1px solid #2c2238;background:linear-gradient(90deg,#0a0810,#120e19)}
 body.nlb #nav{padding-bottom:0}
 .nv{flex:1;padding:0 2px;font-size:11px;letter-spacing:.04em}
 .nv.on::before{left:0;right:auto;top:22%;bottom:22%;width:3px;height:auto;border-radius:0 3px 3px 0}
 .nv .bdg{top:calc(50% - 18px);left:auto;right:8px}
 body.inb #nav{display:none}
 /* pages: two columns, headings across */
 .pg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;gap:8px 12px;align-content:start;padding:8px 14px 14px}
 .pg>.ph,.pg>.hstrip,.pg>.seg,.pg>.sh,.pg>.pban,.pg>.btn,.pg>.pkhint,.pg>small,.pg>p{grid-column:1/-1}
 .pg>*{min-width:0}
 .ph h2{font-size:22px}.ph small{font-size:12px;margin-top:1px}
 .pban{max-height:96px;object-fit:cover;object-position:50% 40%}
 .hbn{aspect-ratio:auto;min-height:150px}
 .hbn h1{font-size:26px}
 .hbn .ht{padding:36px 14px 10px}
 .pc3>img{aspect-ratio:1000/190}
 .pcs{padding:6px 12px}.pcs span{font-size:12px}
 .hstrip{justify-content:flex-start}
 .seg{align-self:start}
 .pg>.btn{font-size:15px!important;padding:9px 14px}
}
@media (orientation:landscape){
 .pban{max-height:54px}
 .sg{padding:6px 4px;font-size:12px}
 .seg{padding:2px}
 .hsb{width:62px;font-size:10px}.hsb img{width:40px;height:40px}.hsb small{display:none}
 .hstrip{padding:1px 1px 2px}
 .ask{max-width:420px;padding:14px;max-height:92vh;overflow:auto}
 #ov .oh{max-width:none;padding:6px 14px}#ov .oc{max-width:none;padding:0 14px 10px}
 .pg{padding:6px 12px 10px;gap:6px 10px}
 .hbn{min-height:130px}
 .pc3>img{aspect-ratio:1000/150}
}
/* tutorial / hint captions: a compact card over the empty left side of the arena */
.bf2.land .cap{left:8px!important;right:auto!important;width:min(34%,300px);top:84px!important;bottom:auto!important;padding:8px 10px;border-radius:12px;font-size:12.5px;line-height:1.3;z-index:48;max-height:calc(100% - 100px);overflow:auto}
.bf2.land .cap p{margin:0 0 6px;font-size:12.5px}
.bf2.land .cap .btn,.bf2.land .cap button{padding:4px 12px;font-size:12px}

/* ---- v70: main menu scene ---- */
.hero.hm{background:#05060d url(assets/menu-bg.webp) center/cover;}
.hero.hm::before{content:"";position:absolute;inset:0;background:#05060dd0;backdrop-filter:blur(8px);z-index:0}
.hm .hvp{z-index:1}
.hms{animation:none!important}
.hms .glow.tl,.hms .glow.tr{width:9%;aspect-ratio:1;background:radial-gradient(circle,#ffb04aaa,#ff6a1a44 38%,transparent 70%);animation:fk 1.3s infinite}
.hms .glow.tr{animation-delay:-.6s}
.hms .glow.moon2{width:16%;aspect-ratio:1;background:radial-gradient(circle,#cfe4ff55,transparent 68%);animation:gp 7s ease-in-out infinite}
@keyframes fk{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.92)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}60%{opacity:.7}}
.plate{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;border:0;color:#e9dfc8;cursor:pointer;padding:0;border-radius:3%/12%;-webkit-tap-highlight-color:transparent;transition:filter .15s,transform .12s}
.plate b{font:calc(var(--u)*58) "Almendra SC",Georgia,serif;letter-spacing:.2em;padding-left:.2em;line-height:1;background:linear-gradient(#fff6dc,#d8b872 60%,#8f6a2c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 2px #000)}
.plate small{margin-top:calc(var(--u)*6);font:calc(var(--u)*27) system-ui;color:#b9b0c9;letter-spacing:.08em;text-shadow:0 1px 2px #000}
.plate:hover{filter:brightness(1.25) drop-shadow(0 0 calc(var(--u)*14) #e4c27a99)}.plate:active{transform:scale(.99)}
.plate.hot{filter:drop-shadow(0 0 calc(var(--u)*12) #e4c27acc)}.plate.hot small{color:#f0d28a}
.cur.cc,.cur.cd{position:absolute;display:flex;align-items:center;pointer-events:none}
.cur.cc b,.cur.cd b{font:700 calc(var(--u)*46) "Almendra SC",Georgia,serif;color:#f0d28a;text-shadow:0 2px 3px #000}
.cur.cd b{color:#c9b3ff}
.gear{position:absolute;left:max(8px,env(safe-area-inset-left));top:max(6px,env(safe-area-inset-top));z-index:5;width:clamp(40px,11vh,54px);height:clamp(40px,11vh,54px);padding:0;background:none;border:0;cursor:pointer;filter:drop-shadow(0 2px 6px #000c);transition:transform .5s}
.gear img{width:100%;height:100%;display:block}.gear:hover{transform:rotate(60deg)}.gear:active{transform:rotate(90deg) scale(.95)}
.ptag{position:absolute;left:calc(max(8px,env(safe-area-inset-left)) + clamp(40px,11vh,54px) + 8px);top:max(8px,env(safe-area-inset-top));z-index:5;display:flex;flex-direction:column;line-height:1.15;text-shadow:0 1px 3px #000}
.ptag b{font:15px "Almendra SC",Georgia,serif;color:var(--gold)}.ptag small{font-size:11px;color:#b9b0c9}
.hcorner{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));z-index:5;display:flex;gap:6px}
.hcorner.l{left:max(10px,env(safe-area-inset-left))}.hcorner.r{right:max(10px,env(safe-area-inset-right))}
.hcorner .btn{position:relative;margin:0;padding:6px 14px;font-size:13px;background:#0b0d1acc;backdrop-filter:blur(3px);width:auto}
.hcorner .bdg{position:absolute;top:-7px;right:-6px}
.cx.sb{color:#9af7a8}

/* ---- v71: swipe-to-open pack ---- */
.pkc2{max-width:none;width:100%;gap:8px;padding:6px 0;height:100%;justify-content:center}
.pkc2 h2{font-size:18px}
.pktrack{display:flex;gap:var(--gap);overflow-x:auto;overflow-y:hidden;width:100%;scroll-snap-type:x mandatory;padding:10px calc(50% - var(--cw)/2) 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x;cursor:grab}
.pktrack::-webkit-scrollbar{display:none}
.pks2{flex:none;width:var(--cw);scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.pkcard{position:relative;border-radius:12px}
.pkcard .hc{pointer-events:none}
.pkcard.rv-r{box-shadow:0 0 22px 4px rgba(110,170,255,.55)}.pkcard.rv-e{box-shadow:0 0 26px 6px rgba(176,120,255,.6)}.pkcard.rv-l{box-shadow:0 0 32px 8px rgba(255,222,120,.7)}
.pkcl{display:flex;flex-direction:column;align-items:center;gap:1px;opacity:0;transition:opacity .35s}.pkcl.on{opacity:1}
.pkcl b{font:17px "Almendra SC",Georgia,serif;color:var(--gold);letter-spacing:.06em}.pkcl small{font-size:11px;color:var(--mute)}.pkcl small.nw{color:var(--green)}
.pkdots{display:flex;gap:7px;justify-content:center}.pkdots i{width:8px;height:8px;border-radius:50%;background:#3a3050}.pkdots i.on{background:#8a6a2c}.pkdots i.cur{background:var(--gold);box-shadow:0 0 6px var(--gold)}
@media (orientation:landscape){.pkc2 .pkbar{margin-top:0}}
.vtag{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);font:9px system-ui;color:#8a84a0;z-index:6;pointer-events:none;opacity:.7}
.pkw .hc{box-sizing:border-box}
#ov:has(.pkc2){background:#05060df5}

/* ---- v72: video start, new login, faint page backgrounds, living menu ---- */
.hero.ttl{background:#000}
.ttlv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
.tbar{position:absolute;left:0;right:0;bottom:0;padding:30px 12px max(18px,env(safe-area-inset-bottom));display:flex;justify-content:center;background:linear-gradient(transparent,#05060d99 60%,#05060dcc);z-index:3}
.stone{position:relative;min-width:clamp(200px,26vw,300px);padding:clamp(10px,2.6vh,16px) 34px;border:2px solid #8a6a2c;border-radius:14px;cursor:pointer;color:transparent;font:clamp(20px,5.4vh,30px) "Almendra SC",Georgia,serif;letter-spacing:.3em;padding-left:calc(34px + .3em);
 background:linear-gradient(#4a4458,#2b2736 55%,#1c1926);box-shadow:inset 0 1px 0 #ffffff33,inset 0 -3px 8px #0009,0 6px 18px #000a,0 0 24px #e4c27a22;overflow:hidden;transition:transform .15s,box-shadow .2s,filter .2s}
.stone::before{content:attr(data-t);position:absolute;inset:0;display:grid;place-items:center;padding-left:.3em;background:linear-gradient(#fff6dc,#d8b872 60%,#8f6a2c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 2px #000)}
.stone::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,#ffffff55,transparent);transform:skewX(-20deg);animation:shn 3.6s ease-in-out infinite}
@keyframes shn{0%,55%{left:-60%}100%{left:130%}}
.stone:hover{transform:translateY(-3px);filter:brightness(1.2);box-shadow:inset 0 1px 0 #ffffff55,0 10px 24px #000b,0 0 30px #e4c27a77}
.stone:active{transform:translateY(1px) scale(.98)}
.hero.lg{background:#05060d url(assets/menu-bg.webp) center/cover;display:flex;align-items:center;justify-content:center;padding:max(10px,env(safe-area-inset-top)) 16px max(10px,env(safe-area-inset-bottom))}
.hero.lg::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 90% at 50% 50%,#05060d99,#05060df0);backdrop-filter:blur(4px)}
.lgback{position:absolute;left:max(12px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));z-index:3;width:auto;margin:0;padding:8px 18px}
.lgp{position:relative;z-index:2;width:min(860px,100%);max-height:100%;overflow:auto;padding:clamp(12px,3vh,22px) clamp(14px,3vw,28px);border:1px solid #6b5420;border-radius:18px;background:linear-gradient(#1b1626ee,#0d0a14f2);box-shadow:0 14px 50px #000c,0 0 0 1px #000,inset 0 1px 0 #ffffff1a;text-align:center;animation:lgin .5s ease both}
@keyframes lgin{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.lgp h2{margin:0 0 clamp(8px,2vh,16px);font:clamp(20px,5vh,30px) "Almendra SC",Georgia,serif;letter-spacing:.08em;background:linear-gradient(#fff6dc,#d8b872 60%,#8f6a2c);-webkit-background-clip:text;background-clip:text;color:transparent}
.lgb{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,2vw,22px);align-items:stretch}
.lgb.one{grid-template-columns:minmax(0,420px);justify-content:center}
.lgc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(6px,1.4vh,10px);padding:clamp(10px,2vh,16px);border:1px solid #2c2238;border-radius:14px;background:#0b0910aa}
.lgc h3{margin:0;font:clamp(15px,3.4vh,19px) "Almendra SC",Georgia,serif;color:var(--gold);letter-spacing:.05em}
.lgc .btn,.lgc .inp{width:100%;max-width:340px;margin:0}
.lgc .inp{padding:clamp(8px,1.8vh,12px);font-size:16px;text-align:left}
.lgc .fine{max-width:300px;text-align:center}
.lgl{display:flex;flex-direction:column;gap:6px;width:100%;max-width:340px;max-height:26vh;overflow:auto}
.lgt{display:flex;width:100%;max-width:340px;border:1px solid #3a2f4a;border-radius:10px;overflow:hidden}
.lgt .tb{flex:1;padding:9px 6px;background:#120e19;border:0;color:var(--mute);font:600 13px system-ui;cursor:pointer;transition:background .2s,color .2s}
.lgt .tb.on{background:linear-gradient(#5b4616,#3a2c0e);color:#f0d28a}
.btn.gg{background:#fff;color:#222;border-color:#fff;font-weight:700}.btn.gg:hover{background:#f1f1f1}
.lgp .msg{min-height:1.2em;margin:clamp(6px,1.4vh,10px) 0 0;font-size:13px}
@media (max-height:460px){.lgp{padding:8px 14px}.lgp h2{font-size:19px;margin-bottom:6px}.lgc{padding:8px;gap:5px}.lgc .btn{padding:7px 10px;font-size:14px}.lgc .inp{padding:7px 10px}}
@media (max-width:640px){.lgb{grid-template-columns:1fr}}

/* faint background on every page except battle */
body:not(.inb) #scr{background:linear-gradient(#05060d99,#07080fb3),url(assets/boards/table.webp) center/cover no-repeat}

.pg{background:none!important}
@media (orientation:landscape){
 .pg{width:100%;max-width:1180px;margin:0 auto}
 .pban{max-height:70px}
}
#scr>.pg{scrollbar-width:thin}
/* rail: settings gear at the bottom */
#nav{background:linear-gradient(90deg,#0a0810f2,#120e19f2)}
.nv.set{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 2px 10px;margin-top:auto}
.nv.set img{width:34px;height:34px;transition:transform .5s;filter:drop-shadow(0 2px 4px #000)}
.nv.set:hover img{transform:rotate(60deg)}
.nv.set.on img{filter:drop-shadow(0 0 8px #e4c27a)}
.nv.set .bdg{top:4px;right:10px}
@media (orientation:landscape){.nv{font-size:12px}.nv.set{border-top:1px solid #2c2238}}

/* living menu plates */
.plate{opacity:0;animation:pin .55s cubic-bezier(.2,.9,.3,1.2) forwards,brt 5s ease-in-out 1s infinite;animation-delay:var(--d,0ms),calc(var(--d,0ms) + 1s);overflow:hidden;transition:transform .18s cubic-bezier(.2,.9,.3,1.3),filter .18s}
@keyframes pin{from{opacity:0;transform:translateY(26px) scale(.96)}to{opacity:1;transform:none}}
@keyframes brt{0%,100%{box-shadow:0 0 0 #e4c27a00}50%{box-shadow:0 0 calc(var(--u)*26) #e4c27a33}}
.plate::after{content:"";position:absolute;top:0;bottom:0;left:-50%;width:30%;background:linear-gradient(100deg,transparent,#fff6dc66,transparent);transform:skewX(-20deg);opacity:0;pointer-events:none}
.plate:hover{transform:translateY(calc(var(--u)*-8)) scale(1.025);filter:brightness(1.3) drop-shadow(0 calc(var(--u)*10) calc(var(--u)*14) #000) drop-shadow(0 0 calc(var(--u)*18) #e4c27acc)}
.plate:hover::after{opacity:1;animation:swp .8s ease}
@keyframes swp{from{left:-50%}to{left:130%}}
.plate:active{transform:translateY(calc(var(--u)*2)) scale(.985);filter:brightness(1.5)}
.plate.go{animation:none;opacity:1;transform:scale(1.06);filter:brightness(1.9) drop-shadow(0 0 calc(var(--u)*30) #ffe39a);transition:transform .22s,filter .22s}
.burst{position:fixed;width:20px;height:20px;margin:-10px;border-radius:50%;pointer-events:none;z-index:50;background:radial-gradient(circle,#fff6dc,#e4c27a99 40%,transparent 70%);animation:bst .45s ease-out forwards}
@keyframes bst{from{transform:scale(1);opacity:1}to{transform:scale(34);opacity:0}}
body.nofx .plate{opacity:1;animation:none!important}

/* bigger bottom buttons on the home screen */
.hcorner{gap:10px;bottom:max(14px,env(safe-area-inset-bottom))}
.hcorner .btn{padding:clamp(9px,2.2vh,14px) clamp(18px,2.4vw,28px);font-size:clamp(15px,3.4vh,20px);border-radius:12px;border:1px solid #8a6a2c;background:linear-gradient(#2a2436ee,#14111ff2);color:#f0d28a;font-family:"Almendra SC",Georgia,serif;letter-spacing:.06em;box-shadow:0 4px 12px #000a,inset 0 1px 0 #ffffff22;transition:transform .15s,filter .15s}
.hcorner .btn:hover{transform:translateY(-3px);filter:brightness(1.25)}.hcorner .btn:active{transform:scale(.96)}
.hcorner .bdg{top:-9px;right:-8px;min-width:22px;height:22px;font-size:13px}
.lgc h3{text-align:center}
@media (orientation:landscape){
 .pg>.bnr{grid-column:1/-1;max-height:190px}
 .pg>.bnr img{width:100%;height:100%;object-fit:cover;object-position:50% 8%}
 .pg>.lrow{align-self:start}
}
@media (orientation:landscape){.pg>.bnr{width:100%;aspect-ratio:auto;height:150px}}

/* ---- v75: video menu (1280x720 frame), bigger cards and hero icons, landscape scaling ---- */
.hero.hm{background:#05060d url(assets/menu-poster.jpg) center/cover}
.hmv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.hm .plate b{font-size:calc(var(--u)*34);letter-spacing:.16em;padding-left:.16em}
.hm .plate.sm2 b{font-size:calc(var(--u)*27);letter-spacing:.1em;padding-left:.1em}
.hm .plate{border-radius:calc(var(--u)*8)}
.hm .plate .bdg{position:absolute;top:calc(var(--u)*4);right:calc(var(--u)*6);margin:0}
.hm .cur b{font-size:calc(var(--u)*38)}
.btn.gg{display:flex;align-items:center;justify-content:center;gap:10px}.btn.gg img{width:22px;height:auto;display:block}
.cgrid{grid-column:1/-1}
.cgrid .hc{box-sizing:border-box}.cgrid .hc .ca{height:92px!important}.cgrid .hc .cn{font-size:14px}.cgrid .hc .cx{font-size:11px}
.cgrid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px 12px}
@media (orientation:landscape){
 .pg{zoom:var(--pz,1)}
 .hsb{width:92px;font-size:12px}.hsb img{width:68px;height:68px}.hsb small{display:block;font-size:11px}
 .hstrip{gap:12px}
}
.hm .plate.sm2+.plate.sm2{box-shadow:inset 2px 0 0 #000a}

/* ---- v76: centred layouts, hero page in two columns, uniform dungeons, packs ---- */
.ph{justify-content:center;position:relative;min-height:38px}
.ph .pt{flex:none;max-width:78%;text-align:center}
.ph .bk{position:absolute;left:0;top:50%;transform:translateY(-50%);z-index:2}
.sh{justify-content:center}
.sh::before{content:"";flex:1;height:1px;background:linear-gradient(270deg,#8a6a2c88,transparent)}
.pg>small,.pg>p,.cnt,.msg,.blurb{text-align:center}
.pg>.msg{margin-left:auto;margin-right:auto}
.hstrip{justify-content:center!important}
.fact,.stc{align-items:center;text-align:center}
.hbody .blurb,.hbody .msg{text-align:center}
.bnr .bt{text-align:center}
.lvl{align-items:center;text-align:center}
.seg{justify-content:center}
.pg>.btn,.pg>.pkhint{justify-self:center}

/* heroes: portrait on the left, tabs and details on the right */
.pg>.hlay{grid-column:1/-1;display:grid;grid-template-columns:minmax(250px,32%) minmax(0,1fr);gap:18px;align-items:start}
.hl2{display:flex;flex-direction:column;gap:10px;align-items:center;position:sticky;top:0}
.hl2 .bnr{width:100%;aspect-ratio:3/4;height:auto;max-height:none}
.hl2 .bnr img{object-position:50% 18%}
.hl2 .bnr .bt{text-align:center;padding:40px 10px 12px}
.hl2 .hstrip{flex-wrap:wrap;gap:8px;padding:0;overflow:visible}
.hl2 .hsb{width:62px;font-size:11px}.hl2 .hsb img{width:54px;height:54px}.hl2 .hsb small{font-size:10px}
.hr2{display:flex;flex-direction:column;gap:12px;min-width:0}
@media (orientation:landscape) and (max-height:520px){.hl2 .bnr{aspect-ratio:4/5}.pg>.hlay{grid-template-columns:minmax(200px,28%) minmax(0,1fr)}}

/* dungeons: equal tiles, each with its own picture */
.dgrid{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.dgrid .dun{flex:0 0 min(100%,390px);width:auto;height:318px;box-sizing:border-box;text-align:center;align-items:center;justify-content:center;gap:5px;overflow:hidden;background-size:cover;background-position:center}
.dgrid .dun b{font-size:23px;text-shadow:0 2px 6px #000}
.dgrid .dun small{text-shadow:0 1px 4px #000;color:#d4cde4}
.dgrid .dun .rule{color:#d9c2ff}
.dgrid .dun .dgrow{width:100%;justify-content:center}
.dun.locked{filter:grayscale(.7) brightness(.75)}

/* packs page */
.pkbox{grid-column:1/-1;justify-content:center;gap:28px;padding:18px 24px}
.pkart{width:140px;height:200px}
.pkside{flex:0 1 380px;align-items:center;text-align:center}
.pkside .btn{width:100%}
.pg>.shop{grid-column:1/-1;width:100%;max-width:760px;justify-self:center}
.fact.gtk{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;padding:14px 20px}
.fact.gtk small{text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);text-align:center}
@media (max-width:700px){.fact.gtk{grid-template-columns:1fr}}

/* pack opening: full dark stage, big card, readable card text */
#ov:has(.pkc2){background:radial-gradient(70% 80% at 50% 45%,#1a1426f2,#05060dfa)}
.pkc2{gap:10px}
.pkc2 h2{font-size:clamp(18px,4.2vh,28px);letter-spacing:.06em}
.pkw .hc .ca{height:112px!important}.pkw .hc .cn{font-size:17px!important;margin:5px 0 2px!important}.pkw .hc .cty{font-size:10px!important}.pkw .hc .cx{font-size:12.5px!important;line-height:1.25!important}
.pkcl b{font-size:clamp(16px,3.2vh,22px)}.pkcl small{font-size:clamp(11px,2.2vh,14px)}
.pkc2 .btn{font-size:clamp(14px,2.6vh,18px);padding:8px 22px}
.hr2 .seg{align-self:stretch}
.hl2 .bnr{aspect-ratio:auto;height:max(190px,calc((100vh - 250px)/var(--pz,1)))}
#ov:has(.pkc2){background:#06070d}
.dgrid .dun{flex-basis:min(100%,340px)}
.hr2>*,.hbody,.hbody>*{min-width:0;max-width:100%}
.hl2 .hstrip{gap:4px}
.hl2 .hsb{width:58px}.hl2 .hsb span{max-width:58px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.hl2 .hsb small{display:none}

/* ---- v77: framed cards (common / rare / epic / legendary frames) ---- */
.hc.sk.sk{container-type:inline-size;padding:0!important;border:0!important;background:none!important;border-radius:3.2%/1.8%;display:block!important;overflow:visible;font-family:system-ui;box-sizing:border-box}
.hc.sk.sk.sk.sk{height:auto!important;aspect-ratio:1141/2073}
.hc.sk::before{display:none!important}
.hc.sk .fr{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;background:url(assets/cf/c.webp) center/100% 100% no-repeat}
.hc.sk.r-r .fr{background-image:url(assets/cf/r.webp)}.hc.sk.r-e .fr{background-image:url(assets/cf/e.webp)}.hc.sk.r-l .fr{background-image:url(assets/cf/l.webp)}
.hc.sk .ca{position:absolute!important;left:11.9%;top:10.4%;width:76.2%!important;height:36.7%!important;margin:0!important;border-radius:0!important;z-index:1;background:#10131c}
.hc.sk .ca img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.hc.sk .ca i{font-size:16cqw}
.hc.sk .cn,.hc.sk .cty,.hc.sk .cx{position:absolute!important;left:18%;width:64%;margin:0!important;padding:0!important;z-index:3;color:#f4ecd8;text-shadow:0 1px 2px #000,0 0 4px #000;text-align:center;flex:none}
.hc.sk .cn{top:51%;height:9.5%;display:flex!important;align-items:center;justify-content:center;font:max(6.5px,7.6cqw)/1.05 "Almendra SC",Georgia,serif!important;letter-spacing:.02em;color:#ffe9b0}
.hc.sk .cty{top:60.6%;height:3.4%;display:flex;align-items:center;justify-content:center;font-size:max(4.6px,4.4cqw)!important;letter-spacing:.12em;text-transform:uppercase;color:#c9c2d6}
.hc.sk .cx{top:64.6%;height:19.4%;display:flex!important;align-items:center;justify-content:center;font-size:max(5px,5.6cqw)!important;line-height:1.2!important;text-wrap:balance;overflow:hidden}
.hc.sk .cx.sb{color:#9af7a8}
.hc.sk .cc,.hc.sk .sa,.hc.sk .sh{position:absolute!important;z-index:5;display:grid;place-items:center;border:0!important;border-radius:50%;font:800 max(8px,11.5cqw) system-ui!important;color:#fff;text-shadow:0 1px 3px #000,0 0 4px #000;background:none;box-shadow:none;margin:0!important;width:19%!important;height:10.5%!important;padding:0}
.hc.sk .cc{left:4.3%;top:2.2%}
.hc.sk .sa{left:3.9%;bottom:2.7%}.hc.sk .sh{right:3.1%;left:auto;bottom:2.7%}
.hc.sk .cc.down{color:#9affb4}.hc.sk .sh.hurt{color:#ffb0b0}.hc.sk .sh.buf{color:#b9ffcf}
.hc.sk .own{z-index:6;right:7%;top:3%}
.hc.sk.t-w .sh{color:#e8e8e8}
/* sizes of framed cards in each place (width decides, height follows) */
.bf2.land .hand2 .hc.sk{width:82px!important}
.bf2 .hand2 .hc.sk{width:calc(80px*var(--k))!important}
.psheet .pgrid .hc.sk{width:calc(84px*max(var(--k),.85))!important}
.cgrid .hc.sk{width:164px!important}
.pkw .hc.sk{width:156px!important}
.sigs .hc.sk{width:118px!important;flex:none}
.hc.sk.mini{width:110px}
.bf2.land .hc.big.sk{width:calc(150px*var(--k)*1.2)!important}
.bf2.land .cshow.hc.big.sk{width:calc(150px*var(--k))!important}
.hc .sh::before,.hc .sh::after,.mn .sh::before,.mn .sh::after{content:none!important}
.hc .sh,.mn .sh{align-self:auto;letter-spacing:0;justify-content:center}

/* ---- v78: pop-ups (gear, deck code), deck builder ---- */
.mdl{margin:auto;width:100%;height:100%;display:grid;place-items:center;padding:3vh 3vw;box-sizing:border-box}
#ov:has(.mdl){background:#05060dcc;backdrop-filter:blur(3px)}
.mdw{width:min(920px,100%);max-height:100%;display:flex;flex-direction:column;background:linear-gradient(#1d1829,#0d0a14);border:1px solid #8a6a2c;border-radius:18px;box-shadow:0 24px 80px #000,inset 0 1px 0 #ffffff14;overflow:hidden;animation:lgin .25s ease both}
.mdh{position:relative;display:flex;align-items:center;justify-content:center;padding:12px 56px;border-bottom:1px solid #2c2238;background:linear-gradient(#251d33,#17121f)}
.mdh h2{margin:0;font:clamp(18px,3.6vh,26px) "Almendra SC",Georgia,serif;letter-spacing:.06em;color:var(--gold)}
.mdx{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:1px solid #6b5420;background:#120e19;color:var(--gold);font:24px/1 system-ui;cursor:pointer;padding:0;display:grid;place-items:center}
.mdx:hover{background:#2a2036}
.mdb{overflow:auto;padding:16px}
.gmw{width:min(980px,100%)}
.gmg{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.gt{position:relative;display:flex;align-items:center;gap:14px;text-align:left;padding:12px 14px;border-radius:14px;border:2px solid #3a2f4a;background:linear-gradient(#1a1524,#100c18);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s,box-shadow .2s,border-color .2s}
.gt:hover{transform:translateY(-3px);box-shadow:0 8px 20px #000a}
.gt.r-c{border-color:#6a6878}.gt.r-r{border-color:#4a90e2}.gt.r-e{border-color:#a85cf0}.gt.r-l{border-color:#f2cf6a;box-shadow:inset 0 0 18px #f2cf6a22}
.gt.on{background:linear-gradient(#2a2312,#14100a);box-shadow:0 0 0 2px #e4c27a,0 0 16px #e4c27a66}
.gt .gi.lg{width:72px;height:72px;flex:none}
.gtt{display:flex;flex-direction:column;gap:2px;min-width:0}
.gtt small{color:var(--mute);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.gtt b{font:19px "Almendra SC",Georgia,serif;color:#ffe9b0;line-height:1.1}
.gtt em{font-style:normal;font-size:12px;color:#c9b3ff}
.gt.r-l .gtt em{color:#f2cf6a}.gt.r-r .gtt em{color:#7db6ff}.gt.r-c .gtt em{color:#bdbac8}
.gtt span{font-size:13px;color:#e2dcf0;line-height:1.3}
.gck{position:absolute;top:8px;right:10px;font:700 10px system-ui;letter-spacing:.08em;text-transform:uppercase;color:#1a1204;background:var(--gold);padding:2px 8px;border-radius:999px}
.gt0{justify-content:center;flex-direction:column;gap:2px;min-height:96px;border-style:dashed}.gt0 b{font:18px "Almendra SC",Georgia,serif;color:#ff9a9a}.gt0 small{color:var(--mute)}
.gnone{grid-column:1/-1;max-width:none}
/* deck code */
.cmw{width:min(760px,100%)}
.cdg{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.cdc{display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;padding:14px;border:1px solid #2c2238;border-radius:14px;background:#0b0910aa}
.cdc h3{margin:0;font:19px "Almendra SC",Georgia,serif;color:var(--gold)}
.cdc .inp{max-width:none;text-align:left;font:13px ui-monospace,monospace;resize:none}
.cdc .btn{width:100%;max-width:300px;margin:0}
.cdm{display:block;min-height:1.3em;text-align:center;color:#ff9a9a;margin-top:10px}
/* deck builder */
.dkb2{display:grid;grid-template-columns:minmax(0,1fr) clamp(260px,27vw,360px);gap:14px;height:100%;padding:8px 14px 10px;box-sizing:border-box;min-height:0}
.dkpool{overflow:auto;min-height:0;display:flex;flex-direction:column;gap:10px;padding-right:4px}
.dkph{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;background:#0a0810ee;border:1px solid #2c2238;border-radius:12px;backdrop-filter:blur(4px)}
.dkph h2{margin:0;font:19px "Almendra SC",Georgia,serif;color:var(--gold)}
.dkf{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.dkfb{padding:6px 11px;border-radius:9px;border:1px solid #3a2f4a;background:#120e19;color:var(--mute);font:600 12px system-ui;cursor:pointer}.dkfb.on{background:linear-gradient(#5b4616,#3a2c0e);color:#f0d28a;border-color:#8a6a2c}
.dkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:16px 12px;justify-items:center;padding:4px 2px 16px}
.dkgrid .hc.sk{width:158px!important}
.dkt{display:flex;flex-direction:column;align-items:center;gap:6px;border-radius:14px;padding:4px}
.dkt.has .hc{box-shadow:0 0 0 2px #6fe39a,0 0 14px #6fe39a66}
.dkc{display:flex;align-items:center;gap:8px}
.dkc .pm{width:34px;height:34px;font-size:20px}
.dkn{min-width:44px;text-align:center;font:700 14px system-ui;color:var(--mute)}.dkn.on{color:#9affb4}
.dkside{display:flex;flex-direction:column;gap:8px;min-height:0;background:#0b0910ee;border:1px solid #2c2238;border-radius:16px;padding:12px}
.dkr1{display:flex;gap:8px;align-items:center}.dkr1 .inp{max-width:none;text-align:left;padding:9px 10px;font-size:16px}
.dkcnt{font:700 20px "Almendra SC",Georgia,serif;color:#ff9a9a;white-space:nowrap}.dkcnt.ok{color:var(--green)}
.dkside .curve{height:64px;flex:none}.cbn{font-size:10px;color:#9db8e8;min-height:12px}
.dkl{display:flex;flex-direction:column;gap:4px;overflow:auto;flex:1;min-height:0}
.dli{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:9px;border:1px solid #2c2238;border-left:4px solid #6a6878;background:#15101d;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.dli:hover{background:#221a2f}
.dli.r-r{border-left-color:#4a90e2}.dli.r-e{border-left-color:#a85cf0}.dli.r-l{border-left-color:#f2cf6a}
.dlc{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#8fc6ff,#2a5aa8 55%,#0a2050);font:700 14px system-ui;color:#fff}
.dln{flex:1;min-width:0;font:14px "Almendra SC",Georgia,serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dla{color:var(--mute);font-size:12px}.dli em{font-style:normal;font-weight:700;color:var(--gold);min-width:24px;text-align:right}
.dkbar2{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.dkbar2 .btn:first-child{width:100%}

/* v80: no ring burst, lunging cards stay fully visible, end turn on the left edge */
.burst{display:none!important}
.bf2.land .eb:has(.lungeU,.lungeD,.lungeU),.bf2.land .pb:has(.lungeU,.lungeD){z-index:30!important}
.mn.lungeU,.mn.lungeD{z-index:31}
@keyframes lU{40%{transform:translateY(-26px) scale(1.08)}}@keyframes lD{40%{transform:translateY(26px) scale(1.08)}}
.bf2 .hand2 .hc.sk .cc,.hc.big.sk .cc{left:4.3%;top:2.2%;font:800 max(8px,11.5cqw) system-ui!important}
/* v80b: spells have no attack/health - frames with the bottom circles removed */
.hc.sk.t-s.r-c .fr{background-image:url(assets/cf/cs.webp)}
.hc.sk.t-s.r-r .fr{background-image:url(assets/cf/rs.webp)}
.hc.sk.t-s.r-e .fr{background-image:url(assets/cf/es.webp)}
.hc.sk.t-s.r-l .fr{background-image:url(assets/cf/ls.webp)}
/* v82: spell swirl effect (black-background art blended with screen) */
.swl{position:absolute!important;height:calc(190px*var(--k,1));width:auto;z-index:46;pointer-events:none;transform:translate(-50%,-50%);animation:swl 1.2s ease-out forwards}
@keyframes swl{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}25%{opacity:1}70%{opacity:1;transform:translate(-50%,-56%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-64%) scale(1.25)}}
body.nofx .swl{display:none}
.orb,.burst{display:none!important}
/* v84: new user-made frames (600x827 incl. margin for the legendary wings) */
.hc.sk.sk.sk.sk{aspect-ratio:600/827}
.hc.sk .ca{left:24.1%;top:9.5%;width:52.3%!important;height:41.1%!important}
.hc.sk.r-l .ca{left:24.7%;top:14.5%;width:52.2%!important;height:34.1%!important}
.hc.sk .cn,.hc.sk .cty,.hc.sk .cx{left:17.5%;width:65%}
.hc.sk .cn{top:59.9%;height:5%}.hc.sk .cty{top:65.2%;height:2.8%}.hc.sk .cx{top:68.8%;height:12.4%}
.hc.sk.t-s .cx{height:19.4%}
.hc.sk.r-l .cn{top:66.1%;height:4.5%}.hc.sk.r-l .cty{top:71%;height:2.8%}.hc.sk.r-l .cx{top:74.2%;height:8%}.hc.sk.r-l.t-s .cx{height:13.8%}
.hc.sk .cc,.hc.sk .sa,.hc.sk .sh{width:20.4%!important;height:14.8%!important;bottom:auto!important;right:auto!important}
.hc.sk .cc,.bf2 .hand2 .hc.sk .cc,.hc.big.sk .cc{left:8.2%;top:5.6%}
.hc.sk .sa{left:9%;top:81.9%}.hc.sk .sh{left:71.9%;top:81.9%}
.hc.sk .own{right:12%;top:8%}
/* widths x1.3 because the frame is wider now, heights stay about the same */
.bf2.land .hand2 .hc.sk{width:107px!important}
.bf2 .hand2 .hc.sk{width:calc(104px*var(--k))!important}
.psheet .pgrid .hc.sk{width:calc(109px*max(var(--k),.85))!important}
.cgrid .hc.sk{width:213px!important}
.pkw .hc.sk{width:203px!important}
.sigs .hc.sk{width:153px!important}
.hc.sk.mini{width:143px}
.dkgrid .hc.sk{width:190px!important}
.hc.sk .cn{font:max(6px,6.1cqw)/1.05 "Almendra SC",Georgia,serif!important}
.hc.sk .cty{font-size:max(4.4px,3.5cqw)!important}
.hc.sk .cx{font-size:max(5px,4.5cqw)!important}
.hc.sk.r-l .ca{height:35.4%!important}
.hc.sk.r-l .cn{top:64.6%;height:6.6%;font-size:max(5.4px,5.3cqw)!important}
.hc.sk.r-l .cty{top:71.5%}
.hc.sk.r-l .cx{top:74.4%;height:7.8%;font-size:max(4.6px,4.2cqw)!important}
.hc.sk.r-l.t-s .cx{height:13.8%}
.hc.sk.r-l .ca{height:37.6%!important}
/* v85: light animation on epic and legendary frames only */
.hc.sk.r-e .fr{animation:fre 4.2s ease-in-out infinite}
.hc.sk.r-l .fr{animation:frl 3.2s ease-in-out infinite}
@keyframes fre{50%{filter:brightness(1.1) saturate(1.18)}}
@keyframes frl{50%{filter:brightness(1.15) saturate(1.1)}}
.hc.sk.r-l .fr::after,.hc.sk.r-e .fr::after{content:"";position:absolute;inset:0;pointer-events:none;background-size:260% 100%;background-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.hc.sk.r-l .fr::after{background-image:linear-gradient(105deg,transparent 42%,#fff2b0cc 50%,transparent 58%);-webkit-mask-image:url(assets/cf/l.webp);mask-image:url(assets/cf/l.webp);animation:frs 3.6s linear infinite}
.hc.sk.r-l.t-s .fr::after{-webkit-mask-image:url(assets/cf/ls.webp);mask-image:url(assets/cf/ls.webp)}
.hc.sk.r-e .fr::after{background-image:linear-gradient(105deg,transparent 44%,#e0b8ff99 50%,transparent 56%);-webkit-mask-image:url(assets/cf/e.webp);mask-image:url(assets/cf/e.webp);animation:frs 5s linear infinite}
.hc.sk.r-e.t-s .fr::after{-webkit-mask-image:url(assets/cf/es.webp);mask-image:url(assets/cf/es.webp)}
@keyframes frs{from{background-position:130% 0}to{background-position:-30% 0}}
body.nofx .hc.sk .fr,body.nofx .hc.sk .fr::after{animation:none}
/* v86: full-screen battlefield (new artwork) with CSS-drawn hero frames */
.bf2.land .stageimg{left:0;top:0;width:100%;height:100%;background:var(--bimg) center/cover no-repeat}
.bf2.land::before{display:none!important}
.bf2.land .stageimg::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 50%,transparent 55%,#0008 100%)}
.bf2.land .hr .hp-img{filter:drop-shadow(0 0 1.5px #e8c46a) drop-shadow(0 0 1px #e8c46a) drop-shadow(0 3px 6px #000)}
.bf2.land .hz.ez .pwi,.bf2.land .hz.pz .pwb{border:3px solid #c9a24a!important;background:radial-gradient(circle at 50% 35%,#2a2a38,#0b0d14 75%)!important;box-shadow:inset 0 0 10px #000,0 3px 8px #000}
.bf2.land .hz.pz .pwb.on{border-color:#fff3b0!important}
.bf2.land .mid{left:auto!important;right:10px}
.bf2.land .pnm,.bf2.land .crys,.bf2.land .chip,.bf2.land .mrow{text-shadow:0 1px 3px #000,0 0 6px #000}
/* v87: painted hero power circles */
.bf2.land .hz.ez .pwi,.bf2.land .hz.pz .pwb{background:var(--pwimg) center/100% 100% no-repeat!important;border:0!important;box-shadow:none!important;filter:drop-shadow(0 3px 6px #000)}
.bf2.land .hz.ez .pwi b,.bf2.land .hz.pz .pwb b,.bf2.land .hz.ez .pwi small,.bf2.land .hz.pz .pwb small{display:none!important}
.bf2.land .hz.pz .pwb.on{filter:drop-shadow(0 0 8px #ffe28a) drop-shadow(0 0 3px #fff3b0)}
.bf2.land .hz.pz .pwb:not(.on){filter:grayscale(.7) brightness(.7) drop-shadow(0 3px 6px #000)}
.bf2.land .hz.pz .pwb.sel{filter:drop-shadow(0 0 10px #fff)}
.bf2.land .hz.pz .pwb .pc{left:calc(var(--bp-d)*.02)!important;top:calc(var(--bp-d)*.02)!important;width:calc(var(--bp-d)*.3)!important;height:calc(var(--bp-d)*.3)!important;font-size:calc(var(--bp-d)*.17)!important;border:2px solid #0b2050;z-index:4}
.pwo{flex-direction:row;align-items:center;gap:14px}
.pwo .pwimg{width:84px;height:84px;flex:none;filter:drop-shadow(0 2px 5px #000)}
.pwo .pwt{display:flex;flex-direction:column;gap:2px;min-width:0}
.pwo.lock .pwimg{filter:grayscale(1) brightness(.6)}
.pwo.pass{cursor:default;border-color:#8a6a2c;background:linear-gradient(#241a30,#14101b)}
.pwo.pass em{color:#9af7a8}
.bf2.land .hz.ez .pwi{transform:scale(1.12);transform-origin:20% 50%}
.bf2.land .hz.pz .pwb{transform:scale(1.12);transform-origin:20% 50%}
/* ===== v88: sparkles, victory / defeat panel, level-up window ===== */
.spk{position:absolute;bottom:-12px;width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(#fff6c8,#e8b84a 60%,#e8b84a00);opacity:0;animation:spkUp var(--d) var(--w) ease-out infinite;pointer-events:none}
.spk.ash{background:radial-gradient(#d88,#7a2a34 60%,#7a2a3400);bottom:auto;top:-12px;animation-name:spkDown}
@keyframes spkUp{0%{transform:translateY(0);opacity:0}15%{opacity:.95}100%{transform:translate(var(--x),-92vh);opacity:0}}
@keyframes spkDown{0%{transform:translateY(0);opacity:0}15%{opacity:.7}100%{transform:translate(var(--x),92vh);opacity:0}}
.col.title.endp{position:relative;overflow:hidden;gap:0;padding:4vh 16px;background:radial-gradient(70% 60% at 50% 38%,#2a2040dd,#0a0810f5 75%),url(assets/d1.webp) center/cover}
.endp.lose{background:radial-gradient(70% 60% at 50% 38%,#3a1620cc,#0a0508f7 75%),url(assets/d1.webp) center/cover}
.endp::before{content:"";position:absolute;left:50%;top:34%;width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;background:repeating-conic-gradient(from 0deg,#e8b84a1a 0 6deg,#0000 6deg 18deg);-webkit-mask:radial-gradient(circle,#000 0,#0000 55%);mask:radial-gradient(circle,#000 0,#0000 55%);animation:raySpin 60s linear infinite;pointer-events:none}
.endp.lose::before{background:repeating-conic-gradient(from 0deg,#c0505a1f 0 6deg,#0000 6deg 18deg);animation-duration:120s}
@keyframes raySpin{to{transform:rotate(360deg)}}
.endp>*{position:relative;z-index:1;flex:none}.endp>.end-fx{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.end-emb{width:clamp(70px,16vh,120px);height:clamp(70px,16vh,120px);margin:0 auto 6px;filter:drop-shadow(0 0 18px #e8b84a99);animation:embIn .9s cubic-bezier(.2,1.4,.4,1) both}
.endp.lose .end-emb{filter:drop-shadow(0 0 14px #c0505a88);animation-name:embIn,embShake}.end-emb svg{width:100%;height:100%}
@keyframes embIn{0%{transform:scale(.2) rotate(-14deg);opacity:0}100%{transform:none;opacity:1}}
@keyframes embShake{0%,100%{translate:0}30%{translate:-3px 0}60%{translate:3px 0}}
.endp h1.big-t{font-size:clamp(38px,9vh,66px);letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(#fff6c8,#e8b84a 55%,#9a6a1c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 10px #000);animation:ttlIn .8s .15s cubic-bezier(.2,1.2,.4,1) both;line-height:1.05}
.endp.lose h1.big-t{background:linear-gradient(#ffd0d0,#d0606c 55%,#6a1a26);-webkit-background-clip:text;background-clip:text}
@keyframes ttlIn{0%{transform:scale(1.5);opacity:0;letter-spacing:.5em}100%{transform:none;opacity:1}}
.end-rule{height:2px;width:min(300px,70%);margin:10px auto 14px;background:linear-gradient(90deg,#0000,#e4c27a,#0000)}.endp.lose .end-rule{background:linear-gradient(90deg,#0000,#c0505a,#0000)}
.endp .cnt{margin-bottom:6px}
.end-rw{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:0 auto 12px;max-width:440px}
.rwc{display:flex;flex-direction:column;align-items:center;min-width:92px;padding:10px 14px 8px;border-radius:12px;border:1px solid #e4c27a66;background:linear-gradient(#2a2238ee,#120e1cee);box-shadow:0 4px 14px #000a,inset 0 0 12px #e4c27a14;animation:rwIn .5s both cubic-bezier(.2,1.3,.4,1)}
.rwc .ico{width:30px;height:30px;display:block}.rwc .ico svg{width:100%;height:100%}.rwc b{font:700 22px "Almendra SC",Georgia,serif;color:#fff3b0;margin-top:2px}.rwc small{color:var(--mute);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.rwc.xp b{color:#e0ccff}.rwc.dust b{color:#cfeaff}
@keyframes rwIn{0%{transform:translateY(16px) scale(.8);opacity:0}100%{transform:none;opacity:1}}
.endp p.msg{max-width:420px;margin:2px auto 12px;font-size:14px;color:#cdbfdc}
.endp .btn{width:min(320px,100%);margin:5px auto 0}.endp .itemc,.endp .gearc{margin:6px auto}
/* level-up */
#ov:has(.lvlu){background:radial-gradient(60% 60% at 50% 45%,#2a1d4af2,#05060dfa);z-index:60}
.lvlu{position:relative;margin:auto;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.lvlu .lu-rays{position:absolute;left:50%;top:50%;width:170vmax;height:170vmax;margin:-85vmax 0 0 -85vmax;background:repeating-conic-gradient(#ffe28a1c 0 5deg,#0000 5deg 15deg);-webkit-mask:radial-gradient(circle,#000 0,#0000 50%);mask:radial-gradient(circle,#000 0,#0000 50%);animation:raySpin 40s linear infinite}
.lvlu .lu-glow{position:absolute;left:50%;top:50%;width:60vmin;height:60vmin;margin:-30vmin 0 0 -30vmin;border-radius:50%;background:radial-gradient(#ffe28a66,#0000 70%);animation:luPulse 2.4s ease-in-out infinite}
@keyframes luPulse{50%{transform:scale(1.25);opacity:.7}}
.lu-card{position:relative;z-index:2;width:min(400px,92%);max-height:94%;overflow:auto;padding:18px 20px 16px;text-align:center;border-radius:18px;border:2px solid #c9a24a;background:linear-gradient(#2c2440f2,#120e1cf7);box-shadow:0 0 0 1px #000,0 0 40px #e8b84a55,0 18px 50px #000;display:flex;flex-direction:column;gap:6px;animation:luIn .7s cubic-bezier(.2,1.25,.4,1) both}
@keyframes luIn{0%{transform:scale(.55) translateY(40px);opacity:0}100%{transform:none;opacity:1}}
.lu-k{letter-spacing:.5em;color:#ffe28a;font-size:13px;font-weight:700;padding-left:.5em;animation:ttlIn .8s .2s both}
.lu-port{position:relative;width:clamp(96px,22vh,150px);aspect-ratio:1;margin:4px auto;border-radius:50%;border:4px solid #e8b84a;box-shadow:0 0 28px #ffe28a99,inset 0 0 14px #000;overflow:visible;animation:luPort 1s .25s both cubic-bezier(.2,1.4,.4,1)}
.lu-port img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 18%;display:block}
.lu-port b{position:absolute;right:-8px;bottom:-6px;min-width:42px;height:42px;padding:0 6px;box-sizing:border-box;border-radius:21px;background:linear-gradient(#ffe28a,#c9962c);color:#2a1a04;font:800 24px/38px "Almendra SC",Georgia,serif;border:3px solid #fff3b0;box-shadow:0 3px 8px #000a}
@keyframes luPort{0%{transform:scale(.3) rotate(-30deg);opacity:0}100%{transform:none;opacity:1}}
.lu-t{margin:0;font-size:26px;color:var(--gold)}.lu-n{font:700 16px "Almendra SC",Georgia,serif;color:#fff3b0;letter-spacing:.1em}
.lu-g{display:flex;flex-direction:column;gap:2px;color:#cdbfdc;font-size:13px;margin:2px 0 4px}.lu-g span:first-child{color:#8fe08f;font-weight:700;font-size:15px}
.lu-pw{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid #e8b84a;background:linear-gradient(90deg,#4a3a1acc,#1a1420cc);margin:4px 0;animation:rwIn .6s .9s both cubic-bezier(.2,1.3,.4,1);box-shadow:0 0 16px #e8b84a55}
.lu-pw img{width:68px;height:68px;flex:none;filter:drop-shadow(0 0 10px #ffe28a);animation:luSpin 1.2s .9s both}.lu-pw div{display:flex;flex-direction:column;gap:1px}.lu-pw small{color:#ffe28a;letter-spacing:.2em;font-size:10px;font-weight:700}.lu-pw b{font:20px "Almendra SC",Georgia,serif;color:#fff3b0}.lu-pw span{font-size:12px;color:#cdbfdc}
@keyframes luSpin{0%{transform:rotate(-200deg) scale(.2);opacity:0}100%{transform:none;opacity:1}}
.lu-card .btn{margin-top:6px}

.lu-port img{position:absolute;inset:0}
/* pack summary */
.pksum{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;animation:rwIn .5s both}.pksum h2{margin:0;font-size:26px;color:var(--gold);letter-spacing:.12em;text-transform:uppercase}
.pksum.g-l h2{background:linear-gradient(#fff6c8,#e8b84a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px #e8b84a88)}.pksum.g-e h2{color:#d0a8ff;text-shadow:0 0 14px #a060ff99}
.pkchips{display:flex;gap:10px}.pkch{display:flex;flex-direction:column;align-items:center;min-width:86px;padding:6px 12px;border-radius:10px;border:1px solid #e4c27a55;background:#1a1426cc}.pkch b{font:700 20px "Almendra SC",Georgia,serif;color:#fff3b0}.pkch.n b{color:#8fe08f}.pkch.u b{color:#cfeaff}.pkch small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.pkgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;max-width:96vw}
.pkx{position:relative;flex:none;animation:rwIn .5s both cubic-bezier(.2,1.3,.4,1)}.pkx.rv-l{filter:drop-shadow(0 0 14px #ffd060)}.pkx.rv-e{filter:drop-shadow(0 0 10px #a060ff)}.pkx.rv-r{filter:drop-shadow(0 0 7px #4a90ff88)}
.pkx em{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);font:700 11px system-ui;font-style:normal;padding:2px 9px;border-radius:9px;white-space:nowrap;z-index:3;letter-spacing:.06em}.pkx em.new{background:#2f7a3a;color:#eaffea;border:1px solid #8fe08f}.pkx em.dup{background:#1c2c44;color:#cfeaff;border:1px solid #6aa0d8}
.pkgrid{gap:22px 20px}.pkx .pkw{pointer-events:none}.pkx.rv-r{filter:none}.pkx.rv-r .hc{box-shadow:0 0 14px #4a90ff88}.pkx .hc{margin:0!important}
.pkx .hc,.pkx .hc.big{background:none!important;border:0!important;box-shadow:none!important}.pkx .hc::before{display:none!important}.pksum+.pkbar,.pksum~.pkbar{margin-top:14px}
/* v88: gear + decks tabs */
.eql{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.eqs.wi{position:relative;padding:12px 14px;border-radius:14px;gap:14px;background:linear-gradient(135deg,#241c34f2,#120e1cf2);transition:transform .15s,box-shadow .15s}
.eqs.wi:hover{transform:translateY(-2px);box-shadow:0 6px 18px #000a}
.eqs.wi .gi{width:74px;height:74px;flex:none;border-radius:12px}
.eqs.wi .eqt small:first-child{letter-spacing:.14em;text-transform:uppercase;font-size:10px;color:var(--gold)}
.eqs.wi .eqt b{font-size:18px;margin:2px 0}
.eqs.wi.r-r{box-shadow:inset 0 0 22px #3a6ab033}.eqs.wi.r-e{box-shadow:inset 0 0 22px #7a3ab044}.eqs.wi.r-l{box-shadow:inset 0 0 26px #c0702a55,0 0 14px #c0702a44}
.eqs.wi.r-x{border-style:dashed;opacity:.82}.eqs.wi.r-x .gi{background:radial-gradient(#2a2238,#120e1c);border:2px dashed #4a4060}
.dkl{display:flex;flex-direction:column;gap:12px}
.dk{display:flex;gap:10px;align-items:stretch}
.dkn{flex:1;text-align:left;padding:14px 18px;border-radius:14px;border:2px solid var(--line);background:linear-gradient(135deg,#241c34f2,#120e1cf2);color:var(--ink);font:inherit;display:flex;flex-direction:column;gap:7px;position:relative;overflow:hidden}
.dk.on .dkn{border-color:#c9a24a;box-shadow:0 0 18px #e4c27a44,inset 0 0 24px #e4c27a14}.dk.on .dkn::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(#ffe28a,#a8761c)}
.dkh{display:flex;align-items:center;gap:10px}.dkh b{font:22px "Almendra SC",Georgia,serif;color:var(--gold)}.dkact{font:700 10px system-ui;font-style:normal;letter-spacing:.16em;padding:3px 9px;border-radius:9px;background:#2f7a3a;color:#eaffea;border:1px solid #8fe08f}
.dkbar{height:8px;border-radius:5px;background:#0a0810;border:1px solid #3a3050;overflow:hidden}.dkbar i{display:block;height:100%;background:linear-gradient(90deg,#8a4a2a,#c0702a);transition:width .4s}.dkbar.ok i{background:linear-gradient(90deg,#3a8a4a,#8fe08f)}
.dkn small{color:var(--mute)}
.dk .btn.sm{align-self:center;min-width:72px}
.dkacts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:2px}.dkacts .btn{padding:14px 8px;font-size:15px}
.eqs.wi.r-x{opacity:1}
/* v88b: painted title banners + icons */
.end-ttl{width:min(820px,94%);max-height:34vh;margin:0 auto 2px;animation:ttlIn .9s cubic-bezier(.2,1.2,.4,1) both}
.end-ttl img{width:100%;max-height:34vh;object-fit:contain;display:block}
.end-ttl.victory{mix-blend-mode:screen}
.end-ttl:not(.victory) img{-webkit-mask:radial-gradient(ellipse 72% 75% at 50% 50%,#000 50%,#0000 100%);mask:radial-gradient(ellipse 72% 75% at 50% 50%,#000 50%,#0000 100%)}
.endp h1.big-t.hid{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);animation:none}
.endp h1.big-t.sub2{font-size:clamp(18px,3.4vh,28px);letter-spacing:.2em;animation:none;margin-top:-6px}
.endp .end-rule{margin:8px auto 12px}
.rwc{min-width:104px;padding:8px 14px 8px}.rwc .ico{width:56px;height:56px}.rwc .ico img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 6px #000)}.rwc.dust .ico img{border-radius:8px}
#top .pill.flipcoin i{width:20px;height:20px;border-radius:0;background:url(assets/end/crown.webp) center/contain no-repeat;box-shadow:none}
#top .pill.dust{display:flex;align-items:center;gap:6px;padding:3px 10px 3px 5px}#top .pill.dust i{width:15px;height:20px;background:url(assets/end/dust.webp) center/contain no-repeat;border-radius:3px}
.pkx em.dup::before{content:"";display:inline-block;width:10px;height:13px;margin-right:4px;vertical-align:-2px;background:url(assets/end/dust.webp) center/contain no-repeat}
.pkch.u b::before{content:"";display:inline-block;width:14px;height:18px;margin-right:5px;vertical-align:-3px;background:url(assets/end/dust.webp) center/contain no-repeat}
.lu-g .xpi{width:26px;height:26px;vertical-align:middle;margin-right:5px}
.end-ttl img{-webkit-mask:radial-gradient(ellipse closest-side,#000 58%,#0000 100%)!important;mask:radial-gradient(ellipse closest-side,#000 58%,#0000 100%)!important}
.end-ttl.victory{mix-blend-mode:normal}.end-ttl{width:min(900px,96%);max-height:38vh}.end-ttl img{max-height:38vh}
.end-rw{max-width:600px}
.end-ttl{display:flex;justify-content:center}.end-ttl img{width:auto!important;height:auto;max-width:100%;max-height:40vh;object-fit:fill}
/* v91: inline currency icons + defeat tip */
.ti{white-space:nowrap;display:inline-flex;align-items:center;gap:3px}.ti img{width:1.45em;height:1.45em;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 1px 2px #000)}
.btn .ti img{width:1.3em;height:1.3em}
.end-tip{display:flex;gap:10px;align-items:center;max-width:420px;margin:2px auto 12px;padding:9px 14px;border-radius:12px;border:1px solid #c0505a66;background:#1a0f16cc;text-align:left;font-size:13px;color:#e8d0d4}
.end-tip b{flex:none;font:700 10px system-ui;letter-spacing:.2em;text-transform:uppercase;color:#ff9aa6;padding:3px 8px;border-radius:8px;border:1px solid #c0505a}
.qr .qic{width:34px;height:34px;object-fit:contain;display:block;margin:0 auto;filter:drop-shadow(0 2px 4px #000)}.qr small.qx .qic{width:18px;height:22px;display:inline-block;vertical-align:middle;margin:0}
.qr .qic{width:26px;height:26px;margin:-2px auto 0}
.rwc.neg b{color:#ff9aa6}.rwc.neg{border-color:#c0505a77}.rwc.rating b,.rwc.star b{color:#ffe28a}
.rwc.neg b{color:#ff9aa6!important}
.end-tip.win{border-color:#e4c27a55;background:#18131fcc;color:#ebe0c8}.end-tip.win b{color:#ffe28a;border-color:#c9a24a}
/* v94: boss phase window */
.phb{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);z-index:90;width:min(520px,80%);text-align:center;padding:16px 22px 12px;border-radius:16px;border:2px solid #c0505a;background:radial-gradient(120% 140% at 50% 0,#4a1620f5,#12080cf8);box-shadow:0 0 0 1px #000,0 0 50px #c0505a99,0 20px 60px #000;display:flex;flex-direction:column;gap:3px;cursor:pointer;animation:phIn .55s cubic-bezier(.2,1.3,.4,1) both}
.phb.out{animation:phOut .5s both}
.phb small{letter-spacing:.45em;font-weight:800;font-size:12px;color:#ff9aa6;padding-left:.45em}.phb i{font-style:normal;font:15px "Almendra SC",Georgia,serif;color:#e8c4c8;letter-spacing:.1em}
.phb b{font:clamp(24px,4.6vh,36px) "Almendra SC",Georgia,serif;font-weight:400;color:#fff3b0;text-shadow:0 0 20px #ff6a4a;margin:2px 0}.phb span{font-size:14px;color:#f0dcdc}.phb em{font-style:normal;font-size:10px;color:#9a7a80;margin-top:6px;letter-spacing:.1em}
@keyframes phIn{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}100%{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes phOut{to{opacity:0;transform:translate(-50%,-60%) scale(.96)}}
.bf2.shk{animation:shk .55s}@keyframes shk{0%,100%{transform:none}15%{transform:translate(-6px,3px)}35%{transform:translate(6px,-3px)}55%{transform:translate(-4px,2px)}75%{transform:translate(3px,-2px)}}
/* v94: weekly mutation window */
#ov:has(.mutw){background:radial-gradient(60% 60% at 50% 45%,#16304af2,#04060cfa);z-index:60}
.mutw{position:relative;margin:auto;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.mutw .mu-rays{position:absolute;left:50%;top:50%;width:170vmax;height:170vmax;margin:-85vmax 0 0 -85vmax;background:repeating-conic-gradient(#6fe0ff1a 0 5deg,#0000 5deg 15deg);-webkit-mask:radial-gradient(circle,#000 0,#0000 50%);mask:radial-gradient(circle,#000 0,#0000 50%);animation:raySpin 50s linear infinite}
.spk.mu{background:radial-gradient(#e0fbff,#6fe0ff 60%,#6fe0ff00)}
.mu-card{position:relative;z-index:2;width:min(420px,92%);max-height:94%;overflow:auto;padding:18px 22px 16px;text-align:center;border-radius:18px;border:2px solid #4aa8d8;background:linear-gradient(#142840f2,#0a1220f7);box-shadow:0 0 0 1px #000,0 0 44px #4aa8d866,0 18px 50px #000;display:flex;flex-direction:column;gap:7px;animation:luIn .7s cubic-bezier(.2,1.25,.4,1) both}
.mu-k{letter-spacing:.5em;color:#8fe0ff;font-size:12px;font-weight:700;padding-left:.5em}
.mu-ic{width:clamp(90px,20vh,130px);aspect-ratio:1;margin:4px auto;border-radius:50%;border:3px solid #6fd0ff;background:radial-gradient(circle at 40% 30%,#2a5a8a,#0a1830);box-shadow:0 0 30px #6fd0ff88,inset 0 0 18px #000;display:flex;align-items:center;justify-content:center;animation:luPort 1s .25s both cubic-bezier(.2,1.4,.4,1)}.mu-ic svg{width:62%;height:62%;filter:drop-shadow(0 2px 6px #000)}
.mu-t{margin:0;font-size:28px;color:#fff3b0}.mu-d{margin:0;font-size:15px;color:#dcecf8}.mu-n{margin:0;font-size:12px;color:#9ab4c8}.mu-l{color:#6fb8d8;font-size:11px;letter-spacing:.08em}
/* v95: synergy gems, deck panel, archetype picker */
.syn{display:inline-block;width:14px;height:14px;transform:rotate(45deg);border-radius:3px;background:linear-gradient(135deg,#c9fbff,#35b8e8 55%,#1a6ab0);box-shadow:0 0 8px #5fd8ff,0 0 2px #fff;border:1px solid #e6fcff;vertical-align:middle;flex:none}
.hc>.syn,.dkt .hc>.syn{position:absolute;right:5%;top:4%;width:max(9px,6.5cqw);height:max(9px,6.5cqw);z-index:6;animation:synP 2s ease-in-out infinite}
@keyframes synP{50%{box-shadow:0 0 14px #9fe8ff,0 0 3px #fff;filter:brightness(1.25)}}
.synp{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 4px}.synh{width:100%;color:var(--mute);font-size:11px;letter-spacing:.06em}
.sync{display:inline-flex;align-items:center;gap:7px;padding:3px 10px 3px 8px;border-radius:999px;border:1px solid #3a8ab8;background:#0e1c2ccc;font-size:12px;color:#cfeeff}.sync .syn{width:9px;height:9px}
.cvsyn{margin-top:8px;padding:10px 12px;border-radius:12px;border:1px solid #3a8ab866;background:#0c1622cc;text-align:left;max-width:380px}.cvsyn h4{margin:0 0 6px;font:15px "Almendra SC",Georgia,serif;color:#9fe8ff;font-weight:400;letter-spacing:.06em}
.cvs{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center;margin-bottom:6px}.cvs .syn{width:9px;height:9px}.cvs b{color:#e8f6ff;font-size:13px}.cvs small{grid-column:2;color:var(--mute);font-size:11px}.cvp{grid-column:2;display:flex;flex-wrap:wrap;gap:4px}
.cvq{font-size:11px;padding:2px 8px;border-radius:8px;background:#16283a;border:1px solid #2a5a7a;color:#cfeeff}.cvq.miss{opacity:.5;border-style:dashed}
.archl{display:flex;flex-direction:column;gap:10px;padding:4px 2px}.arch{display:flex;gap:14px;align-items:center;text-align:left;padding:12px 14px;border-radius:14px;border:2px solid var(--line);background:linear-gradient(135deg,#241c34f2,#120e1cf2);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s,border-color .15s}.arch:hover{transform:translateY(-2px);border-color:#c9a24a}
.arch-ic{width:54px;height:54px;flex:none;border-radius:50%;border:2px solid #c9a24a;background:radial-gradient(#2a2238,#0e0a16);display:flex;align-items:center;justify-content:center}.arch-ic svg{width:30px;height:30px}
.arch-tx{display:flex;flex-direction:column;gap:2px}.arch-tx b{font:20px "Almendra SC",Georgia,serif;color:var(--gold);font-weight:400}.arch-tx span{font-size:13px;color:#cdbfdc}.arch-tx small{color:#8fb8d8;font-size:11px}
.gtk2{max-width:none!important;font-size:12px!important}
.archl>p.msg{text-align:left;max-width:none;margin:0 0 4px}.arch-tx{flex:1;min-width:0;text-align:left}
/* ---- v96 mastery ---- */
.mxline{display:flex;align-items:center;gap:10px;margin:8px 0;padding:8px 12px;border-radius:12px;border:1px solid #6a4aa8;background:linear-gradient(135deg,#2a1c44,#171026);color:var(--ink);font:inherit;cursor:pointer;width:100%;text-align:left}.mxline .ico{width:26px;height:26px;display:inline-flex}.mxline .ico svg,.mxbig svg{width:100%;height:100%}.mxline b{color:#d8c0ff}.mxline small{margin-left:auto;color:#bfa8e8}
.mxtop{display:flex;gap:14px;align-items:center;padding:10px 12px;border-radius:14px;border:1px solid #6a4aa8;background:linear-gradient(135deg,#2a1c44f2,#140e22f2);margin-bottom:10px}
.mxbig{width:54px;height:54px;flex:none;filter:drop-shadow(0 0 8px #b58cff)}.mxtx{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.mxtx b{font:19px "Almendra SC",Georgia,serif;color:#e0cfff;font-weight:400}.mxtx small{color:#bfa8e8;font-size:12px}
.mxbar i{background:linear-gradient(90deg,#7a4ad8,#c89cff)!important}
.mxpts{flex:none;min-width:74px;text-align:center;padding:8px 10px;border-radius:12px;border:2px solid #4a3a6a;background:#120c1e}.mxpts b{display:block;font:30px "Almendra SC",Georgia,serif;color:#8a7aa8;font-weight:400;line-height:1}.mxpts small{color:#8a7aa8;font-size:11px}.mxpts.has{border-color:#c89cff;box-shadow:0 0 14px #b58cff88;animation:mxp 1.8s ease-in-out infinite}.mxpts.has b,.mxpts.has small{color:#f0e2ff}
@keyframes mxp{50%{box-shadow:0 0 24px #c89cffcc}}
.mxtree{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mxcol{display:flex;flex-direction:column;gap:8px;position:relative}.mxcol:before{content:"";position:absolute;left:30px;top:34px;bottom:30px;width:3px;background:linear-gradient(#6a4aa8,#3a2a58);border-radius:2px;z-index:0}
.mxh{margin:0 0 2px;text-align:center;font:16px "Almendra SC",Georgia,serif;color:var(--gold);font-weight:400}
.mxn{position:relative;z-index:1;display:flex;align-items:center;gap:8px;text-align:left;padding:8px;border-radius:12px;border:2px solid #3a3050;background:linear-gradient(135deg,#1c1630f2,#0f0b1af2);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s,border-color .15s}
.mxn .mxi{width:38px;height:38px;flex:none;border-radius:50%;border:2px solid #5a4a80;background:radial-gradient(#2a2240,#0e0a16);padding:6px;display:flex}.mxn .mxi svg{width:100%;height:100%}
.mxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.mxt b{font-size:13px;color:#e8dcff}.mxt small{font-size:11px;color:#b8a8d8;line-height:1.25}.mxt em{font-size:10px;color:#8a7aa8;font-style:normal}
.mxr{flex:none;font-size:12px;font-weight:700;color:#cdbfdc;background:#120c1e;border-radius:8px;padding:2px 6px;border:1px solid #4a3a6a}
.mxn.lock{opacity:.5;filter:grayscale(.6);cursor:default}.mxn.can{border-color:#c89cff;box-shadow:0 0 10px #b58cff55}.mxn.can:hover{transform:translateY(-2px)}.mxn.part{border-color:#8a6ad0}.mxn.max{border-color:#e8b84a;background:linear-gradient(135deg,#3a2c14f2,#1a1208f2)}.mxn.max .mxi{border-color:#e8b84a}.mxn.max .mxr{color:#ffe28a;border-color:#e8b84a}
.mxn.t2{border-style:double;border-width:4px}.mxn.t2 .mxi{width:44px;height:44px}.mxn.t2 .mxt b{color:#ffe28a}
.mxsum{margin-top:10px;text-align:left}
.lvlu.mxu .lu-glow{background:radial-gradient(circle,#b58cff66,transparent 65%)}.lvlu.mxu .lu-k{color:#d8c0ff}.lu-port.mxp{background:radial-gradient(#3a2a60,#140e22);border-color:#b58cff;padding:14px}.lu-port.mxp svg{width:100%;height:100%}.lu-bt{display:flex;gap:10px;justify-content:center;margin-top:12px}
.rwc.mx b{color:#d8c0ff}
/* ---- v96 daily draft ---- */
.dfbox{max-width:760px;margin:0 auto;gap:10px;display:flex;flex-direction:column;align-items:stretch}.dfbox .msg{text-align:left}
.dfp{display:flex;flex-direction:column;gap:8px}.dfrow{display:flex;gap:22px;justify-content:center;align-items:flex-start;padding:6px 0}
.dfc{background:none;border:2px solid transparent;border-radius:16px;padding:6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink);font:inherit;transition:transform .15s,border-color .15s,box-shadow .15s}.dfc:hover{transform:translateY(-6px) scale(1.03);border-color:#e8b84a;box-shadow:0 0 22px #e8b84a88}.dfc small{color:#cdbfdc}
.dfcur{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-radius:14px;border:1px solid var(--line);background:#120e1cd8}.dfcur>b{color:var(--gold);font-weight:400;font-family:"Almendra SC",Georgia,serif}
.dfcv{display:flex;gap:8px;align-items:flex-end;height:62px}.dfcol{display:flex;flex-direction:column;align-items:center;gap:2px;width:26px;justify-content:flex-end}.dfcol i{width:18px;background:linear-gradient(#5aa8ff,#2a5aa8);border-radius:3px 3px 0 0}.dfcol small{font-size:10px;color:#a898c8}
.dfchips{display:flex;flex-wrap:wrap;gap:4px}.dfch{font-size:11px;padding:2px 7px 2px 3px;border-radius:10px;background:#241c34;border:1px solid #4a3a6a;display:inline-flex;gap:5px;align-items:center}.dfch i{font-style:normal;background:#2a5aa8;border-radius:50%;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:10px}.dfch.r-r{border-color:#4a8ad8}.dfch.r-e{border-color:#a060e0}.dfch.r-l{border-color:#e8b84a}
.dfc>*:first-child{zoom:.66}.dfrow{gap:30px}
/* ---- v97 seasons + friends ---- */
.seasonc{margin-top:8px;border-color:#6a4aa8!important;background:linear-gradient(135deg,#241a3af2,#120e1cf2)!important}.seasonc b{color:#ffe28a;font-size:18px}.seasonc .btn{margin-top:6px}
.seasonp{margin-top:8px;padding:8px 10px;border-radius:10px;border:1px solid #e8b84a;background:#2a2010;display:flex;flex-direction:column;gap:4px;align-items:center}.seasonp b{color:#ffe28a}
.srt{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:4px 0;border-radius:10px;border:1px solid var(--line);background:#161022}.srt b{min-width:84px;color:var(--gold)}.srt small{color:#a898c8;min-width:90px}.srt em{margin-left:auto;font-style:normal;color:#e8dcff;font-size:13px}
.fradd{display:flex;gap:8px;justify-content:center;margin:8px 0}.fradd input{padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#120e1c;color:var(--ink);font:inherit;min-width:240px}
.frl{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:6px}.frr{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(135deg,#1c1630f2,#0f0b1af2)}.frn{flex:1;display:flex;flex-direction:column}.frn b{color:#e8dcff}.frn small{color:#a898c8}
.frwrap{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:8px}.fradd{align-items:stretch}.fradd input{flex:1;min-width:0}.fradd .btn{flex:none}
.seasonc{width:100%;max-width:620px;margin:8px auto 0;align-self:center}

/* v100: turn timer. Landscape end-turn button is an image, so the countdown is drawn on top of it */
.bf2.land .etb2{position:relative!important}
.bf2.land .etb2[data-t]::after{content:attr(data-t);position:absolute;left:50%;top:92%;transform:translateX(-50%);font-family:inherit;font-weight:700;font-size:max(13px,calc(16px*var(--k)));line-height:1;padding:3px 9px;border-radius:10px;background:rgba(10,8,18,.88);border:1px solid #c8a24a;color:#ffe9b0;pointer-events:none}
.bf2.land .etb2.urgent{animation:urg .6s ease-in-out infinite alternate}
.bf2.land .etb2.urgent::after{color:#fff;background:#9c2222;border-color:#ff8a7a}
.etb2.urgent{animation:urg .6s ease-in-out infinite alternate}
@keyframes urg{from{filter:drop-shadow(0 0 0 rgba(255,80,80,0))}to{filter:drop-shadow(0 0 12px rgba(255,80,80,.95))}}
.bf2.land .etb2.wait::after,.bf2.land .etb2:disabled::after{display:none}

/* v101: language */
.langb{position:absolute;top:12px;right:14px;z-index:5}
.lgp{display:flex;flex-direction:column;gap:8px;min-width:240px}
.lgp .lgn{text-align:center;color:#b9aed3}

/* v103: ambient fog and embers over the animated board */
.amb{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.amb .fg{position:absolute;left:-30%;width:160%;height:38%;border-radius:50%;filter:blur(18px);opacity:.0;will-change:transform,opacity}
.amb .f1{top:30%;background:radial-gradient(closest-side,rgba(120,200,190,.22),transparent);animation:fgd 26s linear infinite}
.amb .f2{top:46%;background:radial-gradient(closest-side,rgba(150,170,210,.18),transparent);animation:fgd 38s linear infinite reverse;animation-delay:-12s}
@keyframes fgd{0%{transform:translateX(-12%);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(12%);opacity:0}}
.amb .em{position:absolute;width:var(--s);height:var(--s);border-radius:50%;background:#ffb25a;box-shadow:0 0 6px 2px rgba(255,150,50,.7);opacity:0;animation:emr linear infinite;will-change:transform,opacity}
@keyframes emr{0%{transform:translate(0,0);opacity:0}15%{opacity:.9}100%{transform:translate(var(--dx),-200px);opacity:0}}
@media (prefers-reduced-motion:reduce){.amb{display:none}}

/* v106: menu buttons in ONE cluster, bottom right */
.hcorner.r{right:max(14px,env(safe-area-inset-right));left:auto;max-width:min(46vw,420px);flex-wrap:wrap;justify-content:flex-end;gap:10px}
.hcorner .btn{padding:clamp(8px,1.8vh,12px) clamp(14px,1.8vw,22px);font-size:clamp(14px,3vh,18px)}

/* v106: resources under the hero portraits, bigger */
.bf2.land .hz.ez .crys,.bf2.land .mrow{position:absolute!important;left:calc(var(--th-l) + var(--th-w)/2);top:calc(var(--th-t) + var(--th-h) + 4px);bottom:auto;transform:translateX(-50%);width:max-content;max-width:none;min-width:0;justify-content:center;z-index:6;pointer-events:none}
.bf2.land .mrow{left:calc(var(--bh-l) + var(--bh-w)/2);top:calc(var(--bh-t) + var(--bh-h) + 4px)}
.bf2.land .crys{gap:2px 2px;padding:3px 8px 4px;border-radius:10px;background:rgba(8,8,18,.78);border:1px solid #5a4a2a;flex-wrap:wrap}
.bf2.land .crys i{width:13px;height:17px}
.bf2.land .crys span{flex-basis:100%;text-align:center;margin:1px 0 0;font:700 max(14px,calc(16px*var(--k)))/1.1 "Almendra SC",Georgia,serif;color:#cfe6ff;letter-spacing:.04em}
.bf2.land .hz.ez .pnm{top:8px}
/* deck counts */
.bf2.land .chip.draw,.bf2.land .chip.disc{font:700 max(15px,calc(17px*var(--k)))/1.2 "Almendra SC",Georgia,serif;padding:5px 14px;border-width:2px;box-shadow:0 2px 8px #000a}
.bf2.land .chip.draw b,.bf2.land .chip.disc b{font-size:1.25em;margin-left:4px}
.bf2.land .hz.pz .chip.draw{top:calc(50% + 120px)}
.bf2.land .hz.pz .chip.disc{top:calc(50% + 158px)}
.bf2.land .hz.ez .chips{gap:6px}
/* the turn countdown: a glowing ring badge under the End Turn button */
.bf2.land .etb2[data-t]::after{content:attr(data-t);left:50%;top:calc(100% + 6px);transform:translateX(-50%);width:max(54px,calc(64px*var(--k)));height:max(54px,calc(64px*var(--k)));padding:0;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;font:700 max(24px,calc(30px*var(--k)))/1 "Almendra SC",Georgia,serif;color:#fff2c4;text-shadow:0 0 8px #ffb84a,0 2px 3px #000;background:radial-gradient(circle,#150f22 57%,transparent 60%),conic-gradient(#ffc94a calc(var(--p,100)*1%),#2a2236 0);box-shadow:0 0 14px #ffb84a99,0 0 0 2px #00000099}
.bf2.land .etb2.urgent::after{color:#fff;text-shadow:0 0 10px #ff4a3a;background:radial-gradient(circle,#2a0c10 57%,transparent 60%),conic-gradient(#ff4a3a calc(var(--p,100)*1%),#2a2236 0);box-shadow:0 0 22px #ff4a3acc,0 0 0 2px #00000099;animation:tpulse .5s ease-in-out infinite alternate}
@keyframes tpulse{from{transform:translateX(-50%) scale(1)}to{transform:translateX(-50%) scale(1.14)}}
.hcorner.r{display:grid;grid-template-columns:repeat(2,auto);max-width:none}
.hcorner.r .btn{text-align:center}
.bf2.land .crys{width:172px;box-sizing:border-box;justify-content:center}
.bf2.land .crys i{width:12px;height:16px;border-color:#4a6aa0;background:#1a3466}
.bf2.land .crys i.lock{opacity:.45}
.bf2.land .hz.ez .crys{top:calc(var(--th-t) + var(--th-h) + 14px)}
.bf2.land .mrow{top:calc(var(--bh-t) + var(--bh-h) + 12px)}
.bf2.land .hz.ez .crys,.bf2.land .mrow .crys{width:172px!important}.bf2.land .mrow{width:auto!important}
.bf2.land .hz.pz .chip.draw{top:calc(50% + 100px*var(--k))}.bf2.land .hz.pz .chip.disc{top:calc(50% + 134px*var(--k))}.bf2.land .chip.draw,.bf2.land .chip.disc{z-index:7}
.bf2.land .hz.pz .chip.draw{top:calc(50% + 116px*var(--k))}.bf2.land .hz.pz .chip.disc{top:calc(50% + 152px*var(--k))}

/* v106b: short landscape screens (phones). Everything lives in the free side margins, the plates are compact */
@media (max-height:470px){
 .bf2.land .crys{width:auto!important;padding:2px 6px 2px;gap:1px;border-radius:8px;flex-wrap:nowrap;align-items:center}
 .bf2.land .crys i{width:7px;height:10px}
 .bf2.land .crys span{flex-basis:auto;margin:0 0 0 5px;font:700 12px/1 "Almendra SC",Georgia,serif;white-space:nowrap}
 .bf2.land .hz.ez .crys{top:calc(var(--th-t) + var(--th-h) + 6px)}
 .bf2.land .mrow{top:calc(var(--bh-t) + var(--bh-h) + 4px)}
 .bf2.land .chip.draw,.bf2.land .chip.disc{font:700 13px/1.1 "Almendra SC",Georgia,serif;padding:3px 10px;border-width:1px}
 .bf2.land .hz.pz .chip.draw{left:8px;right:auto;top:auto;bottom:34px}
 .bf2.land .hz.pz .chip.disc{left:8px;right:auto;top:auto;bottom:8px}
 .bf2.land .hz.pz .pnm{bottom:64px}
 .bf2.land .hz.ez .chips{gap:3px;top:4px}
 .bf2.land .etb2[data-t]::after{width:42px;height:42px;font-size:19px;top:calc(100% + 3px)}
}
@media (max-height:380px){.pban{display:none}}

/* v108: the battlefield picture is drawn exactly at the size the hero frames and lanes are measured on (no cropping) */
.bf2.land .stageimg{left:calc((100% - var(--sw))/2);top:0;width:var(--sw);height:var(--sh);background:var(--bimg) center/100% 100% no-repeat}

/* v109: layout after the reference screenshots: hand fanned at the bottom right, played-card history on the left, big preview of the card you touch */
.bf2.land .hand2 .hc{bottom:var(--by,6px)}
.bf2.land .hand2 .hc.sel{z-index:40!important}
.bf2.land .ehand{left:calc(var(--th-l) - 14px);top:calc(var(--th-t) + var(--th-h)*.18);transform:translateX(-100%)}
.bf2.land .ehand i{margin-left:calc(-14px*var(--k));width:calc(30px*var(--k));height:calc(44px*var(--k));transform:rotate(calc((var(--k)*0deg)))}
/* deck counts sit on the two deck slabs of the picture */
.bf2.land .hz.ez .chips{position:absolute;left:calc(var(--ed-x) - 46px);right:auto;top:calc(var(--ed-y) - 26px);flex-direction:column;align-items:center;gap:4px;z-index:6}
.bf2.land .hz.pz .chip.draw{left:calc(var(--pd-x) - 46px);right:auto;top:calc(var(--pd-y) - 34px);bottom:auto}
.bf2.land .hz.pz .chip.disc{left:calc(var(--pd-x) - 46px);right:auto;top:calc(var(--pd-y) + 2px);bottom:auto}
.bf2.land .hz.pz .pnm{bottom:8px;left:8px}
/* played cards history */
.hist{display:none}
.bf2.land .hist{display:flex;position:absolute;left:var(--hx-l);top:var(--hx-t);width:var(--hx-w);height:var(--hx-h);flex-direction:column;justify-content:flex-end;gap:4px;z-index:7;pointer-events:none}
.bf2.land .hi{pointer-events:auto;position:relative;flex:none;width:100%;height:calc(var(--hx-w)*.62);padding:0;border-radius:9px;border:2px solid #4a90e2;background:#14101b center/cover no-repeat;overflow:hidden;cursor:pointer;box-shadow:0 2px 6px #000c;animation:hin .35s ease-out}
.bf2.land .hi.foe{border-color:#d8453a}
.bf2.land .hi .hia{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
.bf2.land .hi em{position:absolute;left:1px;top:1px;min-width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8fc6ff,#2a5aa8 60%,#0a2050);color:#fff;font:700 11px/17px system-ui;text-align:center;font-style:normal;border:1px solid #000}
@keyframes hin{from{transform:translateY(14px) scale(.7);opacity:0}to{transform:none;opacity:1}}
/* touched / selected card: shown whole on the left, next to the history */
.bf2.land .prev{left:calc(var(--hx-l) + var(--hx-w) + 18px)!important;top:50%!important;bottom:auto!important;transform:translateY(-50%) scale(var(--pvs,1))!important;transform-origin:0 50%!important}
.bf2.land .prev.epv,.bf2.land .prev.insp{top:50%!important}
@media (max-height:470px){
 .bf2.land .hz.ez .chips{left:calc(var(--ed-x) - 40px);top:calc(var(--ed-y) - 22px)}
 .bf2.land .hz.pz .chip.draw{left:calc(var(--pd-x) - 40px);top:calc(var(--pd-y) - 30px);bottom:auto}
 .bf2.land .hz.pz .chip.disc{left:calc(var(--pd-x) - 40px);top:calc(var(--pd-y) + 2px);bottom:auto}
 .bf2.land .hz.pz .pnm{bottom:4px}
}
.bf2.land .hand2 .hc.sel{transform:translateY(-30px) scale(calc(var(--hs)*1.12))!important}
.bf2.land .hand2 .hc:hover:not(.sel){transform:translateY(-22px) scale(calc(var(--hs)*1.35))}
.bf2.land .hi{height:calc(var(--hx-w)*.8)}
@media (max-height:470px){
 .bf2.land .mid{transform:translateY(-17%)}
 .bf2.land .hand2{right:2px}
}
@media (max-height:470px){.bf2.land .mid{--ew:clamp(70px,calc(var(--lb) - 10px),96px)}}

/* v110: smaller opaque hand cards; a touched card is raised and enlarged right in the hand, the left side only shows cards that were played */
.bf2.land .prev:not(.insp){display:none!important}
.bf2.land .hand2 .hc.no,.bf2.land .hand2 .hc.ok{opacity:1!important}
.bf2.land .hand2 .hc.no{filter:brightness(.7) saturate(.75)}
.bf2.land .hand2 .hc.sel{transform:translateY(-8px) scale(calc(var(--hs)*1.7))!important;z-index:80!important;filter:none}
.bf2.land .hand2 .hc:hover:not(.sel){transform:translateY(-10px) scale(calc(var(--hs)*1.4));z-index:70!important;filter:none}

/* v111: portraits and power icons are cut to the exact openings of the arena frames */
.bf2.land .hr .hp-img{width:100%!important;height:100%!important;margin:0!important}
.bf2.land .hr .hp-img img{clip-path:inset(0 round 34% 34% 3% 3% / 27% 27% 3% 3%);object-position:50% 18%}
.bf2.land .hz.ez .crys{top:calc(var(--th-t) + var(--th-h) + var(--sh)*.034)}
.bf2.land .mrow{top:calc(var(--bh-t) + var(--bh-h) + var(--sh)*.03)}

/* v112: mana / resource as a hexagon next to the hero, like in the reference pictures */
.crys .hx,.crys .rn{display:none}
.bf2.land .crys i,.bf2.land .crys>span{display:none!important}
.bf2.land .hz.ez .crys,.bf2.land .mrow{background:none!important;border:0!important;padding:0!important;width:auto!important;flex-direction:column;align-items:center;gap:0;transform:none!important}
.bf2.land .crys .hx{display:grid;place-items:center;width:calc(64px*var(--k));height:calc(72px*var(--k));min-width:46px;min-height:52px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:radial-gradient(circle at 40% 30%,#7ab8ff,#2a5aa8 55%,#0c2552);font:700 max(18px,calc(24px*var(--k)))/1 "Almendra SC",Georgia,serif;color:#fff;-webkit-text-stroke:.6px #001030;text-shadow:0 2px 3px #000;position:relative;filter:drop-shadow(0 2px 4px #000)}
.bf2.land .crys .hx::before{content:"";position:absolute;inset:3px;clip-path:inherit;border:0;background:radial-gradient(circle at 40% 30%,#6aa6ee,#1f4a92 60%,#0a2048);z-index:-1}
.bf2.land .crys .rn{display:block;font:700 max(11px,calc(12px*var(--k)))/1 "Almendra SC",Georgia,serif;color:#cfe6ff;text-shadow:0 1px 3px #000,0 0 6px #000;margin-top:2px;font-style:normal}
.bf2.land .hz.ez .crys{left:calc(var(--th-l) - 74px*var(--k) - 6px)!important;top:calc(var(--th-t) + var(--th-h) - 78px*var(--k))!important}
.bf2.land .mrow{left:calc(var(--bh-l) - 74px*var(--k) - 6px)!important;top:calc(var(--bh-t) + var(--bh-h) - 78px*var(--k))!important}
.bf2.land .hz.pz .wpn{top:calc(var(--bh-t) + var(--bh-h)*.06)}
.bf2.land .hz.ez .wpn{top:calc(var(--th-t) + var(--th-h)*.5)}
@media (max-height:470px){.bf2.land .crys .hx{width:40px;height:46px;min-width:0;min-height:0;font-size:15px}.bf2.land .crys .rn{font-size:10px}
 .bf2.land .hz.ez .crys{left:calc(var(--th-l) - 46px)!important;top:calc(var(--th-t) + var(--th-h) - 54px)!important}
 .bf2.land .mrow{left:calc(var(--bh-l) - 46px)!important;top:calc(var(--bh-t) + var(--bh-h) - 54px)!important}}
.bf2.land .mrow .crys,.bf2.land .hz.ez .crys{background:none!important;border:0!important;padding:0!important;width:auto!important;flex-direction:column!important;align-items:center;flex-wrap:nowrap;gap:0}
.bf2.land .mrow{flex-direction:column!important;align-items:center}
.bf2.land .ehand{left:calc(var(--th-l) - 80px*var(--k) - 14px)!important}

/* v113: look after the reference pictures. minions are ovals, Taunt is a shield, keywords colour the ring; the hand is smaller; mana hexagon sits at the corner of the hand */
.bf2.land .mn{aspect-ratio:3/3.55;max-width:calc(var(--mw)*1.1);border-radius:50%;border:3px solid var(--c,#8a8794);background:#0b0a12;box-shadow:0 3px 8px #000b,inset 0 0 0 1px #0008}
.bf2.land .mn .ma{border-radius:50%}
.bf2.land .mn .mnm{display:none}
.bf2.land .mn .sa{left:-9%;bottom:0}.bf2.land .mn .sh{right:-9%;bottom:0}
.bf2.land .mn .zz{top:42%}
.bf2.land .mn .tg{top:-9px;right:auto;left:50%;transform:translateX(-50%);font-size:12px;padding:0 5px;border-radius:9px;border:1px solid #000;background:#14101bdd;color:#ffd27a;letter-spacing:.1em}
.bf2.land .mn .mg{top:6%;left:6%}.bf2.land .mn .ab{top:auto;bottom:-8px;left:50%;transform:translateX(-50%)}
.bf2.land .mn.kw-ls{border-color:#d8453a}.bf2.land .mn.kw-v{border-color:#5fd36a}.bf2.land .mn.kw-wf{border-color:#53c5ff}.bf2.land .mn.kw-rush{border-color:#ff9a3c}
.bf2.land .mn.shld{box-shadow:0 0 0 3px #ffe08a,0 0 14px #ffe08acc,0 3px 8px #000b}
/* Taunt = shield */
.bf2.land .mn.taunt{border:0;border-radius:0;background:none;box-shadow:none;aspect-ratio:3/3.7}
.bf2.land .mn.taunt::before{content:"";position:absolute;inset:-4px;background:linear-gradient(160deg,#e8e8f0,#7a7a88 55%,#3c3c48);clip-path:polygon(2% 4%,50% -1%,98% 4%,101% 55%,87% 79%,50% 103%,13% 79%,-1% 55%);z-index:0}
.bf2.land .mn.taunt.kw-ls::before{background:linear-gradient(160deg,#ff9a90,#a02a22 60%,#4a0f0c)}.bf2.land .mn.taunt.kw-v::before{background:linear-gradient(160deg,#a8f2b0,#2f9a3a 60%,#124a18)}.bf2.land .mn.taunt.kw-wf::before{background:linear-gradient(160deg,#a8e4ff,#2a86b8 60%,#103a52)}
.bf2.land .mn.taunt.shld::before{background:linear-gradient(160deg,#fff0b0,#d9a82a 55%,#6a4a08);filter:drop-shadow(0 0 8px #ffe08a)}
.bf2.land .mn.taunt .ma{border-radius:0;clip-path:polygon(2% 4%,50% 0,98% 4%,100% 55%,86% 78%,50% 100%,14% 78%,0 55%);z-index:1}
.bf2.land .mn.taunt .sa,.bf2.land .mn.taunt .sh,.bf2.land .mn.taunt .tg,.bf2.land .mn.taunt .zz{z-index:3}
.bf2.land .mn.taunt .sa{left:-4%;bottom:6%}.bf2.land .mn.taunt .sh{right:-4%;bottom:6%}
.bf2.land .mn.ready{box-shadow:0 0 0 3px #6fe39a,0 0 12px #6fe39a99}.bf2.land .mn.taunt.ready::before{filter:drop-shadow(0 0 6px #6fe39a)}
.bf2.land .mn.tgt.taunt::before{filter:drop-shadow(0 0 8px #e4c27a)}
/* played-card rail: dark panel with small square icons */
.bf2.land .hist{justify-content:flex-start;align-items:center;gap:4px;padding:5px 0;background:linear-gradient(#0b0912cc,#0b0912ee);border:1px solid #3a3050;border-radius:10px;height:auto;max-height:var(--hx-h);box-sizing:border-box}
.bf2.land .hist:empty{display:none}
.bf2.land .hi{width:calc(var(--hx-w)*.62);height:calc(var(--hx-w)*.62);border-radius:8px;border-width:2px}
.bf2.land .hi em{display:none}
.bf2.land .hi u{position:absolute;right:0;bottom:0;font:700 11px/13px system-ui;text-decoration:none;color:#fff;background:#000c;border-radius:6px 0 0 0;padding:0 3px}
/* smaller hand, selected card is lifted */
.bf2.land .hand2 .hc.sel{transform:translateY(-26px) scale(calc(var(--hs)*1.85))!important}
.bf2.land .hand2 .hc:hover:not(.sel){transform:translateY(-14px) scale(calc(var(--hs)*1.45))}
/* mana: small hexagon at the right end of the hand / under the enemy hand */
.bf2.land .crys .hx{width:calc(46px*var(--k));height:calc(52px*var(--k));min-width:36px;min-height:41px;font-size:max(14px,calc(18px*var(--k)))}
.bf2.land .crys .rn{font-size:max(9px,calc(10px*var(--k)))}
.bf2.land .mrow{left:auto!important;top:auto!important;right:calc(var(--hr,26px) + 2px)!important;bottom:calc(var(--hh) + 4px)!important}
.bf2.land .hz.ez .crys{left:calc(var(--th-l) - 86px*var(--k) - 14px)!important;top:calc(var(--th-t) + 52px*var(--k))!important}
.bf2.land .ehand{top:calc(var(--th-t) - 6px)!important}
@media (max-height:470px){.bf2.land .crys .hx{width:32px;height:37px;min-width:0;min-height:0;font-size:12px}.bf2.land .crys .rn{font-size:9px}
 .bf2.land .mrow{right:calc(var(--hr,26px) + 2px)!important;bottom:calc(var(--hh) + 2px)!important;left:auto!important;top:auto!important}
 .bf2.land .hz.ez .crys{left:calc(var(--th-l) - 62px)!important;top:calc(var(--th-t) + 34px)!important}}
.bf2.land .mn .sa{left:-2%;bottom:-3%}.bf2.land .mn .sh{right:-2%;bottom:-3%}
.bf2.land .mn.taunt .sa{left:0;bottom:4%}.bf2.land .mn.taunt .sh{right:0;bottom:4%}

/* v114: bigger minions, small Zzz, history rail fits the left panel, a touched hand card is shown whole and readable above the hand */
.bf2.land .mn{max-width:calc(var(--mw)*1.3)}
.bf2.land .mn .zz{top:6%;left:auto;right:4%;transform:none;font-size:9px;padding:0 3px;letter-spacing:0}
.bf2.land .hist{padding:4px 0;overflow:hidden;gap:3px;border-radius:12px}
.bf2.land .hi{width:calc(var(--hx-w)*.68);height:calc(var(--hx-w)*.68);flex:none}
.bf2.land .hand2 .hc.sel{transform:translateY(-14px) scale(calc(var(--hs)*1.12))!important}
.bf2.land .prev:not(.insp){display:block!important;left:auto!important;top:auto!important;right:calc(var(--hr,26px) + 4px)!important;bottom:calc(var(--hh)*.5)!important;transform:scale(var(--pvs,1))!important;transform-origin:100% 100%!important;z-index:30}
.bf2.land .hand2 .hc.sel{transform:translateY(-8px) scale(calc(var(--hs)*1.04))!important}
.bf2.land .prev:not(.insp){right:calc(var(--hr,26px) + 70px)!important}
@media (max-height:470px){.bf2.land .prev:not(.insp){right:calc(var(--hr,26px) + 44px)!important}}

/* v115: the big card pops up right above the touched card; bigger minions; fallen minions show up in the rail as grey tombstones */
.bf2.land .prev:not(.insp){left:clamp(calc(var(--hl,0px) + var(--pvw,195px)/2),var(--pvx,60%),calc(100% - var(--hr,26px) - var(--pvw,195px)/2))!important;right:auto!important;bottom:calc(var(--hh)*.78)!important;transform:translateX(-50%) scale(var(--pvs,1))!important;transform-origin:50% 100%!important}
@media (max-height:470px){.bf2.land .prev:not(.insp){right:auto!important}}
.bf2.land .mn{max-width:calc(var(--mw)*1.32);aspect-ratio:3/3.3}
.bf2.land .mn.taunt{aspect-ratio:3/3.5}
.bf2.land .hi.dead{border-color:#7a7a86;filter:grayscale(1) brightness(.8)}
.bf2.land .hi.dead u{background:#5a0a14;color:#ffd0d0;font-size:12px}

/* v116: fallen minions crumble to dust in the rail */
.bf2.land .hi{position:relative;overflow:visible}
.bf2.land .hi.fresh .hia,.bf2.land .hi.fresh em,.bf2.land .hi.fresh u{animation:dustfade 1.5s ease-in both}
@keyframes dustfade{0%{opacity:1;filter:none;transform:none}35%{opacity:1;filter:sepia(1) brightness(1.1);transform:scale(1.04)}100%{opacity:1;filter:grayscale(1) brightness(.8);transform:none}}
.bf2.land .hi.fresh{animation:dustpop 1.5s ease-out both}
@keyframes dustpop{0%{box-shadow:0 0 0 0 #ff6a3a00}30%{box-shadow:0 0 14px 3px #e0a05080}100%{box-shadow:none}}
.bf2.land .hi .dust{position:absolute;width:var(--s);height:var(--s);border-radius:50%;background:#cdb690;opacity:0;pointer-events:none;z-index:5;animation:dustfly 1.2s ease-out forwards}
@keyframes dustfly{0%{opacity:0;transform:translate(0,0)}15%{opacity:.95}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4)}}

/* v117: hero portraits cut to the arch of the frame opening; minions a bit smaller; bigger hand */
.bf2.land .hr .hp-img img{clip-path:polygon(0 100%,0 42%,1.5% 32%,5% 23%,12% 15%,22% 8%,35% 3%,50% 0,65% 3%,78% 8%,88% 15%,95% 23%,98.5% 32%,100% 42%,100% 100%)!important;object-fit:cover;width:100%;height:100%;object-position:50% 20%}

/* v118: portrait cut exactly to the frame opening (traced from the arena picture) */
.bf2.land .hr.hr1 .hp-img img{clip-path:polygon(43.4% 0.0%,41.0% 2.4%,36.1% 4.9%,33.7% 7.3%,27.7% 9.8%,26.5% 12.2%,22.3% 14.6%,19.9% 17.1%,17.5% 19.5%,13.9% 22.0%,11.4% 24.4%,9.0% 26.8%,7.2% 29.3%,7.2% 31.7%,6.6% 34.1%,5.4% 36.6%,3.0% 39.0%,3.6% 41.5%,3.6% 43.9%,3.0% 46.3%,3.0% 48.8%,3.0% 51.2%,3.0% 53.7%,3.0% 56.1%,3.0% 58.5%,3.0% 61.0%,3.0% 63.4%,3.0% 65.9%,3.0% 68.3%,3.6% 70.7%,3.0% 73.2%,3.0% 75.6%,3.0% 78.0%,3.0% 80.5%,3.0% 82.9%,0.6% 85.4%,3.0% 87.8%,0.6% 90.2%,0.6% 92.7%,0.6% 95.1%,0.0% 97.6%,1.2% 99.4%,98.8% 99.4%,100.0% 97.6%,98.8% 95.1%,98.8% 92.7%,98.8% 90.2%,98.8% 87.8%,98.8% 85.4%,98.8% 82.9%,98.8% 80.5%,98.8% 78.0%,98.8% 75.6%,98.8% 73.2%,98.8% 70.7%,98.8% 68.3%,98.8% 65.9%,98.8% 63.4%,98.8% 61.0%,98.8% 58.5%,98.8% 56.1%,98.8% 53.7%,98.8% 51.2%,98.8% 48.8%,98.8% 46.3%,98.8% 43.9%,97.6% 41.5%,97.0% 39.0%,96.4% 36.6%,95.2% 34.1%,94.0% 31.7%,92.8% 29.3%,91.0% 26.8%,88.6% 24.4%,87.3% 22.0%,84.3% 19.5%,83.7% 17.1%,79.5% 14.6%,75.9% 12.2%,73.5% 9.8%,71.1% 7.3%,65.7% 4.9%,60.8% 2.4%,45.2% 0.0%)!important;object-fit:cover;object-position:50% 20%}
.bf2.land .hr.hr0 .hp-img img{clip-path:polygon(46.1% 0.0%,41.1% 2.3%,37.8% 4.6%,32.2% 6.9%,28.9% 9.2%,25.0% 11.5%,22.2% 13.8%,19.4% 16.1%,16.7% 18.4%,14.4% 20.7%,13.3% 23.0%,11.1% 25.3%,9.4% 27.6%,7.8% 29.9%,6.1% 32.2%,5.6% 34.5%,3.9% 36.8%,3.3% 39.1%,2.8% 41.4%,3.3% 43.7%,2.8% 46.0%,1.1% 48.3%,0.6% 50.6%,1.1% 52.9%,2.2% 55.2%,2.2% 57.5%,2.2% 59.8%,2.2% 62.1%,2.8% 64.4%,2.8% 66.7%,2.8% 69.0%,2.8% 71.3%,2.8% 73.6%,2.8% 75.9%,2.8% 78.2%,2.8% 80.5%,2.8% 82.8%,2.2% 85.1%,2.2% 87.4%,2.2% 89.7%,2.2% 92.0%,1.1% 94.3%,0.0% 96.6%,1.1% 98.9%,10.0% 99.4%,98.3% 99.4%,98.9% 98.9%,100.0% 96.6%,99.4% 94.3%,99.4% 92.0%,99.4% 89.7%,99.4% 87.4%,99.4% 85.1%,99.4% 82.8%,99.4% 80.5%,98.3% 78.2%,99.4% 75.9%,100.0% 73.6%,100.0% 71.3%,100.0% 69.0%,100.0% 66.7%,100.0% 64.4%,100.0% 62.1%,100.0% 59.8%,100.0% 57.5%,100.0% 55.2%,100.0% 52.9%,100.0% 50.6%,100.0% 48.3%,99.4% 46.0%,99.4% 43.7%,98.9% 41.4%,98.3% 39.1%,96.7% 36.8%,96.7% 34.5%,95.0% 32.2%,93.3% 29.9%,91.7% 27.6%,90.6% 25.3%,90.0% 23.0%,88.3% 20.7%,85.6% 18.4%,83.9% 16.1%,80.6% 13.8%,77.8% 11.5%,75.0% 9.2%,71.1% 6.9%,67.8% 4.6%,63.3% 2.3%,47.2% 0.0%)!important;object-fit:cover;object-position:50% 20%}

/* v118: hero power info card, crumbling dust on the board */
.bf2 .pwbig{position:absolute;z-index:90;width:calc(190px*var(--pvs,1));padding:calc(12px*var(--pvs,1));border-radius:14px;background:linear-gradient(#2b2230,#17121c);border:2px solid #c9a24f;box-shadow:0 8px 26px #000c;text-align:center;color:#f1e6c9}
.bf2 .pwbig .pwart{display:block;width:calc(96px*var(--pvs,1));height:calc(96px*var(--pvs,1));margin:0 auto calc(6px*var(--pvs,1));border-radius:50%;border:3px solid #8a5a2a;background:var(--pwimg) center/cover}
.bf2 .pwbig .pwc{position:absolute;left:8px;top:8px;width:calc(30px*var(--pvs,1));height:calc(30px*var(--pvs,1));line-height:calc(30px*var(--pvs,1));border-radius:50%;background:#2c5fa8;border:2px solid #cfe0ff;font-weight:700;font-size:calc(16px*var(--pvs,1))}
.bf2 .pwbig b{display:block;font-size:calc(17px*var(--pvs,1));color:#ffe9a8}
.bf2 .pwbig small{display:block;font-size:calc(11px*var(--pvs,1));letter-spacing:.1em;text-transform:uppercase;color:#b9a77a;margin-bottom:calc(6px*var(--pvs,1))}
.bf2 .pwbig p{margin:0;font-size:calc(14px*var(--pvs,1));line-height:1.3}
.bf2 .ghost{animation:crumble 1.2s ease-in forwards;transform-origin:50% 100%}
@keyframes crumble{0%{opacity:1;filter:none;transform:none}30%{opacity:1;filter:sepia(1) brightness(1.2)}100%{opacity:0;filter:sepia(1) blur(5px) brightness(.8);transform:translateY(8px) scale(.9)}}
.bf2 .dustb{position:absolute;width:var(--s);height:var(--s);border-radius:50%;background:#d4bf98;opacity:0;pointer-events:none;z-index:61;animation:dustfly 1.1s ease-out forwards}

/* v118: on tablet-like (4:3) screens the arena picture sets the battlefield height, so the hand sits on the picture and not in the empty band below it */
@media (min-aspect-ratio:12/10){.bf2{aspect-ratio:1.6/1;flex:0 1 auto;width:100%;max-height:100%;margin:auto 0}}

/* v119: board minions smaller and more oval */
.bf2.land .mn{max-width:calc(var(--mw)*1.1);aspect-ratio:3/3.85}
.bf2.land .mn.taunt{aspect-ratio:3/4}

/* v119: centre the content blocks on every page */
.rankc,.qlist{align-self:center;margin-left:auto!important;margin-right:auto!important}
.pg>.rankc,.pg>.qlist{grid-column:1/-1;width:100%;max-width:680px;justify-self:center;margin-left:0!important;margin-right:0!important}

/* v121: feedback, legal texts, boot splash */
.fbk{display:flex;flex-direction:column;gap:10px}
.fbk-k{display:flex;gap:6px;flex-wrap:wrap}.fbk-k .btn.on{background:var(--gold);color:#1a1208}
.fbk-t,.fbk-e{width:100%;box-sizing:border-box;background:#120e19;color:var(--fg,#f1e6c9);border:1px solid #6a5426;border-radius:10px;padding:10px;font:inherit;font-size:15px}
.fbk-t{resize:vertical;min-height:90px}
.lgx-t{display:flex;gap:6px;margin-bottom:10px}.lgx-t .btn.on{background:var(--gold);color:#1a1208}
.lgx-b b{display:block;margin:12px 0 2px;color:var(--gold)}.lgx-b p{margin:0;font-size:14px;line-height:1.45}.lgx-b small{display:block;margin-top:12px;color:var(--mute)}
.legb{position:absolute;left:12px;bottom:12px;z-index:5;opacity:.85}
.bootsplash{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0a0810;color:#e4c27a;font:20px "Almendra SC",Georgia,serif;letter-spacing:.08em;z-index:1}
.bootsplash i{width:160px;height:3px;background:#2a2236;border-radius:2px;overflow:hidden;display:block}
.bootsplash i::after{content:"";display:block;width:40%;height:100%;background:#e4c27a;animation:bootbar 1.1s ease-in-out infinite}
@keyframes bootbar{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
.lgx-b{max-height:min(62vh,420px);overflow-y:auto;padding-right:6px;text-align:left}
.fbk .msg,.lgx-b p{text-align:left}
@media (max-height:470px){.lgx-b{max-height:calc(100vh - 140px)}.fbk-t{min-height:56px}}
.fbrow{padding:8px 0;border-bottom:1px solid #ffffff14;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.fbmsg{margin:0;font-size:14px;line-height:1.35;text-align:left;white-space:pre-wrap;word-break:break-word}
.pg>.maill{grid-column:1/-1;justify-self:center;width:100%;max-width:680px}

/* v123: card back collection */
.bkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.bkt{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border-radius:12px;background:#120e19;border:2px solid #4a3c20;color:var(--fg,#f1e6c9);cursor:pointer}
.bkt img{width:84px;height:150px;object-fit:cover;border-radius:7px;box-shadow:0 4px 12px #000a}
.bkt b{font-size:14px}.bkt small{font-size:11.5px;color:var(--mute);text-align:center;line-height:1.25}
.bkt.on{border-color:var(--gold);box-shadow:0 0 14px #e4c27a66}.bkt.lock{cursor:default}.bkt.lock img{filter:grayscale(1) brightness(.5)}
body.hasback .bf2.land .ehand i{background:var(--enback,var(--cardback)) center/cover!important;border:1px solid #c9a24f!important}
@media (max-height:470px){.bkt img{width:60px;height:107px}.bkgrid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}}

/* v128 locked back info */
.bkl{display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 4px;max-width:340px;margin:0 auto}.bkl-i{width:110px;height:196px;object-fit:cover;border-radius:9px;box-shadow:0 6px 18px #000a;filter:grayscale(1) brightness(.55)}.bkl .qbar{width:100%}

/* v129 gear icon fallback */
.gi.noimg{display:flex;align-items:center;justify-content:center;background:radial-gradient(#2a2238,#120e1c)}.gi .gg{font-style:normal;font-size:26px;color:#e4c27a;opacity:.85}.gi.sm .gg{font-size:20px}

/* v131 card backs tab */
.bkv{display:flex;gap:16px;align-items:flex-start}.bkg2{flex:1;grid-template-columns:repeat(auto-fill,minmax(96px,1fr))!important}.bkg2 .bkt{padding:6px}.bkg2 .bkt img{width:64px;height:114px}.bkg2 .bkt.sel{border-color:var(--gold);box-shadow:0 0 14px #e4c27a66}.bkg2 .bkt.lock{cursor:pointer}
.bkp{flex:none;width:min(38%,240px);display:flex;flex-direction:column;align-items:center;gap:8px;position:sticky;top:6px}.bkp-i{width:100%;max-height:min(44vh,320px);object-fit:contain;border-radius:12px;box-shadow:0 8px 24px #000b}.bkp-i.lk{filter:grayscale(1) brightness(.55)}.bkp b{font-size:17px;color:var(--gold)}.bkp small{color:var(--mute);text-align:center}.bkp .qbar{width:100%}
@media (max-width:700px){.bkv{flex-direction:column-reverse;align-items:stretch}.bkp{width:100%;position:static}.bkp-i{max-height:38vh}}

/* v132 shine + overview row */
.bkp-w{position:relative;width:100%;overflow:hidden;border-radius:12px;line-height:0}.bkp-w .bkp-i{display:block;margin:0 auto}
.bkp-w::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,#ffffff40 50%,transparent 65%);transform:translateX(-120%);animation:bkshine 4.5s ease-in-out infinite;pointer-events:none}
@keyframes bkshine{0%,55%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.bkline img{width:26px;height:46px;object-fit:cover;border-radius:4px;box-shadow:0 2px 6px #000a;flex:none}
.bkp-w{display:inline-block;width:auto;max-width:100%}.bkline{border-color:#8a6a2c;background:linear-gradient(135deg,#2a2112,#171109)}
.bkp-w .bkp-i{width:auto;height:auto;max-width:100%;max-height:min(44vh,320px)}

/* v135 arena tiles + leaderboard look */
.arT{min-height:104px;position:relative}.arT .bdg{position:absolute;top:8px;right:10px}
.lbban{grid-column:1/-1;width:100%;display:flex;align-items:center;gap:16px;padding:14px 20px;border-radius:16px;border:1px solid #f2cf6a;background-size:cover;background-position:center;color:var(--ink);font:inherit;text-align:left;box-shadow:0 0 22px #f2cf6a40,0 6px 18px #0009;cursor:pointer;position:relative;overflow:hidden}
.lbban::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,#ffe9a040 50%,transparent 60%);transform:translateX(-120%);animation:bkshine 5s ease-in-out infinite;pointer-events:none}
.lbcup{font-style:normal;font-size:40px;line-height:1;color:#f6d77a;text-shadow:0 0 16px #f2cf6aaa,0 2px 3px #000;flex:none}
.lbtx{flex:1;display:flex;flex-direction:column;gap:2px}.lbtx b{font:24px "Almendra SC",Georgia,serif;color:#f6d77a;text-shadow:0 2px 6px #000}.lbtx small{color:#e6dcc3}.lbgo{font-weight:700;color:#f6d77a;white-space:nowrap}
.lbx.lbv{margin-top:14px;gap:14px}
.lbpod{display:flex;justify-content:center;align-items:flex-end;gap:14px;padding:10px 0 0}
.lbp{flex:1;max-width:230px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.lbp .lbm{font-style:normal;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font:700 26px Georgia,serif;color:#1a1204;box-shadow:0 0 18px #0009;margin-bottom:2px}
.lbp.gold .lbm{background:radial-gradient(circle at 35% 30%,#fff3b0,#f2cf6a 55%,#a77a1f);box-shadow:0 0 26px #f2cf6acc;width:64px;height:64px;font-size:34px}
.lbp.silver .lbm{background:radial-gradient(circle at 35% 30%,#fff,#cfd3de 55%,#7b8090)}
.lbp.bronze .lbm{background:radial-gradient(circle at 35% 30%,#ffd9b0,#d08a4c 55%,#7a4318)}
.lbp .lbn{font:19px "Almendra SC",Georgia,serif;color:var(--gold);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lbp .lbv{font-style:normal;font-weight:800;font-size:20px;color:#fff}.lbp small{color:var(--mute)}
.lbp .lbb{width:100%;border-radius:10px 10px 0 0;display:grid;place-items:center;font:700 22px Georgia,serif;color:#1a1204;margin-top:4px}
.lbp.gold .lbb{height:92px;background:linear-gradient(#f6d77a,#a77a1f)}.lbp.silver .lbb{height:68px;background:linear-gradient(#e4e7ef,#7b8090)}.lbp.bronze .lbb{height:52px;background:linear-gradient(#e0a06a,#7a4318)}
.lbp.me .lbn{text-shadow:0 0 12px #f6d77a}
.lbl{display:flex;flex-direction:column;gap:6px;max-width:760px;margin:0 auto;width:100%}
.lbr2{display:grid;grid-template-columns:56px 1fr auto 90px;gap:10px;align-items:center;padding:10px 14px;border-radius:12px;border:1px solid #ffffff1a;background:linear-gradient(90deg,#ffffff0d,#ffffff04)}
.lbr2 b{color:var(--gold);font-size:17px}.lbr2 span{font-size:16px}.lbr2 small{opacity:.7}.lbr2 em{font-style:normal;font-weight:800;text-align:right;color:#fff}
.lbr2.me{border-color:var(--gold);background:linear-gradient(90deg,#d8a63a30,#d8a63a10);box-shadow:0 0 14px #d8a63a40}
@media (max-width:700px){.lbban{padding:10px 12px}.lbcup{font-size:30px}.lbtx b{font-size:18px}.lbp .lbb{display:none}.lbr2{grid-template-columns:44px 1fr 70px}.lbr2 small{display:none}}
/* v135b: leaderboards always centered */
.lbx,.lbx.lbv{display:flex;flex-direction:column;align-items:center;width:100%;max-width:900px;margin-left:auto;margin-right:auto;text-align:center}
.lbx.lbv .lbpod{width:100%;max-width:760px;margin:0 auto}
.lbx.lbv .lbl{width:100%;max-width:760px;margin:0 auto}
.lbx>small{text-align:center}
.lbr2{text-align:center}.lbr2 span{text-align:center}.lbr2 b{text-align:left}
.pg>.tabs,.pg .seg{margin-left:auto;margin-right:auto}
.pg>.lbx{grid-column:1/-1}
/* v136c: reward/end screens must scroll when taller than the screen (Victory title and buttons were clipped) */
.col.title.endp{overflow-x:hidden;overflow-y:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}
.endp>.end-emb{margin-top:auto}
.endp>.btn:last-of-type,.endp>.btn:last-child{margin-bottom:auto}
.endp>:last-child{margin-bottom:auto}
.endp>.end-fx{margin:0!important}
@media (max-height:520px){
 .col.title.endp{padding:6px 12px 12px}
 .end-emb{width:clamp(44px,12vh,70px);height:clamp(44px,12vh,70px);margin-bottom:2px}
 .endp h1.big-t{font-size:clamp(26px,8vh,40px)}
 .end-rule{margin:4px auto 8px}.end-rw{gap:6px;margin-bottom:6px}
 .endp .btn{margin-top:4px}
}
.endp::before{position:fixed!important}
/* v136c: mastery nodes all the same size so the three columns line up */
.mxn{box-sizing:border-box;height:122px;overflow:hidden;align-items:center}
.mxn.t2{padding:6px}.mxn.t2 .mxi{width:38px;height:38px}
.mxt small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mxt b{line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mxcol:before{left:29px;transform:translateX(-50%)}
/* v136c: no "Weapon a/d" label over the hero portraits on the battlefield */
.bf2 .hz .wpn,.bf2.land .hz.ez .wpn,.bf2.land .hz.pz .wpn{display:none!important}
/* v2.1: tapped / inspected cards are shown much bigger so the text can be read on a phone */
.bf2.land .prev.insp,.prev.insp{transform:translateY(-50%) scale(var(--pvi,var(--pvs,1)))!important;transform-origin:0 50%!important;z-index:30}
.pv .cvw{display:grid;grid-template-columns:auto minmax(0,300px);column-gap:22px;row-gap:8px;align-items:center;justify-items:center;max-height:96vh;overflow:auto;padding:8px 12px}
.pv .cvw>.hc{grid-column:1;grid-row:1/span 12;zoom:var(--cz,1.6);margin:0}
.pv .cvw>:not(.hc){grid-column:2}
.pv .cvw .cvb{flex-wrap:wrap;justify-content:center}
/* v2.3: admin panel centered */
.pg>.admbox{grid-column:1/-1;width:100%;max-width:980px;margin:0 auto;text-align:center}
.admbox .admt,.admbox .admg,.admbox .admlist{margin-left:auto;margin-right:auto}
.admbox .admtile,.admbox .admc{align-items:center;text-align:center}
.admbox .admrow{justify-content:center;text-align:center}.admbox .admtx{align-items:center}.admbox .admtop{justify-content:center;flex-wrap:wrap}
.admbox .admflt,.admbox .admtabs{justify-content:center}
.admd,.admd .admsec{text-align:center}.admd .fact,.admd .admgift{margin-left:auto;margin-right:auto}
/* v2.6: hand viewer - the whole hand big and opaque, fanned out */
.fanv{position:absolute;inset:0;z-index:45;background:rgba(8,6,12,.9);overflow:hidden}
.fanv .fanc{position:absolute!important;margin:0!important;transform-origin:50% 100%;opacity:1!important;transition:transform .16s,bottom .16s,left .16s;box-shadow:0 6px 22px #000;pointer-events:auto;animation:none}
.fanv .fanc.sel{box-shadow:0 0 30px #f2cf6aaa,0 8px 26px #000;outline:2px solid #f2cf6a}
.fanbar{position:absolute;right:12px;top:10px;display:flex;gap:8px;z-index:100}
.fanbar .btn{width:auto;min-width:90px;margin:0}
/* v2.8: the area around the board shows the arena art (no black bars); hover never pushes hand cards out of the board */
.bf2.land::before{background:linear-gradient(#0005,#0005),var(--bimg) center/cover!important;filter:blur(6px)!important}
.bf2.land .hand2 .hc:hover:not(.sel){transform:translateY(-8px) scale(calc(var(--hs)*1.18))!important}
.fanv{background:rgba(8,6,12,.8)}
.bf2.land::before{display:block!important;content:""!important;position:absolute!important;z-index:0;pointer-events:none}
/* v2.9: Hearthstone-style card view - the tapped hand card lifts a little, a big copy opens in the middle of the board */
.cview{position:absolute;inset:0;z-index:30;pointer-events:none;background:radial-gradient(60% 70% at 42% 50%,#0007,#0000 80%)}
.cview .cvc{position:absolute!important;margin:0!important;transform-origin:50% 50%;box-shadow:0 0 34px #000,0 0 22px #f2cf6a77;pointer-events:none}
.cview .cvplay{position:absolute;width:auto;min-width:96px;margin:0;pointer-events:auto;z-index:2}
.bf2.land .hand2 .hc.sel{transform:translateY(-14px) scale(calc(var(--hs)*1.1))!important;z-index:80!important;filter:none;box-shadow:0 0 14px #f2cf6acc}
/* tablets: the strips above/below the board show the blurred arena too */
main:has(>.bf2.land){position:relative;overflow:hidden}
main:has(>.bf2.land)::before{content:"";position:absolute;inset:-12px;background:linear-gradient(#0005,#0005),url(assets/boards/table.webp) center/cover;filter:blur(8px);z-index:0}
main:has(>.bf2.land)>.bf2{z-index:1}
/* v2.10: opening (coin flip + starting card pick) and card view arrows */
.introv{position:absolute;inset:0;z-index:70;background:rgba(6,4,10,.92);display:flex;align-items:center;justify-content:center}
.coinbox{display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer}
.flipcoin{width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b0,#f2cf6a 55%,#8a5e14);box-shadow:0 0 30px #f2cf6acc;display:grid;place-items:center;animation:coinflip 1.5s cubic-bezier(.2,.6,.3,1) both}
.flipcoin i{font:700 44px Georgia,serif;color:#5a3a08;font-style:normal}
@keyframes coinflip{0%{transform:translateY(60px) rotateY(0) scale(.7)}50%{transform:translateY(-40px) rotateY(900deg) scale(1.15)}100%{transform:translateY(0) rotateY(1800deg) scale(1)}}
.cointx{font:30px "Almendra SC",Georgia,serif;color:#f6d77a;opacity:0;transition:opacity .4s;text-shadow:0 2px 8px #000;text-align:center}
.coinsub{color:#cdbfdc;opacity:0;transition:opacity .4s;text-align:center}
.coinbox.res .cointx,.coinbox.res .coinsub{opacity:1}
.pickbox{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:96%;max-height:100%;padding:8px}
.pickbox h3{margin:0;font:26px "Almendra SC",Georgia,serif;color:#f6d77a}.pickbox small{color:#cdbfdc;text-align:center}.pickx{color:#f6d77a!important}
.pickrow{display:flex;gap:10px;justify-content:center;align-items:flex-end;flex-wrap:nowrap}
.pickc{cursor:pointer;transition:transform .15s;position:relative!important}
.pickc.on{outline:3px solid #f2cf6a;box-shadow:0 0 24px #f2cf6acc;transform:translateY(-8px)}
.pickc.on::after{content:"\2713";position:absolute;right:-6px;top:-8px;width:26px;height:26px;border-radius:50%;background:#f2cf6a;color:#2a1a04;display:grid;place-items:center;font:700 16px system-ui}
.pickbar{display:flex;align-items:center;gap:14px}.pickcnt{color:#f6d77a;font-weight:800}
.pickbar .btn{width:auto;min-width:130px;margin:0}
.cview .cvtools{position:absolute;right:12px;top:10px;display:flex;gap:8px;pointer-events:auto;z-index:3}
.cview .cvtools .btn{width:auto;min-width:84px;margin:0}
.cview .cvarr{position:absolute;width:40px;height:44px;border-radius:12px;border:1px solid #f2cf6a;background:#150f20e6;color:#f6d77a;font:700 30px/1 Georgia,serif;cursor:pointer;pointer-events:auto;z-index:3}
.cview .cvcount{position:absolute;width:60px;text-align:center;color:#f6d77a;font-weight:700;z-index:3}
.cview.all{background:rgba(8,6,12,.9);pointer-events:auto}
.cview .cvrow{position:absolute;top:56px;bottom:10px;display:flex;gap:8px;justify-content:center;align-items:center;pointer-events:none}
.cview .cvr{position:relative!important;margin:0!important;pointer-events:auto;cursor:pointer;flex:none}
.cview .cvr.sel{outline:2px solid #f2cf6a;box-shadow:0 0 22px #f2cf6aaa}
.pickbox{gap:5px}.pickbox h3{font-size:22px}.pickbox small{font-size:12px}
/* v2.11 store */
.stbig{grid-column:1/-1;width:100%;max-width:760px;justify-self:center;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-radius:16px;border:1px solid #c79a3c;background:linear-gradient(135deg,rgba(199,154,60,.22),rgba(40,28,60,.85));box-shadow:0 0 22px rgba(199,154,60,.18)}
.stbig .stl{display:flex;flex-direction:column;gap:3px;text-align:left}.stbig em{font-style:normal;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#e4c27a}
.stbig h2{margin:0;font:24px "Almendra SC",Georgia,serif;color:var(--gold)}.stbig small{color:var(--mute)}
.stbig .str{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:120px}.stbig .str b{font:26px "Almendra SC",Georgia,serif;color:var(--gold)}
.stgrid{grid-column:1/-1;width:100%;max-width:760px;justify-self:center;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.sti{position:relative;display:flex;flex-direction:column;gap:3px;align-items:center;padding:14px 6px 12px;background:var(--panel);border:1px solid #8a6a2c;border-radius:12px;color:var(--ink);font:inherit;cursor:pointer}
.sti b{font:15px "Almendra SC",Georgia,serif;color:var(--gold)}.sti span{font-size:19px;font-weight:700}.sti small{color:var(--mute);font-size:11px}
.sti em{font-style:normal;font-size:11px;color:#7ee0a0;font-weight:700}
.stnote{grid-column:1/-1;display:block;text-align:center;color:var(--mute);max-width:620px;justify-self:center;margin-top:6px}
.pg>.stbtn{grid-column:1/-1;justify-self:center}
@media (max-width:760px){.stgrid{grid-template-columns:repeat(3,1fr)}.stbig{flex-direction:column;text-align:center}.stbig .stl{align-items:center}}
.stbig .stn{font:17px "Almendra SC",Georgia,serif;color:var(--ink)}
/* v2.13: hero art in battle, skins in the store, attack lunge no longer clipped */
.bf2 .board,.bf2.land .board{overflow:visible}
.hp-img.art{background:none!important;border:0!important;border-radius:0!important;overflow:visible}
.hp-img.art img{object-fit:contain!important;object-position:50% 50%!important;border-radius:0!important;background:none!important;clip-path:none!important;filter:drop-shadow(0 2px 4px #000c)}
.bf2.land .hr .hp-img.art{position:absolute!important;left:50%;top:51%;width:108%!important;height:122%!important;margin:0!important;transform:translate(-50%,-50%)}
.bf2.land .hr .hp-img.art img{width:100%;height:100%;object-fit:contain;clip-path:none;background:none}
.bf2.land .hr .hp-img.arts{width:118%!important;height:132%!important}
.bf2.land .hr.tgt .hp-img.art{filter:drop-shadow(0 0 7px #e4c27a) drop-shadow(0 0 3px #e4c27a)}
.hr.frz .hp-img.art img{filter:hue-rotate(160deg) saturate(1.5) brightness(1.2) drop-shadow(0 2px 4px #000c)}
.stskins{grid-column:1/-1;width:100%;max-width:760px;justify-self:center;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.stsk{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;background:var(--panel);border:1px solid #8a6a2c;border-radius:12px}
.stsk.on{border-color:#6fe39a;box-shadow:0 0 12px #6fe39a55}
.stsk .stsp{height:130px;display:grid;place-items:center}.stsk img{max-height:130px;max-width:100%;object-fit:contain}
.stsk b{font:14px "Almendra SC",Georgia,serif;color:var(--gold);text-align:center}.stsk .stpr{font-weight:700}
.stsub{margin-bottom:4px}
@media (max-width:760px){.stskins{grid-template-columns:repeat(3,1fr)}}
.stbig .stl .stn{display:inline-block;margin-right:12px}.stbig .stl{display:block}

.updbar{position:fixed;left:50%;transform:translateX(-50%);bottom:10px;z-index:99999;display:flex;gap:10px;align-items:center;justify-content:center;background:#2a1d0f;border:1px solid #c9a24a;color:#f3e6c4;padding:8px 14px;border-radius:10px;box-shadow:0 4px 18px #000a;font-size:14px;max-width:92vw}

/* v2.24: expansion frame (new cards, d.n2) - broken gate arch, name ribbon */
.hc.sk.x2.x2.x2 .fr{background-image:url(assets/cf/xc.webp)}
.hc.sk.x2.x2.x2.r-r .fr{background-image:url(assets/cf/xr.webp)}.hc.sk.x2.x2.x2.r-e .fr{background-image:url(assets/cf/xe.webp)}.hc.sk.x2.x2.x2.r-l .fr{background-image:url(assets/cf/xl.webp)}
.hc.sk.x2.x2.x2.t-s .fr{background-image:url(assets/cf/xcs.webp)}.hc.sk.x2.x2.x2.t-s.r-r .fr{background-image:url(assets/cf/xrs.webp)}.hc.sk.x2.x2.x2.t-s.r-e .fr{background-image:url(assets/cf/xes.webp)}.hc.sk.x2.x2.x2.t-s.r-l .fr{background-image:url(assets/cf/xls.webp)}
.hc.sk.x2.x2.x2.r-l .fr::after{-webkit-mask-image:url(assets/cf/xl.webp);mask-image:url(assets/cf/xl.webp)}.hc.sk.x2.x2.x2.r-l.t-s .fr::after{-webkit-mask-image:url(assets/cf/xls.webp);mask-image:url(assets/cf/xls.webp)}
.hc.sk.x2.x2.x2 .ca{left:23.6%;top:8.6%;width:53.8%!important;height:51%!important}
.hc.sk.x2.x2.x2 .ca img{object-position:50% 25%}
.hc.sk.x2.x2.x2 .cn{left:17%;width:66%;top:51.6%;height:6.6%;font-size:max(5.6px,5.6cqw)!important}
.hc.sk.x2.x2.x2 .cty{left:17%;width:66%;top:64.4%;height:2.8%}
.hc.sk.x2.x2.x2 .cx{left:19%;width:62%;top:67.8%;height:15.2%}
.hc.sk.x2.x2.x2.t-s .cx{left:17%;width:66%;height:21%}
.hc.sk.x2.x2.x2 .cc{left:5.1%;top:8.7%}
.hc.sk.x2.x2.x2 .sa{left:5.7%;top:81.4%}.hc.sk.x2.x2.x2 .sh{left:77.6%;top:83.4%}
.hc.sk .cx.lng{font-size:max(4.4px,3.7cqw)!important;line-height:1.12!important}
.dtimer{top:auto!important;bottom:calc(env(safe-area-inset-bottom,0px) + 6px)!important;left:calc(env(safe-area-inset-left,0px) + 6px)!important;transform:none!important}
/* v2.31: hero portraits cover the arch drawn on the board (no stray lines around them) */
.bf2.land .hr .hp-img.art{width:118%!important;height:133%!important;top:50.5%}
.bf2.land .hr .hp-img.arts{width:128%!important;height:143%!important}
/* v2.31: Taunt (shield-shaped) minions: every highlight follows the shield outline, never a rectangle */
.bf2.land .mn.taunt.ready,.bf2.land .mn.taunt.sel,.bf2.land .mn.taunt.tgt{box-shadow:none!important;animation:none}
.bf2.land .mn.taunt.ready::before{background:linear-gradient(160deg,#c9ffd9,#4fcf7f 55%,#1d6b3a);filter:drop-shadow(0 0 6px #6fe39a) drop-shadow(0 0 2px #6fe39a)}
.bf2.land .mn.taunt.sel::before{background:linear-gradient(160deg,#ffffff,#d9d9e6 55%,#8a8a99);filter:drop-shadow(0 0 8px #fff) drop-shadow(0 0 3px #fff)}
.bf2.land .mn.taunt.tgt::before{background:linear-gradient(160deg,#fff3c4,#e4c27a 55%,#8a6418);animation:tgS 1s infinite}
@keyframes tgS{0%,100%{filter:drop-shadow(0 0 4px #e4c27a)}50%{filter:drop-shadow(0 0 12px #ffe08a) drop-shadow(0 0 4px #ffe08a)}}
.bf2 .eb .mn .zz{display:none}/* v2.31: "asleep" only matters on your own side */
/* v2.32: new battlefields (painted without frames): a soft dark pool under the minion lanes keeps the cards readable */
.bf2.land.nb .stageimg::before{content:"";position:absolute;left:14%;right:14%;top:24%;bottom:22%;background:radial-gradient(closest-side,#000a,#0006 60%,transparent);pointer-events:none}
/* v2.32: the wooden table around every battlefield (instead of a blurred copy of the board) */
.bf2.land::before{background:linear-gradient(#0003,#0005),url(assets/boards/table.webp) center/cover!important;filter:none!important;inset:0}
.bf2.land .stageimg{box-shadow:0 0 0 2px #1a0f08,0 0 26px 8px #000c}
/* v2.33: side menu - icons, gold glow, embers */
#nav{position:relative;overflow:hidden;background:linear-gradient(90deg,#08060c,#16101f 70%,#1c1426)!important;border-right:1px solid #3a2c1c!important;box-shadow:inset -1px 0 0 #e4c27a22,4px 0 18px #0008}
#nav::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 30% at 50% 100%,#ff8a3a22,transparent 70%),repeating-linear-gradient(0deg,transparent 0 3px,#ffffff03 3px 4px)}
.nv{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:color .25s,background .25s;z-index:1}
.nv .nvi{width:24px;height:24px;fill:#ffffff10;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;transition:transform .3s,filter .3s}
.nv .nvi .ln{fill:none}
.nv span{font-size:10px;letter-spacing:.12em}
.nv:hover{color:#f2deb0;background:linear-gradient(90deg,#e4c27a10,transparent)}
.nv:hover .nvi{transform:translateY(-2px) scale(1.08)}
.nv.on{color:#ffe7ae;background:radial-gradient(90% 60% at 0% 50%,#e4c27a2e,transparent 75%)}
.nv.on .nvi{fill:#e4c27a33;filter:drop-shadow(0 0 6px #e4c27a) drop-shadow(0 0 2px #ffcf70);animation:nvGlow 2.6s ease-in-out infinite}
.nv.on::before{background:linear-gradient(#ffe7ae,#c8962e)!important;box-shadow:0 0 12px #e4c27a,0 0 4px #fff3}
@keyframes nvGlow{50%{filter:drop-shadow(0 0 10px #ffcf70) drop-shadow(0 0 3px #fff6)}}
.nv-store .nvi{stroke:#ffd27a}.nv-store:not(.on){color:#e8c98a}
.nv-store::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,#ffe7ae22 50%,transparent 60%) 0 0/250% 100%;animation:nvShine 4.5s linear infinite;pointer-events:none}
@keyframes nvShine{from{background-position:150% 0}to{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.nv.on .nvi,.nv-store::after{animation:none}}
/* v2.34: one button size everywhere - action buttons never stretch across the screen */
.ask .btn,.mu-card .btn,.lu-bt .btn,.endp .btn,.title .btn,.btn.big,.pkside .btn,.cdc .btn,.pg>.btn,.ov .btn.wide,.col>.btn{width:auto!important;min-width:200px;max-width:280px;align-self:center;justify-self:center;margin-left:auto;margin-right:auto;display:block}
.btn.big{font-size:19px;padding:13px 22px}
.endp .btn{margin-top:6px}
.lu-bt{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.lu-bt .btn{min-width:150px}
.ask{align-items:center}
/* v2.34: main menu effects */
.hm .hemb{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;mix-blend-mode:screen}
.hm .hglow{position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(70% 60% at 50% 55%,transparent 55%,#e4a03a1c 85%,#000a 100%);animation:hglow 6s ease-in-out infinite}
@keyframes hglow{50%{opacity:.55}}
.plate{--sw:0}
.hms .plate::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,#fff3cc40 48%,#fff3cc12 54%,transparent 64%) 0 0/300% 100% no-repeat;animation:plSweep 7s ease-in-out infinite;animation-delay:calc(var(--d,0ms) + 2.2s);mix-blend-mode:screen;border-radius:inherit}
@keyframes plSweep{0%,70%{background-position:130% 0}100%{background-position:-60% 0}}
.hstore{border-color:#c89a3e!important;color:#ffdf9a!important;background:linear-gradient(#3a2a12,#1c1408)!important;box-shadow:0 0 12px #e4c27a55;position:relative;overflow:hidden}
.hstore::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,#ffe7ae44 50%,transparent 60%) 0 0/250% 100%;animation:nvShine 4.5s linear infinite}
.hcorner.r{display:flex;gap:8px}
@media (prefers-reduced-motion:reduce){.hms .plate::before,.hm .hglow,.hstore::after{animation:none}}
/* v2.34: centred text blocks */
.pg>p.msg,.pg>p.dmsg{text-align:center;max-width:720px;justify-self:center;margin-left:auto;margin-right:auto}
.hbody>.btn,.pickbar .btn,.mutw .btn,.tourc .btn{width:auto!important;min-width:200px;max-width:280px;align-self:center;margin-left:auto;margin-right:auto}
/* v2.35: loot reveal on the result screen */
.end-rw .rwc.loot{opacity:0;animation:lootIn .55s cubic-bezier(.2,1.3,.4,1) forwards}
@keyframes lootIn{0%{opacity:0;transform:translateY(-38px) scale(.6) rotate(-6deg)}70%{opacity:1;transform:translateY(4px) scale(1.06)}100%{opacity:1;transform:none}}
.end-rw .rwc.pop{box-shadow:0 0 0 1px #e4c27a66,0 0 18px #e4c27a55;transition:box-shadow .6s}
.end-rw .rwc.pop .ico{animation:lootIco .6s ease}
@keyframes lootIco{40%{transform:scale(1.35) rotate(8deg);filter:drop-shadow(0 0 8px #ffe39a)}}
.endp.lose .end-rw .rwc.pop{box-shadow:0 0 0 1px #c0505a55}
@media (prefers-reduced-motion:reduce){.end-rw .rwc.loot{animation:none;opacity:1}}
.bf2.land.nb .stageimg{background-size:100% auto!important;background-position:center center!important;background-repeat:no-repeat!important}
/* ===== v2.38 polish ===== */
/* Daily Draft centred */
.pg.dfp{display:flex!important;flex-direction:column;align-items:center}
.pg.dfp>*{width:100%;max-width:900px}.pg.dfp>.ph{max-width:none}
.pg>.dfbox{grid-column:1/-1;justify-self:center;width:100%;max-width:560px;margin:0 auto}
/* Tower / Boss Rush boons: three equal cards */
.boonrow{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;width:100%;max-width:900px;margin:4px auto 0}
.btn.boon{flex:0 0 250px;width:250px!important;min-width:0!important;max-width:250px!important;min-height:112px;margin:0!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;white-space:normal;line-height:1.25}
.btn.boon b{font-weight:400;font-size:18px;color:#ffe3a0}.btn.boon br{display:none}.btn.boon small{font:13px/1.3 system-ui;color:#d9cdb5;letter-spacing:0}
@media (max-height:500px){.btn.boon{flex-basis:200px;width:200px!important;max-width:200px!important;min-height:96px}.btn.boon b{font-size:16px}.btn.boon small{font-size:12px}}
/* Tabs (hero, cards, quests...): equal size, gold slide-in glow */
.seg{display:inline-flex!important;width:auto!important;max-width:100%;flex-wrap:nowrap;justify-content:center;background:linear-gradient(#120d1a,#0a0810)!important;border:1px solid #5a4630!important;box-shadow:0 2px 10px #0008,inset 0 0 0 1px #00000080;position:relative}
.sg{flex:1 1 0!important;min-width:92px;max-width:150px;position:relative;overflow:hidden;transition:color .25s,background .25s,transform .15s;padding:8px 10px!important;font-size:12.5px!important;letter-spacing:.04em;white-space:nowrap}
.sg::after{content:"";position:absolute;left:50%;right:50%;bottom:3px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,#ffd98a,transparent);transition:left .3s,right .3s;opacity:.9}
.sg:hover{color:#f2deb0;background:#e4c27a12}.sg:hover::after{left:25%;right:25%}
.sg.on::after{left:10%;right:10%;box-shadow:0 0 8px #ffd98a}
.sg.on{animation:sgOn .35s ease}
.sg:active{transform:scale(.95)}
@keyframes sgOn{from{transform:scale(.92);filter:brightness(1.6)}to{transform:none;filter:none}}
/* Every button: lift, light sweep, press */
.btn,.bk{position:relative;overflow:hidden;transition:transform .18s cubic-bezier(.2,.9,.3,1.3),box-shadow .25s,filter .25s,border-color .25s}
.btn::after,.bk::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,#fff3cc33,transparent);transform:skewX(-20deg);pointer-events:none;opacity:0}
@media (hover:hover){.btn:not([disabled]):hover,.bk:hover{transform:translateY(-2px);filter:brightness(1.15);box-shadow:0 6px 16px #000a,0 0 12px #e4c27a44;border-color:#c9a24a}
 .btn:not([disabled]):hover::after,.bk:hover::after{opacity:1;animation:btnSweep .7s ease}}
.btn:not([disabled]):active,.bk:active{transform:translateY(1px) scale(.96);filter:brightness(1.3);transition-duration:.06s}
@keyframes btnSweep{from{left:-60%}to{left:130%}}
/* Back button: arrow that nudges left */
.bk{padding-left:28px!important;background:linear-gradient(#1c1626,#110d18)!important;border-color:#5a4630!important;color:#e8dcc0!important}
.bk::before{content:"";position:absolute;left:11px;top:50%;width:8px;height:8px;border-left:2px solid #e4c27a;border-bottom:2px solid #e4c27a;transform:translateY(-50%) rotate(45deg);transition:left .2s}
.bk:hover::before{left:8px}
.ph .bk{animation:bkIn .4s ease both}
@keyframes bkIn{from{opacity:0;transform:translate(-12px,-50%)}to{opacity:1;transform:translateY(-50%)}}
.ph .bk:hover{transform:translateY(calc(-50% - 2px))!important}.ph .bk:active{transform:translateY(-50%) scale(.95)!important}
/* Mailbox */
.maill{gap:8px!important}
.mailc{flex-direction:row!important;align-items:center;gap:14px!important;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:transform .2s,box-shadow .25s,border-color .25s;animation:mIn .35s ease both}
.mailc:hover{transform:translateX(4px);border-color:#e4c27a;box-shadow:0 0 14px #e4c27a33}
.mailc.new{background:linear-gradient(90deg,#2a1f12,#15101c 60%)!important;border-color:#c9a24a!important}
.mailc.got{opacity:.6}
.menv{flex:none;width:52px;height:40px}.menv svg{width:100%;height:100%}
.mailc.new .menv{animation:envB 2.4s ease-in-out infinite}
@keyframes envB{0%,100%{transform:none}8%{transform:rotate(-6deg)}16%{transform:rotate(5deg)}24%{transform:none}}
.mtx{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.mtx b{font:17px "Almendra SC",Georgia,serif;color:var(--gold);font-weight:400}.mtx small{color:var(--mute);font-size:12px}
.mnew{flex:none;font-style:normal;font:700 11px system-ui;letter-spacing:.08em;text-transform:uppercase;color:#1a1208;background:linear-gradient(#ffe3a0,#d9a83a);padding:3px 9px;border-radius:9px;box-shadow:0 0 10px #e4c27a88}
.mnew.gift{background:linear-gradient(#c9b3ff,#7a5acf);color:#fff;box-shadow:0 0 10px #9a7aff66}
@keyframes mIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mletter{margin:auto;position:relative;width:min(560px,92vw);max-height:90vh;overflow:auto;padding:30px 26px 20px;border-radius:6px;text-align:center;color:#2a1d10;
 background:radial-gradient(120% 90% at 50% 0,#f3e6c4,#e2cc98 70%,#c9ac70);box-shadow:0 20px 60px #000c,inset 0 0 40px #8a6a2c55;animation:mOpen .45s cubic-bezier(.2,1.2,.4,1) both}
@keyframes mOpen{from{opacity:0;transform:translateY(30px) scale(.9) rotate(-2deg)}to{opacity:1;transform:none}}
.mseal{position:absolute;top:-4px;right:18px;width:54px;height:54px;filter:drop-shadow(0 3px 4px #0008);animation:sealPop .5s .2s both}
@keyframes sealPop{from{transform:scale(1.6) rotate(-30deg);opacity:0}to{transform:none;opacity:1}}
.mfrom{display:block;font:600 12px system-ui;letter-spacing:.12em;text-transform:uppercase;color:#7a4a1a}
.mtitle{font:26px "Almendra SC",Georgia,serif;margin:6px 30px 2px;color:#3a2410}
.mdate{display:block;font-size:11px;color:#7a6a50;margin-bottom:12px}
.mtext{font:15px/1.5 Georgia,serif;margin:0 0 10px;color:#2a1d10;text-align:left}.minfo{color:#7a3a10;font-style:italic}
.mrule{height:1px;margin:10px 20px 12px;background:linear-gradient(90deg,transparent,#8a6a2c,transparent)}
.mitems{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:12px}
.mitem{width:112px;padding:10px 6px;border-radius:10px;background:linear-gradient(#2a2016,#160f0a);border:1px solid #c9a24a;color:#ffe3a0;display:flex;flex-direction:column;align-items:center;gap:3px;animation:lootIn .5s cubic-bezier(.2,1.3,.4,1) both;box-shadow:0 4px 10px #0006}
.mitem.got{filter:grayscale(.6);opacity:.7}
.mic{height:52px;display:flex;align-items:center;justify-content:center}.mic img{max-height:52px;max-width:60px;filter:drop-shadow(0 2px 4px #000)}.mic img.mbk,.mic img.mpk{height:52px;border-radius:4px}
.mop{font-size:32px;color:#ffd98a}
.mitem b{font:18px "Almendra SC",Georgia,serif}.mitem small{font-size:11px;color:#d9cdb5}
.mletter .maila{justify-content:center;flex-wrap:wrap}.mletter .btn{min-width:120px!important}
.mletter .btn.o{background:#2a2016;color:#f3e6c4;border-color:#8a6a2c}
.mdel{position:absolute;left:12px;top:10px;margin:0!important;min-width:0!important;padding:4px 10px!important;font-size:11px!important;background:transparent!important;color:#7a4a1a!important;border-color:#a88a5a!important}
@media (prefers-reduced-motion:reduce){.sg.on,.mailc,.mletter,.mitem,.mseal,.mailc.new .menv,.ph .bk{animation:none}}
/* v2.39: battle buttons - one size, one style, with effects */
#top .tbtn,body.inb #top .tbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:96px;height:34px;padding:0 14px!important;font:14px "Almendra SC",Georgia,serif!important;letter-spacing:.06em;opacity:1!important;color:#f3e6c4;background:linear-gradient(#2a1f12,#150f0a);border:1px solid #8a6a2c;border-radius:10px;position:relative;overflow:hidden;cursor:pointer;transition:transform .18s cubic-bezier(.2,.9,.3,1.3),box-shadow .25s,filter .25s}
#top .tbtn svg{width:18px;height:18px}
#top .tbtn.snd.off{color:#a89a80;border-color:#5a4630}
#top .tbtn.lv{color:#ffc8c0;border-color:#8a3a2c;background:linear-gradient(#2e1410,#160a08)}
#top .tbtn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,#fff3cc33,transparent);transform:skewX(-20deg);opacity:0}
@media (hover:hover){#top .tbtn:hover{transform:translateY(-2px);filter:brightness(1.2);box-shadow:0 6px 14px #000a,0 0 10px #e4c27a44}#top .tbtn:hover::after{opacity:1;animation:btnSweep .7s ease}#top .tbtn.lv:hover{box-shadow:0 6px 14px #000a,0 0 10px #ff6a5044}}
#top .tbtn:active{transform:scale(.94);filter:brightness(1.35)}
@media (max-height:500px){#top .tbtn,body.inb #top .tbtn{min-width:78px;height:28px;font-size:12px!important;padding:0 10px!important}#top .tbtn svg{width:15px;height:15px}}
.bf2 .btn.o.cancel,.bf2 .btn.cvplay,.bf2 .btn.o.cvhand,.bf2 .btn.o.cvx,.bf2 .psh .btn{min-width:110px!important;max-width:none!important;width:auto!important;height:38px;padding:0 16px!important;font-size:15px!important;display:inline-flex!important;align-items:center;justify-content:center}
/* v2.39: player names - bigger, wrap instead of being cut off */
.bf2.land .pnm{font-size:clamp(13px,2.1vh,22px)!important;line-height:1.1;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;max-width:calc(var(--lb) - 14px)!important;min-width:0!important;padding:4px 8px;border-radius:8px;background:linear-gradient(90deg,#000a,#0004);border-left:2px solid #e4c27a;letter-spacing:.03em}
/* v2.39: names sit on the board next to the heroes (enemy: right of its hero power, you: left of your hero) */
.bf2.land .hz.ez .pnm{left:calc(var(--tp-l) + var(--tp-d) + 14px)!important;top:calc(var(--th-t) + var(--th-h)*.18)!important;bottom:auto!important;right:auto!important;max-width:min(300px,calc(100% - var(--tp-l) - var(--tp-d) - 30px))!important;z-index:6;border-left:2px solid #c0505a}
.bf2.land .hz.pz .pnm{left:auto!important;right:calc(100% - var(--bh-l) + 16px)!important;top:calc(var(--bh-t) + var(--bh-h)*.42)!important;bottom:auto!important;max-width:min(300px,calc(var(--bh-l) * .55))!important;width:max-content;z-index:6;text-align:right;border-left:0;border-right:2px solid #e4c27a;background:linear-gradient(270deg,#000a,#0004)}
/* v2.40: name plate with badges */
.bf2.land .pnm{display:flex!important;flex-direction:column;gap:4px;padding:5px 10px 6px!important}
.bf2.land .hz.pz .pnm{align-items:flex-end}
.bf2.land .pnm .pn{font-weight:normal;letter-spacing:.3px;background:linear-gradient(180deg,#fff3cf,#e4c27a 55%,#b88a3a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 2px #000)}
.ptg{display:flex;gap:5px;flex-wrap:wrap}
.hz.pz .ptg{justify-content:flex-end}
.ptg .tg{display:inline-flex;align-items:center;gap:4px;height:clamp(17px,2.6vh,24px);padding:0 8px;border-radius:999px;font:600 clamp(10px,1.45vh,14px) system-ui,sans-serif;letter-spacing:.4px;color:#f6ead0;text-shadow:0 1px 2px #000;border:1px solid #e4c27a88;background:linear-gradient(180deg,#3a2c18,#1a130b);box-shadow:inset 0 1px 0 #fff2,0 2px 6px #0008;white-space:nowrap;position:relative;overflow:hidden}
.ptg .tg small{font:inherit;font-size:.82em;opacity:.75;text-transform:uppercase}
.ptg .tg b{font:inherit}
.ptg .tg::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff5 50%,transparent 65%);transform:translateX(-120%);animation:tgShine 5s ease-in-out infinite}
@keyframes tgShine{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.ptg .tg.lv{border-color:#e4c27a;background:radial-gradient(circle at 30% 20%,#7a5a22,#2a1d0c 70%)}
.ptg .tg.rk::before{content:"";width:.9em;height:1em;background:currentColor;clip-path:polygon(50% 0,100% 18%,100% 55%,50% 100%,0 55%,0 18%)}
.ptg .t-bronze{color:#f1c59a;border-color:#b8733f;background:linear-gradient(180deg,#5a3418,#26150a)}
.ptg .t-silver{color:#eef2f7;border-color:#aab4c2;background:linear-gradient(180deg,#4a525e,#1c2026)}
.ptg .t-gold{color:#ffe08a;border-color:#e4b53a;background:linear-gradient(180deg,#6a4b10,#2a1c05)}
.ptg .t-platinum{color:#d6fbf6;border-color:#7fd8cf;background:linear-gradient(180deg,#22545a,#0c2225)}
.ptg .t-diamond{color:#d8e8ff;border-color:#8fb6ff;background:linear-gradient(180deg,#2c3f86,#0f1636);box-shadow:inset 0 1px 0 #fff3,0 0 10px #6f9cff66}
.ptg .tg.boss{color:#ffd0c8;border-color:#d0503a;background:linear-gradient(180deg,#6a1a10,#250805);box-shadow:inset 0 1px 0 #fff2,0 0 10px #ff3a1a55}
.ptg .tg.cl{color:#e8e0f4;border-color:#8a7fb0}
.ptg .c-knight{border-color:#c9a24a}.ptg .c-necro{border-color:#6fd08a}.ptg .c-weapon{border-color:#d0603a}.ptg .c-mage{border-color:#6aa8ff}.ptg .c-space{border-color:#b07aff}
@media (prefers-reduced-motion:reduce){.ptg .tg::after{animation:none}}
/* music button next to sound */
#top .tbtn.mus svg{width:18px;height:18px}
.bf2.land .pnm .pn{display:block;font:clamp(14px,2.3vh,24px) "Almendra SC",Georgia,serif!important;line-height:1.1;white-space:normal;overflow-wrap:normal;word-break:normal;min-width:max-content;max-width:100%}
.bf2.land .pnm{width:max-content}
.bf2.land .pnm .pn{background:none!important;-webkit-background-clip:border-box;background-clip:border-box;color:#f3d892!important;filter:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;text-shadow:0 1px 2px #000,0 0 8px #000c!important;opacity:1!important}
/* ===================== v2.41 ===================== */
/* --- unified button feel: every button lifts, glows and presses (uses the independent translate/scale properties so positioned buttons keep their own transforms) --- */
button{transition:translate .18s ease,scale .12s ease,filter .2s ease,box-shadow .25s ease,border-color .25s ease,background-color .25s ease}
#scr button:not(:disabled):not(.hc):hover,#ov button:not(:disabled):not(.hc):hover,#nav button:not(:disabled):hover{translate:0 -2px;filter:brightness(1.12)}
#scr button:not(:disabled):not(.hc):active,#ov button:not(:disabled):not(.hc):active,#nav button:not(:disabled):active{translate:0 0;scale:.96;filter:brightness(.95)}
.bf2 button:hover,.bf2 button:active{translate:none!important;scale:none!important}
button:focus-visible{outline:2px solid #e4c27a;outline-offset:2px}
/* all small outlined buttons share one look */
.btn.sm{min-width:96px;border-radius:10px}
.btn.o{background:linear-gradient(180deg,#221a2c,#140f1c);border-color:#6a5434}
.btn.o:not(:disabled):hover{border-color:#e4c27a;box-shadow:0 0 0 1px #e4c27a55,0 6px 16px #0008,inset 0 0 14px #e4c27a1c}
.btn:not(.o):not(:disabled){box-shadow:0 4px 14px #0009,inset 0 1px 0 #fff3}
.btn:not(.o):not(:disabled):hover{box-shadow:0 0 18px #e4c27a66,0 6px 16px #0009,inset 0 1px 0 #fff4}
.btn:disabled{filter:saturate(.4) brightness(.8);cursor:not-allowed}
.shi,.sti,.gt,.bkt,.dun,.mxline,.dkn,.stone,.tab,.nv{transition:translate .18s,scale .12s,filter .2s,box-shadow .25s,border-color .25s}
.shi:not(:disabled):hover,.sti:hover,.gt:hover,.mxline:hover,.dun:hover{box-shadow:0 0 0 1px #e4c27a66,0 10px 24px #000a,0 0 22px #e4c27a2a}
/* reward fx */
.rfx{position:fixed;inset:0;pointer-events:none;z-index:9999}
.fxp{position:absolute;width:7px;height:7px;border-radius:50%;background:radial-gradient(#fff6d8,#f2c55a 60%,#f2c55a00);translate:-50% -50%;animation:fxp .8s cubic-bezier(.2,.7,.3,1) forwards;box-shadow:0 0 10px #ffcf6a}
@keyframes fxp{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.fxr{position:absolute;width:20px;height:20px;border-radius:50%;border:3px solid #ffd77a;translate:-50% -50%;animation:fxr .6s ease-out forwards;box-shadow:0 0 18px #ffcf6a}
@keyframes fxr{0%{transform:scale(.3);opacity:1}100%{transform:scale(7);opacity:0}}
.fxc{position:fixed;width:30px;height:30px;z-index:10000;pointer-events:none;filter:drop-shadow(0 0 6px #ffcf6a)}
#top .pill.bump{animation:pbump .35s ease}
@keyframes pbump{0%{transform:scale(1)}40%{transform:scale(1.18);box-shadow:0 0 16px #e4c27a}100%{transform:scale(1)}}
.btn.claiming{animation:clm .6s ease}
@keyframes clm{0%{transform:scale(1)}30%{transform:scale(1.12);box-shadow:0 0 30px #ffd77a}100%{transform:scale(1)}}
/* --- Heroes tab row: always fits; wraps to two rows if it must --- */
.hr2 .seg{flex-wrap:wrap!important;max-width:100%!important;width:100%!important}
.hr2 .sg{min-width:0!important;flex:1 1 0!important;max-width:none!important;white-space:nowrap}
@media (max-width:900px){.hr2 .sg{padding:7px 6px!important;font-size:12px!important}}
/* --- Pack shop --- */
.pkshop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:820px;margin:6px auto 4px}
.pkbuy{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px 12px;border-radius:16px;cursor:pointer;color:#f3e6c8;
 background:radial-gradient(120% 80% at 50% 0%,#3a2a18 0%,#1a1220 55%,#0f0b15 100%);border:1px solid #6a5434;overflow:hidden;box-shadow:0 8px 22px #0009,inset 0 1px 0 #fff2}
.pkbuy::before{content:"";position:absolute;inset:-40% -60%;background:linear-gradient(115deg,transparent 40%,#fff3 50%,transparent 60%);transform:translateX(-60%);transition:transform .9s ease}
.pkbuy:hover::before{transform:translateX(60%)}
.pkbuy:hover{border-color:#e4c27a;box-shadow:0 0 0 1px #e4c27a66,0 14px 30px #000b,0 0 30px #e4c27a33}
.pkbuy1{border-color:#8a6a3a}.pkbuy2{border-color:#c9a24a;background:radial-gradient(120% 80% at 50% 0%,#5a3e14 0%,#22172a 55%,#110b17 100%)}
.pkbuy.poor{filter:saturate(.5) brightness(.75)}
.pkst{position:relative;height:118px;width:100%;margin:2px 0 6px}
.pkst img{position:absolute;left:50%;top:50%;height:104px;width:auto;border-radius:6px;box-shadow:0 6px 14px #000c;
 transform:translate(-50%,-50%) translateX(calc((var(--k) - (var(--n) - 1)/2)*16px)) rotate(calc((var(--k) - (var(--n) - 1)/2)*7deg));transition:transform .35s cubic-bezier(.3,1.4,.5,1)}
.pkbuy:hover .pkst img{transform:translate(-50%,-56%) translateX(calc((var(--k) - (var(--n) - 1)/2)*26px)) rotate(calc((var(--k) - (var(--n) - 1)/2)*11deg))}
.pkbuy2 .pkst::after{content:"";position:absolute;left:50%;top:50%;width:150px;height:150px;translate:-50% -50%;background:radial-gradient(#ffcf6a55,transparent 65%);animation:pkglow 2.4s ease-in-out infinite;z-index:-1}
@keyframes pkglow{50%{opacity:.4;transform:scale(1.15)}}
.pkl{font:18px "Almendra SC",Georgia,serif;color:#f3d892;letter-spacing:.5px}
.pksv{font-size:12px;color:#9fd38a;display:inline-flex;align-items:center;gap:3px}.pksv img{width:14px;height:14px}
.pkpr{display:flex;align-items:center;gap:6px;margin-top:6px;padding:6px 16px;border-radius:999px;background:linear-gradient(180deg,#e9c46a,#b4832e);color:#24170a;font-weight:800;box-shadow:inset 0 1px 0 #fff8,0 3px 8px #0008}
.pkpr img{width:20px;height:20px}.pkpr b{font-size:16px}
.pkbuy.poor .pkpr{background:linear-gradient(180deg,#6a5a45,#43382b);color:#d8ccb8}
.pkrib{position:absolute;top:12px;right:-34px;transform:rotate(35deg);background:linear-gradient(90deg,#b4832e,#f2d27a,#b4832e);color:#2a1a08;font:800 10px system-ui;letter-spacing:.6px;text-transform:uppercase;padding:3px 38px;box-shadow:0 2px 6px #0008;z-index:2}
.pkbuy2 .pkrib{background:linear-gradient(90deg,#9a2a1a,#ff8a4a,#9a2a1a);color:#fff}
@media (max-width:700px){.pkshop{gap:8px}.pkst{height:90px}.pkst img{height:80px}}
/* unopened pack box */
.pkbox .pkart{animation:pkfloat 4s ease-in-out infinite}
@keyframes pkfloat{50%{transform:translateY(-6px) rotate(-1deg)}}
.pkbox .pkart.img img{box-shadow:0 0 30px #e4c27a44,0 12px 26px #000c}
/* --- Card backs gallery --- */
.bkv{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:18px;align-items:start;max-width:1100px;margin:0 auto}
.bkg2{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(112px,1fr))!important;gap:14px!important}
.bkg2 .bkt{position:relative;padding:8px 8px 10px;border-radius:14px;background:linear-gradient(180deg,#1d1626,#110c18);border:1px solid #4a3a2a;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;overflow:hidden}
.bkg2 .bkt img{width:100%;aspect-ratio:5/7;object-fit:cover;border-radius:8px;box-shadow:0 6px 14px #000a;transition:transform .3s}
.bkg2 .bkt:hover img{transform:translateY(-4px) rotate(-2deg) scale(1.03)}
.bkg2 .bkt b{font:13px "Almendra SC",Georgia,serif;color:#f3d892;text-align:center;line-height:1.15}
.bkg2 .bkt small{font-size:10.5px;color:#9fd38a;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.bkg2 .bkt.sel{border-color:#e4c27a;box-shadow:0 0 0 2px #e4c27a88,0 0 24px #e4c27a44}
.bkg2 .bkt.lock img{filter:grayscale(.85) brightness(.45)}
.bkg2 .bkt.lock::after{content:"";position:absolute;left:50%;top:38%;width:30px;height:30px;translate:-50% -50%;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e4c27a' stroke-width='2'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");filter:drop-shadow(0 2px 4px #000)}
.bkp{position:sticky;top:8px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px;border-radius:18px;background:radial-gradient(90% 60% at 50% 30%,#3a2a1a,#140f1c 70%);border:1px solid #6a5434;box-shadow:0 12px 30px #000b}
.bkp>b{font:22px "Almendra SC",Georgia,serif;color:#f3d892;text-shadow:0 0 12px #e4c27a55}
.bkp .bkp-w,.bkp>img{position:relative;perspective:800px}
.bkp .bkp-i{width:min(220px,60vw);aspect-ratio:5/7;object-fit:cover;border-radius:12px;box-shadow:0 0 34px #e4c27a55,0 16px 30px #000c;animation:bkspin 6s ease-in-out infinite}
.bkp .bkp-i.lk{filter:grayscale(.8) brightness(.5);animation:none}
@keyframes bkspin{0%,100%{transform:rotateY(-12deg) rotateX(3deg)}50%{transform:rotateY(12deg) rotateX(-3deg)}}
.bkp .bkp-w::after{content:"";position:absolute;inset:0;border-radius:12px;background:linear-gradient(115deg,transparent 35%,#fff4 50%,transparent 65%);background-size:250% 100%;animation:bkshine 3.5s linear infinite;pointer-events:none}
@keyframes bkshine{0%{background-position:150% 0}100%{background-position:-100% 0}}
.bkp .btn{min-width:160px}
@media (max-width:900px){.bkv{grid-template-columns:minmax(0,1fr) 220px}.bkg2{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))!important}}
/* --- Decks --- */
.dkhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;justify-content:center;margin:2px 0 8px}
.dkhead>b{font:22px "Almendra SC",Georgia,serif;color:#f3d892}.dkhead small{flex-basis:100%;text-align:center;color:var(--mute)}
.dkcount{font:700 12px system-ui;color:#2a1a08;background:linear-gradient(180deg,#e9c46a,#b4832e);padding:2px 10px;border-radius:999px}
.dk2{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.dk2 .dk{position:relative;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#1d1626,#100b16);border:1px solid #4a3a2a;box-shadow:0 8px 20px #0009;transition:border-color .25s,box-shadow .25s,translate .2s}
.dk2 .dk:hover{border-color:#a58a55;translate:0 -2px}
.dk2 .dk.on{border-color:#e4c27a;box-shadow:0 0 0 1px #e4c27a88,0 0 26px #e4c27a3a,0 10px 24px #000a}
.dk2 .dk.on::before{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;background:linear-gradient(115deg,transparent 40%,#ffe3a022 50%,transparent 60%);background-size:250% 100%;animation:bkshine 4s linear infinite}
.dk2 .dkn{display:flex!important;align-items:stretch;gap:0;padding:0!important;background:none!important;border:0!important;text-align:left;cursor:pointer;width:100%;color:inherit}
.dk2 .dkart{position:relative;width:110px;flex:none;overflow:hidden}
.dk2 .dkart img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;filter:brightness(.8);transition:transform .4s}
.dk2 .dk:hover .dkart img{transform:scale(1.08)}
.dk2 .dkart::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,#100b16)}
.dkring{position:absolute;left:10px;bottom:10px;width:46px;height:46px;border-radius:50%;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;
 background:conic-gradient(#e4c27a calc(var(--p)*1%),#ffffff22 0);box-shadow:0 2px 8px #000c}
.dkring::before{content:"";position:absolute;inset:4px;border-radius:50%;background:#140f1c}
.dkring b,.dkring small{position:relative;line-height:1}.dkring b{font:800 14px system-ui;color:#f3d892}.dkring small{font-size:9px;color:#b9ad95}
.dk2 .dk.bad .dkring{background:conic-gradient(#d0603a calc(var(--p)*1%),#ffffff22 0)}
.dk2 .dktx{flex:1;padding:12px 12px 10px;display:flex;flex-direction:column;gap:6px;min-width:0}
.dk2 .dkh{display:flex;align-items:center;gap:8px}.dk2 .dkh b{font:19px "Almendra SC",Georgia,serif;color:#f3e6c8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dk2 .dkmeta{display:flex;flex-direction:column;gap:2px}.dk2 .dkmeta small{color:#b9ad95;font-size:12px}.dkavg{color:#8fb6ff!important}
.dk2 .dkbt{display:flex;gap:8px;padding:0 12px 12px 122px}
.dk2 .dkbt .btn{flex:1;min-width:0}
.dk2 .dkx:hover{border-color:#d0503a!important;color:#ffb0a0}
.dka2{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 6px}
.dkt{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 10px 14px;border-radius:16px;cursor:pointer;color:#f3e6c8;overflow:hidden;
 background:radial-gradient(120% 90% at 50% 0%,#2e2238,#130e1a 70%);border:1px dashed #6a5434}
.dkt:hover{border-style:solid;border-color:#e4c27a;box-shadow:0 0 22px #e4c27a33,0 10px 22px #000a}
.dkti{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#f3d892;background:radial-gradient(#4a3620,#1a1220);border:1px solid #a58a55;box-shadow:0 0 14px #e4c27a33;transition:transform .3s}
.dkti svg{width:24px;height:24px}.dkt:hover .dkti{transform:rotate(-10deg) scale(1.1)}
.dkt b{font:16px "Almendra SC",Georgia,serif;color:#f3d892}.dkt small{font-size:11.5px;color:#b9ad95;text-align:center}
@media (max-width:900px){.dk2{grid-template-columns:1fr}.dk2 .dkart{width:90px}.dk2 .dkbt{padding-left:102px}}
/* --- Quests --- */
.q2{display:flex;flex-direction:column;gap:10px;max-width:880px;margin:0 auto}
.q2 .qc{position:relative;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:16px;background:linear-gradient(90deg,#1e1628,#130e1a);border:1px solid #3e3226;box-shadow:0 6px 16px #0008;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s,opacity .3s;animation:qin .45s both}
.q2 .qc:nth-child(2){animation-delay:.05s}.q2 .qc:nth-child(3){animation-delay:.1s}.q2 .qc:nth-child(4){animation-delay:.15s}.q2 .qc:nth-child(5){animation-delay:.2s}.q2 .qc:nth-child(6){animation-delay:.25s}
@keyframes qin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.q2 .qc:hover{border-color:#6a5434}
.q2 .qc.rdy{border-color:#e4c27a;background:linear-gradient(90deg,#3a2a14,#1a1220 70%);box-shadow:0 0 0 1px #e4c27a66,0 0 24px #e4c27a33,0 8px 18px #0009}
.q2 .qc.rdy::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 40%,#fff2 50%,transparent 60%);background-size:250% 100%;animation:bkshine 2.8s linear infinite}
.q2 .qc.got{opacity:.55;filter:saturate(.5)}
.q2 .qc.got::before{content:"\2713";position:absolute;right:14px;top:50%;translate:0 -50%;font:900 54px system-ui;color:#9fd38a22;pointer-events:none}
.q2 .qc.lock{opacity:.55}
.q2 .qc.cur:not(.rdy){border-color:#8a6a3a}
.q2 .qc.claimed-now{animation:qout .6s ease forwards}
@keyframes qout{40%{transform:scale(1.02);box-shadow:0 0 40px #ffd77a}100%{opacity:.4;transform:translateX(18px)}}
.qico,.qstep{flex:none;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#f3d892;background:radial-gradient(#3a2a18,#160f1c);border:1px solid #6a5434;box-shadow:inset 0 0 12px #000a}
.qico svg{width:26px;height:26px}
.qstep{border-radius:50%;font:800 17px "Almendra SC",Georgia,serif}
.q2 .qc.rdy .qico,.q2 .qc.rdy .qstep{color:#2a1a08;background:radial-gradient(#ffe7a0,#c9952e);border-color:#ffe3a0;box-shadow:0 0 16px #e4c27a88;animation:qpulse 1.6s ease-in-out infinite}
@keyframes qpulse{50%{box-shadow:0 0 26px #ffd77acc}}
.q-sw{color:#ffb38a}.q-sk{color:#c9c9d8}.q-dr{color:#b8a0ff}.q-tw{color:#8fd0ff}.q-fl{color:#ff8a5a}.q-cd{color:#f3d892}.q-pk{color:#ffcf6a}.q-sun{color:#ffe08a}.q-sh{color:#9fd38a}
.q2 .qt{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.q2 .qt b{font:600 15px system-ui;color:#f3e6c8}.q2 .qt small{color:#a99f8c}
.q2 .qbar{position:relative;height:14px;border-radius:999px;background:#0a0710;border:1px solid #3a2e22;overflow:hidden}
.q2 .qbar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#8a5a1a,#e4c27a 70%,#fff0c0);box-shadow:0 0 10px #e4c27a88;transition:width .6s ease}
.q2 .qbar span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 10.5px system-ui;color:#fff;text-shadow:0 1px 2px #000}
.q2 .qa{display:flex;align-items:center;gap:12px;flex:none}
.q2 .qr{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px}
.qrc{display:flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;background:#0d0a14;border:1px solid #6a5434}.qrc img{width:20px;height:20px}.qrc b{font:800 15px system-ui;color:#f3d892}
.q2 .qx{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;color:#c9bca2}.q2 .qx img{width:14px;height:14px}
.q2 .qcl{min-width:110px}
.q2 .qc.rdy .qcl{background:linear-gradient(180deg,#ffe08a,#c9952e)!important;color:#2a1a08!important;border-color:#ffe3a0!important;font-weight:800;animation:qbtn 1.4s ease-in-out infinite}
@keyframes qbtn{50%{box-shadow:0 0 22px #ffd77acc,0 4px 12px #0009}}
.btn.qall{display:flex;align-items:center;gap:8px;margin:2px auto 10px;padding:10px 26px;background:linear-gradient(180deg,#ffe08a,#c9952e)!important;color:#2a1a08!important;font-weight:800;animation:qbtn 1.4s ease-in-out infinite}
.btn.qall .bdg{position:static;background:#2a1a08;color:#ffe08a}
@media (max-width:700px){.q2 .qc{padding:10px;gap:10px}.qico,.qstep{width:38px;height:38px}.q2 .qcl{min-width:88px}}
/* --- Endless Tower / Boss Rush opponent screen --- */
.fsc{position:relative;min-height:100%;display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 16px 16px;overflow:hidden}
.fsbg{position:absolute;inset:-20px;background:center/cover no-repeat;filter:blur(3px) brightness(.45) saturate(1.1);animation:fsbg 18s ease-in-out infinite alternate;z-index:0}
@keyframes fsbg{to{transform:scale(1.08) translateX(-10px)}}
.fsfog{position:absolute;inset:0;z-index:0;background:radial-gradient(70% 60% at 50% 45%,transparent,#0a0810e0 85%),linear-gradient(transparent 60%,#0a0810)}
.fsc>*:not(.fsbg):not(.fsfog){position:relative;z-index:1}
.fshd{display:flex;flex-direction:column;align-items:center;gap:4px}
.fshd small{font:700 11.5px system-ui;letter-spacing:2px;text-transform:uppercase;color:#c9bca2}
.fshd h2{margin:0;font:clamp(26px,4.4vh,40px) "Almendra SC",Georgia,serif;color:#f3d892;text-shadow:0 0 18px #e4c27a66,0 2px 4px #000}
.fshd .fsbest{letter-spacing:.5px;text-transform:none;font-weight:600;color:#9a9080}
.fstrack{display:flex;align-items:center;gap:6px}
.fp{width:26px;height:6px;border-radius:999px;background:#ffffff22;box-shadow:inset 0 1px 2px #000}
.fp.bossp{width:14px;height:14px;border-radius:3px;transform:rotate(45deg);background:#5a1a14;border:1px solid #c0503a}
.fp.done{background:linear-gradient(90deg,#b4832e,#ffe08a)}.fp.bossp.done{background:#e4c27a;border-color:#ffe3a0}
.fp.cur{background:#fff3c4;box-shadow:0 0 10px #ffd77a;animation:qpulse 1.2s infinite}.fp.bossp.cur{background:#ff6a3a;box-shadow:0 0 14px #ff6a3a}
.fsrow{display:flex;align-items:center;justify-content:center;gap:clamp(12px,3vw,40px);width:100%;max-width:1000px;flex:1}
.fsme,.fsfoe{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.fspf,.fsff{position:relative;width:clamp(130px,23vh,220px);aspect-ratio:3/4;border-radius:16px;overflow:hidden;border:2px solid #a58a55;box-shadow:0 0 0 4px #0008,0 14px 30px #000c}
.fspf img,.fsff img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.fsme .fspf{width:clamp(110px,19vh,180px);border-color:#6a8ab0;animation:fsin .6s both}
.fsff{width:clamp(150px,30vh,280px);animation:fsfoe .7s .15s both}
.fsfoe.boss .fsff{border-color:#e05a3a;box-shadow:0 0 0 4px #0008,0 0 40px #ff4a2a66,0 14px 30px #000c;animation:fsfoe .7s .15s both,fsboss 2.2s 1s ease-in-out infinite}
@keyframes fsin{from{opacity:0;transform:translateX(-40px)}}
@keyframes fsfoe{from{opacity:0;transform:translateX(40px) scale(.94)}}
@keyframes fsboss{50%{box-shadow:0 0 0 4px #0008,0 0 64px #ff4a2acc,0 14px 30px #000c}}
.fsff::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 60%,#000c)}
.fsboss{position:absolute;top:10px;left:50%;translate:-50% 0;z-index:2;font:800 12px system-ui;letter-spacing:3px;color:#fff;background:linear-gradient(90deg,#7a1a10,#e0502a,#7a1a10);padding:3px 14px;border-radius:999px;box-shadow:0 0 14px #ff4a2a99}
.fsn{font:clamp(16px,2.6vh,24px) "Almendra SC",Georgia,serif;color:#f3e6c8;text-align:center;text-shadow:0 2px 4px #000;max-width:300px}
.fsfoe .fsn{color:#ffd0b8}
.fssub{color:#c9bca2;font-size:12px;letter-spacing:.5px}
.fshp{position:relative;width:min(200px,100%);height:16px;border-radius:999px;background:#1a0a0c;border:1px solid #5a2a2a;overflow:hidden}
.fshp i{display:block;height:100%;background:linear-gradient(90deg,#7a1a1a,#e04a3a);box-shadow:0 0 10px #e04a3a88}
.fshp span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 11px system-ui;color:#fff;text-shadow:0 1px 2px #000}
.fsboons{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;max-width:260px}
.fsb{font:600 10.5px system-ui;color:#d8f0c8;background:#1c2a18;border:1px solid #5a8a4a;padding:2px 8px;border-radius:999px}
.fsst{display:flex;gap:10px}
.fsheart,.fsmana{display:flex;align-items:center;gap:6px;padding:4px 12px 4px 8px;border-radius:999px;background:#0d0a14cc;border:1px solid #6a5434;font:800 16px system-ui;color:#fff}
.fsheart::before{content:"";width:18px;height:18px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e04a3a' d='M12 21s-8-5.2-8-11a4.5 4.5 0 0 1 8-2.8A4.5 4.5 0 0 1 20 10c0 5.8-8 11-8 11z'/%3E%3C/svg%3E")}
.fsmana::before{content:"";width:16px;height:18px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235a9cff' d='M12 2l8 10-8 10-8-10z'/%3E%3C/svg%3E")}
.fsvs{flex:none;width:clamp(54px,10vh,84px);aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(#5a3a14,#1a1018 70%);border:2px solid #e4c27a;box-shadow:0 0 30px #e4c27a66;animation:fsvs .5s .4s both,qpulse 2s 1s infinite}
.fsvs b{font:clamp(20px,4vh,32px) "Almendra SC",Georgia,serif;color:#ffe08a;text-shadow:0 0 10px #ff9a3a}
@keyframes fsvs{from{transform:scale(0) rotate(-180deg)}}
.fsrule{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;max-width:760px;padding:8px 16px;border-radius:12px;background:#0d0a14d8;border:1px solid #4a3a5a;box-shadow:0 0 18px #6a4aa033}
.fsrule small{font:800 10px system-ui;letter-spacing:2px;text-transform:uppercase;color:#2a1a40;background:#b8a0ff;padding:2px 8px;border-radius:999px}
.fsrule b{color:#d8c8ff;font:16px "Almendra SC",Georgia,serif}.fsrule span{color:#c9bca2;font-size:13px}
.fsbar{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:760px}
.fsbar .btn{min-width:130px;height:44px}
.fsbar .fsfight{min-width:220px;height:52px;font:22px "Almendra SC",Georgia,serif;letter-spacing:2px;color:#2a1208!important;background:linear-gradient(180deg,#ffd27a,#e08a2a 55%,#b4561a)!important;border:1px solid #ffe3a0!important;box-shadow:0 0 24px #ff9a3a88,0 6px 16px #000a;position:relative;overflow:hidden;animation:fsf 1.8s ease-in-out infinite}
@keyframes fsf{50%{box-shadow:0 0 40px #ff9a3acc,0 6px 16px #000a}}
.fsbar .fsfight::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff7 50%,transparent 65%);background-size:250% 100%;animation:bkshine 2.4s linear infinite}
.fsbar .fsfight.go{animation:fsgo .3s ease forwards}
@keyframes fsgo{to{transform:scale(1.15);filter:brightness(1.6);box-shadow:0 0 70px #ffb24a}}
.fsbar .fsend:hover{border-color:#d0503a!important;color:#ffb0a0}
@media (max-height:460px){.fsc{gap:6px;padding:8px 12px}.fspf{width:96px}.fsme .fspf{width:92px}.fsff{width:128px}.fshd h2{font-size:24px}.fsrule{padding:5px 12px}.fsbar .btn{height:38px}.fsbar .fsfight{height:44px;font-size:19px}}
@media (prefers-reduced-motion:reduce){.fsbg,.fsvs,.fsbar .fsfight,.q2 .qc,.bkp .bkp-i,.pkbox .pkart{animation:none!important}}
.pkshop,.bkv,.dk2,.dka2,.q2{width:100%;box-sizing:border-box}
.dk2 .dkn{flex-direction:row!important;min-height:112px}
.dk2 .dkart{align-self:stretch;min-height:112px}
.dk2 .dkart img{position:absolute;inset:0}
.bkp>small{color:#c9bca2;text-align:center}
.pg>.pkshop,.pg>.bkv,.pg>.q2,.pg>.dk2{justify-self:stretch;width:100%!important;max-width:1100px;margin-left:auto;margin-right:auto}
.pkshop{grid-template-columns:repeat(3,minmax(0,1fr))!important;max-width:820px!important}
.bkv{grid-template-columns:minmax(0,1fr) minmax(220px,300px)!important}
/* v2.41: a destroyed minion crumbles to dust exactly where it stood - no lift, no move to the middle */
.bf2 .mn.dying,.bf2 .dying{position:absolute!important;transform:none!important;translate:none!important;scale:none!important;animation:crumble2 1.1s ease-in forwards!important;box-shadow:none!important;outline:0!important;z-index:30!important}
@keyframes crumble2{0%{opacity:1;filter:none;clip-path:inset(0 0 0 0)}25%{opacity:1;filter:sepia(.9) brightness(1.05) contrast(.9)}100%{opacity:0;filter:sepia(1) blur(4px) brightness(.7);clip-path:inset(100% 0 0 0)}}
.pg>.pkshop,.pg>.bkv,.pg>.q2,.pg>.dk2,.pg>.qall,.pg>.fact.gtk{grid-column:1/-1}
.pkshop>.pkbuy,.bkv>.bkp,.bkv>.bkg2{width:100%;justify-self:stretch;box-sizing:border-box}
.bkv{grid-template-columns:minmax(0,1fr) minmax(220px,300px)!important;width:100%}
.pkst img{width:auto!important;height:104px!important;max-width:none!important;aspect-ratio:auto!important}
@media (max-width:700px){.pkst img{height:80px!important}}
@media (max-height:460px){
 .fsc{gap:4px;padding:6px 10px 8px}
 .fshd{flex-direction:row;flex-wrap:wrap;justify-content:center;column-gap:10px;row-gap:2px}
 .fshd h2{font-size:22px}.fshd .fsbest{display:none}
 .fsme .fspf{width:72px}.fsff{width:100px}
 .fsn{font-size:15px}.fssub{display:none}.fsvs{width:46px}.fsvs b{font-size:18px}
 .fsheart,.fsmana{font-size:13px;padding:2px 10px 2px 6px}
 .fsrule{padding:4px 10px;gap:6px}.fsrule b{font-size:13px}.fsrule span{font-size:11.5px}
 .fsbar .btn{height:34px;min-width:100px}.fsbar .fsfight{height:40px;min-width:170px;font-size:18px}
 .fshp{height:13px}
}
.dk2 .dkbt{justify-content:flex-end}.dk2 .dkbt .btn{flex:0 1 140px!important}
/* ===================== v2.42: opponent screen grid - equal portraits, VS centred, both sides with health bar + traits ===================== */
.fsrow{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto auto;align-items:center;justify-items:center;column-gap:clamp(14px,3.5vw,48px);row-gap:8px;width:100%;max-width:900px;flex:1;align-content:center}
.fspic{position:relative;width:clamp(130px,26vh,240px);aspect-ratio:3/4;border-radius:16px;overflow:hidden;border:2px solid #a58a55;box-shadow:0 0 0 4px #0008,0 14px 30px #000c}
.fspic img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.fspic::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 65%,#000a);pointer-events:none}
.fspic.me{border-color:#7a9ac8;animation:fsin .6s both}
.fspic.foe{border-color:#c07050;animation:fsfoe .7s .15s both}
.fspic.foe.boss{border-color:#e05a3a;animation:fsfoe .7s .15s both,fsboss 2.2s 1s ease-in-out infinite}
.fsboss.elite{background:linear-gradient(90deg,#3a1a6a,#9a5ae0,#3a1a6a);box-shadow:0 0 14px #9a5ae099}
.fsvs{grid-row:1;grid-column:2;align-self:center}
.fsgap{grid-row:2;grid-column:2}
.fsinfo{display:flex;flex-direction:column;align-items:center;gap:5px;width:clamp(150px,30vh,260px);max-width:100%}
.fsinfo .fsn{font:clamp(16px,2.6vh,23px) "Almendra SC",Georgia,serif;color:#f3e6c8;text-align:center;line-height:1.1;text-shadow:0 2px 4px #000}
.fsinfo.foe .fsn{color:#ffd0b8}
.fsinfo .fssub{color:#b9ad95;font-size:12px;letter-spacing:.4px;min-height:14px;text-align:center}
.fshp{width:100%!important;height:18px!important}
.fshp.me,.fsinfo.me .fshp i{background:linear-gradient(90deg,#1f5a2a,#4ac06a)!important;box-shadow:0 0 10px #4ac06a77!important}
.fsinfo.me .fshp{border-color:#2a5a3a;background:#0a160d}
.fshp span b{font-size:12.5px;margin-right:1px}
.fschips{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;min-height:22px}
.fsb{display:inline-flex;align-items:center;gap:4px;font:600 11px system-ui;color:#e8e0d0;background:#1a1520;border:1px solid #5a4a3a;padding:3px 9px;border-radius:999px;box-shadow:0 2px 6px #0008}
.fsb small{font-size:9.5px;opacity:.75;text-transform:uppercase;letter-spacing:.4px}
.fsb.boon{color:#d8f0c8;background:#16241a;border-color:#4a8a5a}
.fsb.lvl{color:#ffe8b0;border-color:#c9a24a;background:#2a1e0c}
.fsb.mana{color:#cfe0ff;background:#101a30;border-color:#4a7ad0}
.fsb.skill{color:#ffd0c0;background:#2a1210;border-color:#a0503a}
.fsb.none{opacity:.55;font-weight:500}
.fsrew{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;padding:6px 14px;border-radius:12px;background:#0d0a14d8;border:1px solid #6a5434}
.fsrew>small{font:800 10px system-ui;letter-spacing:2px;text-transform:uppercase;color:#2a1a08;background:linear-gradient(180deg,#e9c46a,#b4832e);padding:2px 8px;border-radius:999px}
.fsrw{display:inline-flex;align-items:center;gap:4px;color:#f3d892;font-weight:800}.fsrw img{width:20px;height:20px}.fsrw small{color:#c9bca2;font-weight:600;font-size:11px}
.fp.elitep{width:12px;height:12px;border-radius:50%;background:#3a1a5a;border:1px solid #9a5ae0}.fp.elitep.done{background:#b48ae0}.fp.elitep.cur{background:#d8b0ff;box-shadow:0 0 12px #b07aff}
.fstrack{flex-wrap:wrap;justify-content:center}
@media (max-height:460px){
 .fspic{width:clamp(70px,22vh,96px)!important}
 .fsinfo{width:min(220px,40vw)}
 .fsrow{row-gap:3px}
 .fsinfo .fssub{display:none}.fsinfo .fsn{font-size:14px}
 .fshp{height:14px!important}.fsb{font-size:10px;padding:2px 7px}
 .fsrew{padding:3px 10px}.fsrw img{width:16px;height:16px}
}
.fsinfo{align-self:start}
.fsb small,.fsb b{display:inline!important;line-height:1}
/* card backs: show the whole card, never crop top or bottom */
.bkg2 .bkt img{aspect-ratio:auto!important;height:auto!important;object-fit:contain!important}
.bkp .bkp-i{aspect-ratio:auto!important;height:auto!important;object-fit:contain!important;max-height:58vh;width:auto!important;max-width:min(240px,60vw)}
.bkp .bkp-w{display:inline-block;line-height:0}
.bkg2 .bkt img{aspect-ratio:56/100!important;object-fit:contain!important;background:transparent;box-shadow:none!important;filter:drop-shadow(0 6px 10px #000a)}
.bkgrid .bkt img{object-fit:contain!important}
.fsb.lvc{color:#ffe8b0;border-color:#c9a24a;background:#2a1e0c}
.bkp .bkp-i{max-height:min(50vh,340px)!important}
.bkp{max-height:calc(100vh - 140px);overflow:hidden}
/* --- v2.42 Dungeon list --- */
.dgrid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(330px,1fr))!important;gap:16px!important;grid-column:1/-1;width:100%}
.dun.dn2{position:relative;overflow:hidden;display:flex!important;flex-direction:column;gap:8px;padding:18px 16px 14px!important;border-radius:18px!important;border:1px solid #6a5434!important;background:#100b16!important;box-shadow:0 10px 26px #000b;min-height:250px;isolation:isolate;text-align:left}
.dun.dn2::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--dbg) center/cover;transition:transform .8s ease,filter .5s;filter:brightness(.62) saturate(1.05)}
.dun.dn2::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0a081022 0%,#0a0810aa 45%,#0a0810f2 100%)}
.dun.dn2:hover::before{transform:scale(1.07);filter:brightness(.72)}
.dun.dn2:hover{border-color:#e4c27a!important;box-shadow:0 0 0 1px #e4c27a55,0 0 28px #e4c27a2a,0 14px 30px #000c}
.dun.dn2 .dnt{font:clamp(20px,2.6vw,26px) "Almendra SC",Georgia,serif;color:#f3d892;text-shadow:0 2px 6px #000,0 0 18px #e4c27a44}
.dun.dn2 .dnb{color:#e0d6c2;text-shadow:0 1px 3px #000}
.dnchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.dnrule,.dncl{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:#0d0a14cc;border:1px solid #6a4a9a;color:#d8c8ff;font-size:12px}
.dnrule small,.dncl small{font-size:10px;text-transform:uppercase;letter-spacing:.6px;opacity:.75}
.dncl{border-color:#6a5434;color:#f3d892}
.dnrd{color:#b9ad95!important;font-size:11.5px;line-height:1.3}
.dgrow{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:4px}
.dgb{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 6px 8px;border-radius:12px;cursor:pointer;color:#f3e6c8;overflow:hidden;min-height:92px;
 background:linear-gradient(180deg,#2a1f14ee,#140f1aee);border:1px solid #8a6a3a;box-shadow:inset 0 1px 0 #fff2,0 4px 12px #0009}
.dgb b{font:17px "Almendra SC",Georgia,serif;color:#f3d892}
.dgb small{font-size:10.5px;color:#c9bca2;line-height:1.25;text-align:center}
.dgb .dgc{margin-top:auto;color:#9fd38a;font-weight:700}
.dgb::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff3 50%,transparent 65%);transform:translateX(-120%);transition:transform .7s}
.dgb:not(:disabled):hover::before{transform:translateX(120%)}
.dgb:not(:disabled):hover{border-color:#e4c27a;box-shadow:0 0 18px #e4c27a55,0 6px 14px #000a}
.dgb.dg1{border-color:#b0803a}.dgb.dg1 b{color:#ffcf8a}
.dgb.dg2{border-color:#c0503a;background:linear-gradient(180deg,#3a1610ee,#160d14ee)}.dgb.dg2 b{color:#ffb09a}
.dgb.saved{box-shadow:0 0 0 2px #6ab0ff88,0 4px 12px #0009}.dgb.saved .dgs{color:#9ac8ff;font-weight:700}
.dgb.lock,.dgb:disabled{filter:grayscale(.8) brightness(.6);cursor:not-allowed}
.dnreset{align-self:center;margin-top:2px}
.dun.dn2.locked{filter:none}
.dun.dn2.locked::before{filter:grayscale(.9) brightness(.35)}
.dun.dn2.locked .lockmsg{margin:auto;display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:#0d0a14dd;border:1px solid #6a5434;color:#f3d892;font-weight:700}
.dun.dn2.locked .lockmsg::before{content:"";width:16px;height:16px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e4c27a' stroke-width='2'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E")}
.dun.dn2.legend{border-color:#c9a24a!important;box-shadow:0 0 30px #e4c27a33,0 10px 26px #000b}
/* --- v2.42 Tower / Boss Rush start panel --- */
.stp{grid-column:1/-1;width:100%;max-width:900px;margin:4px auto 0;position:relative;display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr);gap:20px;align-items:center;padding:18px;border-radius:20px;border:1px solid #6a5434;overflow:hidden;isolation:isolate;box-shadow:0 14px 34px #000c}
.stp::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--sbg) center/cover;filter:brightness(.4) blur(2px);transform:scale(1.05)}
.stp::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0a0810cc,#0a0810aa 50%,#0a0810ee)}
.stppic{aspect-ratio:3/4;border-radius:14px;overflow:hidden;border:2px solid #a58a55;box-shadow:0 0 0 4px #0008,0 10px 24px #000c;animation:fsin .6s both}
.stppic img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.stptx{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.stpm{font:800 11px system-ui;letter-spacing:2px;text-transform:uppercase;color:#c9bca2}
.stptx>b{font:clamp(22px,3.4vw,32px) "Almendra SC",Georgia,serif;color:#f3d892;text-shadow:0 0 16px #e4c27a55}
.stptx>small{color:#c9bca2}
.stpf{display:flex;gap:10px;flex-wrap:wrap}
.stpf>span{display:flex;flex-direction:column;align-items:center;min-width:86px;padding:6px 12px;border-radius:12px;background:#0d0a14cc;border:1px solid #4a3a2a}
.stpf small{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#9a9080}.stpf b{font:800 18px system-ui;color:#f3e6c8}
.stpb{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.stpb .stgo{min-width:220px;height:50px;font:19px "Almendra SC",Georgia,serif!important;letter-spacing:1px;color:#2a1208!important;background:linear-gradient(180deg,#ffd27a,#e08a2a 55%,#b4561a)!important;border:1px solid #ffe3a0!important;box-shadow:0 0 22px #ff9a3a77,0 6px 16px #000a;animation:fsf 2s ease-in-out infinite}
.stpb .stgo.hard{color:#fff!important;background:linear-gradient(180deg,#e05a3a,#9a1a10)!important;border-color:#ff9a7a!important;box-shadow:0 0 22px #ff4a2a77,0 6px 16px #000a}
.stpb .stgo.lock{filter:grayscale(.85) brightness(.65);animation:none}
.stpn{color:#a99f8c!important;font-size:12px}
@media (max-width:700px),(max-height:460px){.stp{grid-template-columns:110px minmax(0,1fr);gap:12px;padding:12px}.stpb .stgo{min-width:170px;height:42px;font-size:16px!important}.stpf>span{min-width:70px;padding:4px 8px}}
/* --- v2.42 living cards in every collection view (Cards, deck builder, hero signature cards, card view, rewards) --- */
.hc>.shn{display:none}
:is(.cgrid,.dkgrid,.sigs,.cvw,.pkgrid,.pkov) .hc>.shn{display:block;position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:8;overflow:hidden;
 background:linear-gradient(115deg,transparent 38%,#ffffff2e 47%,#fff6d040 50%,#ffffff2e 53%,transparent 62%);background-size:300% 100%;background-position:150% 0;mix-blend-mode:screen;animation:cshine 7s ease-in-out infinite;animation-delay:calc(var(--sd,0) * 1s)}
:is(.cgrid,.dkgrid,.sigs) .hc:nth-child(3n+1)>.shn{--sd:0}:is(.cgrid,.dkgrid,.sigs) .hc:nth-child(3n+2)>.shn{--sd:2.3}:is(.cgrid,.dkgrid,.sigs) .hc:nth-child(3n)>.shn{--sd:4.6}
@keyframes cshine{0%,72%{background-position:150% 0}100%{background-position:-60% 0}}
:is(.cgrid,.dkgrid,.sigs) .hc{transition:translate .22s ease,rotate .22s ease,scale .22s ease,filter .25s ease,box-shadow .25s ease!important}
:is(.cgrid,.dkgrid,.sigs) .hc:hover{translate:0 -6px;rotate:-1.2deg;scale:1.04;z-index:5;filter:brightness(1.08)}
:is(.cgrid,.dkgrid,.sigs) .hc:hover>.shn{animation-duration:1.1s;animation-delay:0s}
:is(.cgrid,.dkgrid,.sigs) .hc:active{scale:.98}
:is(.cgrid,.dkgrid,.sigs,.cvw) .hc.r-l:not(.unowned){animation:cleg 3.2s ease-in-out infinite}
:is(.cgrid,.dkgrid,.sigs,.cvw) .hc.r-e:not(.unowned){animation:cepi 3.6s ease-in-out infinite}
@keyframes cleg{0%,100%{filter:drop-shadow(0 0 4px #ffcf6a66)}50%{filter:drop-shadow(0 0 12px #ffcf6acc)}}
@keyframes cepi{0%,100%{filter:drop-shadow(0 0 3px #b07aff55)}50%{filter:drop-shadow(0 0 10px #b07affaa)}}
.cgrid .hc.unowned>.shn{display:none}
.cvw .hc.big{animation:cfloat 5s ease-in-out infinite}
@keyframes cfloat{50%{translate:0 -6px}}
@media (prefers-reduced-motion:reduce){.hc>.shn{animation:none!important}.hc{animation:none!important}}
/* dungeon cards: brighter art */
.dun.dn2::before{filter:brightness(.85) saturate(1.1)!important}
.dun.dn2::after{background:linear-gradient(180deg,#0a081000 0%,#0a081066 40%,#0a0810e6 100%)!important}
.dun.dn2:hover::before{filter:brightness(1) saturate(1.15)!important}
/* card back preview always fits on screen */
.bkp .bkp-i{max-height:calc(100vh - 340px)!important;min-height:160px}
.bkp .bkp-w,.bkp>img{perspective:none!important}
@keyframes bkspin{0%,100%{transform:perspective(1600px) rotateY(-8deg)}50%{transform:perspective(1600px) rotateY(8deg)}}
.bkp .bkp-i{max-height:calc(100vh - 360px)!important}
.bkp .bkp-i{max-height:36vh!important}
@media (max-height:500px){
 .bkp{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-items:center;column-gap:12px;row-gap:8px;padding:10px!important}
 .bkp>.bkp-w,.bkp>img.bkp-i{grid-column:1;grid-row:1/span 4}
 .bkp>*:not(.bkp-w):not(img){grid-column:2}
 .bkp .bkp-i{max-height:min(210px,52vh)!important;max-width:150px!important}
 .bkp>b{font-size:18px}
 .bkp .btn{min-width:0!important;padding:8px 14px}
}
/* --- v2.42 reward / end screens after dungeon, tower and rush fights --- */
.col.title:not(.endp){justify-content:center;gap:10px;background:radial-gradient(60% 55% at 50% 40%,#3a2a1499,transparent 70%)}
.col.title:not(.endp)>.big-t{font-size:clamp(30px,6vh,52px)!important;text-shadow:0 0 24px #e4c27a88,0 3px 6px #000;animation:rwin .6s cubic-bezier(.3,1.5,.5,1) both}
.col.title:not(.endp)>.big-t.lose{text-shadow:0 0 24px #e05a3a88,0 3px 6px #000}
@keyframes rwin{from{opacity:0;transform:scale(.6)}}
.col.title:not(.endp)>.msg{max-width:640px;padding:8px 16px;border-radius:12px;background:#0d0a14b8;border:1px solid #3e3226;animation:qin .5s .15s both}
.col.title:not(.endp)>.btn{min-width:240px;animation:qin .5s .3s both}
.col.title:not(.endp)>.btn:not(.o){background:linear-gradient(180deg,#ffd27a,#e08a2a 55%,#b4561a)!important;color:#2a1208!important;border-color:#ffe3a0!important;box-shadow:0 0 20px #ff9a3a66,0 6px 14px #000a}
.col.title:not(.endp)>.eqs{animation:qin .5s .2s both;box-shadow:0 0 24px #e4c27a44}
/* ===================== v2.43 ===================== */
/* turn timer sits in the middle of the top bar, never over the board */
.dtimer{top:calc(env(safe-area-inset-top,0px) + 6px)!important;bottom:auto!important;left:50%!important;transform:translateX(-50%)!important;z-index:9000!important;height:26px;padding:0 14px!important;font:700 13px system-ui!important;border-radius:999px!important;border:1px solid #e4c27a88!important;background:linear-gradient(180deg,#2a1f12,#140e1c)!important;color:#f3d892!important;box-shadow:0 2px 10px #000a,0 0 12px #e4c27a33;white-space:nowrap}
.dtimer.foe{color:#c9bca2!important;border-color:#6a5434!important;box-shadow:0 2px 10px #000a}
.dtimer.low{color:#ffb0a0!important;border-color:#ff5a5a!important;animation:tlow 1s ease-in-out infinite}
@keyframes tlow{50%{box-shadow:0 0 16px #ff4a3acc}}
/* every text-only button: label exactly in the middle */
.btn:not(:has(> *)),.tbtn,.bk,.dgb,.sg{display:inline-flex!important;align-items:center;justify-content:center;text-align:center;line-height:1.05!important}
.btn:not(:has(> *)){padding-top:0!important;padding-bottom:0!important;min-height:40px}
.btn.sm:not(:has(> *)){min-height:32px}
.btn.big:not(:has(> *)){min-height:50px}
.btn:not(:has(> *)){padding-bottom:.08em!important}
.fsbar .btn,.stpb .btn{padding-top:0!important;padding-bottom:.08em!important}
/* taunts never touch each other */
.bf2.land .mn.taunt{margin-inline:clamp(4px,.9vw,12px)!important}
.bf2.land .mn.taunt+.mn.taunt{margin-left:clamp(10px,1.8vw,22px)!important}
/* opponent screen: always fits, the buttons stay on screen */
.fsc{height:100%;max-height:100%;box-sizing:border-box;overflow:hidden;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))!important}
.fsrow{min-height:0}
.fspic{width:auto!important;height:clamp(110px,34vh,320px);aspect-ratio:3/4}
.fsbar{flex:none;margin-top:2px}
@media (max-height:520px){
 .fsc{gap:5px!important;padding:6px 10px calc(8px + env(safe-area-inset-bottom,0px))!important}
 .fspic{height:24vh!important}
 .fsinfo{gap:3px}.fsinfo .fsn{font-size:14px!important}.fsinfo .fssub{display:none}
 .fshp{height:13px!important}.fschips{min-height:0}
 .fsrew,.fsrule{padding:3px 10px!important}
 .fsrule span{display:none}
 .fsbar .btn{min-height:34px!important;height:34px!important}.fsbar .fsfight{height:40px!important;min-height:40px!important}
 .fshd h2{font-size:20px!important}
}
@media (max-height:520px){.stp{grid-template-columns:92px minmax(0,1fr)!important;align-items:start;padding:10px!important;gap:12px!important}.stptx{gap:5px}.stptx>b{font-size:20px}.stpb .stgo{height:38px!important;min-height:38px!important;min-width:150px!important;font-size:15px!important}}
/* ===================== v2.44 ===================== */
/* names leave the board - they are shown in the opening versus splash */
.bf2.land .pnm{display:none!important}
/* versus splash */
.vsx{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;justify-items:center;padding:4% 6%;z-index:5;
 background:radial-gradient(60% 70% at 50% 50%,#2a1a0ccc,#0a0810f2 75%)}
.vsx::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#2a4a8a33 0 49.6%,#ffd27a 49.6% 50.4%,#8a2a1a33 50.4% 100%);opacity:.0;animation:vsline .5s .35s forwards}
@keyframes vsline{to{opacity:1}}
.vsside{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:1}
.vsside.me{animation:vsl .55s cubic-bezier(.2,.9,.3,1.2) both}
.vsside.foe{animation:vsr .55s cubic-bezier(.2,.9,.3,1.2) .08s both}
@keyframes vsl{from{transform:translateX(-60vw)}}@keyframes vsr{from{transform:translateX(60vw)}}
.vspic{width:clamp(110px,30vh,250px);aspect-ratio:3/4;border-radius:18px;overflow:hidden;border:3px solid #7a9ac8;box-shadow:0 0 0 5px #0009,0 0 40px #4a7ad066,0 18px 40px #000c}
.vsside.foe .vspic{border-color:#e05a3a;box-shadow:0 0 0 5px #0009,0 0 40px #e05a3a66,0 18px 40px #000c}
.vspic img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.vsname{font:clamp(18px,3.6vh,32px) "Almendra SC",Georgia,serif;color:#f3e6c8;text-shadow:0 2px 6px #000,0 0 16px #e4c27a55;text-align:center;max-width:36vw;line-height:1.1}
.vsside.foe .vsname{color:#ffd0b8}
.vsside .ptg{justify-content:center}
.vsside .ptg .tg{height:clamp(18px,3vh,26px);font-size:clamp(10px,1.7vh,14px)}
.vshp{display:inline-flex;align-items:center;gap:6px;padding:3px 12px 3px 8px;border-radius:999px;background:#0d0a14cc;border:1px solid #6a5434;color:#fff;font:800 clamp(12px,2vh,16px) system-ui}
.vshp::before{content:"";width:16px;height:16px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e04a3a' d='M12 21s-8-5.2-8-11a4.5 4.5 0 0 1 8-2.8A4.5 4.5 0 0 1 20 10c0 5.8-8 11-8 11z'/%3E%3C/svg%3E")}
.vsmid{position:relative;z-index:2;width:clamp(70px,15vh,130px);aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 clamp(10px,3vw,40px);
 background:radial-gradient(#6a4414,#1a1018 70%);border:3px solid #ffd27a;box-shadow:0 0 50px #ffb24a99,inset 0 0 20px #000;animation:vsm .5s .45s cubic-bezier(.3,1.6,.5,1) both}
.vsmid b{font:clamp(28px,6vh,54px) "Almendra SC",Georgia,serif;color:#ffe08a;text-shadow:0 0 14px #ff9a3a,0 2px 4px #000}
@keyframes vsm{from{transform:scale(0) rotate(-200deg)}}
.vsx.out{animation:vsout .38s ease forwards}
@keyframes vsout{to{opacity:0;transform:scale(1.06)}}
/* "Your turn" flash */
.yturn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:40}
.yturn .ytg{position:absolute;left:50%;top:50%;width:70%;height:34%;translate:-50% -50%;background:radial-gradient(closest-side,#ffd27a77,#ff9a3a22 60%,transparent);animation:ytg 1.5s ease-out forwards}
@keyframes ytg{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.3)}}
.yturn .ytr{position:absolute;left:50%;top:50%;width:120px;height:120px;translate:-50% -50%;border-radius:50%;border:4px solid #ffe08a;box-shadow:0 0 30px #ffb24a,inset 0 0 20px #ffb24a;animation:ytr .9s ease-out forwards}
@keyframes ytr{0%{transform:scale(.2);opacity:1}100%{transform:scale(5);opacity:0}}
.yturn .ytt{position:relative;font:clamp(40px,10vh,88px) "Almendra SC",Georgia,serif;letter-spacing:4px;color:#fff3c4;white-space:nowrap;
 text-shadow:0 0 12px #ffb24a,0 0 34px #ff8a2a,0 4px 8px #000;animation:ytt 1.5s cubic-bezier(.2,.9,.3,1.3) forwards}
@keyframes ytt{0%{opacity:0;transform:scale(2.2);filter:blur(8px)}18%{opacity:1;transform:scale(1);filter:blur(0)}75%{opacity:1;transform:scale(1.04)}100%{opacity:0;transform:scale(.92) translateY(-14px)}}
.yturn .yts{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#ffe9a8;box-shadow:0 0 10px #ffb24a;animation:yts 1s .1s ease-out forwards;opacity:0}
@keyframes yts{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3)}}
@media (prefers-reduced-motion:reduce){.vsside,.vsmid,.yturn *{animation-duration:.01s!important}}
.vspic img{transform:scale(1.2);transform-origin:50% 40%}
/* v2.46: "Your turn" is just the words: they sweep in, a golden shine runs across them, then they fade */
.yturn .ytt{color:transparent!important;background:linear-gradient(100deg,#f3d892 0%,#f3d892 40%,#fffbe8 50%,#f3d892 60%,#f3d892 100%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;
 text-shadow:none!important;filter:drop-shadow(0 0 10px #ffb24a99) drop-shadow(0 3px 4px #000);animation:ytt2 1.5s cubic-bezier(.2,.9,.3,1) forwards!important}
@keyframes ytt2{0%{opacity:0;transform:translateY(14px) scale(.9);letter-spacing:18px;background-position:100% 0}22%{opacity:1;transform:none;letter-spacing:4px}70%{opacity:1;background-position:0% 0}100%{opacity:0;transform:translateY(-10px);background-position:0% 0}}
/* v2.46: hero name card (long-press a hero portrait) */
.ncard{position:absolute;left:50%;z-index:45;display:flex;align-items:center;gap:14px;padding:12px 18px 12px 12px;border-radius:18px;translate:-50% 0;
 background:linear-gradient(180deg,#1e1628f2,#0f0b15f2);border:1px solid #7a9ac8;box-shadow:0 0 30px #4a7ad055,0 14px 30px #000c;animation:ncin .25s cubic-bezier(.2,.9,.3,1.2) both;pointer-events:none}
.ncard.me{bottom:22%}.ncard.foe{top:22%;border-color:#e05a3a;box-shadow:0 0 30px #e05a3a55,0 14px 30px #000c}
.ncard .vspic{width:clamp(64px,15vh,110px);border-width:2px;animation:none}
.ncard .nctx{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.ncard .vsname{font-size:clamp(17px,3vh,26px);text-align:left;max-width:40vw}
.ncard .ptg{justify-content:flex-start}
.ncard .ncar::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23b8c4d8' d='M12 2l8 3v6c0 5-3.5 9-8 11-4.5-2-8-6-8-11V5z'/%3E%3C/svg%3E")}
.ncard.out{animation:ncout .22s ease forwards}
@keyframes ncin{from{opacity:0;transform:scale(.85)}}@keyframes ncout{to{opacity:0;transform:scale(.9)}}
.bf2 .hr{-webkit-touch-callout:none;user-select:none}
.ncard.me{bottom:34%!important}.ncard.foe{top:24%!important}
/* v2.48: a quick light streak and a soft flash behind "Your turn" */
.yturn .ytl{position:absolute;left:50%;top:50%;width:min(70%,760px);height:3px;translate:-50% -50%;border-radius:3px;background:linear-gradient(90deg,transparent,#ffe9a8 30%,#fff 50%,#ffe9a8 70%,transparent);box-shadow:0 0 14px #ffb24a,0 0 30px #ff9a3a88;animation:ytl 1.5s ease-out forwards}
@keyframes ytl{0%{transform:scaleX(0);opacity:0}15%{transform:scaleX(1);opacity:1}55%{opacity:.7}100%{transform:scaleX(1.15);opacity:0}}
.yturn .ytf{position:absolute;left:50%;top:50%;width:min(60%,640px);height:120px;translate:-50% -50%;background:radial-gradient(closest-side,#ffd27a40,transparent);animation:ytf 1.5s ease-out forwards}
@keyframes ytf{0%{opacity:0}12%{opacity:1}100%{opacity:0}}
/* ===================== v2.48: draw / discard pile on the right edge ===================== */
.bf2.land .etb2[data-t]::after{display:none!important}/* the turn timer lives in the top bar */
.bf2.land .mid{gap:clamp(8px,2vh,18px)!important}
.dpk{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}
.dpk.foe{flex-direction:column-reverse}
.dpst{position:relative;width:clamp(40px,7.5vh,62px);aspect-ratio:5/7;padding:0;border:0;background:none;cursor:pointer}
.dpc{position:absolute;inset:0;border-radius:5px;background:var(--cardback,#2a2036) center/cover;border:1px solid #c9a24a;box-shadow:0 2px 6px #000c;transform:translate(calc(var(--i)*2px),calc(var(--i)*-2px))}
.dpk.foe .dpc{border-color:#c0705a;filter:brightness(.85)}
.dpn{position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:2;min-width:26px;height:26px;padding:0 6px;border-radius:999px;display:flex;align-items:center;justify-content:center;
 font:800 clamp(13px,2.2vh,17px) system-ui;color:#fff3c4;background:#0d0a14e6;border:1px solid #e4c27a;box-shadow:0 0 10px #000}
.dpk.low .dpn{color:#ffb0a0;border-color:#ff5a5a;animation:tlow 1.2s ease-in-out infinite}
.dpd{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:999px;background:#0d0a14d8;border:1px solid #6a5434;color:#c9bca2;font:700 12px system-ui;cursor:pointer}
.dpd .dpi{font-size:13px;opacity:.8}
.dpst:hover .dpc,.dpd:hover{filter:brightness(1.2)}
@media (max-height:470px){.dpst{width:36px}.dpn{height:22px;min-width:22px;font-size:12px}.dpd{padding:1px 7px;font-size:11px}.bf2.land .mid{gap:5px!important}}
.dpst{width:min(clamp(40px,7.5vh,62px),calc(var(--ew,80px)*.62))!important}
.dpc{transform:translate(calc(var(--i)*-2px),calc(var(--i)*-2px))!important}
.bf2.land .mid{overflow:visible!important}
/* v2.49: the numbers sit under (yours) / above (enemy) the pile, never on the cards */
.dprow{display:flex;flex-direction:column;align-items:center;gap:3px}
.dpk.foe .dprow{flex-direction:column-reverse}
.dpd.dpcnt{color:#fff3c4;border-color:#c9a24a;font-size:13px}
.dpk.low .dpd.dpcnt{color:#ffb0a0;border-color:#ff5a5a;animation:tlow 1.2s ease-in-out infinite}
.dprow,.dpk.foe .dprow{flex-direction:row!important;gap:3px}
.dprow .dpd{padding:1px 6px;font-size:11.5px;gap:2px}
.dprow .dpd.dpcnt{font-size:12.5px}
@media (max-height:470px){.dpst{width:32px!important}.dprow .dpd{padding:0 5px;font-size:10.5px}.bf2.land .mid{gap:4px!important}}
@media (min-height:471px){.bf2.land .mid{transform:translateY(-60%)!important}}
/* v2.50: timer under the End turn button */
.dtimer.atend{bottom:auto!important;transform:translateX(-50%)!important;height:24px;padding:0 10px!important;font-size:12px!important;z-index:50!important}
.bf2.land .dpk.me{margin-top:26px}
@media (max-height:470px){.dtimer.atend{height:20px;font-size:10.5px!important;padding:0 7px!important}.bf2.land .dpk.me{margin-top:20px}}
.dtimer.atend{left:var(--tx)!important;top:var(--ty)!important}
@media (max-height:470px){.bf2.land .dpk.me{margin-top:24px!important}.dpst{width:28px!important}.bf2.land .mid{transform:translateY(-56%)!important}}
/* ===================== v2.51: decks on the left, End turn + timer on the right ===================== */
.bf2.land .dpk{position:absolute;z-index:6;margin:0!important;translate:-50% -50%}
.bf2.land .dpk.foe{left:var(--ed-x);top:calc(var(--ed-y) + 10px)}
.bf2.land .dpk.me{left:var(--pd-x);top:calc(var(--pd-y) - 6px)}
.bf2.land .dpst{width:clamp(44px,8vh,66px)!important}
.bf2.land .mid{transform:translateY(-50%)!important;gap:6px!important}
@media (max-height:470px){.bf2.land .dpst{width:34px!important}}
/* v2.52: decks fully outside the board, in the left margin */
.bf2.land .dpk.foe{left:max(34px,calc(var(--lb) / 2))!important;top:30%!important}
.bf2.land .dpk.me{left:max(34px,calc(var(--lb) / 2))!important;top:70%!important}
.bf2.land .dpst{width:min(clamp(44px,8vh,66px),calc(var(--lb) - 18px))!important;min-width:30px}
.bf2.land .dprow{flex-direction:column!important;gap:3px}
/* v2.52: minion stat badges grow with the minion on big screens */
.bf2.land .mn .sa,.bf2.land .mn .sh{width:clamp(20px,calc(var(--mw) * .23),48px)!important;height:clamp(20px,calc(var(--mw) * .23),48px)!important;font-size:clamp(11px,calc(var(--mw) * .13),26px)!important}
/* ===================== v2.53 Admin Pro ===================== */
#scr.admscr{background:#0b0910!important;overflow:hidden}
.ad2{display:grid;grid-template-columns:230px minmax(0,1fr);height:100%;min-height:0;font-family:Inter,system-ui,sans-serif;color:#e8e0d0}
.ad2side{display:flex;flex-direction:column;gap:4px;padding:14px 10px;background:linear-gradient(180deg,#15101e,#0e0a15);border-right:1px solid #2e2438;overflow:auto}
.ad2brand{display:grid;grid-template-columns:40px 1fr;column-gap:10px;align-items:center;padding:4px 6px 14px;border-bottom:1px solid #2e2438;margin-bottom:8px}
.ad2brand img{grid-row:1/span 2;width:40px;height:40px}.ad2brand b{font:20px "Almendra SC",Georgia,serif;color:#f3d892}.ad2brand small{font-size:11px;color:#9a9080}
.ad2nav{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:0;background:none;color:#c9bca2;font:600 13.5px Inter,system-ui;cursor:pointer;text-align:left}
.ad2nav:hover{background:#ffffff0d;color:#fff}
.ad2nav.on{background:linear-gradient(90deg,#3a2a14,#22192e);color:#f3d892;box-shadow:inset 3px 0 0 #e4c27a}
.ad2ic{width:18px;height:18px;flex:none}.ad2ic svg{width:18px;height:18px}
.ad2back{margin-top:auto}
.ad2main{overflow:auto;padding:18px 22px 40px;min-width:0}
.ad2head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.ad2head h2{margin:0;font:28px "Almendra SC",Georgia,serif;color:#f3d892}.ad2head small{color:#9a9080}
.ad2card{background:linear-gradient(180deg,#17121f,#120e19);border:1px solid #2e2438;border-radius:14px;padding:14px 16px;margin-bottom:14px;box-shadow:0 6px 18px #0006}
.ad2card h4{margin:0 0 4px;font:600 15px Inter;color:#f3e6c8}.ad2sub{display:block;color:#9a9080;font-size:12px;margin-bottom:8px}
.ad2bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.ad2bar .inp{max-width:260px}.ad2q{min-width:220px}
.ad2chips{display:flex;gap:6px;flex-wrap:wrap}
.ad2chip{padding:5px 12px;border-radius:999px;border:1px solid #3e3248;background:#1a1422;color:#c9bca2;font:600 12px Inter;cursor:pointer}
.ad2chip.on{border-color:#e4c27a;color:#f3d892;background:#2a1f12}
.ad2chip.st{cursor:default}.ad2chip.st.hp{color:#ffb0a0;border-color:#a0403a}.ad2chip.st.ar{color:#cfd8e8;border-color:#7a8aa0}.ad2chip.st.mana{color:#a8c8ff;border-color:#4a7ad0}.ad2chip.st.wp{color:#ffd8a0;border-color:#b07a3a}
.ad2cnt{display:block;color:#9a9080;margin:4px 0 6px}
.ad2tw{overflow:auto;border:1px solid #2e2438;border-radius:12px}
.ad2t{width:100%;border-collapse:collapse;font-size:13px}
.ad2t th{position:sticky;top:0;background:#1d1727;color:#c9bca2;font-weight:700;text-align:left;padding:10px;cursor:pointer;white-space:nowrap;border-bottom:1px solid #2e2438}
.ad2t td{padding:8px 10px;border-bottom:1px solid #221a2c;white-space:nowrap}
.ad2t tr:hover td{background:#ffffff08;cursor:pointer}.ad2t tr.ban td{background:#3a101414}
.ad2pc{display:flex;align-items:center;gap:10px}.ad2pc img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:1px solid #6a5434}
.ad2pc b{display:block;color:#f3e6c8}.ad2pc small{color:#9a9080;font-size:11px}
.ad2st{display:inline-block;padding:2px 9px;border-radius:999px;font:700 11px Inter}
.ad2st.on{background:#123a1c;color:#8ee0a0}.ad2st.off{background:#24202c;color:#9a9080}.ad2st.ban{background:#3a1012;color:#ff9a8a}
.ad2rt{display:inline-block;padding:2px 9px;border-radius:999px;font:700 11px Inter;border:1px solid}
.ad2rt.t-bronze{color:#f1c59a;border-color:#b8733f}.ad2rt.t-silver{color:#eef2f7;border-color:#aab4c2}.ad2rt.t-gold{color:#ffe08a;border-color:#e4b53a}.ad2rt.t-platinum{color:#d6fbf6;border-color:#7fd8cf}.ad2rt.t-diamond{color:#d8e8ff;border-color:#8fb6ff}
.ad2id{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;background:radial-gradient(120% 140% at 0 0,#3a2a14,#15101e 60%);border:1px solid #6a5434;margin-bottom:12px}
.ad2id>img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid #e4c27a}
.ad2idt{flex:1;min-width:0}.ad2idn{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ad2idn b{font:24px "Almendra SC",Georgia,serif;color:#f3d892}.ad2idt small{color:#9a9080}
.ad2watch{background:linear-gradient(180deg,#c0392b,#7a1a10)!important;border-color:#ff8a7a!important;color:#fff!important}
.ad2deliv{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:#120e19;border:1px dashed #3e3248;margin-bottom:10px}
.ad2deliv .inp{flex:1;min-width:220px;max-width:none}.ad2deliv small{flex-basis:100%;color:#9a9080;font-size:11.5px}
.ad2pend{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:10px;background:#12201a;border:1px solid #2e5a3e;margin-bottom:10px}.ad2pend b{color:#8ee0a0;font-size:12px}.ad2pend small{color:#bfe0c8}
.ad2tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid #2e2438;margin-bottom:12px}
.ad2tab{padding:9px 14px;border:0;background:none;color:#9a9080;font:600 13px Inter;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.ad2tab:hover{color:#f3e6c8}.ad2tab.on{color:#f3d892;border-bottom-color:#e4c27a}
.ad2tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.ad2tile{padding:12px 14px;border-radius:12px;background:#17121f;border:1px solid #2e2438}.ad2tile small{display:block;color:#9a9080;font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.ad2tile b{display:block;font:800 22px Inter;color:#f3e6c8;margin-top:2px}.ad2tile em{font-style:normal;color:#c9bca2;font-size:11.5px}
.ad2tile.sm b{font-size:16px}
.ad2heroes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.ad2hero{display:grid;grid-template-columns:40px 1fr;column-gap:8px;align-items:center;padding:8px;border-radius:10px;background:#120e19}.ad2hero img{grid-row:1/span 2;width:40px;height:40px;border-radius:50%;object-fit:cover}.ad2hero small{color:#9a9080;font-size:11px}
.ad2f{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(70px,.6fr) minmax(120px,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #221a2c}
.ad2f:last-child{border-bottom:0}.ad2fl{color:#c9bca2;font-size:13px}.ad2fv{color:#f3e6c8;font-size:13px}.ad2fv.chg{color:#8ee0a0}
.ad2f .inp{max-width:none;width:100%}
.ad2grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:6px 0}
.ad2lab small{display:block;color:#9a9080;font-size:11px;margin-bottom:3px}.ad2lab .inp{width:100%;max-width:none}
.ad2decks details{margin:3px 0;font-size:12.5px}.ad2decks summary{cursor:pointer;color:#e0d6c2}.ad2decks small{color:#9a9080}
.ad2cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px}
.ad2cr{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:8px;padding:8px 10px;border-radius:10px;background:#120e19;border-left:3px solid #8a8794}
.ad2cr b{font-size:13px;color:#f3e6c8}.ad2cr small{grid-column:1;color:#9a9080;font-size:11px}.ad2cr>:last-child{grid-row:1/span 2;grid-column:2}
.ad2cr.r-r{border-left-color:#4a7ad0}.ad2cr.r-e{border-left-color:#9a5ae0}.ad2cr.r-l{border-left-color:#e4b53a}.ad2cr.miss{opacity:.55}
.ad2cnt2{display:flex;align-items:center;gap:6px}.ad2cnt2 span{min-width:42px;text-align:center;font:700 12px Inter}
.ad2pm{width:28px;height:28px;border-radius:8px;border:1px solid #4e3e58;background:#1d1727;color:#f3e6c8;font:800 15px Inter;cursor:pointer}.ad2pm:disabled{opacity:.35;cursor:default}
.ad2raw{width:100%;min-height:340px;background:#0a0810;color:#cfe0c8;border:1px solid #2e2438;border-radius:10px;padding:10px;font:12px ui-monospace,monospace}
.ad2ml{display:block;color:#c9bca2;font-size:12px;padding:2px 0}
.ad2danger{border-color:#a0403a!important;color:#ffb0a0!important}
.ad2live{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.ad2lv{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:12px;background:#120e19;border:1px solid #2e2438}.ad2lv img{width:44px;height:44px;border-radius:50%;object-fit:cover}.ad2lv small{display:block;color:#9a9080;font-size:11.5px}
.ad2wst{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px}.ad2dot{width:10px;height:10px;border-radius:50%;background:#9a9080}
.ad2wst.on .ad2dot{background:#e04a3a;box-shadow:0 0 10px #e04a3a;animation:tlow 1.2s infinite}.ad2wst.off .ad2dot{background:#6a5a5a}
.ad2wtop{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:10px}
.ad2board{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:radial-gradient(80% 90% at 50% 50%,#2a2016,#0e0a12);border:1px solid #4a3a2a}
.ad2hrow{display:flex;align-items:center;gap:12px}.ad2hp{width:64px;height:76px;border-radius:12px;overflow:hidden;border:2px solid #7a9ac8;flex:none}.ad2hrow.foe .ad2hp{border-color:#e05a3a}
.ad2hp img{width:100%;height:100%;object-fit:cover;transform:scale(1.2)}.ad2hinfo b{display:block;margin-bottom:4px;color:#f3e6c8}
.ad2brow,.ad2hand{display:flex;gap:6px;flex-wrap:wrap;min-height:40px;align-items:center}
.ad2brow .hc,.ad2hand .hc{width:84px!important;pointer-events:none}
.ad2taunt{outline:2px solid #c9c9d8;outline-offset:2px;border-radius:8px}.ad2fz{filter:hue-rotate(160deg) saturate(1.4)}
.ad2mid{text-align:center;color:#f3d892;font:700 13px Inter;padding:4px;border-top:1px dashed #4a3a2a;border-bottom:1px dashed #4a3a2a}
@media (max-width:900px){.ad2{grid-template-columns:64px minmax(0,1fr)}.ad2brand small,.ad2brand b,.ad2nav span:not(.ad2ic){display:none}.ad2brand{grid-template-columns:40px}.ad2back{font-size:0;padding:6px}.ad2f{grid-template-columns:1fr 1fr;}.ad2wtop{grid-template-columns:repeat(3,1fr)}.ad2grid4{grid-template-columns:repeat(2,1fr)}}

/* ===================== v2.53: hero stat icons - blood drop (health), shield (armor), crossed swords (attack) ===================== */
.bf2 .hr .hv,.bf2 .hr .ha,.bf2 .hr .hat{border:0!important;border-radius:0!important;background-color:transparent!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;
 color:#fff!important;font:900 max(12px,calc(16px*var(--k,1))) system-ui!important;text-shadow:0 1px 2px #000,0 0 6px #000c;padding:0!important;display:grid!important;place-items:center;box-shadow:none!important;filter:drop-shadow(0 2px 3px #000c)}
.bf2 .hr .hv{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2040%2048%27%3E%3Cdefs%3E%3CradialGradient%20id%3D%27g%27%20cx%3D%2738%25%27%20cy%3D%2755%25%27%20r%3D%2765%25%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23ff7a6a%27/%3E%3Cstop%20offset%3D%27.55%27%20stop-color%3D%27%23c8202c%27/%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%235a0710%27/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath%20d%3D%27M20%202C20%202%204%2021%204%2031a16%2016%200%200%200%2032%200C36%2021%2020%202%2020%202z%27%20fill%3D%27url%28%23g%29%27%20stroke%3D%27%232a0306%27%20stroke-width%3D%272%27/%3E%3Cpath%20d%3D%27M12%2030c0-5%204-11%206-14%27%20stroke%3D%27%23ffd0c8%27%20stroke-width%3D%272.5%27%20stroke-linecap%3D%27round%27%20fill%3D%27none%27%20opacity%3D%27.55%27/%3E%3C/svg%3E")!important;width:calc(30px*var(--k,1))!important;height:calc(36px*var(--k,1))!important;min-width:26px;min-height:31px;padding-top:calc(8px*var(--k,1))!important;box-sizing:border-box}
.bf2 .hr .ha{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2040%2046%27%3E%3Cdefs%3E%3ClinearGradient%20id%3D%27g%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%270%27%20y2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23eef4ff%27/%3E%3Cstop%20offset%3D%27.45%27%20stop-color%3D%27%238aa4c8%27/%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%233a4a66%27/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath%20d%3D%27M20%202l16%206v12c0%2012-7.5%2020-16%2024C11.5%2040%204%2032%204%2020V8z%27%20fill%3D%27url%28%23g%29%27%20stroke%3D%27%231a2232%27%20stroke-width%3D%272%27/%3E%3Cpath%20d%3D%27M20%206l12%204.5V20c0%209-5.5%2015.5-12%2019%27%20fill%3D%27none%27%20stroke%3D%27%23ffffff%27%20stroke-width%3D%271.5%27%20opacity%3D%27.45%27/%3E%3C/svg%3E")!important;width:calc(30px*var(--k,1))!important;height:calc(34px*var(--k,1))!important;min-width:26px;min-height:29px;color:#10182a!important;text-shadow:0 1px 0 #fff8!important;padding-bottom:calc(3px*var(--k,1))!important;box-sizing:border-box}
.bf2 .hr .hat{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2044%2044%27%3E%3Cdefs%3E%3CradialGradient%20id%3D%27g%27%20cx%3D%2740%25%27%20cy%3D%2735%25%27%20r%3D%2770%25%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23fff0b0%27/%3E%3Cstop%20offset%3D%27.5%27%20stop-color%3D%27%23e0a030%27/%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%236a3a08%27/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle%20cx%3D%2722%27%20cy%3D%2722%27%20r%3D%2720%27%20fill%3D%27url%28%23g%29%27%20stroke%3D%27%232a1802%27%20stroke-width%3D%272%27/%3E%3Cg%20stroke%3D%27%235a3206%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20opacity%3D%27.45%27%3E%3Cpath%20d%3D%27M9%209l22%2022M31%2027l4%204M27%2031l4%204M35%209L13%2031M13%2027l-4%204M17%2031l-4%204%27/%3E%3C/g%3E%3C/svg%3E")!important;width:calc(32px*var(--k,1))!important;height:calc(32px*var(--k,1))!important;min-width:27px;min-height:27px;color:#2a1402!important;text-shadow:0 1px 0 #fff6!important}
/* v2.53: enemy hand = mirror of your hand (same size, top right), the card the opponent looks at lifts */
.bf2.land .ehand{display:none!important}
.bf2.land .ehand3{position:absolute;left:0;right:0;top:0;height:calc(var(--hh) + 6px);z-index:6;pointer-events:none}
.bf2.land .ehc{position:absolute;left:var(--x);top:calc(var(--ty,4px) - var(--hh)*.42);width:100px;height:148px;--hs:calc((var(--hh) - 8px)/148px);transform-origin:50% 0;transform:rotate(var(--rot,0deg)) scale(var(--hs));
 border-radius:9px;border:2px solid #c9a24f;background:var(--enback,var(--cardback,linear-gradient(135deg,#4a2a6a,#1a1030))) center/cover;box-shadow:0 4px 10px #000c;transition:transform .25s ease,box-shadow .25s ease,filter .25s}
.bf2.land .ehc.peek{transform:translateY(calc(var(--hh)*.22)) rotate(var(--rot,0deg)) scale(calc(var(--hs)*1.08));box-shadow:0 0 0 2px #ffe08a,0 0 22px #ffcf6acc,0 8px 16px #000c;filter:brightness(1.15);z-index:40!important}

/* v2.54 language picker: the name in the game language, the native name small under it */
.lgp .lgb{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.1}
.lgp .lgb .lgnat{font:400 11px system-ui;opacity:.7;letter-spacing:.02em}

/* v2.54 info rows under a start panel (Daily Draft, Daily challenge) */
.stinfo{grid-column:1/-1;width:100%;max-width:900px;margin:10px auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.sti{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:#120e18d9;border:1px solid #3e3226;color:#d8ccb4;font-size:13px;line-height:1.35}
.sti i{font-style:normal;flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#4a3a22,#1a130c);border:1px solid #a58a55;color:#f3d892;font-size:13px}
@media (max-height:460px){.stinfo{margin-top:6px;gap:6px}.sti{padding:6px 10px;font-size:12px}.sti i{flex-basis:22px;height:22px}}
.sti span{font:400 13px/1.38 system-ui,sans-serif!important;color:#d8ccb4;text-transform:none;letter-spacing:0}
.stpf b{white-space:nowrap}
@media (max-height:460px){.sti span{font-size:12px!important}}
.stpf b .ti img{height:1.05em;width:auto;vertical-align:-3px}
/* v2.54 phone readability: on short landscape screens the hand cards show bigger cost, Attack and Health,
   a bolder name and no tiny type line (tap a card to read it big) */
@media (max-height:470px){
 .bf2.land .hand2 .hc .cc{transform:scale(1.25);transform-origin:30% 30%}
 .bf2.land .hand2 .hc .sa{transform:scale(1.22);transform-origin:20% 80%}
 .bf2.land .hand2 .hc .sh{transform:scale(1.22);transform-origin:80% 80%}
 .bf2.land .hand2 .hc .cty{visibility:hidden}
 .bf2.land .hand2 .hc .cn{font-weight:700;text-shadow:0 1px 2px #000,0 0 3px #000}
}

/* v2.55: one calm turn timer - no pulsing, only the color turns red in the last 10 seconds */
.dtimer.low{animation:none!important;box-shadow:0 2px 10px #000a!important}
.dtimer:not(.atend){display:none!important}

/* v2.55 opening hand: the full card count for the first turn */
.picksum{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:6px 0 2px}
.picksum .psc{padding:3px 10px;border-radius:999px;background:#120e18e6;border:1px solid #4a3a2a;color:#d8ccb4;font:600 12px system-ui}
.picksum .psc.tot{border-color:#a58a55;color:#f3d892;background:#2a1d0ee6}
@media (max-height:470px){.picksum{gap:4px;margin:3px 0 0}.picksum .psc{font-size:10.5px;padding:2px 7px}}

/* v2.59 Ranked card: 5 stars inside the rating tier */
.rkstars{display:flex;gap:6px;justify-content:center;margin:4px 0 2px}
.rkstars i{font-style:normal;font-size:22px;line-height:1;color:#3a3226;text-shadow:0 1px 2px #000}
.rkstars i.on{color:#f3c64a;text-shadow:0 0 10px #f3c64a99,0 1px 2px #000}
/* ===== v2.60 Arena Run ===== */
.rkpic{aspect-ratio:auto!important;border:none!important;box-shadow:none!important;background:none;display:grid;place-items:center}
.rkpic img{object-fit:contain!important;width:100%;height:auto!important;filter:drop-shadow(0 8px 18px #000c) drop-shadow(0 0 18px #4a7dff55);animation:rkfloat 4s ease-in-out infinite}
@keyframes rkfloat{50%{transform:translateY(-6px) rotate(-1.5deg)}}
.rkey{grid-template-columns:minmax(180px,300px) minmax(0,1fr)!important}
.rlast{grid-column:1/-1;width:100%;max-width:900px;margin:10px auto 0;padding:10px 14px;border-radius:12px;background:#120e18d9;border:1px solid #6a5434;display:flex;flex-direction:column;gap:2px}
.rlast b{color:#f3d892}.rlast small{color:#c9bca2}
.rrw{grid-column:1/-1;width:100%;max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px}
.rrr{display:flex;gap:10px;align-items:center;padding:7px 12px;border-radius:10px;background:#120e18d9;border:1px solid #3e3226;font-size:12.5px;color:#d8ccb4}
.rrr b{min-width:64px;color:#f3d892;font:700 13px system-ui}
.rrr.hi{border-color:#a58a55;background:linear-gradient(90deg,#2a1d0ee6,#120e18d9)}
.rh{grid-column:1/-1;text-align:center;font:24px "Almendra SC",Georgia,serif;color:#f3d892;margin:6px 0 0}
.rhero{grid-column:1/-1;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.rhc{width:min(230px,30vw);display:flex;flex-direction:column;gap:6px;align-items:center;padding:10px;border-radius:16px;background:#120e18e6;border:1px solid #6a5434;color:#d8ccb4;cursor:pointer;transition:transform .15s,box-shadow .15s}
.rhc:hover{transform:translateY(-4px);box-shadow:0 0 22px #e4c27a55}
.rhc img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 18%;border-radius:12px;border:2px solid #a58a55}
.rhc b{font:18px "Almendra SC",Georgia,serif;color:#f3d892}.rhc small{font-size:11.5px;line-height:1.3;text-align:center}
.rpick{grid-column:1/-1;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:6px}
.rpc{background:none;border:none;padding:0;cursor:pointer;transition:transform .15s,filter .15s;zoom:var(--rz,1)}
.rpc:hover{transform:translateY(-6px);filter:drop-shadow(0 0 14px #e4c27a88)}
.rpc .hc{pointer-events:none}
.rside{grid-column:1/-1;display:flex;gap:14px;align-items:flex-end;justify-content:center;margin-top:8px}
.rcurve{display:flex;gap:5px;align-items:flex-end;height:70px;padding:6px 10px;border-radius:10px;background:#120e18d9;border:1px solid #3e3226}
.rcc{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;width:18px;gap:2px}
.rcc i{width:12px;min-height:2px;background:linear-gradient(#ffd27a,#b4561a);border-radius:3px 3px 0 0}
.rcc b{font:700 10px system-ui;color:#f3e6c8}.rcc small{font-size:10px;color:#9a9080}
.rdl{display:flex;flex-direction:column;gap:3px;max-height:52vh;overflow:auto}
.rdr{display:flex;gap:8px;align-items:center;padding:4px 8px;border-radius:8px;background:#120e18;border-left:3px solid #8a8a8a;font-size:13px;color:#e8dcc0}
.rdr.r-r{border-left-color:#4a8cff}.rdr.r-e{border-left-color:#b45cff}.rdr.r-l{border-left-color:#ff9a2a}
.rdr .rdc{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#8fc6ff,#2a5aa8 55%,#0a2050);color:#fff;font:700 12px system-ui}
.rdr span{flex:1}.rdr em{font-style:normal;color:#f3d892}
.rpips{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;margin:4px 0}
.rpips small{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#9a9080}
.rpw,.rpl{display:flex;gap:4px}
.rpw i,.rpl i{width:16px;height:16px;border-radius:50%;background:#1a1420;border:1px solid #4a3a2a}
.rpw i.on{background:radial-gradient(circle at 35% 30%,#fff3b0,#e0a020 60%,#7a4a08);border-color:#ffe3a0;box-shadow:0 0 8px #f3c64a99}
.rpl i.on{background:radial-gradient(circle at 35% 30%,#ffb0a0,#c03020 60%,#5a0a08);border-color:#ff9a7a}
.rend .rpips{justify-content:center;margin:6px auto}
.rdone{font:22px "Almendra SC",Georgia,serif;color:#f3d892;margin:8px 0 4px}
.rrbox{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:4px 0}
.rrc{padding:6px 14px;border-radius:999px;background:#2a1d0ee6;border:1px solid #a58a55;color:#f3d892;font:700 13px system-ui;animation:fsin .5s both}
.rrc.pk{background:#14203ae6;border-color:#5a8ad6;color:#cfe0ff}
.rluck{display:flex;flex-direction:column;align-items:center;gap:2px;margin:6px auto;padding:8px 18px;border-radius:14px;border:1px dashed #a58a55;color:#c9bca2;transition:all .4s}
.rluck b{font:800 18px system-ui;color:#f3d892}.rluck.on{border-style:solid;box-shadow:0 0 22px #f3c64a66;background:#2a1d0ee6}
.stkey{display:flex;gap:16px;align-items:center;padding:12px 16px;border-radius:16px;background:linear-gradient(90deg,#14101ce6,#1e1626e6);border:1px solid #6a5434;max-width:900px;margin:0 auto;width:100%;grid-column:1/-1}
.stkey>img{width:min(260px,30vw);flex:0 0 auto;filter:drop-shadow(0 6px 14px #000c) drop-shadow(0 0 14px #4a7dff44)}
.stkt{display:flex;flex-direction:column;gap:6px}.stkt b{font:20px "Almendra SC",Georgia,serif;color:#f3d892}.stkt small{color:#c9bca2}
.stkb{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.stkb .stko{display:flex;flex-direction:column;align-items:center;gap:3px}
.stkb .stko .btn{min-width:150px}
.stkb .stko small{font-size:11px;color:#9a9080}
.stkt{flex:1;min-width:0}
@media (max-height:470px){.stkey>img{width:min(170px,26vw)}.stkb .stko .btn{min-width:120px}}
.shi.apk-l{border-color:#ff9a2a!important}.shi.apk-e{border-color:#b45cff!important}.shi.apk-r{border-color:#4a8cff!important}
.arT.lockd{filter:grayscale(.6) brightness(.8)}
@media (max-height:470px){.rhc{width:min(170px,28vw);padding:6px}.rhc small{display:none}.rh{font-size:18px}.rkey{grid-template-columns:150px minmax(0,1fr)!important}.rpc{--rz:.62}.rcurve{height:52px}}
.stkt>small{display:block!important;line-height:1.4}
/* v2.61 deck builder: the side panel always fits the screen - the card list scrolls and the buttons stay visible */
.dkb2{height:100%;max-height:100%;overflow:hidden}
.dkb2 .dkside{overflow-y:auto;max-height:100%;box-sizing:border-box}
.dkb2 .dkside .dkl{overflow-y:auto;flex:1 1 0;min-height:56px;gap:4px}
.dkb2 .dkbar2{position:sticky;bottom:-12px;z-index:3;background:linear-gradient(#0b091000,#0b0910f5 30%);padding:8px 0 4px;margin-top:auto}
@media (max-height:470px){
 .dkb2{padding:4px 8px 6px;gap:8px}
 .dkb2 .dkside{padding:8px;gap:5px}
 .dkb2 .dkside .curve{height:36px}
 .dkb2 .dkr1 .inp{padding:5px 8px;font-size:14px}
 .dkb2 .dkbar2{gap:4px;bottom:-8px}
 .dkb2 .dkbar2 .btn{min-height:30px;height:30px;padding:0 10px;font-size:13px}
 .dkb2 .dli{padding:3px 6px}.dkb2 .dlc{width:20px;height:20px;font-size:11px}.dkb2 .dln{font-size:12px}
}
/* v2.61 Heroes screen: the hero picker sits on top in one row, and the left column scrolls with the page */
@media (max-height:900px){
 .hl2{position:static}
 .hl2 .hstrip{order:-1;flex-wrap:nowrap;justify-content:center;gap:4px;width:100%}
 .hl2 .hsb{width:auto;flex:1 1 0;min-width:0;max-width:56px;padding:2px}
 .hl2 .hsb img{width:100%!important;height:auto!important;aspect-ratio:1;max-width:44px}
 .hl2 .hsb span{display:none}
}
/* v2.61 dungeon cards: every card has the same layout - the title block has a fixed height, the chips and the difficulty buttons line up, everything is centred */
.dun.dn2{text-align:center;align-items:stretch}
.dun.dn2 .dnt{min-height:2.5em;display:flex;align-items:center;justify-content:center;line-height:1.15}
.dun.dn2 .dnb{min-height:2.7em;display:flex;align-items:flex-start;justify-content:center}
.dun.dn2 .dnchips{margin-top:6px!important;justify-content:center}
.dun.dn2 .dnrd{text-align:center;min-height:2.7em}
.dun.dn2 .dgrow{margin-top:2px}
.dun.dn2 .dnreset{margin-top:auto;align-self:center}
@media (max-height:470px){.dun.dn2 .dnt{min-height:2.4em}.dun.dn2 .dnb,.dun.dn2 .dnrd{min-height:2.6em}}
.dgrid .dun.dn2{height:auto!important;min-height:250px}
/* v2.62 redeem codes */
.rdm{align-items:center;text-align:center;gap:10px}
.rdmin{max-width:320px;width:100%;text-align:center;font:700 22px system-ui;letter-spacing:3px;text-transform:uppercase}
.rdmst{min-height:16px;color:#c9bca2}.rdmst.bad{color:#ff9a8a}
.rdmok{font:24px "Almendra SC",Georgia,serif;color:#9affb4;margin:0}
.ad2form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:8px 0}
.ad2fld{display:flex;flex-direction:column;gap:3px}.ad2fld small{color:#9a9080;font-size:11px}.ad2fld .inp{max-width:none;width:100%}
.adcodes{width:100%;min-height:140px;font:13px ui-monospace,monospace;margin-top:8px}
.ad2acts{display:flex;gap:8px;margin-top:6px}
.adcl{display:flex;flex-direction:column;gap:3px;margin-top:8px;max-height:60vh;overflow:auto}
.adcr{display:grid;grid-template-columns:150px 1.4fr 1.4fr 70px 100px 90px;gap:8px;align-items:center;padding:5px 8px;border-radius:8px;background:#120e18;font-size:12.5px;color:#d8ccb4}
.adcr.hd{background:none;color:#9a9080;font-size:11px;text-transform:uppercase}.adcr.off{opacity:.5}
.adcc{font:700 12.5px ui-monospace,monospace;color:#f3d892}
/* v2.63 admin reward editor */
.adrw{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px;padding:10px;border-radius:12px;background:#0d0a12;border:1px solid #2c2238}
.adrg>b{font:700 12px system-ui;color:#f3d892;text-transform:uppercase;letter-spacing:.6px}
.adrg .ad2form{margin:4px 0 0;align-items:end}
.adchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.adchip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 10px;border-radius:999px;background:#1d1528;border:1px solid #4a3a6a;color:#e8dcc0;font-size:12px}
.adchip button{border:none;background:#3a2a4a;color:#fff;border-radius:50%;width:18px;height:18px;cursor:pointer;line-height:1}
.adck{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#d8ccb4}
.adrwt{font-size:11.5px;line-height:1.3}
