:root{--ink:#f4ead6;--muted:#b7ab96;--gold:#d7ae59;--bg:#0e1512;--panel:#18231e;--panel2:#202e27;--line:#465746;--danger:#b3564e;--good:#6fa477}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% 0,#2a3d30,#0b110e 52%);color:var(--ink);font-family:Georgia,'Times New Roman',serif;min-height:100vh}.shell{max-width:1380px;margin:auto;padding:22px}header{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #59614f;padding:8px 4px 17px;margin-bottom:18px}h1{font-size:48px;letter-spacing:5px;margin:0;color:#eee0bd;text-shadow:0 2px 10px #000}header p{margin:2px 0;color:var(--gold);letter-spacing:3px;font-size:11px}.who{color:var(--muted)}.panel{background:linear-gradient(145deg,rgba(31,45,38,.97),rgba(18,29,24,.98));border:1px solid #4a594c;border-radius:12px;box-shadow:0 16px 40px #0007,inset 0 1px #ffffff0c;padding:20px}.auth{max-width:440px;margin:75px auto}.auth input,.toolbar input,.deckTitle input{width:100%;padding:13px;border-radius:7px;border:1px solid #57665a;background:#0d1712;color:white;font-size:16px}.tabs,.nav,.deckTabs{display:flex;gap:7px}.tabs{margin-bottom:12px}.tabs button{flex:1}.tabs button.active,.nav button.active,.deckTabs button.active{border-color:var(--gold);color:var(--gold);background:#3b3321}button{background:#293b31;color:#eee4d0;border:1px solid #59695c;padding:10px 14px;border-radius:7px;font-family:inherit;font-weight:bold;cursor:pointer;letter-spacing:.4px}button:hover:not(:disabled){filter:brightness(1.18)}button:disabled{opacity:.38;cursor:not-allowed}.primary{background:linear-gradient(#8a6730,#62481e);border-color:#d6ad58;color:#fff7e0}.auth .primary{width:100%;margin-top:8px}.msg{color:#e7b1a9;min-height:20px}.hidden{display:none!important}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding:12px 16px}.miniStats{display:flex;flex-wrap:wrap;gap:9px}.miniStats span{padding:5px 13px;border-right:1px solid #526054}.miniStats b,.miniStats small{display:block}.miniStats b{color:#fff0c8}.miniStats small{font-size:8px;letter-spacing:1.5px;color:#91a092;margin-top:3px}.nav{overflow-x:auto;margin-bottom:18px}.nav button{white-space:nowrap}.view{min-height:500px}.hero{display:flex;justify-content:space-between;align-items:center;gap:28px}.hero h2,.sectionHead h2{font-size:32px;margin:3px 0 8px}.hero p,.sectionHead p{max-width:760px;color:var(--muted);line-height:1.5}.storeSign{text-align:center;border:1px solid #9b7d42;padding:17px 28px;border-radius:50%;color:#bda671;letter-spacing:2px}.storeSign b{font-size:25px}.eyebrow{font-size:10px;color:var(--gold);letter-spacing:3px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px}.grid.thirds{grid-template-columns:repeat(3,1fr)}.feature{text-align:left;cursor:pointer;color:inherit}.feature span{font-size:30px}.feature h3{color:#e2c37e;margin:9px 0 3px}.feature p{margin:0}.starterCallout{margin-top:16px;border-color:#947841}.sectionHead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.toolbar{display:flex;gap:15px;align-items:center;margin:12px 0}.toolbar input{max-width:520px}.cardGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:13px}.card{background:#111b16;border:1px solid #405145;border-radius:10px;padding:10px;min-width:0}.card img{display:block;width:100%;aspect-ratio:488/680;object-fit:cover;border-radius:7px;background:#27342c}.card h4{margin:8px 0 3px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cardMeta{font-size:11px;color:#9baa9e;min-height:28px}.priceRow{display:flex;justify-content:space-between;align-items:center;margin-top:7px;gap:5px}.price{color:#e4c678;font-weight:bold}.owned{font-size:11px;color:#9cc6a1}.card button{width:100%;margin-top:8px}.packReveal h3{margin-top:0}.packCards{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.packCards img{width:100%;border-radius:7px}.deckLayout{display:grid;grid-template-columns:280px 1fr;gap:15px}.list{display:grid;gap:8px}.row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#101a15;border:1px solid #35463a;border-radius:7px;gap:8px}.row span small{display:block;color:#87968c}.row.active{border-color:#b49554;background:#282718}.deckEditor{min-height:500px}.deckTitle{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.deckTitle>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.deckTabs{margin:15px 0}.deckRows{display:grid;gap:6px;max-height:560px;overflow:auto}.deckCard{display:grid;grid-template-columns:56px minmax(130px,1fr) 135px 110px;gap:9px;align-items:center;background:#101a15;border:1px solid #35463a;border-radius:7px;padding:6px}.deckCard img{width:50px;height:70px;object-fit:cover;border-radius:4px}.qty{display:flex;align-items:center;justify-content:center;gap:7px}.qty button{padding:5px 9px}.qty .landQuickAdd{padding:5px 7px;font-size:11px}.storyGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px}.storyCard{position:relative}.storyCard.locked{opacity:.55}.storyCard.defeated{border-color:#718f63}.storyCard h3{margin:4px 0}.storyCard .reward{color:#e2c37e}.storyBadge{position:absolute;right:12px;top:10px;font-size:10px;letter-spacing:1px}.notice{padding:10px 13px;border-left:3px solid #b58f4b;background:#171d16;color:#c9bda5;margin-bottom:14px}.modal{position:fixed;inset:0;background:#000c;z-index:10;display:flex;align-items:center;justify-content:center;padding:20px}.modalBox{width:min(1050px,96vw);max-height:90vh;overflow:auto;background:#142019;border:1px solid #75806b;border-radius:13px;padding:24px;position:relative}.modalClose{position:absolute;right:12px;top:12px}.starterGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:18px}.starterCard{text-align:center;background:#0d1712;border:1px solid #455546;padding:10px;border-radius:9px}.starterCard img{width:100%;aspect-ratio:488/680;object-fit:cover;border-radius:6px}.starterCard h3{font-size:14px}.starterCard p{font-size:11px;color:#aaa18f;min-height:65px}.toast{position:fixed;right:22px;bottom:22px;background:#213629;border:1px solid #75916f;padding:13px 18px;border-radius:8px;z-index:20}.matchHead{display:flex;align-items:center;gap:20px}.versus{display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;margin:35px auto;max-width:850px}.playerSlot{min-height:160px;border:1px solid #63715e;background:radial-gradient(circle,#344839,#16221b);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:25px;color:#f3d995}.vs{text-align:center;font-size:28px;color:#a98c54}.matchStatus,.testActions{text-align:center}.testActions{display:flex;justify-content:center;gap:10px}.eventLog{max-width:700px;margin:20px auto;background:#0b130f;border:1px solid #324239;border-radius:7px;height:170px;overflow:auto;padding:12px;font-family:monospace;color:#b7c5b9}.small{text-align:center;font-size:12px;color:#839087}footer{text-align:center;color:#657369;font-size:10px;letter-spacing:2px;margin:28px}@media(max-width:900px){.grid,.grid.thirds,.deckLayout{grid-template-columns:1fr}.starterGrid{grid-template-columns:repeat(2,1fr)}.deckTitle{grid-template-columns:1fr}.sectionHead,.hero{align-items:flex-start;flex-direction:column}.cardGrid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}}@media(max-width:600px){.shell{padding:10px}h1{font-size:34px}.starterGrid{grid-template-columns:1fr}.deckCard{grid-template-columns:48px 1fr 120px}.deckCard .meta4{display:none}.miniStats span{padding:4px 7px}.versus{grid-template-columns:1fr 42px 1fr}.playerSlot{min-height:110px;font-size:17px}}
.storyBattle{position:relative;min-height:760px;border:1px solid #536454;border-radius:16px;padding:14px;background:radial-gradient(circle at 50% 46%,rgba(75,91,63,.55),rgba(19,30,24,.95) 55%,#0d1511 100%);overflow:hidden}.battleTop{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.battleTop h2{margin:2px 0}.battleTurn{color:#e3c77b;font-weight:bold;letter-spacing:1px}.mulliganPanel{text-align:center;padding:28px}.openingHand{display:flex;justify-content:center;align-items:end;gap:0;margin:25px auto;max-width:1050px;overflow-x:auto;padding:15px}.openingHand .handCard{margin-left:-20px}.battleBoard{position:relative;min-height:690px;padding:48px 100px 190px}.battleHud{position:absolute;left:50%;transform:translateX(-50%);z-index:3}.enemyHud{top:0}.playerHud{bottom:132px}.battleHud>div{background:#122018e8;border:1px solid #8a7d58;border-radius:50px;padding:8px 24px;display:flex;gap:15px;align-items:center;box-shadow:0 8px 25px #0008}.battleHud strong{font-size:27px;color:#fff1c7}.battleHud small{color:#9dac9e}.battlePiles{position:absolute;right:12px;display:flex;gap:8px}.enemyPiles{top:20px}.playerPiles{bottom:130px}.pile{width:70px;height:96px;border-radius:7px;background:repeating-linear-gradient(135deg,#251a12,#251a12 5px,#594124 6px,#594124 8px);border:2px solid #8c7449;display:flex;flex-direction:column;align-items:center;justify-content:center;text-shadow:0 2px #000}.pile b{font-size:9px}.pile span{font-size:22px;font-weight:bold}.zoneLabel{text-align:center;font-size:9px;letter-spacing:2px;color:#9aa694;margin:2px}.battleRow{height:128px;display:flex;justify-content:center;align-items:center;gap:7px;overflow-x:auto;overflow-y:hidden;padding:8px 12px}.landsRow{height:92px}.battleCard{position:relative;width:82px;flex:0 0 82px;text-align:center;transition:.15s;display:block}.landsRow .battleCard{width:72px;flex-basis:72px}.battleCard img{width:82px;height:114px;object-fit:cover;border-radius:6px;box-shadow:0 4px 10px #0009}.landsRow .battleCard img{width:72px;height:72px;object-fit:cover}.battleCard>b{display:none}.battleCard .pt{position:absolute;right:-4px;bottom:2px;background:#08110de8;border:1px solid #d4c18c;border-radius:12px;padding:2px 6px;font-size:11px}.battleCard small{position:absolute;left:2px;top:2px;background:#351b12e8;padding:2px 4px;border-radius:4px;font-size:8px}.battleCard.tapped img{transform:rotate(90deg) scale(.8)}.battleCard.selectable{cursor:pointer}.battleCard.selectable:has(input:checked) img{outline:4px solid #d09b3d;transform:translateY(-10px)}.battleCard input{position:absolute;z-index:4;left:4px;top:4px;width:20px;height:20px}.combatCenter{min-height:78px;margin:4px auto;max-width:800px;text-align:center;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#f0dca8}.blockRow{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#101912dd;border:1px solid #47584b;padding:6px 10px;margin:5px;border-radius:7px}.blockRow select{background:#17251c;color:white;border:1px solid #5b6a5d;padding:7px}.battleActions{display:flex;justify-content:center;gap:10px;margin:6px}.handLabel{text-align:center;color:#9ead9f;font-size:10px;letter-spacing:2px;margin-top:4px}.battleHand{height:150px;display:flex;justify-content:center;align-items:flex-end;overflow-x:auto;padding:10px 40px}.handCard{width:92px;min-width:92px;margin-left:-14px;padding:0;background:none;border:none;position:relative;transition:.15s;z-index:1}.handCard:first-child{margin-left:0}.handCard img{width:92px;height:128px;object-fit:cover;border-radius:7px;box-shadow:0 5px 14px #000b}.handCard span{display:none}.handCard:hover{transform:translateY(-18px) scale(1.12);z-index:10;filter:none}.battleResult{max-width:600px;margin:80px auto;text-align:center}.battleResult h2{font-size:48px;color:#ecd18a}@media(max-width:850px){.battleBoard{padding-left:10px;padding-right:10px}.battlePiles{position:static;justify-content:flex-end}.enemyPiles,.playerPiles{top:auto;bottom:auto}.battleRow{justify-content:flex-start}.battleCard{width:72px;flex-basis:72px}.battleCard img{width:72px;height:101px}.battleHand{justify-content:flex-start}.battleHud{position:static;transform:none;display:flex;justify-content:center;margin:5px}.playerHud{bottom:auto}.enemyHud{top:auto}}

.priorityBanner{margin:6px auto;padding:8px 14px;border:1px solid #7f6f45;background:#18160f;border-radius:8px;color:#f1da9a;max-width:760px}.stackPanel,.battleLog{width:min(760px,100%);margin:8px auto;background:#0e1612d9;border:1px solid #485748;border-radius:8px;padding:8px 10px}.stackPanel h4,.battleLog h4{margin:4px 0 8px;color:#e3c77b}.stackItem,.logItem{font-size:12px;padding:4px 0;border-top:1px solid #2b382f}.stackItem:first-of-type,.logItem:first-of-type{border-top:none}.battleLog{max-height:165px;overflow:auto;text-align:left}.battleCard .miniAct{position:absolute;left:50%;transform:translateX(-50%);bottom:-8px;font-size:8px;padding:2px 4px;z-index:5}.battleCard{padding-bottom:16px}
.targetPicker{position:fixed;inset:0;z-index:50;background:#000c;display:flex;align-items:center;justify-content:center;padding:20px}.targetPickerBox{width:min(900px,96vw);max-height:90vh;overflow:auto;background:#142019;border:1px solid #8e7b4e;border-radius:14px;padding:20px;box-shadow:0 20px 80px #000}.targetPickerBox h3{text-align:center;color:#efd38d;margin-top:0}.targetChoices{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.targetChoices button{width:140px;background:#101a15}.targetChoices img{width:100%;aspect-ratio:488/680;object-fit:cover;border-radius:6px;display:block;margin-bottom:6px}.targetChoices span{display:block;font-size:12px}.targetCancel{display:block;margin:18px auto 0}.stackPanel:not(.hidden){animation:stackGlow .28s ease-out}@keyframes stackGlow{from{transform:scale(.97);opacity:.5}to{transform:scale(1);opacity:1}}

.battleCard .miniMana{position:absolute;right:-7px;bottom:-8px;font-size:8px;padding:2px 5px;z-index:6;background:#243e31;border-color:#76a780;color:#e9f6e8}.battleCard .miniAct{left:4px;transform:none}.phaseHelp{font-size:10px;color:#b9aa86}

/* v0.9 social layer */
.tradeLayout{display:grid;grid-template-columns:360px 1fr;gap:16px}.tradeLayout label{display:grid;gap:5px;margin:10px 0;color:var(--muted);font-size:12px}.tradeLayout input,.tradeLayout select{width:100%;padding:11px;border-radius:7px;border:1px solid #57665a;background:#0d1712;color:white}.tradeCard{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px;background:#101a15;border:1px solid #35463a;border-radius:8px}.tradeCard p{margin:6px 0;color:#b8c3ba;font-size:12px}.tradeStatus{display:inline-block;font-size:9px;letter-spacing:1px;padding:3px 6px;border-radius:10px;margin-right:7px;border:1px solid #657466}.tradeStatus.accepted{color:#a8d7aa;border-color:#668c67}.tradeStatus.rejected,.tradeStatus.cancelled{color:#d6a19b;border-color:#8c5c56}.profileHero h2{font-size:38px;margin:5px 0 12px}.profileStats{display:flex;flex-wrap:wrap;gap:8px}.profileStats span{min-width:110px;background:#101a15;border:1px solid #405145;border-radius:8px;padding:10px}.profileStats b,.profileStats small{display:block}.profileStats b{font-size:20px;color:#f1d798}.profileStats small{font-size:8px;letter-spacing:1.5px;color:#8fa092;margin-top:4px}.achievementGrid{display:grid;gap:7px}.achievement{padding:10px;border-radius:7px;border:1px solid #39483e;background:#111914}.achievement b,.achievement small{display:block}.achievement small{margin-top:4px;color:#8e9c91}.achievement.unlocked{border-color:#8f7841;background:#272416}.achievement.unlocked b{color:#edcf82}.achievement.locked{opacity:.48}.onlineDot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#536158;margin-right:7px}.onlineDot.on{background:#78c680;box-shadow:0 0 8px #78c680}.rowActions{display:flex;gap:5px}.winText{color:#8fd197}.lossText{color:#d28e86}.resultActions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.playerRow button{padding:7px 9px;font-size:10px}@media(max-width:850px){.tradeLayout{grid-template-columns:1fr}.profileStats span{min-width:95px;flex:1}.rowActions{flex-direction:column}}

.boosterSupply{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-left:auto;margin-right:12px}.boosterSupply b{font-family:var(--display,inherit);letter-spacing:.06em}.boosterSupply small{opacity:.68}@media(max-width:700px){.boosterSupply{align-items:flex-start;margin:8px 0;width:100%}}


/* v0.95 live Alpha draft */
.draftSeats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:14px 0}.draftSeat{padding:9px;border:1px dashed #4d5c50;border-radius:7px;color:#758378}.draftSeat.filled{border-style:solid;border-color:#806e43;background:#221f15;color:#ead08b}.draftPack{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px;align-items:start}.draftCard{background:#101a15;border:1px solid #48594c;padding:7px;border-radius:9px;text-align:left;transition:.15s}.draftCard:hover{transform:translateY(-5px);border-color:#c4a75e;box-shadow:0 10px 22px #0007}.draftCard img{width:100%;aspect-ratio:488/680;object-fit:cover;border-radius:6px}.draftCard b,.draftCard small{display:block;margin-top:5px}.draftCard small{color:#91a094;font-size:9px}.draftPicked{margin-top:24px;border-top:1px solid #405044;padding-top:12px}.draftPickStrip{display:flex;gap:6px;overflow-x:auto;padding:8px 0}.draftPickStrip>div{width:70px;min-width:70px}.draftPickStrip img{width:70px;height:98px;object-fit:cover;border-radius:5px}.draftPickStrip small{display:block;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draftWaiting,.draftDone{text-align:center;grid-column:1/-1;padding:45px 15px;border:1px dashed #65745f;border-radius:10px}.draftDone h3{color:#efd184}

.tourneyLayout{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(360px,1.3fr);gap:16px}.tourneyLayout label{display:grid;gap:6px;margin:10px 0}.payoutGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.playerChips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.playerChips span{padding:7px 10px;border:1px solid #6d624d;border-radius:999px;background:#191713}.bracket{display:flex;gap:18px;overflow:auto;align-items:flex-start;margin-top:18px}.bracketRound{min-width:220px;display:grid;gap:10px}.bracketMatch{border:1px solid #5d5342;background:#171511;padding:12px;border-radius:8px;display:grid;gap:7px}.placements{margin:18px 0;padding:14px;border:1px solid #8c7447;background:#1b1811}.placements div{padding:5px 0}@media(max-width:850px){.tourneyLayout{grid-template-columns:1fr}.payoutGrid{grid-template-columns:repeat(2,1fr)}}

/* v1.1 Identity Update */
.playerTitle{display:inline-block;vertical-align:middle;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:3px 7px;border:1px solid #68736b;border-radius:999px;background:#151d18;color:#c7d0c9;white-space:nowrap}.playerTitle.rare{border-color:#547da0;color:#a8cce8;background:#111c25}.playerTitle.epic{border-color:#7b5b9b;color:#c8a7e8;background:#1c1424}.playerTitle.legendary{border-color:#a47d37;color:#f0cd78;background:#281f0e;box-shadow:0 0 10px rgba(224,182,91,.14)}.titleCabinet{margin:14px 0}.titleGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:9px}.titleCard{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border:1px solid #3f4d43;background:#101713;border-radius:8px}.titleCard small{display:block;color:#95a198;margin-top:7px;line-height:1.35}.titleCard.equipped{border-color:#ad8b46;background:#201b10}.titleCard.legendary{box-shadow:inset 0 0 0 1px rgba(212,172,79,.15)}.lockedTitles{margin-top:14px;color:#849087}.lockedTitles summary{cursor:pointer;letter-spacing:1px;font-size:10px}.lockedTitle{padding:8px 0;border-bottom:1px solid #2d3830;opacity:.55}.lockedTitle b,.lockedTitle small{display:block}.lockedTitle small{margin-top:3px}


/* v1.1.1 Dandan bonus mode */
#dandanTable{margin-top:16px}.dandanWaiting{text-align:center;padding:48px 12px}.dandanScore{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;text-align:center;padding:12px;border:1px solid #466075;background:#0e1922;border-radius:10px}.dandanScore>div{display:grid;gap:3px}.dandanScore b{font-size:22px;color:#b9ddf5}.dandanScore small{letter-spacing:1.5px}.dandanShared{grid-template-columns:auto auto;column-gap:8px}.dandanShared b{font-size:16px}.dandanZone{margin:12px 0;padding:12px;background:#0d171b;border:1px solid #315364;border-radius:9px}.dandanZone.enemy{background:#111922}.dandanZone>div{display:flex;gap:8px;flex-wrap:wrap}.dandanPerm{min-width:90px;padding:8px 10px;border:1px solid #477287;border-radius:7px;background:#122733;display:grid}.dandanPerm small{font-size:8px;color:#8fb5c8}.dandanPerm.tapped{transform:rotate(4deg);opacity:.6}.dandanAttack{position:relative}.dandanAttack.ready{cursor:pointer}.dandanAttack input{position:absolute;right:4px;top:4px}.dandanStatus{text-align:center;padding:8px;color:#c9e9f7;letter-spacing:1.5px;font-size:11px}.dandanHand>div{display:flex;gap:8px;overflow-x:auto;padding:10px 0}.dandanCard{width:150px;min-width:150px;min-height:150px;text-align:left;display:grid;align-content:start;gap:7px;background:linear-gradient(#17364a,#0d1e29);border:1px solid #5b8ba5;color:#eaf6fb;border-radius:10px;padding:10px}.dandanCard.land{background:linear-gradient(#24455a,#152a36)}.dandanCard small{font-size:8px;letter-spacing:1px;color:#9fc6d9}.dandanCard span{font-size:10px;line-height:1.35;color:#c6dce6}.dandanActions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:12px}.dandanLog{max-height:150px;overflow:auto;border-top:1px solid #34505c;padding-top:8px}.dandanLog div{font-size:11px;padding:3px;color:#a9c0ca}.dandanBlocks{padding:12px;border:1px solid #826d42;background:#211d13}.dandanBlocks label{display:flex;justify-content:space-between;gap:8px;margin:6px}.dandanBlocks select{background:#10202a;color:white;padding:5px}@media(max-width:700px){.dandanScore{grid-template-columns:1fr}.dandanShared{display:flex!important;justify-content:center;gap:8px}.dandanCard{width:130px;min-width:130px}.dandanPerm{min-width:75px}}

/* v1.1.4 — Secret Lair Dandân art */
.dandanCard{position:relative;overflow:hidden;padding:0!important;min-height:210px!important;background:#0a1117!important;border-color:#547d94!important}
.dandanCardArt{display:block;width:100%;height:100%;object-fit:contain;background:#071016}
.dandanCard .handArt{min-height:210px}
.dandanFallback{display:none;padding:10px;align-content:start;gap:7px}
.dandanCardArt.artFailed{display:none}.dandanCardArt.artFailed+.dandanFallback{display:grid}
.dandanPerm{position:relative;padding:0!important;overflow:hidden;width:96px;min-width:96px;height:134px;background:#091118!important}
.dandanPerm .permArt{width:100%;height:100%;object-fit:cover;object-position:center top}
.dandanPermLabel{position:absolute;left:0;right:0;bottom:0;padding:4px 5px;background:linear-gradient(transparent,rgba(0,0,0,.94));display:grid;text-shadow:0 1px 2px #000}
.dandanPermLabel b{font-size:9px}.dandanPermLabel small{font-size:7px!important;color:#d8eef9!important}
.dandanPerm .artFailed~.dandanPermLabel{position:static;padding:8px;background:none}
.dandanPerm.tapped{transform:rotate(8deg);opacity:.72}
@media(max-width:700px){.dandanCard{width:145px!important;min-width:145px!important;min-height:203px!important}.dandanCard .handArt{min-height:203px}.dandanPerm{width:82px;min-width:82px;height:115px}}

/* v1.1.5 — Dandân interactive card choices */
.dandanChoice{margin:12px 0;padding:16px;border:1px solid #7aa7bf;background:linear-gradient(145deg,#102735,#0c1821);border-radius:10px}.dandanChoice h3{margin:0 0 6px;color:#d8f2ff}.dandanChoice p{color:#a9c5d3}.choiceCards{display:flex;gap:10px;overflow-x:auto;padding:8px 0}.choiceCards label,.choiceCards button{width:135px;min-width:135px;background:#0a151d;border:1px solid #446b80;border-radius:8px;padding:7px;color:#e7f5fb;display:grid;gap:5px}.choiceArt{width:100%;border-radius:5px}.choiceCards select,.dandanChoice>select{width:100%;padding:7px;background:#0b1921;color:white;border:1px solid #547a8f}.choiceList{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0}.dandanCardWrap{display:grid;align-content:start;gap:4px}.dandanMiniAct{padding:5px;font-size:9px}.dandanLandAct{position:absolute;z-index:3;left:4px;right:4px;bottom:4px;padding:4px 2px;font-size:8px;background:#18384a;border-color:#75a7c0}.dandanPerm:has(.dandanLandAct) .dandanPermLabel{bottom:27px}
/* v1.1.6 Dandân stack + priority */
.dandanPriority{margin:10px 0;padding:10px 14px;border:1px solid #55636d;border-radius:9px;background:#101820;display:flex;gap:10px;align-items:center;justify-content:space-between}.dandanPriority.yours{border-color:#9bc5dc;box-shadow:0 0 0 1px rgba(155,197,220,.18) inset}.dandanPriority b{letter-spacing:.08em}.dandanPriority span{font-size:12px;color:#b9cbd5}.dandanStack{margin:10px 0;padding:12px;border:1px solid #35566a;border-radius:9px;background:#0a141b}.dandanStack h3{display:inline-block;margin:0 8px 8px 0;color:#d8f2ff}.dandanStack>small{color:#7893a2}.dandanStackItem{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;margin-top:5px;border:1px solid #345466;border-radius:7px;background:#10232e}.dandanStackItem span{color:#9db6c4;font-size:12px}.dandanStack.empty{opacity:.7}.dandanChoice h4{margin:10px 0 4px;color:#b8d9e9}

/* v1.1.7 — desktop battlefield fit
   Keep the entire normal duel, including the player's hand, inside a standard
   desktop viewport. Wide/short screens get a compact board instead of forcing
   vertical page scrolling. */
@media (min-width:851px) and (max-height:1000px){
  body:has(#storyBattle:not(.hidden)){overflow:hidden}
  .shell:has(#storyBattle:not(.hidden)){max-width:none;height:100dvh;padding:6px 8px;overflow:hidden}
  .shell:has(#storyBattle:not(.hidden))>header,
  .shell:has(#storyBattle:not(.hidden))>.topbar,
  .shell:has(#storyBattle:not(.hidden))>.nav,
  .shell:has(#storyBattle:not(.hidden))>footer{display:none!important}

  .storyBattle{height:calc(100dvh - 12px);min-height:0;padding:7px 10px;border-radius:10px;overflow:hidden}
  .battleTop{height:44px;margin:0 0 2px;gap:10px}
  .battleTop h2{font-size:24px;line-height:1;margin:0}
  .battleTop .eyebrow{font-size:8px}
  .battleTop button{padding:6px 10px}
  .battleTurn{font-size:15px}

  .battleBoard{
    height:calc(100dvh - 66px);
    min-height:0;
    padding:38px 82px 4px;
    display:grid;
    grid-template-rows:14px 67px 14px 96px minmax(48px,1fr) 14px 96px 14px 67px 40px 34px 14px 112px;
    align-content:stretch;
    overflow:hidden;
  }
  .zoneLabel{height:14px;line-height:14px;margin:0;font-size:8px}
  .battleRow{height:100%;min-height:0;padding:3px 8px;gap:5px;overflow-x:auto;overflow-y:hidden}
  .landsRow{height:100%}
  .battleCard{width:64px;flex:0 0 64px;padding-bottom:8px}
  .battleCard img{width:64px;height:89px;border-radius:5px}
  .landsRow .battleCard{width:58px;flex-basis:58px;padding-bottom:4px}
  .landsRow .battleCard img{width:58px;height:58px}
  .battleCard .pt{font-size:9px;padding:1px 4px}
  .battleCard small{font-size:7px}
  .battleCard .miniAct,.battleCard .miniMana{font-size:7px;padding:1px 3px;bottom:-3px}

  .enemyHud{top:0}
  .battleHud>div{padding:5px 18px;gap:10px}
  .battleHud strong{font-size:22px}
  .battleHud small{font-size:11px}
  .playerHud{position:static;transform:none;display:flex;justify-content:center;align-items:center;z-index:4}
  .playerHud>div{padding:4px 16px}
  .playerHud strong{font-size:20px}
  .enemyPiles{top:2px}
  .playerPiles{bottom:132px}
  .pile{width:54px;height:72px}
  .pile b{font-size:7px}.pile span{font-size:17px}

  .combatCenter{height:100%;min-height:0;margin:0 auto;padding:2px;overflow:auto;font-size:13px}
  .priorityBanner{margin:2px auto;padding:4px 8px;font-size:11px}
  .stackPanel,.battleLog{margin:2px auto;padding:4px 7px;max-height:74px;overflow:auto}
  .stackPanel h4,.battleLog h4{font-size:10px;margin:1px 0 3px}
  .stackItem,.logItem{font-size:9px;padding:2px 0}
  .blockRow{padding:3px 6px;margin:2px;font-size:11px}
  .blockRow select{padding:3px}

  .battleActions{height:34px;margin:0;align-items:center;gap:7px}
  .battleActions button{padding:6px 10px;font-size:11px}
  .handLabel{height:14px;line-height:14px;margin:0;font-size:8px}
  .battleHand{height:112px;min-height:0;padding:3px 36px 0;align-items:flex-end;overflow-x:auto;overflow-y:visible}
  .handCard{width:76px;min-width:76px;margin-left:-11px}
  .handCard img{width:76px;height:106px;border-radius:5px}
  .handCard:hover{transform:translateY(-7px) scale(1.06)}
}

/* Slightly more room on tall desktop displays without bringing back page scroll. */
@media (min-width:851px) and (min-height:1001px){
  .storyBattle{min-height:0}
}


/* v1.1.8 — 1080p battlefield fit + side decision rail */
@media (min-width:851px){
  .storyBattle{min-height:0;height:calc(100vh - 150px);max-height:850px;padding:10px 12px;overflow:hidden}
  .battleTop{margin-bottom:2px;min-height:48px}
  .battleTop h2{font-size:25px;line-height:1.05}
  .battleBoard{min-height:0;height:calc(100% - 54px);padding:38px 88px 142px}
  .enemyHud{top:-2px}.playerHud{bottom:112px}
  .battleHud>div{padding:5px 18px;gap:11px}
  .battleHud strong{font-size:22px}
  .enemyPiles{top:8px}.playerPiles{bottom:110px}
  .pile{width:58px;height:80px}.pile span{font-size:18px}
  .battleRow{height:105px;padding:4px 10px}
  .landsRow{height:72px}
  .battleCard{width:70px;flex-basis:70px;padding-bottom:10px}
  .battleCard img{width:70px;height:98px}
  .landsRow .battleCard{width:62px;flex-basis:62px}
  .landsRow .battleCard img{width:62px;height:62px}
  .combatCenter{min-height:34px;margin:0 auto;max-width:560px;pointer-events:none}
  .combatCenter>#battleMessage{pointer-events:auto}
  .battleActions{margin:2px;gap:7px}
  .battleActions button{padding:7px 12px}
  .handLabel{margin-top:0;line-height:12px}
  .battleHand{height:126px;padding:2px 32px 0;overflow-y:visible}
  .handCard{width:82px;min-width:82px;margin-left:-13px}
  .handCard img{width:82px;height:114px}
  .handCard:hover{transform:translateY(-10px) scale(1.08)}

  /* Decisions no longer consume the center battlefield's vertical space. */
  #blockPanel:not(.hidden),
  .priorityBanner:not(.hidden),
  .stackPanel:not(.hidden){position:absolute;left:12px;width:270px;margin:0;z-index:15;text-align:left;pointer-events:auto;box-shadow:0 12px 34px #000a;backdrop-filter:blur(4px)}
  .priorityBanner:not(.hidden){top:96px;padding:7px 10px;font-size:12px}
  #blockPanel:not(.hidden){top:150px;background:#101912f2;border:1px solid #8a7447;border-radius:10px;padding:10px;max-height:330px;overflow:auto;color:#f0dca8}
  #blockPanel h3{margin:0 0 5px;color:#efd38d;font-size:16px}
  #blockPanel p{font-size:11px;margin:4px 0 8px;color:#c5bba5}
  #blockPanel .blockRow{display:grid;grid-template-columns:1fr;gap:3px;margin:5px 0;padding:6px}
  #blockPanel .blockRow select{width:100%;padding:5px}
  #blockPanel button{width:100%;margin-top:6px}
  .stackPanel:not(.hidden){top:150px;background:#0e1612f2;max-height:220px;overflow:auto;padding:8px}
  #blockPanel:not(.hidden)~.battleLog:not(.hidden){display:none}
  .battleLog{position:absolute;right:12px;top:110px;width:250px;max-height:140px;margin:0;z-index:12;pointer-events:auto;font-size:10px}
}
@media (min-width:851px) and (max-height:850px){
  .storyBattle{height:calc(100vh - 128px)}
  .battleBoard{padding-top:32px;padding-bottom:128px}
  .battleRow{height:94px}.landsRow{height:62px}
  .battleCard{width:64px;flex-basis:64px}.battleCard img{width:64px;height:90px}
  .landsRow .battleCard{width:56px;flex-basis:56px}.landsRow .battleCard img{width:56px;height:56px}
  .playerHud{bottom:101px}.playerPiles{bottom:99px}
  .battleHand{height:112px}.handCard{width:76px;min-width:76px}.handCard img{width:76px;height:106px}
  .battleActions button{padding:6px 10px;font-size:12px}
}

/* v1.1.10 — story hand clipping hotfix
   The compact desktop board is already a fixed grid. v1.1.8 added large
   bottom padding on top of that fixed height, which pushed the final grid
   rows (HUD/actions/hand) outside an overflow:hidden container. */
@media (min-width:851px) and (max-height:1000px){
  .storyBattle{
    height:calc(100dvh - 12px);
    max-height:none;
    box-sizing:border-box;
  }
  .battleBoard{
    height:calc(100dvh - 66px);
    box-sizing:border-box;
    padding:32px 82px 0;
    grid-template-rows:14px 62px 14px 88px minmax(34px,1fr) 14px 88px 14px 60px 36px 32px 12px 106px;
  }
  .playerHud{position:static;transform:none;display:flex;justify-content:center;align-items:center}
  .playerPiles{bottom:118px}
  .battleActions{height:32px;margin:0}
  .handLabel{height:12px;line-height:12px;margin:0}
  .battleHand{height:106px;min-height:0;padding:0 32px;align-items:flex-end;overflow-x:auto;overflow-y:visible}
  .handCard{width:74px;min-width:74px;margin-left:-11px}
  .handCard img{width:74px;height:103px}
}

@media (min-width:851px) and (max-height:850px){
  .battleBoard{
    padding:28px 78px 0;
    grid-template-rows:12px 54px 12px 76px minmax(28px,1fr) 12px 76px 12px 54px 32px 30px 11px 96px;
  }
  .battleHand{height:96px}
  .handCard{width:68px;min-width:68px;margin-left:-10px}
  .handCard img{width:68px;height:95px}
  .playerPiles{bottom:106px}
}


/* v1.1.12 — global hover-to-read card preview */
.globalCardPreview{
  position:fixed;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  width:clamp(210px,16.5vw,285px);
  z-index:90;
  pointer-events:none;
  filter:drop-shadow(0 18px 30px #000c);
  transition:opacity .08s ease,transform .08s ease;
}
.globalCardPreview.hidden{display:none}
.cardPreviewFrame{
  padding:7px;
  border:1px solid #9c824c;
  border-radius:14px;
  background:#08110ded;
  box-shadow:inset 0 0 0 1px #263c31,0 0 35px #0009;
}
.cardPreviewFrame img{
  display:block;
  width:100%;
  max-height:calc(100dvh - 110px);
  object-fit:contain;
  border-radius:10px;
}
.cardPreviewFrame>div{
  padding:5px 6px 2px;
  text-align:center;
  color:#efd38d;
  font-weight:700;
  font-size:12px;
  letter-spacing:.04em;
}
/* Keep decision controls readable when the hover preview occupies the far-left rail. */
@media (min-width:1100px){
  #blockPanel:not(.hidden),.priorityBanner:not(.hidden),.stackPanel:not(.hidden){left:clamp(245px,18vw,310px)}
}
@media (max-width:1099px),(hover:none){
  .globalCardPreview{display:none!important}
}

/* v1.1.13 — Dandân fullscreen battlefield fit
   Active games use the whole viewport. Choices/blocking/log become rails so
   they never push the hand below the fold. Hover preview handles readability. */
@media (min-width:851px){
  body:has(#dandanTable:not(.hidden)){overflow:hidden}
  .shell:has(#dandanTable:not(.hidden)){
    max-width:none;
    width:100%;
    padding:6px 8px;
  }
  .shell:has(#dandanTable:not(.hidden))>header,
  .shell:has(#dandanTable:not(.hidden))>.topbar,
  .shell:has(#dandanTable:not(.hidden))>.nav,
  .shell:has(#dandanTable:not(.hidden))>footer,
  #dandan:has(#dandanTable:not(.hidden))>.sectionHead,
  #dandan:has(#dandanTable:not(.hidden))>#dandanLobby{
    display:none!important;
  }
  #dandan:has(#dandanTable:not(.hidden)){
    min-height:0;
    height:calc(100dvh - 12px);
  }
  #dandanTable:not(.hidden){
    position:relative;
    height:calc(100dvh - 12px);
    min-height:0;
    margin:0;
    padding:8px 12px;
    overflow:hidden;
    display:grid;
    grid-template-rows:66px 92px 22px 42px 50px minmax(94px,1fr) 22px 168px 38px;
    gap:5px;
    align-content:stretch;
  }
  #dandanTable .dandanScore{
    height:66px;
    min-height:0;
    padding:5px 10px;
    gap:8px;
  }
  #dandanTable .dandanScore b{font-size:18px;line-height:1}
  #dandanTable .dandanScore small{font-size:9px;line-height:1}
  #dandanTable .dandanScore span{font-size:11px;line-height:1}
  #dandanTable .dandanShared b{font-size:15px}

  #dandanTable .dandanZone{
    min-height:0;
    height:100%;
    margin:0;
    padding:6px 10px;
    overflow-x:auto;
    overflow-y:hidden;
  }
  #dandanTable .dandanZone h4{margin:0 0 4px;font-size:14px;line-height:16px}
  #dandanTable .dandanZone>div{gap:5px;align-items:flex-start;flex-wrap:nowrap}
  #dandanTable .dandanPerm{
    width:52px;
    min-width:52px;
    height:72px;
    border-radius:5px;
  }
  #dandanTable .dandanPermLabel{padding:2px 3px}
  #dandanTable .dandanPermLabel b{font-size:7px}
  #dandanTable .dandanPermLabel small{font-size:6px!important}
  #dandanTable .dandanLandAct{font-size:6px;padding:2px;bottom:2px;left:2px;right:2px}
  #dandanTable .dandanPerm:has(.dandanLandAct) .dandanPermLabel{bottom:18px}

  #dandanTable .dandanStatus{
    height:22px;
    padding:3px;
    font-size:10px;
    line-height:16px;
  }
  #dandanTable .dandanPriority{
    height:42px;
    min-height:0;
    margin:0;
    padding:5px 10px;
  }
  #dandanTable .dandanPriority b{font-size:14px}
  #dandanTable .dandanPriority span{font-size:10px}
  #dandanTable .dandanStack{
    height:50px;
    min-height:0;
    margin:0;
    padding:5px 8px;
    overflow:auto;
  }
  #dandanTable .dandanStack h3{font-size:14px;margin:0 6px 3px 0}
  #dandanTable .dandanStack>small{font-size:9px}
  #dandanTable .dandanStackItem{padding:3px 6px;margin-top:2px;font-size:10px}
  #dandanTable .dandanStackItem span{font-size:9px}

  #dandanTable .dandanHand{
    min-height:0;
    height:100%;
    overflow:hidden;
  }
  #dandanTable .dandanHand h4{
    height:22px;
    line-height:20px;
    margin:0;
    font-size:14px;
  }
  #dandanTable .dandanHand>div{
    height:146px;
    min-height:0;
    padding:1px 8px 0;
    gap:5px;
    overflow-x:auto;
    overflow-y:hidden;
    align-items:flex-start;
    justify-content:center;
  }
  #dandanTable .dandanCardWrap{height:143px;min-height:0;gap:1px}
  #dandanTable .dandanCard{
    width:100px!important;
    min-width:100px!important;
    min-height:140px!important;
    height:140px!important;
    border-radius:7px;
  }
  #dandanTable .dandanCard .handArt{
    width:100%;
    min-height:140px;
    height:140px;
    object-fit:contain;
  }
  #dandanTable .dandanMiniAct{padding:2px 4px;font-size:7px;line-height:10px}

  #dandanTable .dandanActions{
    height:38px;
    min-height:0;
    margin:0;
    gap:6px;
    align-items:center;
  }
  #dandanTable .dandanActions button{padding:5px 9px;font-size:10px}

  /* Variable-height interaction UIs become rails rather than stretching table. */
  #dandanTable .dandanChoice,
  #dandanTable .dandanBlocks{
    position:absolute;
    right:12px;
    top:176px;
    width:min(330px,25vw);
    max-height:360px;
    overflow:auto;
    z-index:40;
    margin:0;
    padding:10px;
    box-shadow:0 14px 38px #000c;
    backdrop-filter:blur(5px);
  }
  #dandanTable .dandanChoice h3,
  #dandanTable .dandanBlocks h3{font-size:15px;margin:0 0 4px}
  #dandanTable .dandanChoice p,
  #dandanTable .dandanBlocks p{font-size:10px;margin:3px 0 6px}
  #dandanTable .choiceCards label,
  #dandanTable .choiceCards button{width:92px;min-width:92px;padding:4px}

  #dandanTable .dandanLog{
    position:absolute;
    right:12px;
    bottom:48px;
    width:260px;
    max-height:92px;
    overflow:auto;
    z-index:25;
    padding:6px;
    border:1px solid #34505c;
    border-radius:7px;
    background:#091218e8;
    box-shadow:0 10px 28px #0009;
  }
  #dandanTable .dandanLog div{font-size:8px;padding:1px 2px}
}

@media (min-width:851px) and (max-height:850px){
  #dandanTable:not(.hidden){
    grid-template-rows:58px 82px 20px 38px 44px minmax(82px,1fr) 20px 146px 34px;
    gap:3px;
    padding:6px 10px;
  }
  #dandanTable .dandanScore{height:58px}
  #dandanTable .dandanZone h4{font-size:12px}
  #dandanTable .dandanPerm{width:46px;min-width:46px;height:64px}
  #dandanTable .dandanStatus{height:20px;line-height:14px}
  #dandanTable .dandanPriority{height:38px}
  #dandanTable .dandanStack{height:44px}
  #dandanTable .dandanHand h4{height:20px;line-height:18px}
  #dandanTable .dandanHand>div{height:126px}
  #dandanTable .dandanCardWrap{height:124px}
  #dandanTable .dandanCard{width:88px!important;min-width:88px!important;min-height:123px!important;height:123px!important}
  #dandanTable .dandanCard .handArt{min-height:123px;height:123px}
  #dandanTable .dandanActions{height:34px}
}

/* v1.1.14 — Dandân hand-row grid correction
   v1.1.13 declared one extra grid row. With choices/logs positioned as rails,
   the hand was auto-placed into the 22px row and its cards were clipped. */
@media (min-width:851px){
  #dandanTable:not(.hidden){
    grid-template-rows:66px 92px 22px 42px 50px minmax(94px,1fr) 168px 38px;
  }
}
@media (min-width:851px) and (max-height:850px){
  #dandanTable:not(.hidden){
    grid-template-rows:58px 82px 20px 38px 44px minmax(82px,1fr) 146px 34px;
  }
}

/* v1.1.15 — Dandân true fullscreen + anchored hand tray hotfix
   v1.1.13 targeted .topbar/.nav as direct .shell children, but both are
   inside #app. The site chrome therefore stayed visible and consumed the
   vertical room reserved for the hand. Keep the active match independent
   of document flow and pin the hand/actions to the bottom of the viewport. */
@media (min-width:851px){
  body:has(#dandanTable:not(.hidden)){
    overflow:hidden;
  }
  body:has(#dandanTable:not(.hidden)) .shell{
    width:100%;max-width:none;padding:4px 6px;
  }
  body:has(#dandanTable:not(.hidden)) .shell>header,
  body:has(#dandanTable:not(.hidden)) #app>.topbar,
  body:has(#dandanTable:not(.hidden)) #app>.nav{
    display:none!important;
  }
  body:has(#dandanTable:not(.hidden)) #app,
  body:has(#dandanTable:not(.hidden)) #dandan{
    height:100dvh;min-height:0;margin:0;padding:0;
  }
  #dandanTable:not(.hidden){
    height:100dvh;
    box-sizing:border-box;
    padding:6px 10px 172px;
    grid-template-rows:64px 88px 22px 42px 48px minmax(90px,1fr);
    gap:4px;
    overflow:hidden;
  }
  #dandanTable .dandanHand{
    position:absolute;
    left:10px;right:10px;bottom:42px;
    height:126px;
    min-height:126px;
    overflow:hidden;
    z-index:20;
    background:linear-gradient(180deg,rgba(15,31,24,.15),rgba(15,31,24,.96) 18%);
  }
  #dandanTable .dandanHand h4{
    height:18px;line-height:18px;margin:0;font-size:13px;
  }
  #dandanTable .dandanHand>div{
    height:108px;
    padding:0 8px;
    align-items:flex-start;
    overflow-x:auto;
    overflow-y:hidden;
  }
  #dandanTable .dandanCardWrap{height:106px;min-height:106px}
  #dandanTable .dandanCard{
    width:74px!important;
    min-width:74px!important;
    height:104px!important;
    min-height:104px!important;
  }
  #dandanTable .dandanCard .handArt{
    width:74px;
    height:104px;
    min-height:104px;
    object-fit:contain;
  }
  #dandanTable .dandanActions{
    position:absolute;
    left:0;right:0;bottom:4px;
    height:34px;
    z-index:22;
    margin:0;
  }
  #dandanTable .dandanLog{bottom:174px}
}


/* v1.1.16 — one-time account promo codes */
.promoPanel{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,.8fr);gap:18px;align-items:center;margin:14px 0}
.promoRedeem{display:flex;gap:8px;align-items:center}.promoRedeem input{text-transform:uppercase;letter-spacing:2px;font-weight:800;min-width:0;flex:1}
.promoHistory{grid-column:1/-1;display:grid;gap:6px}.promoHistoryRow{display:grid;grid-template-columns:minmax(110px,.45fr) 1fr auto;gap:12px;padding:8px 10px;border:1px solid rgba(176,150,92,.24);border-radius:8px;background:rgba(6,16,12,.32);align-items:center}.promoHistoryRow small{opacity:.7}
@media(max-width:760px){.promoPanel{grid-template-columns:1fr}.promoHistoryRow{grid-template-columns:1fr}.promoRedeem{align-items:stretch;flex-direction:column}}

/* v1.1.31 — Land Tax playmat direct-art hotfix */
.playmatShelf{margin:18px 0 22px;padding:16px;border:1px solid rgba(176,150,92,.28);border-radius:14px;background:rgba(9,20,15,.45)}
.sectionHead.compact{margin-bottom:12px}.sectionHead.compact h3{margin:2px 0}.sectionHead.compact p{margin:3px 0;color:#aebaae}
.playmatGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.playmatShopCard{overflow:hidden;border:1px solid #4c594d;border-radius:12px;background:#101a14;box-shadow:0 7px 18px #0005}
.playmatShopCard.equipped{outline:2px solid #d1aa55;box-shadow:0 0 0 3px #3d321b,0 10px 24px #0008}
.playmatPreview{height:140px;position:relative;display:flex;align-items:flex-end;padding:9px 12px;box-sizing:border-box;border-bottom:1px solid #4c594d;overflow:hidden;background-attachment:scroll!important}
.playmatPreview:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 0%,rgba(0,0,0,.08) 42%,rgba(2,5,4,.82) 100%);pointer-events:none}
.playmatPreview:after{content:"CARD ART";position:absolute;right:8px;top:8px;padding:3px 6px;border-radius:5px;background:rgba(0,0,0,.58);color:#e9dfbf;font-size:8px;font-weight:800;letter-spacing:1px;opacity:.8}
.playmatPreview[data-playmat="classic"]:after{content:"CLASSIC"}
.playmatPreview span{position:relative;z-index:1;font-weight:900;letter-spacing:1px;text-shadow:0 2px 5px #000}
.playmatShopInfo{padding:10px;display:flex;gap:10px;justify-content:space-between;align-items:flex-end}.playmatShopInfo>div:first-child{min-width:0}.playmatShopInfo b,.playmatShopInfo small{display:block}.playmatShopInfo small{margin-top:3px;color:#9eaa9f}.playmatShopActions{display:flex;flex-direction:column;gap:5px;align-items:flex-end;flex:0 0 auto}.playmatShopActions strong{color:#e2c982;font-size:12px}
[data-playmat="classic"]{--playmat-art:none;--playmat-bg:radial-gradient(circle at 50% 45%,#506347 0%,#263a2c 42%,#0c1510 100%);--playmat-focus:center}
[data-playmat="lotus_bloom"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Black%20Lotus&set=lea&format=image&version=art_crop");--playmat-bg:radial-gradient(ellipse at 50% 47%,rgba(88,44,112,.82),rgba(20,8,29,.92) 48%,#07070b 100%);--playmat-focus:center 46%}
[data-playmat="sapphire_depths"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Mox%20Sapphire&set=lea&format=image&version=art_crop");--playmat-bg:linear-gradient(135deg,#07172e,#123c64 50%,#050d1a);--playmat-focus:center 48%}
[data-playmat="shivan_inferno"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Shivan%20Dragon&set=lea&format=image&version=art_crop");--playmat-bg:linear-gradient(155deg,#160909,#4b1711 44%,#140a09 70%);--playmat-focus:center 42%}
[data-playmat="serra_skies"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Serra%20Angel&set=lea&format=image&version=art_crop");--playmat-bg:linear-gradient(180deg,#728c9b 0%,#c4c8b4 45%,#68766f 100%);--playmat-focus:center 40%}
[data-playmat="nightmare_void"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Nightmare&set=lea&format=image&version=art_crop");--playmat-bg:linear-gradient(150deg,#040506,#18121d 52%,#08060b);--playmat-focus:center 43%}
[data-playmat="chaos_orb"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Chaos%20Orb&set=lea&format=image&version=art_crop");--playmat-bg:radial-gradient(circle,#65451f,#100e0a 62%);--playmat-focus:center 47%}
[data-playmat="land_tax"]{--playmat-art:url("https://cards.scryfall.io/art_crop/front/d/5/d53b20b0-67bc-4587-817b-efbf21cb2512.jpg");--playmat-bg:linear-gradient(180deg,#ecd8aa,#c8ad76 58%,#8a713f);--playmat-focus:center 46%}
[data-playmat="demonic_attorney"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Demonic%20Attorney&set=lea&format=image&version=art_crop");--playmat-bg:radial-gradient(circle at 50% 42%,#3e3135,#171012 58%,#070607 100%);--playmat-focus:center 44%}
[data-playmat="mox_emerald"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Mox%20Emerald&set=lea&format=image&version=art_crop");--playmat-bg:radial-gradient(circle at 50% 46%,#42613b,#172b17 54%,#071008 100%);--playmat-focus:center 47%}
[data-playmat="deathgrip"]{--playmat-art:url("https://api.scryfall.com/cards/named?exact=Deathgrip&set=lea&format=image&version=art_crop");--playmat-bg:radial-gradient(circle at 50% 44%,#4b3b36,#1a1110 58%,#070606 100%);--playmat-focus:center 44%}
.storyBattle[data-playmat],#dandanTable[data-playmat],.playmatPreview[data-playmat]{background-image:linear-gradient(180deg,rgba(3,7,5,.28),rgba(2,5,4,.56)),var(--playmat-art),var(--playmat-bg)!important;background-color:#0c1510!important;background-size:cover!important;background-position:center,var(--playmat-focus,center),center!important;background-repeat:no-repeat!important}
.storyBattle[data-playmat]:not([data-playmat="classic"]),#dandanTable[data-playmat]:not([data-playmat="classic"]){box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),inset 0 0 110px rgba(0,0,0,.34)}
.storyBattle[data-playmat]{background-attachment:fixed,fixed,fixed}
#dandanTable[data-playmat]{background-attachment:fixed,fixed,fixed}
@media(max-width:720px){.playmatGrid{grid-template-columns:1fr}.playmatShopInfo{align-items:flex-start;flex-direction:column}.playmatShopActions{align-items:flex-start;flex-direction:row}.playmatPreview{height:165px}.storyBattle[data-playmat],#dandanTable[data-playmat]{background-attachment:scroll,scroll,scroll}}


/* v1.1.19 — Donate tab */
.donateWrap{max-width:820px;margin:42px auto;padding:0 12px}.donatePanel{padding:30px;line-height:1.7}.donatePanel h2{font-size:32px;margin:6px 0 16px}.donatePanel p{font-size:16px;color:#d5ddd6}.donatePanel p b{color:#e5cb7b;white-space:nowrap}.cashappTag{margin:24px 0 16px;padding:18px 20px;border:1px solid rgba(208,176,94,.5);border-radius:12px;background:rgba(32,42,31,.7);display:flex;justify-content:space-between;align-items:center;gap:16px;letter-spacing:1px}.cashappTag strong{font-size:22px;color:#e7cf85}.donatePanel small{display:block;color:#9ea99f;line-height:1.5}@media(max-width:620px){.donateWrap{margin:20px auto}.donatePanel{padding:20px}.donatePanel h2{font-size:26px}.cashappTag{align-items:flex-start;flex-direction:column}.cashappTag strong{font-size:19px}}


/* v1.1.22 — Community Feedback */
.feedbackLayout{display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(300px,.95fr);gap:16px;align-items:start}.feedbackForm{display:grid;gap:12px}.feedbackForm label{display:grid;gap:6px;font-size:11px;letter-spacing:.7px;color:#b6c0b8}.feedbackForm input,.feedbackForm select,.feedbackForm textarea{width:100%;box-sizing:border-box}.feedbackForm textarea{resize:vertical;min-height:160px;line-height:1.45}.feedbackActions{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.feedbackActions small{max-width:520px;color:#929e95;line-height:1.45}.feedbackHistory{display:grid;gap:9px;max-height:620px;overflow:auto}.feedbackHistoryRow{border:1px solid #3b493f;border-radius:9px;background:#101713;padding:11px;display:grid;grid-template-columns:1fr auto;gap:5px 12px}.feedbackHistoryRow b,.feedbackHistoryRow small{display:block}.feedbackHistoryRow small{color:#8f9b92;margin-top:3px}.feedbackHistoryRow p{grid-column:1/-1;margin:6px 0 0;color:#c7d0c9;white-space:pre-wrap;overflow-wrap:anywhere}.feedbackState{font-size:9px;letter-spacing:1px;border:1px solid #637368;border-radius:999px;padding:4px 7px;height:max-content;color:#bec9c1}.feedbackForm .msg{min-height:18px;margin:0}@media(max-width:850px){.feedbackLayout{grid-template-columns:1fr}.feedbackActions{align-items:stretch;flex-direction:column}.feedbackActions button{width:100%}}

/* v1.2.0 Story Expansion */
.storyActHead{grid-column:1/-1;margin:22px 0 2px;padding:18px 20px;border-top:1px solid rgba(224,180,91,.45);border-bottom:1px solid rgba(224,180,91,.2);background:linear-gradient(90deg,rgba(20,35,27,.9),rgba(20,35,27,.35),transparent)}
.storyActHead h2{margin:3px 0 4px;letter-spacing:.06em}.storyActHead p{margin:0;opacity:.78}.storyBoss{box-shadow:inset 0 0 0 1px rgba(224,180,91,.28)}.storyBoss .storyBadge{font-weight:800}.bossRule{margin:10px 0;padding:8px 10px;border-left:3px solid #d8a84e;background:rgba(0,0,0,.18);font-size:.82rem;letter-spacing:.025em}

/* v1.2.5 — opt-in Alpha Ante tables */
.anteDanger{background:linear-gradient(180deg,#7f2e2a,#551c1a)!important;border-color:#b75b50!important;color:#fff0d5!important;box-shadow:inset 0 0 0 1px #d57a6855,0 5px 15px #0005}.anteDanger:hover{filter:brightness(1.12)}
.anteNotice{display:flex;gap:14px;align-items:center;margin:-2px 0 16px;padding:11px 14px;border:1px solid #9d4c43;border-radius:10px;background:linear-gradient(90deg,rgba(100,31,27,.42),rgba(48,20,17,.36));color:#e7d8c5}.anteNotice b{flex:0 0 auto;color:#ffb39d;letter-spacing:1px}.anteNotice span{font-size:12px;line-height:1.45}
.anteTable{border-color:#944b43!important;background:linear-gradient(90deg,rgba(92,30,27,.32),rgba(13,24,18,.86))!important}.anteBadge{display:inline-block;margin-left:7px;padding:2px 6px;border:1px solid #a8584e;border-radius:999px;background:#54201d;color:#ffc0aa;font-size:9px;letter-spacing:1px;font-weight:900}.anteTable small{color:#d8b0a5!important}.anteWarning{margin:12px 0;padding:12px;border:1px solid #a65449;border-radius:9px;background:rgba(95,29,25,.35);color:#f0d5ca;line-height:1.5}.anteWarning b{color:#ffb39d}
.antePanel{margin:0 auto 7px;max-width:760px;padding:7px 10px;border:1px solid #9d5147;border-radius:8px;background:rgba(73,20,18,.78);box-shadow:0 3px 12px #0006;color:#f0d7cb;text-align:center;font-size:11px;line-height:1.35}.antePanel b{color:#ffad97;letter-spacing:1px}.antePotCards{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:4px}.anteChip{padding:3px 7px;border-radius:999px;border:1px solid #83443e;background:#291512}.anteChip strong{color:#f5dfcc}.anteResult{margin:14px auto;padding:12px;max-width:680px;border:1px solid #a8564b;border-radius:10px;background:rgba(91,28,24,.38)}.anteResult b{color:#ffb29d}.anteResult small{display:block;margin-top:5px;color:#d8c0b8}
@media(max-width:700px){.anteNotice{align-items:flex-start;flex-direction:column}.anteNotice b{font-size:12px}.antePanel{font-size:10px}}

/* v1.2.7 — Public Trade Center */
.tradePanelHead{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.tradePanelHead h3{margin:0}.tradePanelHead small,.tradeFinePrint{color:#8f9d92}.tradeFinePrint{display:block;margin-top:12px;line-height:1.45}.tradeHistoryPanel{margin-top:16px}.marketOffer{border-color:#665b3f;background:linear-gradient(135deg,#171c15,#1c1911)}.marketOffer strong{color:#e6c777}.tradeEmpty{padding:34px 16px;border:1px dashed #526154;border-radius:9px;text-align:center;color:#9eaa9f}.tradeEmpty b,.tradeEmpty span{display:block}.tradeEmpty span{margin-top:6px;font-size:12px}.tradeStatus.pending{color:#e5c87f;border-color:#8d7848;background:#272313}


/* v1.3.1 — persistent large spell-on-stack preview */
.stackPanel:not(.hidden){
  width:300px!important;
  max-height:min(72vh,620px)!important;
  overflow:auto!important;
  padding:10px!important;
  background:#0b120ff5!important;
  border-color:#8a7447!important;
  box-shadow:0 16px 46px #000d!important;
}
.stackPreviewEyebrow{font-size:9px;letter-spacing:1.7px;font-weight:900;color:#e1bd69;text-align:center;margin:0 0 7px}
.stackPreviewCard{display:flex;justify-content:center;align-items:center;margin:0 auto 8px}
.stackPreviewCard img{display:block;width:min(238px,100%);height:auto;aspect-ratio:488/680;object-fit:contain;border-radius:10px;box-shadow:0 10px 28px #000c;border:1px solid #6f6246}
.stackPreviewFallback{width:220px;aspect-ratio:488/680;border:1px solid #76684a;border-radius:10px;background:linear-gradient(145deg,#2b2419,#0b100d);display:flex;align-items:center;justify-content:center;text-align:center;padding:14px;box-sizing:border-box;font-weight:900;color:#ead699}
.stackPreviewMeta{border-top:1px solid #4b4533;padding-top:7px;color:#d9e0d9}
.stackPreviewMeta>div:first-child{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.stackPreviewMeta strong{font-size:15px;color:#fff1c5}
.stackPreviewMeta small{display:block;margin-top:2px;color:#aab5ac}
.stackPreviewCost,.stackPreviewX{font-size:10px;border:1px solid #5d5948;border-radius:999px;padding:2px 5px;background:#171c16;color:#e7d49e}
.stackPreviewType{margin-top:6px;font-size:10px;color:#bdb08a;font-style:italic}
.stackPreviewText{margin-top:6px;padding:7px 8px;border-radius:7px;background:#111a15;border:1px solid #334238;font-size:11px;line-height:1.35;white-space:pre-line;color:#dfe6df}
.stackQueueTitle{margin-top:9px;padding-top:7px;border-top:1px solid #4b4533;font-size:8px;letter-spacing:1.4px;color:#a99a70;font-weight:900}
.stackTopItem{color:#f0daa0}
@media (min-width:851px){
  .storyBattle .stackPanel:not(.hidden){left:12px!important;top:88px!important}
  .storyBattle .priorityBanner:not(.hidden){left:324px!important;top:96px!important;width:270px!important}
  .storyBattle #blockPanel:not(.hidden){left:324px!important}
}
@media (max-width:850px){
  .stackPanel:not(.hidden){position:relative!important;left:auto!important;top:auto!important;width:min(320px,94vw)!important;max-height:52vh!important;margin:8px auto!important}
  .stackPreviewCard img{width:min(205px,72vw)}
}

/* v1.4.0 Proxy Mode */
.proxyBtn{background:linear-gradient(#4c4a82,#302e5e);border-color:#8d89d0;color:#f0efff}.proxyBadge{display:inline-block;margin-left:7px;padding:2px 6px;border:1px solid #817bc7;border-radius:999px;background:#322f63;color:#d9d6ff;font-size:9px;letter-spacing:1px;font-weight:900}.proxyDeckRow,.proxyTable{border-color:#655fa2!important;background:linear-gradient(90deg,rgba(54,49,111,.3),rgba(13,24,18,.86))!important}.proxyTable small{color:#c7c4ef!important}.proxyNotice,.proxyWarning{margin:12px 0;padding:12px;border:1px solid #6962aa;border-radius:9px;background:rgba(48,45,99,.32);color:#dddafa;line-height:1.5}.proxyNotice{display:flex;gap:14px;align-items:center}.proxyNotice b,.proxyWarning b{color:#c9c5ff}.proxyNotice span{color:#bbb8dd}.proxyImport{margin:14px 0;padding:13px;border:1px solid #5e598d;border-radius:9px;background:#12152a}.proxyImport b,.proxyImport small{display:block}.proxyImport small{margin:4px 0 9px;color:#a9a6cf}.proxyImport textarea{width:100%;resize:vertical;min-height:120px;background:#0b0d19;color:#f4f0ff;border:1px solid #55527e;border-radius:7px;padding:10px;font-family:monospace;margin-bottom:8px}.proxyDeckCard{border-color:#514d82}.realDeckBadge{display:inline-block;padding:2px 6px;border:1px solid #5f735f;border-radius:999px;color:#b9d1b9;font-size:9px;letter-spacing:1px}

/* v1.4.5 — account access gate */
#accessGate{max-width:520px;margin:9vh auto;padding:28px;display:flex;flex-direction:column;gap:14px}
#accessGate.hidden{display:none}
#accessGate input{font-size:1rem;padding:14px}
#accessGate #accessLogoutBtn{margin-top:4px}

/* v1.5.1 — cumulative Patreon rewards */
.playmatShopCard .patreonBadge{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.08em;padding:3px 6px;border:1px solid currentColor;border-radius:999px;margin-left:6px}

/* v1.6.0 — Sealed Alpha Booster Vault */
.sealedPackVault{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(320px,1fr) auto;gap:18px;align-items:center;margin:0 0 18px}.sealedPackVault h3{margin:.2rem 0}.sealedPackVault p{margin:.35rem 0}.sealedPackStats{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:8px}.sealedPackStats span{display:flex;flex-direction:column;padding:10px 12px;border:1px solid rgba(210,178,103,.28);background:rgba(0,0,0,.22);border-radius:8px}.sealedPackStats b{font-size:1.05rem}.sealedPackStats small{opacity:.72;margin-top:3px}.sealedPackVault>.rowActions{display:flex;flex-direction:column;gap:8px;min-width:170px}.sealedPackVault>small{grid-column:1/-1;opacity:.72}@media(max-width:900px){.sealedPackVault{grid-template-columns:1fr}.sealedPackVault>.rowActions{flex-direction:row}.sealedPackVault>small{grid-column:auto}}

/* v1.6.1 — Factory-sealed Alpha booster boxes */
.sealedBoxVault{margin-top:14px;border-style:double}
.sealedBoxVault h3{letter-spacing:.04em}
.sealedBoxVault .rowActions{flex-wrap:wrap}


/* v1.6.20 — combat clarity / unobstructed combat trick window */
.battleCard.combatAttacker img{outline:3px solid #d98a3a;outline-offset:2px;box-shadow:0 0 0 2px #2b1708,0 5px 16px #000c}
.battleCard.combatAttacker.combatBlocked img{outline-color:#d75a4e}
.battleCard.combatBlocker img{outline:3px solid #69a7da;outline-offset:2px;box-shadow:0 0 0 2px #091a29,0 5px 16px #000c}
.battleCard.combatBlocker.combatAttacker img{outline-color:#bb78da}
.combatBadge{position:absolute;z-index:8;left:50%;top:-13px;transform:translateX(-50%);max-width:112px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#0a1110ee;border:1px solid #e1bf70;border-radius:999px;padding:2px 5px;font-size:7px;font-weight:900;letter-spacing:.35px;color:#fff0ba;pointer-events:none;box-shadow:0 3px 8px #000a}
.combatBlocker .combatBadge{border-color:#75b9e9;color:#ccecff}
.combatAssignments{display:grid;gap:5px;margin:7px 0}.combatAssignment{display:grid;grid-template-columns:minmax(70px,1fr) minmax(100px,1.35fr);gap:7px;align-items:center;padding:6px 7px;border:1px solid #45584b;border-radius:7px;background:#0d1612}.combatAssignment b{font-size:11px;color:#f1d899;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combatAssignment span{font-size:10px;color:#c9d6cc}.combatAssignment.unblocked span{color:#efb06f;font-weight:900}.combatAssignment.blocked{border-color:#486c7f}.combatQuiet{display:none!important}.combatSuppressed{display:none!important}
@media (min-width:851px){
  /* Stack stays on the left; combat/priority decisions live on the far right. */
  .storyBattle .priorityBanner:not(.hidden){left:auto!important;right:12px!important;top:88px!important;width:282px!important;max-width:282px!important}
  .storyBattle #blockPanel:not(.hidden){left:auto!important;right:12px!important;top:142px!important;width:282px!important;max-height:360px!important}
  .storyBattle .combatClarity .stackPanel:not(.hidden){left:12px!important;right:auto!important}
  .storyBattle .combatClarity .battleRow{scrollbar-width:thin}
}
@media (max-width:850px){
  .combatBadge{top:-10px;font-size:6px;max-width:92px}
  .combatAssignments{max-height:145px;overflow:auto}
}

/* Act III — The Regional */
.regionalActHead{background:linear-gradient(90deg,rgba(71,48,24,.96),rgba(30,42,30,.72),transparent);border-top-color:rgba(225,174,76,.8)}
.regionalStats{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.regionalStats span{min-width:105px;padding:9px 12px;border:1px solid rgba(215,174,89,.35);background:#0d1712;border-radius:7px}.regionalStats b,.regionalStats small{display:block}.regionalStats b{color:#f3d995}.regionalStats small{font-size:9px;letter-spacing:1.4px;color:#9eab9f;margin-top:2px}
.regionalBracket{display:grid;gap:5px;margin-top:12px;max-width:760px}.regionalBracketRow{display:grid;grid-template-columns:120px 1fr 80px;gap:10px;align-items:center;padding:8px 11px;border-left:3px solid #425246;background:rgba(7,13,9,.46);font-size:12px}.regionalBracketRow span{letter-spacing:1px;color:#9da89e}.regionalBracketRow em{text-align:right;font-style:normal;color:#78857c}.regionalBracketRow.current{border-left-color:#e0b45b;background:rgba(92,67,29,.25)}.regionalBracketRow.current em,.regionalBracketRow.cleared em{color:#e0c16f}.regionalBracketRow.cleared{border-left-color:#718f63}.storyRegional{background-image:linear-gradient(145deg,rgba(38,38,25,.96),rgba(13,25,19,.99))}.storyRegional:not(.locked){box-shadow:0 0 0 1px rgba(215,174,89,.18),0 16px 40px #0007}.storyQuote{margin:10px 0;padding:10px 12px;border-left:3px solid #8e7546;background:#0d171280;color:#d8ccb4;font-style:italic;line-height:1.4}
@media(max-width:600px){.regionalBracketRow{grid-template-columns:85px 1fr 58px;font-size:10px}.regionalStats span{min-width:90px}}

/* v1.7.6 Degenerate Mode */
.degenerateBtn{background:linear-gradient(135deg,#4b1720,#271017);border-color:#a94a59;color:#ffd7dc;text-shadow:0 1px #000}.degenerateBtn:hover:not(:disabled){box-shadow:0 0 18px rgba(188,68,88,.32)}.degenerateEyebrow{color:#ef7b8d}.degeneratePull{position:relative}.degeneratePull small{display:block;margin-top:4px}.degeneratePull small b{color:#f0c568}.degeneratePulls{max-height:680px;overflow:auto;padding-right:4px}

/* v1.7.8 Binder bulk selling */
.binderSellControls{display:grid;grid-template-columns:minmax(72px,.65fr) 1.35fr;gap:8px;align-items:end;margin-top:8px}.binderSellControls label{display:flex;flex-direction:column;gap:4px;font-size:.72rem;font-weight:800;letter-spacing:.06em}.binderSellControls input{width:100%;box-sizing:border-box;padding:9px 7px;border-radius:7px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.28);color:inherit}.binderSellControls button{min-height:38px}

/* v1.8.0 Act IV — The Hunted */
.huntedActHead{background:linear-gradient(90deg,rgba(77,24,29,.95),rgba(30,24,33,.78),transparent);border-top-color:rgba(194,79,92,.78);border-left:4px solid #b3564e;padding-left:16px}
.storyHunted{background-image:linear-gradient(145deg,rgba(45,20,24,.96),rgba(16,17,22,.99));border-color:#6e454a}.storyHunted:not(.locked){box-shadow:0 0 0 1px rgba(197,82,95,.18),0 16px 40px #0007}.storyHunted .storyBadge{color:#efb0ad}.storyHunted .bossRule{border-color:rgba(199,88,97,.45)}

/* v1.9.0 Tower X */
.towerXActHead{background:radial-gradient(circle at 50% -20%,rgba(180,72,255,.25),transparent 52%),linear-gradient(135deg,rgba(31,12,45,.98),rgba(8,12,24,.98));border-color:rgba(194,108,255,.55)}
.storyTowerX{background-image:radial-gradient(circle at 70% 0,rgba(177,64,255,.18),transparent 46%),linear-gradient(145deg,rgba(28,10,39,.98),rgba(8,15,24,.99));box-shadow:inset 0 0 0 1px rgba(198,110,255,.32),0 0 28px rgba(120,40,180,.08)}
.storyTowerX .storyBadge{border-color:rgba(208,138,255,.7);color:#e6c4ff}.storyTowerX h3{letter-spacing:.08em}.towerXStats{grid-template-columns:repeat(4,minmax(0,1fr))}.towerXRule{border-left-color:#bd65ef;background:rgba(95,30,128,.13)}
@media(max-width:760px){.towerXStats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.9.3 — Patreon tab replaces legacy Donation tab */
.patreonWrap{max-width:820px;margin:42px auto;padding:0 12px}.patreonPanel{padding:30px;line-height:1.7}.patreonPanel h2{font-size:32px;margin:6px 0 16px}.patreonPanel p{font-size:16px;color:#d5ddd6}.patreonLink{display:inline-block;text-decoration:none;padding:13px 18px;margin:18px 0 16px}.patreonPanel small{display:block;color:#9ea99f;line-height:1.5}@media(max-width:620px){.patreonWrap{margin:20px auto}.patreonPanel{padding:20px}.patreonPanel h2{font-size:26px}.patreonLink{display:block;text-align:center}}

/* v1.9.4 — Black Vise multi-copy upkeep triggers */

/* v2.0.0 — Invitational */
.inviteActHead{border-color:#d5b66b;background:linear-gradient(135deg,rgba(102,72,20,.34),rgba(20,17,13,.86))}.storyInvite{box-shadow:inset 0 0 0 1px rgba(213,182,107,.18)}.seriesMini{display:flex;flex-direction:column;gap:3px;padding:9px 11px;margin:10px 0;border:1px solid rgba(213,182,107,.35);background:rgba(0,0,0,.22)}.seriesMini small{opacity:.78}.careerStrip{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.careerStrip span{min-width:110px;padding:9px;border:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column}.careerStrip small{opacity:.65;font-size:.68rem}.deckRecordList{margin-bottom:8px}

.seriesResult{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:10px;margin:8px 0 14px;border:1px solid rgba(213,182,107,.35);background:rgba(0,0,0,.24)}.seriesResult span{font-size:1.05rem}.seriesResult small{opacity:.7}
/* v2.0.1 — Story act section layout hotfix */
.storyGrid{display:block}
.storyActSection{display:block;margin:0 0 30px}
.storyActSection .storyActHead{margin:22px 0 14px}
.storyActCards{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px}
.storyActSectionInvite{border-top:2px solid rgba(213,182,107,.28);padding-top:2px}
@media(max-width:600px){.storyActCards{grid-template-columns:1fr}}

/* v2.0.8 Friends + Leaderboards */
.inlineForm{display:flex;gap:10px;align-items:center}.inlineForm input{flex:1}.friendGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.friendCard{border:1px solid rgba(255,255,255,.14);padding:14px;border-radius:10px;display:flex;justify-content:space-between;gap:12px;align-items:center}.friendCard small{display:block;margin-top:5px}.tradeSides{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tradeSides>div{border:1px solid rgba(255,255,255,.12);padding:10px;border-radius:8px}.leaderboardGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.leaderRow{display:grid;grid-template-columns:45px 1fr auto;gap:8px;padding:9px;border-bottom:1px solid rgba(255,255,255,.09);align-items:center}.leaderRow.leader{font-size:1.08em;border:1px solid rgba(255,215,0,.35);border-radius:8px;margin:4px 0 8px}.leaderRow em{font-style:normal;font-size:.72em;padding:3px 7px;border-radius:999px;background:rgba(255,215,0,.15)}.leaderboardTitle{box-shadow:0 0 12px rgba(255,215,0,.25);border-color:rgba(255,215,0,.55)}@media(max-width:700px){.tradeSides{grid-template-columns:1fr}.friendCard{align-items:flex-start;flex-direction:column}.leaderboardGrid{grid-template-columns:1fr}}

/* v2.1.0 leaderboard podium */
.leaderRow.podium2{font-size:1.03em}.leaderRow.podium3{font-size:1.01em}.leaderRow.podium2 em,.leaderRow.podium3 em{font-weight:700}

/* v2.1.0 player progression */
.levelPanel{margin:12px 0 14px;padding:12px;border:1px solid #47544a;background:#0f1612;border-radius:8px}.levelLine{display:flex;justify-content:space-between;gap:12px;align-items:center}.levelLine b{letter-spacing:1.5px;color:#ead28a}.levelLine span,.levelPanel small{color:#9ba69e;font-size:11px}.xpTrack{height:10px;margin:8px 0;background:#222d25;border:1px solid #445148;border-radius:999px;overflow:hidden}.xpTrack i{display:block;height:100%;background:linear-gradient(90deg,#8c7135,#e1bd61);transition:width .25s ease}.playerTitle.mythic{border-color:#b46940;color:#ffd1a8;background:#29160f;box-shadow:0 0 12px rgba(217,126,70,.2)}


/* v2.1.1 — Home Dashboard + navigation cleanup */
.mainNav{position:sticky;top:0;z-index:8;padding:7px;background:rgba(10,16,13,.94);backdrop-filter:blur(10px);border:1px solid #39483d;border-radius:10px;overflow:visible;margin-bottom:8px}.mainNav button{flex:1;min-width:110px}.mainNav button.menuOpen{border-color:#8f7441;color:#e8ca82;background:#2b281b}.navDrawer{position:relative;z-index:7;margin:-1px 0 18px;padding:8px;background:#101914;border:1px solid #3d4b40;border-radius:0 0 10px 10px;box-shadow:0 12px 25px #0008}.navDrawer>div{display:flex;gap:8px;flex-wrap:wrap}.navDrawer button{min-width:145px}.homeDashboard{padding-bottom:18px}.homeHero{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:28px;background:radial-gradient(circle at 82% 20%,rgba(167,126,54,.13),transparent 32%),linear-gradient(145deg,rgba(32,48,39,.98),rgba(16,26,21,.98))}.homeHero h2{font-size:34px;margin:5px 0 8px}.homeHero p{max-width:780px;color:var(--muted);line-height:1.55}.homeHeroActions{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px}.homeSign{display:grid;gap:2px;min-width:142px}.homeSign small{display:block;font-size:8px;margin-top:3px}.homeSnapshot{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:12px}.homeStat{padding:14px 15px;min-height:92px;display:flex;flex-direction:column;justify-content:center}.homeStat small{color:#86958a;font-size:8px;letter-spacing:1.6px}.homeStat b{font-size:23px;color:#f0d58e;margin:5px 0 2px}.homeStat span{font-size:8px;color:#78877d;letter-spacing:.8px}.alphaSupplyStat{border-color:#8f7441;background:linear-gradient(145deg,#2a2819,#151b16)}.homeMainGrid{display:grid;grid-template-columns:1.5fr .8fr;gap:12px;margin-top:12px}.homeContinue,.homeEra{min-height:155px}.homeContinue h3,.homeEra h3{margin:3px 0 7px;color:#e7ce91}.homeEra p{color:var(--muted);font-size:12px;line-height:1.5}.homeDeckFocus{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#0e1712;border:1px solid #35443a;padding:14px;border-radius:9px}.homeDeckFocus>div:first-child{display:grid;gap:4px}.homeDeckFocus small{font-size:8px;letter-spacing:1.4px;color:#89978d}.homeDeckFocus b{font-size:20px;color:#f0dfba}.homeDeckFocus span{font-size:10px;color:#8d9a91}.homeSectionTitle{margin:22px 3px 9px}.homeSectionTitle h3{margin:3px 0;font-size:22px}.homeLaunchGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.homeLaunch{min-height:104px;text-align:left;display:flex;align-items:center;gap:14px;padding:16px;border-radius:11px;background:linear-gradient(145deg,#1b2922,#101a15);border:1px solid #405146}.homeLaunch>span{font-size:28px;width:38px;text-align:center}.homeLaunch div{display:grid;gap:5px}.homeLaunch b{color:#ecd18d;letter-spacing:1.1px}.homeLaunch small{font-weight:normal;color:#96a299;line-height:1.3}.homeLaunch:hover{transform:translateY(-1px);border-color:#8a7448}.homeLaunch.play{border-left:3px solid #9a6647}.homeLaunch.collection{border-left:3px solid #54775a}.homeLaunch.social{border-left:3px solid #526f8e}.homeLaunch.compete{border-left:3px solid #8c7041}.homeLaunch.shop{border-left:3px solid #7f5d79}.homeLaunch.profile{border-left:3px solid #747474}@media(max-width:1050px){.homeSnapshot{grid-template-columns:repeat(3,1fr)}.homeLaunchGrid{grid-template-columns:repeat(2,1fr)}.homeMainGrid{grid-template-columns:1fr}.mainNav{overflow-x:auto;position:static}.mainNav button{flex:0 0 auto}}@media(max-width:650px){.homeHero{align-items:flex-start;flex-direction:column;padding:18px}.homeHero h2{font-size:27px}.homeSign{display:none}.homeSnapshot{grid-template-columns:repeat(2,1fr)}.homeLaunchGrid{grid-template-columns:1fr}.homeDeckFocus{align-items:flex-start;flex-direction:column}.navDrawer>div{display:grid;grid-template-columns:1fr 1fr}.navDrawer button{min-width:0;width:100%}.topbar{align-items:flex-start;gap:8px}.miniStats{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.miniStats span{border-right:0;border-bottom:1px solid #344239}}

/* v2.2.0 identity + utility hubs */
.topbarActions{display:flex;gap:8px;align-items:center}.notificationBtn{position:relative;min-width:48px}.notificationBadge{position:absolute;right:-5px;top:-8px;background:#d44;color:#fff;border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;font-size:11px;padding:0 4px}.playerPfp{width:54px;height:54px;border-radius:50%;object-fit:cover;object-position:center;border:2px solid rgba(255,255,255,.25);background:#171411;flex:0 0 auto}.playerPfp.hero{width:96px;height:96px;border-width:3px}.playerPfp.small{width:42px;height:42px}.playerPfp.picker{width:72px;height:72px}.playerPfp.fallback{display:grid;place-items:center;font-family:Georgia,serif;font-weight:900;color:#d7b46a}.profileIdentity,.friendIdentity{display:flex;gap:14px;align-items:flex-start}.profileIdentity>div:last-child{flex:1}.pfpPicker{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;max-height:60vh;overflow:auto}.pfpChoice{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px}.pfpChoice.selected{outline:2px solid #d7b46a}.presence{font-weight:800}.presence.online{color:#71d68b}.presence.table{color:#ffca63}.presence.story{color:#a98cff}.presence.draft,.presence.tournament{color:#69b7ff}.presence.offline{opacity:.6}.notificationCenter{display:grid;gap:8px}.notificationItem{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:10px}.notificationItem.unread{border-color:#d7b46a;background:rgba(215,180,106,.07)}.notificationItem small{display:block;margin-top:4px}.achievementSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:15px}.achievementFilters{display:flex;gap:8px;flex-wrap:wrap}.achievementFilters button.active{border-color:#d7b46a;color:#f0d59d}.achievementHubGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.achievementHubCard{display:flex;gap:12px;padding:15px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(0,0,0,.18)}.achievementHubCard.locked{opacity:.55}.achievementHubCard.unlocked.legendary{border-color:#d7b46a}.achievementHubCard.unlocked.epic{border-color:#a98cff}.achievementIcon{font-size:28px}.achievementHubCard small{display:block;margin:3px 0}.serverStatsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:15px}.serverStat b{display:block;font-size:26px;margin-top:5px}.alphaEraProgress .big{height:18px}.alphaEraNumbers{display:flex;justify-content:space-between;gap:12px;margin-top:9px}.settingsGrid{display:grid;gap:12px;margin-bottom:14px}.settingCard{display:flex;justify-content:space-between;gap:20px;align-items:center}.switch input{width:22px;height:22px}.deckSearchBar{margin:10px 0}.deckSearchBar input{width:min(520px,100%)}body.reducedMotion *,body.reducedMotion *::before,body.reducedMotion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.compactCards .cardGrid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}body.compactCards #deckCards .deckRow{padding:6px}body.largeText{font-size:18px}@media(max-width:720px){.achievementSummary{grid-template-columns:1fr}.notificationItem,.alphaEraNumbers{align-items:flex-start;flex-direction:column}.profileIdentity{flex-direction:column}}


/* v2.3.0 — cinematic Alpha booster opening + game-feel audio */
.packOpeningOverlay{position:fixed;inset:0;z-index:1000;background:radial-gradient(circle at 50% 42%,rgba(112,79,31,.23),rgba(1,4,2,.94) 48%,#000 100%);display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}
.packOpeningStage{position:relative;width:min(980px,96vw);max-height:94vh;overflow:auto;text-align:center;padding:26px;border:1px solid #715b32;border-radius:16px;background:linear-gradient(145deg,#16231b,#080d0a);box-shadow:0 28px 90px #000,0 0 55px rgba(209,166,77,.12)}
.packOpeningStage h2{font-size:32px;margin:5px 0 12px;color:#edd18a}.packClose{position:absolute;right:12px;top:12px;min-width:42px;font-size:22px}.packScene{height:385px;display:grid;place-items:center;perspective:900px}.alphaPack{position:relative;width:230px;height:340px;border-radius:10px;background:linear-gradient(155deg,#1a1710,#6b542f 35%,#18150f 68%,#87704b);border:2px solid #b99b5a;box-shadow:0 25px 42px #000b,0 0 0 5px #111,0 0 35px rgba(224,186,100,.18);overflow:hidden;transform:rotate(-2deg)}
.packFace{position:absolute;inset:28px 13px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(232,205,145,.55);background:radial-gradient(circle at 50% 32%,#65522d,#211c12 65%);font-family:Georgia,serif}.packFace:before{content:'◆';font-size:48px;color:#d5b96c;margin-bottom:10px;text-shadow:0 0 18px #d5b96c55}.packFace small{letter-spacing:3px;color:#d8c79c}.packFace b{font-size:48px;letter-spacing:5px;color:#ead89f;text-shadow:0 3px 0 #000}.packFace span{margin-top:8px;font:700 10px system-ui;letter-spacing:2px;color:#b9a87e}.packFace i{position:absolute;bottom:15px;font:800 11px system-ui;letter-spacing:2px;color:#d1b66e}.packCrimp{position:absolute;left:0;right:0;height:24px;background:repeating-linear-gradient(90deg,#2b2417 0 5px,#89714a 5px 8px,#16120d 8px 12px);z-index:3}.packCrimp.top{top:0}.packCrimp.bottom{bottom:0}.packTear{position:absolute;z-index:5;left:-5%;right:-5%;top:26px;height:13px;background:#090806;clip-path:polygon(0 30%,8% 70%,16% 25%,25% 77%,34% 20%,43% 72%,52% 25%,62% 78%,72% 18%,82% 73%,91% 24%,100% 65%,100% 100%,0 100%);opacity:0;transform:translateY(-4px)}
.packScene.ripping .alphaPack{animation:packRipShake .72s ease both}.packScene.ripping .packTear{animation:packTearOpen .72s ease .12s both}.packScene.ripping .packCrimp.top{animation:packTopRip .72s ease .18s both}@keyframes packRipShake{0%{transform:rotate(-2deg) scale(1)}30%{transform:rotate(3deg) scale(1.03)}55%{transform:rotate(-4deg) scale(1.02)}100%{transform:rotate(0) scale(1.01)}}@keyframes packTearOpen{0%{opacity:0;transform:translateY(-5px)}40%{opacity:1}100%{opacity:1;transform:translateY(10px)}}@keyframes packTopRip{to{transform:translate(42px,-80px) rotate(19deg);opacity:.1}}
.packHint{color:#9ca99f;max-width:620px;margin:8px auto 15px}.packActions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:16px 0}.packCardTable{display:grid;grid-template-columns:190px minmax(270px,390px);justify-content:center;align-items:center;gap:34px;min-height:470px;perspective:1100px}.packCardBack{width:180px;height:250px;border-radius:12px;border:8px solid #17120c;background:radial-gradient(circle,#8d5531 2%,#3d261a 23%,#16234b 26%,#0e1532 53%,#392719 56%,#7e4f2f 72%,#17120c 76%);display:grid;place-items:center;align-content:center;color:#e0c491;box-shadow:0 20px 35px #0008;transform:rotate(-7deg)}.packCardBack span{font:900 17px Georgia;letter-spacing:2px}.packCardBack b{font-size:28px}.packSingleCard{position:relative;width:min(360px,72vw);min-height:430px;margin:auto;display:grid;place-items:center;border-radius:16px;transition:transform .3s ease,box-shadow .3s ease}.packSingleCard.waiting{border:2px dashed #66583b;background:#0b100d}.packMystery{font-size:110px;color:#71623f}.packSingleCard.revealed{animation:cardReveal .36s ease both}.packSingleCard.revealed.rare{box-shadow:0 0 45px rgba(217,180,91,.36)}.packSingleCard.revealed.power{box-shadow:0 0 80px rgba(255,211,92,.55),0 0 140px rgba(255,255,255,.12)}@keyframes cardReveal{0%{transform:rotateY(90deg) scale(.92);opacity:.2}100%{transform:rotateY(0) scale(1);opacity:1}}.packCardArt img{width:min(330px,68vw);max-height:410px;object-fit:contain;border-radius:12px}.packCardName{display:grid;gap:3px;margin-top:7px}.packCardName b{font-size:20px;color:#f1dfb4}.packCardName small{letter-spacing:2px;color:#bba267}.rareBurst,.powerBurst{position:absolute;top:18px;right:-15px;padding:8px 14px;transform:rotate(7deg);font-size:12px;font-weight:900;letter-spacing:2px;background:#9a7836;color:#fff5d4;box-shadow:0 8px 24px #0009}.powerBurst{background:#d2a63b;color:#151006;animation:powerPulse 1s ease infinite alternate}@keyframes powerPulse{to{transform:rotate(4deg) scale(1.08);box-shadow:0 0 28px #f5d77c88}}.packBest{color:#c8b782}.packSummaryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;max-width:900px;margin:16px auto}.packSummaryCard{position:relative;padding:8px;border:1px solid #39443c;border-radius:9px;background:#0c120e}.packSummaryCard img{width:100%;height:145px;object-fit:contain}.packSummaryCard small{display:block;margin-top:5px;font-size:9px}.packSummaryCard.rare{border-color:#9a7836;box-shadow:0 0 15px rgba(209,167,70,.14)}.packSummaryCard.power{border-color:#e1bd61;box-shadow:0 0 24px rgba(235,201,100,.35)}
#settingPackStyle{min-width:190px}body.reducedMotion .packScene.ripping .alphaPack,body.reducedMotion .packScene.ripping .packTear,body.reducedMotion .packScene.ripping .packCrimp.top,body.reducedMotion .packSingleCard.revealed,body.reducedMotion .powerBurst{animation:none!important}@media(max-width:650px){.packOpeningStage{padding:18px 10px}.packScene{height:320px}.alphaPack{width:190px;height:285px}.packFace b{font-size:38px}.packCardTable{grid-template-columns:1fr;gap:10px;min-height:440px}.packCardBack{display:none}.packSummaryGrid{grid-template-columns:repeat(3,1fr)}.packSummaryCard img{height:120px}}


/* v2.4.0 — battlefield motion + impact feedback */
.gameFxLayer{position:fixed;inset:0;z-index:1200;pointer-events:none;overflow:hidden}.battleFloat{position:absolute;top:28%;left:50%;transform:translate(-50%,-50%);font-weight:1000;letter-spacing:2px;font-size:22px;text-shadow:0 4px 10px #000;animation:battleFloatUp 1s ease-out forwards}.battleFloat.player{top:72%;left:22%}.battleFloat.enemy{top:22%;left:78%}.battleFloat.damage{color:#ff786f}.battleFloat.gain{color:#7fe895}.battleFloat.draw{color:#8fc7ff}@keyframes battleFloatUp{0%{opacity:0;transform:translate(-50%,10px) scale(.85)}18%{opacity:1;transform:translate(-50%,0) scale(1.08)}100%{opacity:0;transform:translate(-50%,-52px) scale(1)}}
#playerLife.lifeHit,#aiLife.lifeHit{display:inline-block;animation:lifeHit .7s ease}#playerLife.lifeGain,#aiLife.lifeGain{display:inline-block;animation:lifeGain .7s ease}@keyframes lifeHit{0%,100%{transform:scale(1)}25%{transform:scale(1.42);color:#ff5147;text-shadow:0 0 20px #ff3d32}50%{transform:scale(.94)}}@keyframes lifeGain{0%,100%{transform:scale(1)}30%{transform:scale(1.35);color:#7dff9e;text-shadow:0 0 22px #57e77a}}
#battleBoard.boardImpact{animation:boardImpact .38s ease}@keyframes boardImpact{0%,100%{transform:translate(0)}25%{transform:translate(-3px,1px)}50%{transform:translate(3px,-1px)}75%{transform:translate(-2px,0)}}
.drawGhost{position:fixed;width:68px;height:96px;border-radius:7px;border:4px solid #17120c;background:radial-gradient(circle,#83502f,#142044 42%,#342318 58%,#17120c 64%);display:grid;place-items:center;color:#d9bd86;font-size:8px;font-weight:900;letter-spacing:1px;box-shadow:0 10px 30px #000a;animation:drawFly .72s cubic-bezier(.2,.8,.2,1) forwards}@keyframes drawFly{0%{opacity:0;transform:translate(0,0) rotate(-16deg) scale(.65)}15%{opacity:1}100%{opacity:0;transform:translate(var(--draw-x),var(--draw-y)) rotate(5deg) scale(1)}}
.castFlash{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:15px;padding:13px 18px;border:1px solid #b4944e;border-radius:12px;background:rgba(8,13,10,.94);box-shadow:0 0 45px rgba(222,183,92,.28),0 20px 70px #000;animation:castPop .9s ease forwards}.castFlash img{width:78px;height:108px;object-fit:contain}.castFlash div{display:grid;text-align:left}.castFlash small{letter-spacing:2px;color:#bda56e}.castFlash b{font-size:22px;color:#f0dfb0}@keyframes castPop{0%{opacity:0;transform:translate(-50%,-42%) scale(.7)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}72%{opacity:1}100%{opacity:0;transform:translate(-50%,-58%) scale(.98)}}
#stackPanel.stackImpact{animation:stackImpact .6s ease}@keyframes stackImpact{0%,100%{transform:scale(1)}35%{transform:scale(1.025);box-shadow:0 0 30px rgba(117,177,255,.28)}}#stackPanel.counterImpact{animation:counterPanel .7s ease}@keyframes counterPanel{25%{filter:grayscale(.9);transform:scale(.97);box-shadow:0 0 36px rgba(255,82,70,.35)}100%{filter:none;transform:scale(1)}}
.counterFlash{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%) rotate(-5deg);min-width:260px;text-align:center;padding:18px 30px;border:2px solid #ff655b;background:rgba(34,5,5,.94);box-shadow:0 0 55px rgba(255,68,58,.35);animation:counterStamp .95s ease forwards}.counterFlash span{display:block;font-size:30px;font-weight:1000;letter-spacing:4px;color:#ff7168}.counterFlash b{display:block;margin-top:5px;color:#f6d6d2}@keyframes counterStamp{0%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(1.7)}18%{opacity:1;transform:translate(-50%,-50%) rotate(-5deg) scale(.96)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-58%) rotate(-3deg) scale(1)}}
.battleCard.attackLunge{animation:attackLunge .62s cubic-bezier(.2,.8,.2,1)}@keyframes attackLunge{0%,100%{transform:translateY(0)}35%{transform:translateY(-20px) scale(1.06);filter:brightness(1.22);box-shadow:0 16px 30px #0009}68%{transform:translateY(4px) scale(.99)}}
body.reducedMotion .gameFxLayer{display:none!important}body.reducedMotion #playerLife,body.reducedMotion #aiLife,body.reducedMotion #battleBoard,body.reducedMotion #stackPanel,body.reducedMotion .battleCard{animation:none!important}
@media(max-width:650px){.battleFloat.player{left:30%}.battleFloat.enemy{left:70%}.castFlash{max-width:86vw}.castFlash img{width:62px;height:88px}.counterFlash{min-width:220px}.counterFlash span{font-size:24px}}

/* v2.5.0 — progression celebrations + notification presentation */
.progressionCelebration{position:fixed;inset:0;z-index:120;display:grid;place-items:center;pointer-events:none}.celebrationBackdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(215,174,89,.18),rgba(0,0,0,.76) 48%,rgba(0,0,0,.88));backdrop-filter:blur(2px)}.celebrationCard{position:relative;width:min(620px,90vw);padding:34px 32px 30px;text-align:center;border:1px solid #9b7d42;border-radius:18px;background:linear-gradient(155deg,#263329,#101812 72%);box-shadow:0 30px 90px #000,0 0 50px rgba(215,174,89,.15),inset 0 1px rgba(255,255,255,.08);overflow:hidden}.celebrationCard:before{content:"";position:absolute;inset:-80%;background:conic-gradient(from 0deg,transparent,rgba(255,229,155,.16),transparent 22%);animation:celebrationSpin 4s linear infinite}.celebrationCard>*{position:relative}.celebrationIcon{font-size:54px;color:#f0d48b;text-shadow:0 0 28px rgba(240,212,139,.55)}.celebrationKicker{display:block;margin-top:8px;font-size:11px;letter-spacing:4px;color:#d7ae59}.celebrationCard h2{font-size:40px;letter-spacing:1px;margin:10px 0 8px;color:#fff0c8;text-shadow:0 3px 16px #000}.celebrationCard p{color:#c4b8a2;margin:0;font-size:15px}.progressionCelebration.achievement .celebrationCard{border-color:#7d6aa8;box-shadow:0 30px 90px #000,0 0 55px rgba(144,116,201,.18)}.progressionCelebration.leader-title .celebrationCard{border-color:#d7ae59}.progressionCelebration.leader-lost .celebrationCard{border-color:#775c55;filter:saturate(.7)}.progressionCelebration.leader-lost .celebrationIcon{color:#b9978d}.celebrateIn{animation:celebrationIn .55s cubic-bezier(.2,.85,.25,1.15)}@keyframes celebrationIn{0%{opacity:0;transform:scale(.72) translateY(24px)}70%{opacity:1;transform:scale(1.035) translateY(-3px)}100%{transform:scale(1) translateY(0)}}@keyframes celebrationSpin{to{transform:rotate(360deg)}}
.liveNotificationStack{position:fixed;right:20px;top:92px;z-index:115;display:grid;gap:10px;width:min(390px,calc(100vw - 32px));pointer-events:none}.liveNotification{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:12px;padding:13px 15px;border-radius:12px;border:1px solid #59695c;background:linear-gradient(145deg,rgba(34,51,41,.98),rgba(15,24,19,.98));box-shadow:0 16px 45px #000a;opacity:0;transform:translateX(30px);transition:opacity .25s ease,transform .25s ease}.liveNotification.show{opacity:1;transform:translateX(0)}.liveNotificationIcon,.notificationCenterIcon{display:grid;place-items:center;border-radius:50%;background:#3a3222;border:1px solid #8c7444;color:#efd48e;font-size:21px;width:42px;height:42px}.liveNotification small{display:block;color:#a89a80;font-size:9px;letter-spacing:1.5px;margin-bottom:4px}.liveNotification b{font-size:13px;line-height:1.35}.notificationItem{display:grid!important;grid-template-columns:48px minmax(0,1fr) auto!important;gap:12px!important}.notificationCopy{min-width:0}.notificationCopy b,.notificationCopy small{display:block}.notificationCopy small{margin-top:4px;color:#8f9d92;font-size:10px}.notificationItem.unread .notificationCenterIcon{box-shadow:0 0 0 3px rgba(215,174,89,.1),0 0 18px rgba(215,174,89,.18)}
@media(max-width:600px){.celebrationCard{padding:27px 18px}.celebrationCard h2{font-size:30px}.liveNotificationStack{right:10px;top:76px;width:calc(100vw - 20px)}.notificationItem{grid-template-columns:42px 1fr!important}.notificationItem .rowActions{grid-column:1/-1;justify-content:flex-end}.notificationCenterIcon{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){.celebrationCard:before{animation:none}.celebrateIn{animation:none}.liveNotification{transition:none}}


/* v2.5.2 — once-per-session Home LGS bulletin */
.homeSessionBulletin{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:22px}.homeSessionBulletin.hidden{display:none}.homeBulletinBackdrop{position:absolute;inset:0;background:rgba(4,9,6,.84);backdrop-filter:blur(4px);animation:homeBulletinFade .2s ease}.homeBulletinCard{position:relative;width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 44px);overflow:auto;padding:34px 38px 30px;border:1px solid #a88645;border-radius:14px;background:radial-gradient(circle at 50% 0,rgba(190,147,66,.13),transparent 42%),linear-gradient(160deg,#18241c,#0d1510 72%);box-shadow:0 24px 80px rgba(0,0,0,.62),inset 0 0 0 1px rgba(235,204,137,.06);color:#e9e0ca;text-align:center;animation:homeBulletinIn .24s ease}.homeBulletinCard:before,.homeBulletinCard:after{content:'';position:absolute;left:28px;right:28px;height:1px;background:linear-gradient(90deg,transparent,#b78c42,transparent)}.homeBulletinCard:before{top:18px}.homeBulletinCard:after{bottom:18px}.homeBulletinEra{font-size:10px;letter-spacing:.25em;color:#c99d4f;margin-bottom:10px}.homeBulletinCard h2{margin:0;color:#f1dfb6;font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,5vw,48px);letter-spacing:.06em}.homeBulletinCard h3{margin:8px 0 18px;color:#d5a94f;font-family:Georgia,'Times New Roman',serif;font-size:clamp(15px,2.5vw,21px);font-weight:500}.homeBulletinRule{height:1px;background:linear-gradient(90deg,transparent,#755a2c 18%,#d0a24c 50%,#755a2c 82%,transparent);margin:0 auto 22px}.homeBulletinCard p{max-width:590px;margin:0 auto 14px;line-height:1.65;color:#cfd7d0;font-size:14px}.homeBulletinCard p b{color:#f0ddad}.homeBulletinThanks{color:#e8d49f!important;font-family:Georgia,'Times New Roman',serif;font-size:17px!important;margin-top:20px!important}.homeBulletinEnter{min-width:190px;margin-top:10px;padding:12px 24px;letter-spacing:.12em}.homeSessionBulletin.closing{opacity:0;transition:opacity .18s ease}@keyframes homeBulletinFade{from{opacity:0}to{opacity:1}}@keyframes homeBulletinIn{from{opacity:0;transform:translateY(18px) scale(.975)}to{opacity:1;transform:none}}@media(max-width:600px){.homeSessionBulletin{padding:12px}.homeBulletinCard{width:calc(100vw - 24px);padding:28px 20px 24px}.homeBulletinCard p{font-size:13px;line-height:1.55}}@media(prefers-reduced-motion:reduce){.homeBulletinBackdrop,.homeBulletinCard{animation:none}.homeSessionBulletin.closing{transition:none}}


/* v2.6.0 — DANDÂN REBORN
   Limited Time Game Mode lobby + battlefield. This intentionally follows the
   visual hierarchy of Story/Online Tables while keeping Dandân's shared zones. */
.dandanLobbyReborn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dandanLobbyReborn .limitedHero{grid-column:1/-1;background:radial-gradient(circle at 85% 15%,rgba(77,141,160,.16),transparent 34%),linear-gradient(145deg,rgba(11,28,35,.98),rgba(9,20,16,.98))}
.limitedLaunch{align-items:end}.limitedLaunch label{display:grid;gap:4px;font-size:9px;letter-spacing:.12em;color:#a9c0b5}.limitedLaunch select{min-width:116px}
.limitedStats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px}
.limitedStat{display:grid;gap:2px;text-align:center;padding:11px 8px;border:1px solid rgba(188,160,89,.24);border-radius:8px;background:rgba(0,0,0,.22)}
.limitedStat b{font-size:21px;color:#f3e4b5}.limitedStat small{font-size:8px;letter-spacing:.13em;color:#91a89c}
.limitedRules{grid-column:1/-1}
#dandanTable.dandanReborn{border:0!important;border-radius:0!important;box-shadow:none!important}
@media(min-width:851px){
 body:has(#dandanTable.dandanReborn:not(.hidden)){overflow:hidden;background:#060b08}
 body:has(#dandanTable.dandanReborn:not(.hidden)) .shell{width:100%;max-width:none;padding:0}
 body:has(#dandanTable.dandanReborn:not(.hidden)) .shell>header,
 body:has(#dandanTable.dandanReborn:not(.hidden)) #app>.topbar,
 body:has(#dandanTable.dandanReborn:not(.hidden)) #app>.nav,
 body:has(#dandanTable.dandanReborn:not(.hidden)) footer,
 #dandan:has(#dandanTable.dandanReborn:not(.hidden))>.sectionHead,
 #dandan:has(#dandanTable.dandanReborn:not(.hidden))>#dandanLobby{display:none!important}
 body:has(#dandanTable.dandanReborn:not(.hidden)) #app,
 body:has(#dandanTable.dandanReborn:not(.hidden)) #dandan{height:100dvh;min-height:0;margin:0;padding:0}
 #dandanTable.dandanReborn:not(.hidden){
  position:fixed!important;inset:0!important;z-index:90!important;
  width:100vw!important;height:100dvh!important;box-sizing:border-box!important;
  margin:0!important;padding:58px 12px 174px!important;overflow:hidden!important;
  display:grid!important;grid-template-columns:1fr minmax(300px,34vw) 1fr!important;
  grid-template-rows:72px 96px 96px minmax(150px,1fr) 96px 96px 72px!important;
  gap:5px 10px!important;align-content:stretch!important;
  background-color:#08110d!important;background-size:cover!important;background-position:center!important
 }
 #dandanTable .dandanBattleTop{position:absolute;left:10px;right:10px;top:8px;height:44px;display:grid;grid-template-columns:110px 1fr 180px;align-items:center;z-index:24}
 #dandanTable .dandanBattleTop>div:nth-child(2){text-align:center}.dandanBattleTop h2{margin:0;font-size:20px;letter-spacing:.12em}
 .dandanSeriesBadge{justify-self:end;padding:7px 10px;border:1px solid rgba(217,187,111,.35);border-radius:7px;background:#07110de8;font-size:10px;font-weight:800;letter-spacing:.08em}
 #dandanTable .dandanPlayerHud{position:relative!important;inset:auto!important;width:auto!important;height:auto!important;display:flex;align-items:center;padding:7px 10px;border:1px solid rgba(174,194,183,.16);border-radius:7px;background:rgba(4,11,8,.82)}
 #dandanTable .dandanPlayerHud>div{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px}
 #dandanTable .dandanPlayerHud b{font-size:14px}.dandanPlayerHud strong{font-size:18px}.dandanPlayerHud small{font-size:9px;color:#9db2a7}
 #dandanTable .enemyHud{grid-column:1/-1;grid-row:1}
 #dandanTable .rebornZone{height:auto!important;min-height:0!important;margin:0!important;padding:5px 8px!important;overflow-x:auto!important;overflow-y:hidden!important;background:rgba(4,12,9,.52)!important;border-color:rgba(163,184,173,.16)!important}
 #dandanTable .rebornZone h4{margin:0 0 3px!important;height:14px!important;line-height:14px!important;font-size:9px!important;letter-spacing:.08em;color:#a9bdb3}
 #dandanTable .rebornZone>div{display:flex!important;gap:4px!important;flex-wrap:nowrap!important;align-items:flex-start!important}
 #dandanTable .rebornZone.enemy:not(.lands){grid-column:1/-1;grid-row:2}
 #dandanTable .rebornZone.enemy.lands{grid-column:1/-1;grid-row:3}
 #dandanTable .dandanCenter{grid-column:1/-1;grid-row:4;position:relative;display:grid;grid-template-columns:220px minmax(260px,1fr) 220px;grid-template-rows:30px minmax(70px,1fr);align-items:center;gap:6px;padding:5px 8px;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);background:radial-gradient(circle at center,rgba(50,100,94,.16),transparent 54%)}
 #dandanTable .dandanSharedPiles{grid-column:1;grid-row:1/3;display:flex;gap:10px;justify-content:center;align-items:center}
 .sharedPile{width:90px;height:124px!important;padding:5px!important;display:grid!important;place-items:center!important;align-content:center!important;gap:2px!important;border:1px solid #637d72!important;border-radius:8px!important;background:linear-gradient(145deg,#15251e,#07110d)!important;box-shadow:0 9px 24px #0008!important}
 .sharedPile .pileBack{display:grid;place-items:center;width:54px;height:72px;border:2px solid #9b8750;border-radius:5px;background:radial-gradient(circle,#263c32,#08100c 70%);font-family:serif;font-weight:900;font-size:22px;color:#d7c27c}
 .sharedPile b{font-size:18px}.sharedPile small{font-size:7px;letter-spacing:.09em}
 #dandanTable .dandanTurnStrip{grid-column:2;grid-row:1;align-self:center;text-align:center;height:24px;line-height:24px;border-radius:6px;background:#0a1611d9;border:1px solid rgba(213,187,111,.22);font-size:10px;font-weight:800;letter-spacing:.08em}
 #dandanTable .dandanPriority{grid-column:2;grid-row:2;align-self:start;height:auto!important;min-height:42px!important;margin:0!important}
 #dandanTable .rebornStack{grid-column:3;grid-row:1/3;width:100%;height:100%!important;margin:0!important;box-sizing:border-box;overflow:auto!important}
 #dandanTable .stackTop{border-color:#b99c51!important;box-shadow:0 0 18px rgba(210,177,86,.12)}
 #dandanTable .dandanChoice,#dandanTable .dandanBlocks{right:12px!important;top:178px!important;width:min(370px,28vw)!important;max-height:390px!important}
 #dandanTable .rebornZone.lands:not(.enemy){grid-column:1/-1;grid-row:5}
 #dandanTable .rebornZone:not(.enemy):not(.lands){grid-column:1/-1;grid-row:6}
 #dandanTable .playerHud{grid-column:1/-1;grid-row:7}
 #dandanTable .dandanPerm{width:60px!important;min-width:60px!important;height:84px!important}
 #dandanTable .dandanHand{position:absolute!important;left:10px!important;right:10px!important;bottom:42px!important;height:126px!important;min-height:126px!important;z-index:20!important;background:linear-gradient(180deg,rgba(7,15,11,.22),rgba(7,15,11,.97) 18%)!important}
 #dandanTable .dandanHand h4{height:18px!important;line-height:18px!important;margin:0!important;font-size:10px!important;letter-spacing:.07em}
 #dandanTable .dandanHand>div{height:108px!important;padding:0 8px!important;gap:5px!important;justify-content:center!important;overflow-x:auto!important;overflow-y:hidden!important}
 #dandanTable .dandanCardWrap{height:106px!important;min-height:106px!important}
 #dandanTable .dandanCard{width:74px!important;min-width:74px!important;height:104px!important;min-height:104px!important}
 #dandanTable .dandanCard .handArt{width:74px!important;height:104px!important;min-height:104px!important;object-fit:contain!important}
 #dandanTable .dandanActions{position:absolute!important;left:0!important;right:0!important;bottom:4px!important;height:34px!important;z-index:22!important;margin:0!important;display:flex!important;justify-content:center!important;gap:6px!important}
 #dandanTable .dandanActions button{padding:5px 11px!important;font-size:9px!important}
 #dandanTable .dandanLog{position:absolute!important;right:12px!important;bottom:174px!important;width:300px!important;max-height:150px!important;overflow:auto!important;z-index:45!important;background:#07110df2!important}
 #dandanTable .rebornResult{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;gap:12px;background:radial-gradient(circle at center,rgba(45,87,75,.44),rgba(3,8,6,.96) 62%)}
 .rebornResult h2{font-size:34px;margin:0}.fishSpinner{font-size:52px;animation:dandanFishSpin 2.8s linear infinite}.seriesScoreBig{display:grid;grid-template-columns:auto auto auto auto auto;gap:10px;align-items:end}.seriesScoreBig b{font-size:44px}.seriesScoreBig span{font-size:10px;letter-spacing:.1em}.seriesScoreBig i{font-size:30px}
}
@keyframes dandanFishSpin{to{transform:rotate(360deg)}}
@media(max-width:850px){
 .dandanLobbyReborn{grid-template-columns:1fr}.dandanLobbyReborn .limitedHero,.limitedRules{grid-column:auto}.limitedStats{grid-template-columns:repeat(2,1fr)}.limitedLaunch{width:100%;flex-wrap:wrap}.limitedLaunch label{width:100%}.limitedLaunch select{width:100%}
 #dandanTable.dandanReborn:not(.hidden){position:fixed!important;inset:0!important;z-index:90!important;width:100vw!important;height:100dvh!important;margin:0!important;padding:52px 7px 180px!important;overflow:auto!important;border-radius:0!important;background:#07110d!important}
 #dandanTable .dandanBattleTop{position:fixed;top:0;left:0;right:0;z-index:95;height:46px;padding:4px 7px;display:grid;grid-template-columns:70px 1fr 105px;background:#07110df5}
 .dandanBattleTop h2{font-size:16px;margin:0}.dandanSeriesBadge{font-size:7px;text-align:right}
 #dandanTable .dandanPlayerHud{padding:6px;margin:4px 0;border:1px solid #2e493d;border-radius:7px;background:#0a1711}.dandanPlayerHud>div{display:flex;justify-content:space-between;gap:5px}.dandanPlayerHud small{font-size:8px}
 #dandanTable .rebornZone{margin:4px 0!important;min-height:88px!important;overflow-x:auto!important}.rebornZone>div{flex-wrap:nowrap!important}
 #dandanTable .dandanCenter{display:grid;gap:5px;padding:6px;margin:5px 0;background:#07110dcf;border:1px solid #274336;border-radius:8px}
 #dandanTable .dandanSharedPiles{display:flex;justify-content:center;gap:8px}.sharedPile{width:88px;height:108px!important}.sharedPile .pileBack{width:44px;height:58px}
 #dandanTable .dandanHand{position:fixed!important;left:0!important;right:0!important;bottom:42px!important;height:132px!important;z-index:96!important;background:#07110df8!important}.dandanHand>div{overflow-x:auto!important;justify-content:flex-start!important;height:112px!important}
 #dandanTable .dandanCard{width:76px!important;min-width:76px!important;height:106px!important;min-height:106px!important}.dandanCard .handArt{height:106px!important;min-height:106px!important}
 #dandanTable .dandanActions{position:fixed!important;left:0!important;right:0!important;bottom:0!important;height:42px!important;z-index:97!important;background:#06100bf7!important;display:flex!important;overflow-x:auto!important;gap:4px!important;padding:4px!important}.dandanActions button{white-space:nowrap;font-size:8px!important;padding:5px 7px!important}
 #dandanTable .dandanChoice,#dandanTable .dandanBlocks{position:fixed!important;top:52px!important;left:8px!important;right:8px!important;width:auto!important;max-height:52vh!important;z-index:110!important}
 #dandanTable .dandanLog{position:fixed!important;left:8px!important;right:8px!important;bottom:180px!important;width:auto!important;max-height:28vh!important;z-index:105!important}
 .rebornResult{min-height:calc(100dvh - 240px);display:grid;place-content:center;text-align:center}.rebornResult h2{font-size:27px}
}


/* v2.6.1 — invite friends directly from an open online table */
.tableInvitePanel{margin:18px 0;padding:16px;border:1px solid rgba(216,182,108,.35);border-radius:14px;background:rgba(12,25,20,.72)}
.tableInviteFriends{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:12px}
.tableInviteFriend{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(0,0,0,.18)}
.tableInviteFriend .friendIdentity{min-width:0}
.tableInviteFriend button{flex:0 0 auto}

/* v2.6.3 — Secret Titles + Dandân battlefield parity */
body:has(#dandanTable.dandanStoryMode:not(.hidden)){overflow:hidden;background:#060b08}
body:has(#dandanTable.dandanStoryMode:not(.hidden)) .shell{width:100%;max-width:none;height:100dvh;padding:6px 8px;overflow:hidden}
body:has(#dandanTable.dandanStoryMode:not(.hidden)) .shell>header,
body:has(#dandanTable.dandanStoryMode:not(.hidden)) .shell>.topbar,
body:has(#dandanTable.dandanStoryMode:not(.hidden)) .shell>.nav,
body:has(#dandanTable.dandanStoryMode:not(.hidden)) .shell>footer,
#dandan:has(#dandanTable.dandanStoryMode:not(.hidden))>.sectionHead,
#dandan:has(#dandanTable.dandanStoryMode:not(.hidden))>#dandanLobby{display:none!important}
body:has(#dandanTable.dandanStoryMode:not(.hidden)) #app,
body:has(#dandanTable.dandanStoryMode:not(.hidden)) #dandan{height:100dvh;min-height:0;margin:0;padding:0}
#dandanTable.dandanStoryMode:not(.hidden){position:fixed!important;inset:0!important;z-index:90!important;width:100vw!important;height:100dvh!important;margin:0!important;padding:6px 8px!important;overflow:hidden!important;border:0!important;border-radius:0!important;background:#07110d!important;box-sizing:border-box}
#dandanTable .dandanStoryShell{height:calc(100dvh - 12px)!important;max-height:none!important;min-height:0!important;margin:0!important;box-sizing:border-box}
#dandanTable .dandanStoryBoard{height:calc(100dvh - 66px)!important;min-height:0!important;box-sizing:border-box}
#dandanTable .dandanSharedPilesStory{gap:6px}
#dandanTable .dandanSharedPilesStory .pile{cursor:pointer;color:#f0dca8}
#dandanTable .dandanSharedPilesStory .pile b{font-size:7px;line-height:1.1;text-align:center}
#dandanTable .dandanStoryTurnStrip{font-size:10px;font-weight:900;letter-spacing:.08em;color:#e5c979;margin-bottom:2px}
#dandanTable .dandanStoryMessage{font-size:12px;color:#c8d3cb}
#dandanTable .dandanStoryDecision{position:absolute;left:12px;top:150px;width:290px;margin:0;z-index:18;text-align:left;background:#101912f2;border:1px solid #8a7447;border-radius:10px;padding:10px;max-height:330px;overflow:auto;color:#f0dca8;box-shadow:0 12px 34px #000a;pointer-events:auto}
#dandanTable .dandanStoryDecision h3{margin:0 0 5px;color:#efd38d;font-size:16px}
#dandanTable .dandanStoryDecision p{font-size:11px;margin:4px 0 8px;color:#c5bba5}
#dandanTable .dandanStoryDecision .blockRow{display:grid;grid-template-columns:1fr;gap:3px;margin:5px 0;padding:6px}
#dandanTable .dandanStoryDecision select{width:100%;padding:5px}
#dandanTable .dandanStoryDecision button{width:100%;margin-top:6px}
#dandanTable .dandanChoice{position:absolute;right:12px;top:120px;width:min(390px,31vw);max-height:390px;overflow:auto;z-index:25;margin:0;pointer-events:auto;box-shadow:0 12px 34px #000a}
#dandanTable .combatCenter .stackPanel{pointer-events:auto}
#dandanTable .dandanStoryHandWrap{position:relative;width:82px;min-width:82px;margin-left:-13px;display:flex;align-items:flex-end;justify-content:center}
#dandanTable .dandanStoryHandWrap:first-child{margin-left:0}
#dandanTable .dandanStoryHandWrap .handCard{margin-left:0;width:82px;min-width:82px}
#dandanTable .dandanStoryHandWrap .handCard img{width:82px;height:114px;object-fit:cover;border-radius:7px;box-shadow:0 5px 14px #000b}
#dandanTable .dandanStoryCycle{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);z-index:12;padding:2px 5px;font-size:7px;white-space:nowrap;background:#102431e8;border-color:#6a9bb5}
#dandanTable .battleCard .dandanCardArt{object-fit:cover}
#dandanTable .battleActions .hidden{display:none!important}

@media (min-width:851px) and (max-height:1000px){
 #dandanTable .dandanStoryHandWrap{width:74px;min-width:74px;margin-left:-11px}
 #dandanTable .dandanStoryHandWrap .handCard{width:74px;min-width:74px}
 #dandanTable .dandanStoryHandWrap .handCard img{width:74px;height:103px}
}
@media (min-width:851px) and (max-height:850px){
 #dandanTable .dandanStoryHandWrap{width:68px;min-width:68px;margin-left:-10px}
 #dandanTable .dandanStoryHandWrap .handCard{width:68px;min-width:68px}
 #dandanTable .dandanStoryHandWrap .handCard img{width:68px;height:95px}
}
@media(max-width:850px){
 #dandanTable.dandanStoryMode:not(.hidden){overflow:auto!important;padding:4px!important}
 #dandanTable .dandanStoryShell{height:auto!important;min-height:100dvh!important;overflow:visible!important}
 #dandanTable .dandanStoryBoard{height:auto!important;min-height:calc(100dvh - 70px)!important;padding-bottom:160px!important}
 #dandanTable .dandanChoice,#dandanTable .dandanStoryDecision{position:fixed!important;top:56px!important;left:8px!important;right:8px!important;width:auto!important;max-height:48vh!important;z-index:110!important}
 #dandanTable .dandanStoryHandWrap{width:76px;min-width:76px;margin-left:-10px}
 #dandanTable .dandanStoryHandWrap .handCard{width:76px;min-width:76px}
 #dandanTable .dandanStoryHandWrap .handCard img{width:76px;height:106px}
}

/* v2.6.4 browser performance: skip offscreen work in long collection/social grids. */
#shopGrid,#binderGrid,#deckCards,#achievementHubGrid,#achievementList,#friendList,#notificationCenterList{content-visibility:auto;contain-intrinsic-size:1px 900px}

/* v2.7.0 Beta Core — Beta sealed product, marketplace, and constructed legality */
.betaVault{border-color:rgba(154,177,203,.42);background:linear-gradient(135deg,rgba(17,27,35,.94),rgba(15,22,28,.9))}
.betaVault .eyebrow{color:#c6d7e7}
.betaMarketplace{margin:16px 0;border-color:rgba(154,177,203,.32)}
.marketCreate{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(110px,.6fr) minmax(140px,.7fr) auto;gap:10px;align-items:end;margin:12px 0 16px}
.marketCreate label{display:grid;gap:5px;font-size:10px;letter-spacing:.08em;color:#aab7b0}
.marketRow{align-items:center}.marketActions{display:flex;align-items:center;gap:8px}.marketActions input{width:74px}
.illegalDeckRow{border-color:#8b493f!important;background:linear-gradient(135deg,#211412,#171211)!important}.illegalBadge{display:inline-block;margin-left:6px;padding:2px 5px;border:1px solid #a95748;border-radius:999px;color:#ff9d8e;font-size:8px;letter-spacing:.08em}
.alphaPack.betaPack{background:linear-gradient(155deg,#15191c,#718494 35%,#161b1f 68%,#9aa9b4);border-color:#c6d7e7;box-shadow:0 25px 42px #000b,0 0 0 5px #111,0 0 35px rgba(176,207,230,.2)}
.alphaPack.betaPack .packFace b{color:#e0edf5;text-shadow:0 2px 0 #24323d}
@media(max-width:800px){.marketCreate{grid-template-columns:1fr 1fr}.marketCreate button{grid-column:1/-1}.marketActions{flex-wrap:wrap}}

/* v2.7.1 Beta Story — separate era campaign selector and Beta campaign identity */
.storyEraTabs{max-width:520px;margin:0 0 14px}.storyEraTabs button{min-width:0}.storyActSectionBeta{border-top:1px solid rgba(119,174,156,.18);padding-top:2px}.betaActHead{border-top-color:rgba(119,174,156,.6);border-bottom-color:rgba(119,174,156,.28);background:linear-gradient(90deg,rgba(19,48,42,.92),rgba(20,35,31,.45),transparent)}.betaActHead .eyebrow{color:#9dd7c2}.storyBeta{border-color:rgba(119,174,156,.42)}.storyBeta.defeated{border-color:#82b99e;box-shadow:inset 0 0 0 1px rgba(130,185,158,.18)}.storyBeta .storyBadge{color:#9dd7c2}.betaBossRule{border-left-color:#82b99e}.betaStoryStats span{border-color:rgba(119,174,156,.38)}.betaStoryStats b{color:#b7ead6}@media(max-width:600px){.storyEraTabs{max-width:none;width:100%}.storyEraTabs button{font-size:11px;padding:9px 7px}}

/* v2.7.3 — Alpha/Beta printing identity + Beta deck-builder polish */
.magicCardImage.printingAlpha{border-radius:9px!important}
.magicCardImage.printingBeta{border-radius:5px!important}
.cardPreviewFrame.alphaPrinting img{border-radius:13px}
.cardPreviewFrame.betaPrinting img{border-radius:7px}
.cardPreviewFrame>div{display:grid;gap:2px}
.cardPreviewFrame>div>b{font-size:12px}
.cardPreviewFrame>div>small{font-size:8px;letter-spacing:2px;color:#9fad9f}
.deckSearchBar select,#binderSetFilter{padding:11px 12px;border-radius:7px;border:1px solid #57665a;background:#0d1712;color:#f4ead6;font-family:inherit;font-weight:700;letter-spacing:.06em}
.deckSearchBar select{min-width:130px}
.card .magicCardImage.printingAlpha{box-shadow:0 0 0 1px rgba(215,174,89,.11)}
.card .magicCardImage.printingBeta{box-shadow:0 0 0 1px rgba(167,190,197,.14)}
@media(max-width:600px){.deckSearchBar{align-items:stretch;flex-direction:column}.deckSearchBar select{width:100%}}

/* v2.7.5 R4 — Beta Era red + gold visual identity
   Branding surfaces move from Alpha green/gold into a deep-crimson Beta shell.
   Gameplay semantics and card/mana colors remain intact for readability. */
:root{
  --ink:#fff0d1;
  --muted:#c9aa93;
  --gold:#f0c44e;
  --bg:#120706;
  --panel:#28100e;
  --panel2:#351613;
  --line:#713a31;
  --danger:#d65348;
  --good:#6fa477;
}
::selection{background:#8d261f;color:#fff3c4}
body{
  background:
    radial-gradient(circle at 50% -10%,rgba(162,48,37,.55),transparent 34%),
    radial-gradient(circle at 8% 28%,rgba(108,25,20,.25),transparent 28%),
    linear-gradient(180deg,#2b0e0b 0,#140806 42%,#090403 100%);
}
header{border-bottom-color:#8a4737}
h1{color:#ffe49a;text-shadow:0 2px 12px #000,0 0 26px rgba(211,59,43,.14)}
header p,.eyebrow{color:var(--gold)}
.panel{
  background:linear-gradient(145deg,rgba(51,20,17,.97),rgba(28,11,10,.985));
  border-color:#6e372f;
  box-shadow:0 16px 40px #0008,inset 0 1px rgba(255,222,166,.035);
}
button{background:#471c18;color:#fff0d4;border-color:#7b3b32}
button:hover:not(:disabled){filter:brightness(1.16) saturate(1.05)}
.primary,a.primary{
  background:linear-gradient(180deg,#d24a39,#8e241e);
  border-color:#f1c44e;
  color:#fff4cf;
  box-shadow:inset 0 1px rgba(255,240,190,.15),0 4px 14px rgba(88,15,12,.28);
}
.tabs button.active,.nav button.active,.deckTabs button.active,.mainNav button.menuOpen{
  border-color:#f0c44e;
  color:#ffe08a;
  background:linear-gradient(180deg,#72251f,#461612);
}
.auth input,.toolbar input,.deckTitle input,input,select,textarea{
  border-color:#754039;
  background:#190b09;
  color:#fff2dc;
}
.topbar{border-color:#7a3b31}
.miniStats span{border-right-color:#6e342d}
.miniStats b{color:#ffe1a0}.miniStats small{color:#b58e7d}
.mainNav{background:rgba(28,8,7,.95);border-color:#6d332c;box-shadow:0 9px 28px rgba(0,0,0,.2)}
.navDrawer{background:#1d0b09;border-color:#693229}
.storeSign{border-color:#d49e36;color:#e4bb63;background:radial-gradient(circle,rgba(134,40,31,.18),transparent 68%)}
.feature h3,.price,.storyCard .reward{color:#f1ca63}
.card,.row,.deckCard,.starterCard,.homeDeckFocus{
  background:#1b0c0a;
  border-color:#593029;
}
.row.active{border-color:#d7a744;background:#321711}
.cardMeta,.row span small,.homeDeckFocus span{color:#b28f80}
.owned{color:#d5b06a}
.notice{border-left-color:#df493b;background:#2a100d;color:#dfc0a2}
.modalBox{background:#1d0b09;border-color:#915045}
.toast{background:#401713;border-color:#d09b43;color:#fff0d1}
.eventLog{background:#0f0605;border-color:#4c2822;color:#cdb6a7}
footer{color:#8f665a}

/* Home / dashboard — unmistakable Beta-era storefront */
.homeHero{
  background:
    radial-gradient(circle at 84% 16%,rgba(240,196,78,.16),transparent 28%),
    radial-gradient(circle at 12% 90%,rgba(184,48,37,.16),transparent 32%),
    linear-gradient(145deg,rgba(71,22,18,.985),rgba(29,10,9,.99));
  border-color:#914438;
  box-shadow:0 18px 48px #0008,inset 0 0 0 1px rgba(240,196,78,.035);
}
.homeHero h2{color:#ffe7a3}
.homeStat{border-color:#69352d}
.homeStat small{color:#bd8f7b}.homeStat b{color:#ffd66b}.homeStat span{color:#9f776c}
.alphaSupplyStat{
  border-color:#d3a43e;
  background:linear-gradient(145deg,#4b1b15,#25100c 68%,#17100a);
  box-shadow:inset 0 0 24px rgba(240,196,78,.04);
}
.homeContinue,.homeEra{border-color:#78392f}
.homeContinue h3,.homeEra h3{color:#ffd976}
.homeEra{background:radial-gradient(circle at 90% 10%,rgba(240,196,78,.09),transparent 35%),linear-gradient(145deg,#37130f,#1d0b09)}
.homeLaunch{
  background:linear-gradient(145deg,#35130f,#1a0908);
  border-color:#603027;
  box-shadow:inset 0 1px rgba(255,220,150,.025);
}
.homeLaunch b{color:#f6ce63}.homeLaunch small{color:#b89583}
.homeLaunch:hover{border-color:#d7a744;box-shadow:0 8px 22px rgba(72,11,9,.2)}
.homeLaunch.play{border-left-color:#dc493a}.homeLaunch.collection{border-left-color:#f0c44e}.homeLaunch.social{border-left-color:#a92f28}.homeLaunch.compete{border-left-color:#ffd86d}.homeLaunch.shop{border-left-color:#c13b31}.homeLaunch.profile{border-left-color:#dcae47}

/* Beta product + marketplace */
.betaVault{
  border-color:rgba(240,196,78,.48);
  background:radial-gradient(circle at 92% 12%,rgba(240,196,78,.09),transparent 30%),linear-gradient(135deg,rgba(69,21,17,.97),rgba(31,10,9,.95));
}
.betaVault .eyebrow{color:#ffd76a}
.betaMarketplace{border-color:rgba(210,69,55,.55);background:linear-gradient(145deg,rgba(55,17,14,.98),rgba(27,9,8,.98))}
.marketCreate label{color:#d1aa93}
.marketOffer{border-color:#8c4a35;background:linear-gradient(135deg,#2c100d,#21100a)}
.marketOffer strong{color:#ffd46b}
.tradeEmpty{border-color:#754238;color:#c5a693}
.tradeStatus.pending{color:#ffd46b;border-color:#a47435;background:#36170f}

/* Beta Story gets its own red/gold tournament treatment. */
.storyActSectionBeta{border-top-color:rgba(209,66,53,.24)}
.betaActHead{
  border-top-color:rgba(240,196,78,.75);
  border-bottom-color:rgba(205,62,49,.42);
  background:linear-gradient(90deg,rgba(91,26,21,.94),rgba(53,16,13,.55),transparent);
}
.betaActHead .eyebrow,.storyBeta .storyBadge{color:#ffd66b}
.storyBeta{border-color:rgba(202,64,52,.52)}
.storyBeta.defeated{border-color:#d9ad45;box-shadow:inset 0 0 0 1px rgba(240,196,78,.14)}
.betaBossRule{border-left-color:#dc493a}
.betaStoryStats span{border-color:rgba(205,68,54,.42)}
.betaStoryStats b{color:#ffdc7b}

/* Pack opening + launch bulletin carry the same new-era identity. */
.packOpeningOverlay{background:radial-gradient(circle at 50% 40%,rgba(153,44,34,.28),rgba(3,1,1,.95) 50%,#000 100%)}
.packOpeningStage{border-color:#a0523f;background:linear-gradient(145deg,#33120f,#100605);box-shadow:0 28px 90px #000,0 0 60px rgba(210,67,52,.11)}
.packOpeningStage h2{color:#ffdb78}
.homeBulletinBackdrop{background:rgba(16,3,3,.88)}
.homeBulletinCard{
  border-color:#c68f38;
  background:radial-gradient(circle at 50% 0,rgba(218,67,51,.18),transparent 42%),linear-gradient(160deg,#421612,#180807 72%);
  box-shadow:0 24px 80px rgba(0,0,0,.68),inset 0 0 0 1px rgba(255,218,135,.06);
}
.homeBulletinCard:before,.homeBulletinCard:after{background:linear-gradient(90deg,transparent,#d8a540,transparent)}
.homeBulletinEra{color:#f0c44e}.homeBulletinCard h2{color:#ffe6a0}.homeBulletinCard h3{color:#f4bd4d}
.homeBulletinRule{background:linear-gradient(90deg,transparent,#8f2d24 15%,#efc04d 50%,#8f2d24 85%,transparent)}
.homeBulletinCard p{color:#ddc5ae}.homeBulletinCard p b,.homeBulletinThanks{color:#ffe08a!important}

@media(max-width:650px){.miniStats span{border-bottom-color:#5d2d27}}


/* Account recovery */
.authSecondary{margin-top:8px}
.authRecovery{margin-top:14px;padding:14px;border:1px solid rgba(255,214,92,.24);border-radius:10px;background:rgba(10,8,6,.35)}
.authRecovery p{margin:6px 0 10px}
.authRecovery input{width:100%;box-sizing:border-box;margin:5px 0}
.accountRecoveryCard{grid-column:1/-1;align-items:flex-start}
.accountRecoveryCard>div{width:100%}
.accountRecoveryFields{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:center;margin-top:12px}
.accountRecoveryFields input{width:100%;box-sizing:border-box}
.accountRecoveryVerify{display:flex;gap:10px;align-items:center;grid-column:1/-1}
.accountRecoveryVerify input{max-width:220px}
.accountRecoveryFields>small{grid-column:1/-1;opacity:.76}
@media(max-width:760px){.accountRecoveryFields{grid-template-columns:1fr}.accountRecoveryVerify{grid-column:1;flex-direction:column;align-items:stretch}.accountRecoveryVerify input{max-width:none}.accountRecoveryFields>small{grid-column:1}}


.betaOpenQty{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(255,214,92,.24);border-radius:8px;font-size:.76rem;letter-spacing:.08em}
.betaOpenQty input{width:72px;min-width:72px;margin:0}


/* Beta physical-prize tournament interest check */
.tournamentInterestPopup{z-index:10060}
.tournamentInterestCard{width:min(760px,calc(100vw - 32px));text-align:left}
.tournamentInterestCard>.homeBulletinEra,.tournamentInterestCard>h2,.tournamentInterestCard>h3{text-align:center}
.tournamentInterestCard>.homeBulletinRule{max-width:620px}
.tournamentInterestCard>p{text-align:center}
.tournamentPrizeTarget{max-width:360px;margin:16px auto 18px;padding:14px 18px;border:1px solid rgba(240,196,78,.42);border-radius:12px;background:linear-gradient(135deg,rgba(116,34,27,.62),rgba(40,14,11,.75));text-align:center;box-shadow:inset 0 0 24px rgba(240,196,78,.05)}
.tournamentPrizeTarget small{display:block;font-size:9px;letter-spacing:.18em;color:#d7af5a}
.tournamentPrizeTarget strong{display:block;margin-top:3px;font:700 clamp(27px,5vw,38px) Georgia,'Times New Roman',serif;color:#ffe398}
.tournamentNoCharge{padding:9px 12px;border-left:3px solid #efc04d;background:rgba(239,192,77,.07)}
.tournamentInterestForm{display:grid;gap:11px;max-width:610px;margin:20px auto 0;text-align:left}
.tournamentInterestForm label{display:grid;gap:6px;font-size:10px;font-weight:800;letter-spacing:.1em;color:#d7b36a}
.tournamentInterestForm input,.tournamentInterestForm textarea{width:100%;box-sizing:border-box}
.tournamentInterestForm textarea{resize:vertical;min-height:92px;line-height:1.45}
.moneyInput{display:flex;align-items:center;border:1px solid #754039;border-radius:7px;background:#190b09;overflow:hidden}
.moneyInput>b{padding:0 0 0 12px;color:#f0c44e;font-size:18px}
.moneyInput input{border:0!important;background:transparent!important;box-shadow:none!important}
.tournamentContactCopy{margin:0!important;text-align:left!important;color:#f1d887!important;font-size:12px!important}
.tournamentExisting{padding:9px 11px;border:1px solid rgba(135,192,147,.4);border-radius:8px;background:rgba(38,94,50,.18);color:#b8e0bf;font-size:10px;letter-spacing:.06em}
.tournamentInterestForm .msg{min-height:18px;margin:0!important;text-align:left!important;color:#e8d3b6!important}
.tournamentInterestActions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.tournamentDisclaimer{display:block;color:#9f897c;line-height:1.45;text-align:left}
@media(max-width:600px){.tournamentInterestCard{width:calc(100vw - 24px)}.tournamentInterestActions{display:grid;grid-template-columns:1fr}.tournamentInterestActions button{width:100%}}

/* Fireball multi-target picker */
.targetMultiBox{width:min(760px,94vw)}
.targetMultiHelp{max-width:620px;margin:0 auto 14px;color:#d8c8b5;line-height:1.45;text-align:center}
.targetMultiChoices{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;max-height:56vh;overflow:auto;padding:3px}
.targetMultiChoice{position:relative;display:grid;gap:6px;align-content:start;padding:9px;border:1px solid #754039;border-radius:9px;background:#190b09;cursor:pointer;text-align:center}
.targetMultiChoice:hover{border-color:#c68f38}
.targetMultiChoice:has(input:checked){border-color:#efc04d;box-shadow:0 0 0 1px rgba(239,192,77,.35),0 0 20px rgba(239,192,77,.12);background:#2c120e}
.targetMultiChoice img{width:100%;max-height:185px;object-fit:contain}
.targetMultiChoice input{position:absolute;top:8px;right:8px;width:auto}
.targetMultiChoice span{font-weight:800;color:#f3dfbc}
.targetMultiActions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
@media(max-width:600px){.targetMultiChoices{grid-template-columns:repeat(2,minmax(0,1fr))}.targetMultiActions{display:grid;grid-template-columns:1fr}.targetMultiActions button{width:100%}}
